Rietveld Code Review Tool
Help | Bug tracker | Discussion group | Source code

Delta Between Two Patch Sets: lib/filterListener.js

Issue 29375915: Issue 4878 - Start using ESLint for adblockpluscore (Closed)
Left Patch Set: Created Feb. 20, 2017, 10:02 a.m.
Right Patch Set: Removed unused imports Created March 15, 2017, 3:11 a.m.
Left:
Right:
Use n/p to move between diff chunks; N/P to move between comments.
Jump to:
Left: Side by side diff | Download
Right: Side by side diff | Download
« no previous file with change/comment | « lib/filterClasses.js ('k') | lib/filterNotifier.js » ('j') | no next file with change/comment »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
LEFTRIGHT
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-2016 Eyeo GmbH 3 * Copyright (C) 2006-2016 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
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU General Public License for more details. 12 * GNU General Public License for more details.
13 * 13 *
14 * You should have received a copy of the GNU General Public License 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/>. 15 * along with Adblock Plus. If not, see <http://www.gnu.org/licenses/>.
16 */ 16 */
17 17
18 /* globals Services, XPCOMUtils */
Sebastian Noack 2017/02/20 13:14:51 Aren't these universally available? If so, please
kzar 2017/02/21 06:13:59 Done.
19
20 "use strict"; 18 "use strict";
21 19
22 /** 20 /**
23 * @fileOverview Component synchronizing filter storage with Matcher 21 * @fileOverview Component synchronizing filter storage with Matcher
24 * instances and ElemHide. 22 * instances and ElemHide.
25 */ 23 */
26 24
27 Cu.import("resource://gre/modules/XPCOMUtils.jsm"); 25 const {Services} = Cu.import("resource://gre/modules/Services.jsm", {});
28 Cu.import("resource://gre/modules/Services.jsm"); 26 const {XPCOMUtils} = Cu.import("resource://gre/modules/XPCOMUtils.jsm", {});
29 27
30 let {FilterStorage} = require("filterStorage"); 28 const {FilterStorage} = require("filterStorage");
31 let {FilterNotifier} = require("filterNotifier"); 29 const {FilterNotifier} = require("filterNotifier");
32 let {ElemHide} = require("elemHide"); 30 const {ElemHide} = require("elemHide");
33 let {ElemHideEmulation} = require("elemHideEmulation"); 31 const {ElemHideEmulation} = require("elemHideEmulation");
34 let {defaultMatcher} = require("matcher"); 32 const {defaultMatcher} = require("matcher");
35 let {ActiveFilter, RegExpFilter, ElemHideBase, ElemHideEmulationFilter} = 33 const {ActiveFilter, RegExpFilter,
36 require("filterClasses"); 34 ElemHideBase, ElemHideEmulationFilter} = require("filterClasses");
37 let {Prefs} = require("prefs"); 35 const {Prefs} = require("prefs");
38 36
39 /** 37 /**
40 * Increases on filter changes, filters will be saved if it exceeds 1. 38 * Increases on filter changes, filters will be saved if it exceeds 1.
41 * @type {Integer} 39 * @type {number}
42 */ 40 */
43 let isDirty = 0; 41 let isDirty = 0;
44 42
45 /** 43 /**
46 * This object can be used to change properties of the filter change listeners. 44 * This object can be used to change properties of the filter change listeners.
47 * @class 45 * @class
48 */ 46 */
49 let FilterListener = { 47 let FilterListener = {
50 /** 48 /**
51 * Increases "dirty factor" of the filters and calls 49 * Increases "dirty factor" of the filters and calls
52 * FilterStorage.saveToDisk() if it becomes 1 or more. Save is 50 * FilterStorage.saveToDisk() if it becomes 1 or more. Save is
53 * executed delayed to prevent multiple subsequent calls. If the 51 * executed delayed to prevent multiple subsequent calls. If the
54 * parameter is 0 it forces saving filters if any changes were 52 * parameter is 0 it forces saving filters if any changes were
55 * recorded after the previous save. 53 * recorded after the previous save.
56 * @param {Integer} factor 54 * @param {number} factor
57 */ 55 */
58 setDirty(factor) 56 setDirty(factor)
59 { 57 {
60 if (factor == 0 && isDirty > 0) 58 if (factor == 0 && isDirty > 0)
61 isDirty = 1; 59 isDirty = 1;
62 else 60 else
63 isDirty += factor; 61 isDirty += factor;
64 if (isDirty >= 1) 62 if (isDirty >= 1)
65 { 63 {
66 isDirty = 0; 64 isDirty = 0;
(...skipping 135 matching lines...) Expand 10 before | Expand all | Expand 10 after
202 // filters applying there. We have ten prime numbers to use as iteration step, 200 // filters applying there. We have ten prime numbers to use as iteration step,
203 // any of those can be chosen as long as the array length isn't divisible by 201 // any of those can be chosen as long as the array length isn't divisible by
204 // it. 202 // it.
205 let len = filters.length; 203 let len = filters.length;
206 if (!len) 204 if (!len)
207 return; 205 return;
208 206
209 let current = (Math.random() * len) | 0; 207 let current = (Math.random() * len) | 0;
210 let step; 208 let step;
211 do 209 do
210 {
212 step = primes[(Math.random() * primes.length) | 0]; 211 step = primes[(Math.random() * primes.length) | 0];
213 while (len % step == 0); 212 } while (len % step == 0);
214 213
215 for (let i = 0; i < len; i++, current = (current + step) % len) 214 for (let i = 0; i < len; i++, current = (current + step) % len)
216 addFilter(filters[current]); 215 addFilter(filters[current]);
217 } 216 }
218 217
219 function onSubscriptionAdded(subscription) 218 function onSubscriptionAdded(subscription)
220 { 219 {
221 FilterListener.setDirty(1); 220 FilterListener.setDirty(1);
222 221
223 if (!subscription.disabled) 222 if (!subscription.disabled)
(...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after
312 { 311 {
313 if (!subscription.disabled) 312 if (!subscription.disabled)
314 addFilters(subscription.filters); 313 addFilters(subscription.filters);
315 } 314 }
316 } 315 }
317 316
318 function onSave() 317 function onSave()
319 { 318 {
320 isDirty = 0; 319 isDirty = 0;
321 } 320 }
LEFTRIGHT

Powered by Google App Engine
This is Rietveld