Left: | ||
Right: |
OLD | NEW |
---|---|
(Empty) | |
1 /* | |
2 * This file is part of Adblock Plus <https://adblockplus.org/>, | |
3 * Copyright (C) 2006-2015 Eyeo GmbH | |
4 * | |
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 | |
7 * published by the Free Software Foundation. | |
8 * | |
9 * Adblock Plus is distributed in the hope that it will be useful, | |
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
12 * GNU General Public License for more details. | |
13 * | |
14 * You should have received a copy of the GNU General Public License | |
15 * along with Adblock Plus. If not, see <http://www.gnu.org/licenses/>. | |
16 */ | |
17 | |
18 /** | |
19 * @fileOverview CSS property filtering implementation. | |
20 */ | |
21 | |
22 let {ElemHide} = require("elemHide"); | |
23 let {Filter} = require("filterClasses"); | |
24 | |
25 let filters = Object.create(null); | |
26 | |
27 /** | |
28 * CSS rules component | |
29 * @class | |
30 */ | |
31 let CSSRules = exports.CSSRules = | |
32 { | |
33 /** | |
34 * Removes all known filters | |
35 */ | |
36 clear: function() | |
37 { | |
38 filters = Object.create(null); | |
39 }, | |
40 | |
41 /** | |
42 * Add a new CSS property filter | |
43 * @param {CSSPropertyFilter} filter | |
44 */ | |
45 add: function(filter) | |
46 { | |
47 filters[filter.text] = true; | |
48 }, | |
49 | |
50 /** | |
51 * Removes a CSS property filter | |
52 * @param {CSSPropertyFilter} filter | |
53 */ | |
54 remove: function(filter) | |
55 { | |
56 delete filters[filter.text]; | |
57 }, | |
58 | |
59 /** | |
60 * Returns a list of all rules active on a particular domain | |
61 * @param {String} domain | |
62 * @return {Array.<CSSPropertyFilter>} | |
Wladimir Palant
2015/11/26 12:52:46
Nit: We usually use CSSPropertyFilter[] which is s
Thomas Greiner
2015/11/30 13:51:16
Done. Will include that change in the commit.
| |
63 */ | |
64 getRulesForDomain: function(domain) | |
65 { | |
66 let result = []; | |
67 let keys = Object.getOwnPropertyNames(filters); | |
68 for (let key of keys) | |
69 { | |
70 let filter = Filter.fromText(key); | |
71 if (filter.isActiveOnDomain(domain) && !ElemHide.getException(filter, doma in)) | |
72 result.push(filter); | |
73 } | |
74 return result; | |
75 } | |
76 }; | |
OLD | NEW |