| Index: lib/filterListener.js |
| =================================================================== |
| --- a/lib/filterListener.js |
| +++ b/lib/filterListener.js |
| @@ -24,20 +24,21 @@ |
| const {Services} = Cu.import("resource://gre/modules/Services.jsm", {}); |
| const {XPCOMUtils} = Cu.import("resource://gre/modules/XPCOMUtils.jsm", {}); |
| const {FilterStorage} = require("./filterStorage"); |
| const {FilterNotifier} = require("./filterNotifier"); |
| const {ElemHide} = require("./elemHide"); |
| const {ElemHideEmulation} = require("./elemHideEmulation"); |
| +const {ElemHideExceptions} = require("./elemHideExceptions"); |
| const {Snippets} = require("./snippets"); |
| const {defaultMatcher} = require("./matcher"); |
| const {ActiveFilter, RegExpFilter, |
| - ElemHideBase, ElemHideEmulationFilter, |
| + ElemHideBase, ElemHideFilter, ElemHideEmulationFilter, |
| SnippetFilter} = require("./filterClasses"); |
| const {SpecialSubscription} = require("./subscriptionClasses"); |
| const {Prefs} = require("prefs"); |
| /** |
| * Increases on filter changes, filters will be saved if it exceeds 1. |
| * @type {number} |
| */ |
| @@ -162,20 +163,22 @@ |
| } |
| if (!hasEnabled) |
| return; |
| if (filter instanceof RegExpFilter) |
| defaultMatcher.add(filter); |
| else if (filter instanceof ElemHideBase) |
| { |
| - if (filter instanceof ElemHideEmulationFilter) |
| + if (filter instanceof ElemHideFilter) |
| + ElemHide.add(filter); |
| + else if (filter instanceof ElemHideEmulationFilter) |
| ElemHideEmulation.add(filter); |
| else |
| - ElemHide.add(filter); |
| + ElemHideExceptions.add(filter); |
| } |
| else if (allowSnippets && filter instanceof SnippetFilter) |
| Snippets.add(filter); |
| } |
| /** |
| * Notifies Matcher instances or ElemHide object about removal of a filter |
| * if necessary. |
| @@ -200,20 +203,22 @@ |
| if (hasEnabled) |
| return; |
| } |
| if (filter instanceof RegExpFilter) |
| defaultMatcher.remove(filter); |
| else if (filter instanceof ElemHideBase) |
| { |
| - if (filter instanceof ElemHideEmulationFilter) |
| + if (filter instanceof ElemHideFilter) |
| + ElemHide.remove(filter); |
| + else if (filter instanceof ElemHideEmulationFilter) |
| ElemHideEmulation.remove(filter); |
| else |
| - ElemHide.remove(filter); |
| + ElemHideExceptions.remove(filter); |
| } |
| else if (filter instanceof SnippetFilter) |
| Snippets.remove(filter); |
| } |
| const primes = [101, 109, 131, 149, 163, 179, 193, 211, 229, 241]; |
| function addFilters(filters) |
| @@ -326,16 +331,17 @@ |
| function onLoad() |
| { |
| isDirty = 0; |
| defaultMatcher.clear(); |
| ElemHide.clear(); |
| ElemHideEmulation.clear(); |
| + ElemHideExceptions.clear(); |
| Snippets.clear(); |
| for (let subscription of FilterStorage.subscriptions) |
| { |
| if (!subscription.disabled) |
| addFilters(subscription.filters); |
| } |
| } |