| Left: | ||
| Right: |
| OLD | NEW |
|---|---|
| 1 /* | 1 /* |
| 2 * This file is part of Adblock Plus <https://adblockplus.org/>, | 2 * This file is part of Adblock Plus <https://adblockplus.org/>, |
| 3 * Copyright (C) 2006-present eyeo GmbH | 3 * Copyright (C) 2006-present eyeo GmbH |
| 4 * | 4 * |
| 5 * Adblock Plus is free software: you can redistribute it and/or modify | 5 * Adblock Plus is free software: you can redistribute it and/or modify |
| 6 * it under the terms of the GNU General Public License version 3 as | 6 * it under the terms of the GNU General Public License version 3 as |
| 7 * published by the Free Software Foundation. | 7 * published by the Free Software Foundation. |
| 8 * | 8 * |
| 9 * Adblock Plus is distributed in the hope that it will be useful, | 9 * Adblock Plus is distributed in the hope that it will be useful, |
| 10 * but WITHOUT ANY WARRANTY; without even the implied warranty of | 10 * but WITHOUT ANY WARRANTY; without even the implied warranty of |
| (...skipping 16 matching lines...) Expand all Loading... | |
| 27 | 27 |
| 28 const {FilterStorage} = require("./filterStorage"); | 28 const {FilterStorage} = require("./filterStorage"); |
| 29 const {FilterNotifier} = require("./filterNotifier"); | 29 const {FilterNotifier} = require("./filterNotifier"); |
| 30 const {ElemHide} = require("./elemHide"); | 30 const {ElemHide} = require("./elemHide"); |
| 31 const {ElemHideEmulation} = require("./elemHideEmulation"); | 31 const {ElemHideEmulation} = require("./elemHideEmulation"); |
| 32 const {Snippets} = require("./snippets"); | 32 const {Snippets} = require("./snippets"); |
| 33 const {defaultMatcher} = require("./matcher"); | 33 const {defaultMatcher} = require("./matcher"); |
| 34 const {ActiveFilter, RegExpFilter, | 34 const {ActiveFilter, RegExpFilter, |
| 35 ElemHideBase, ElemHideEmulationFilter, | 35 ElemHideBase, ElemHideEmulationFilter, |
| 36 SnippetFilter} = require("./filterClasses"); | 36 SnippetFilter} = require("./filterClasses"); |
| 37 const {SpecialSubscription} = require("./subscriptionClasses"); | |
| 37 const {Prefs} = require("prefs"); | 38 const {Prefs} = require("prefs"); |
| 38 | 39 |
| 39 /** | 40 /** |
| 40 * Increases on filter changes, filters will be saved if it exceeds 1. | 41 * Increases on filter changes, filters will be saved if it exceeds 1. |
| 41 * @type {number} | 42 * @type {number} |
| 42 */ | 43 */ |
| 43 let isDirty = 0; | 44 let isDirty = 0; |
| 44 | 45 |
| 45 /** | 46 /** |
| 46 * This object can be used to change properties of the filter change listeners. | 47 * This object can be used to change properties of the filter change listeners. |
| (...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 133 * Notifies Matcher instances or ElemHide object about a new filter | 134 * Notifies Matcher instances or ElemHide object about a new filter |
| 134 * if necessary. | 135 * if necessary. |
| 135 * @param {Filter} filter filter that has been added | 136 * @param {Filter} filter filter that has been added |
| 136 */ | 137 */ |
| 137 function addFilter(filter) | 138 function addFilter(filter) |
| 138 { | 139 { |
| 139 if (!(filter instanceof ActiveFilter) || filter.disabled) | 140 if (!(filter instanceof ActiveFilter) || filter.disabled) |
| 140 return; | 141 return; |
| 141 | 142 |
| 142 let hasEnabled = false; | 143 let hasEnabled = false; |
| 144 let allowSnippets = false; | |
| 143 for (let i = 0; i < filter.subscriptions.length; i++) | 145 for (let i = 0; i < filter.subscriptions.length; i++) |
|
kzar
2018/07/10 14:38:35
Nit: `for (let subscription of filter.subscription
Manish Jethani
2018/07/10 18:33:22
I did this initially and then reverted it. There's
kzar
2018/07/10 18:56:00
Sure it's an unrelated change, but you're changing
Manish Jethani
2018/07/11 15:07:03
There are some performance implications of for..of
kzar
2018/07/11 17:22:07
Fine.
| |
| 144 { | 146 { |
| 145 if (!filter.subscriptions[i].disabled) | 147 let subscription = filter.subscriptions[i]; |
| 148 | |
| 149 if (!subscription.disabled) | |
| 146 { | 150 { |
| 147 hasEnabled = true; | 151 hasEnabled = true; |
| 148 break; | 152 |
| 153 // Allow snippets to be executed only by the circumvention lists or the | |
| 154 // user's own filters. | |
| 155 if (subscription.type == "circumvention" || | |
| 156 subscription instanceof SpecialSubscription) | |
| 157 { | |
| 158 allowSnippets = true; | |
| 159 break; | |
| 160 } | |
| 149 } | 161 } |
| 150 } | 162 } |
| 151 if (!hasEnabled) | 163 if (!hasEnabled) |
| 152 return; | 164 return; |
| 153 | 165 |
| 154 if (filter instanceof RegExpFilter) | 166 if (filter instanceof RegExpFilter) |
| 155 defaultMatcher.add(filter); | 167 defaultMatcher.add(filter); |
| 156 else if (filter instanceof ElemHideBase) | 168 else if (filter instanceof ElemHideBase) |
| 157 { | 169 { |
| 158 if (filter instanceof ElemHideEmulationFilter) | 170 if (filter instanceof ElemHideEmulationFilter) |
| 159 ElemHideEmulation.add(filter); | 171 ElemHideEmulation.add(filter); |
| 160 else | 172 else |
| 161 ElemHide.add(filter); | 173 ElemHide.add(filter); |
| 162 } | 174 } |
| 163 else if (filter instanceof SnippetFilter) | 175 else if (allowSnippets && filter instanceof SnippetFilter) |
| 164 Snippets.add(filter); | 176 Snippets.add(filter); |
| 165 } | 177 } |
| 166 | 178 |
| 167 /** | 179 /** |
| 168 * Notifies Matcher instances or ElemHide object about removal of a filter | 180 * Notifies Matcher instances or ElemHide object about removal of a filter |
| 169 * if necessary. | 181 * if necessary. |
| 170 * @param {Filter} filter filter that has been removed | 182 * @param {Filter} filter filter that has been removed |
| 171 */ | 183 */ |
| 172 function removeFilter(filter) | 184 function removeFilter(filter) |
| 173 { | 185 { |
| (...skipping 150 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 324 { | 336 { |
| 325 if (!subscription.disabled) | 337 if (!subscription.disabled) |
| 326 addFilters(subscription.filters); | 338 addFilters(subscription.filters); |
| 327 } | 339 } |
| 328 } | 340 } |
| 329 | 341 |
| 330 function onSave() | 342 function onSave() |
| 331 { | 343 { |
| 332 isDirty = 0; | 344 isDirty = 0; |
| 333 } | 345 } |
| OLD | NEW |