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

Side by Side Diff: lib/synchronizer.js

Issue 29912619: Issue 6891, 6741 - Rename FilterStorage to filterStorage (Closed) Base URL: https://hg.adblockplus.org/adblockpluscore/
Patch Set: Minor update Created Oct. 16, 2018, 10:02 p.m.
Left:
Right:
Use n/p to move between diff chunks; N/P to move between comments.
Jump to:
View unified diff | Download patch
« no previous file with comments | « lib/filterStorage.js ('k') | test/filterListener.js » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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
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 "use strict"; 18 "use strict";
19 19
20 /** 20 /**
21 * @fileOverview Manages synchronization of filter subscriptions. 21 * @fileOverview Manages synchronization of filter subscriptions.
22 */ 22 */
23 23
24 const {Downloader, Downloadable, 24 const {Downloader, Downloadable,
25 MILLIS_IN_SECOND, MILLIS_IN_MINUTE, 25 MILLIS_IN_SECOND, MILLIS_IN_MINUTE,
26 MILLIS_IN_HOUR, MILLIS_IN_DAY} = require("./downloader"); 26 MILLIS_IN_HOUR, MILLIS_IN_DAY} = require("./downloader");
27 const {Filter} = require("./filterClasses"); 27 const {Filter} = require("./filterClasses");
28 const {FilterStorage} = require("./filterStorage"); 28 const {filterStorage} = require("./filterStorage");
29 const {filterNotifier} = require("./filterNotifier"); 29 const {filterNotifier} = require("./filterNotifier");
30 const {Prefs} = require("prefs"); 30 const {Prefs} = require("prefs");
31 const {Subscription, 31 const {Subscription,
32 DownloadableSubscription} = require("./subscriptionClasses"); 32 DownloadableSubscription} = require("./subscriptionClasses");
33 33
34 const INITIAL_DELAY = 1 * MILLIS_IN_MINUTE; 34 const INITIAL_DELAY = 1 * MILLIS_IN_MINUTE;
35 const CHECK_INTERVAL = 1 * MILLIS_IN_HOUR; 35 const CHECK_INTERVAL = 1 * MILLIS_IN_HOUR;
36 const DEFAULT_EXPIRATION_INTERVAL = 5 * MILLIS_IN_DAY; 36 const DEFAULT_EXPIRATION_INTERVAL = 5 * MILLIS_IN_DAY;
37 37
38 /** 38 /**
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after
88 /** 88 /**
89 * Yields {@link Downloadable} instances for all subscriptions that can be 89 * Yields {@link Downloadable} instances for all subscriptions that can be
90 * downloaded. 90 * downloaded.
91 * @yields {Downloadable} 91 * @yields {Downloadable}
92 */ 92 */
93 *_getDownloadables() 93 *_getDownloadables()
94 { 94 {
95 if (!Prefs.subscriptions_autoupdate) 95 if (!Prefs.subscriptions_autoupdate)
96 return; 96 return;
97 97
98 for (let subscription of FilterStorage.subscriptions()) 98 for (let subscription of filterStorage.subscriptions())
99 { 99 {
100 if (subscription instanceof DownloadableSubscription) 100 if (subscription instanceof DownloadableSubscription)
101 yield this._getDownloadable(subscription, false); 101 yield this._getDownloadable(subscription, false);
102 } 102 }
103 } 103 }
104 104
105 /** 105 /**
106 * Creates a {@link Downloadable} instance for a subscription. 106 * Creates a {@link Downloadable} instance for a subscription.
107 * @param {Subscription} subscription 107 * @param {Subscription} subscription
108 * @param {boolean} manual 108 * @param {boolean} manual
(...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after
179 let subscription = Subscription.fromURL(downloadable.redirectURL || 179 let subscription = Subscription.fromURL(downloadable.redirectURL ||
180 downloadable.url); 180 downloadable.url);
181 if (downloadable.redirectURL && 181 if (downloadable.redirectURL &&
182 downloadable.redirectURL != downloadable.url) 182 downloadable.redirectURL != downloadable.url)
183 { 183 {
184 let oldSubscription = Subscription.fromURL(downloadable.url); 184 let oldSubscription = Subscription.fromURL(downloadable.url);
185 subscription.title = oldSubscription.title; 185 subscription.title = oldSubscription.title;
186 subscription.disabled = oldSubscription.disabled; 186 subscription.disabled = oldSubscription.disabled;
187 subscription.lastCheck = oldSubscription.lastCheck; 187 subscription.lastCheck = oldSubscription.lastCheck;
188 188
189 let listed = FilterStorage.knownSubscriptions.has(oldSubscription.url); 189 let listed = filterStorage.knownSubscriptions.has(oldSubscription.url);
190 if (listed) 190 if (listed)
191 FilterStorage.removeSubscription(oldSubscription); 191 filterStorage.removeSubscription(oldSubscription);
192 192
193 Subscription.knownSubscriptions.delete(oldSubscription.url); 193 Subscription.knownSubscriptions.delete(oldSubscription.url);
194 194
195 if (listed) 195 if (listed)
196 FilterStorage.addSubscription(subscription); 196 filterStorage.addSubscription(subscription);
197 } 197 }
198 198
199 // The download actually succeeded 199 // The download actually succeeded
200 subscription.lastSuccess = subscription.lastDownload = Math.round( 200 subscription.lastSuccess = subscription.lastDownload = Math.round(
201 Date.now() / MILLIS_IN_SECOND 201 Date.now() / MILLIS_IN_SECOND
202 ); 202 );
203 subscription.downloadStatus = "synchronize_ok"; 203 subscription.downloadStatus = "synchronize_ok";
204 subscription.downloadCount = downloadable.downloadCount; 204 subscription.downloadCount = downloadable.downloadCount;
205 subscription.errors = 0; 205 subscription.errors = 0;
206 206
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after
260 // Process filters 260 // Process filters
261 lines.shift(); 261 lines.shift();
262 let filters = []; 262 let filters = [];
263 for (let line of lines) 263 for (let line of lines)
264 { 264 {
265 line = Filter.normalize(line); 265 line = Filter.normalize(line);
266 if (line) 266 if (line)
267 filters.push(Filter.fromText(line)); 267 filters.push(Filter.fromText(line));
268 } 268 }
269 269
270 FilterStorage.updateSubscriptionFilters(subscription, filters); 270 filterStorage.updateSubscriptionFilters(subscription, filters);
271 } 271 }
272 272
273 _onDownloadError(downloadable, downloadURL, error, channelStatus, 273 _onDownloadError(downloadable, downloadURL, error, channelStatus,
274 responseStatus, redirectCallback) 274 responseStatus, redirectCallback)
275 { 275 {
276 let subscription = Subscription.fromURL(downloadable.url); 276 let subscription = Subscription.fromURL(downloadable.url);
277 subscription.lastDownload = Math.round(Date.now() / MILLIS_IN_SECOND); 277 subscription.lastDownload = Math.round(Date.now() / MILLIS_IN_SECOND);
278 subscription.downloadStatus = error; 278 subscription.downloadStatus = error;
279 279
280 // Request fallback URL if necessary - for automatic updates only 280 // Request fallback URL if necessary - for automatic updates only
(...skipping 27 matching lines...) Expand all
308 request.open("GET", fallbackURL); 308 request.open("GET", fallbackURL);
309 request.overrideMimeType("text/plain"); 309 request.overrideMimeType("text/plain");
310 request.channel.loadFlags = request.channel.loadFlags | 310 request.channel.loadFlags = request.channel.loadFlags |
311 request.channel.INHIBIT_CACHING | 311 request.channel.INHIBIT_CACHING |
312 request.channel.VALIDATE_ALWAYS; 312 request.channel.VALIDATE_ALWAYS;
313 request.addEventListener("load", ev => 313 request.addEventListener("load", ev =>
314 { 314 {
315 if (onShutdown.done) 315 if (onShutdown.done)
316 return; 316 return;
317 317
318 if (!FilterStorage.knownSubscriptions.has(subscription.url)) 318 if (!filterStorage.knownSubscriptions.has(subscription.url))
319 return; 319 return;
320 320
321 let match = /^(\d+)(?:\s+(\S+))?$/.exec(request.responseText); 321 let match = /^(\d+)(?:\s+(\S+))?$/.exec(request.responseText);
322 if (match && match[1] == "301" && // Moved permanently 322 if (match && match[1] == "301" && // Moved permanently
323 match[2] && /^https?:\/\//i.test(match[2])) 323 match[2] && /^https?:\/\//i.test(match[2]))
324 { 324 {
325 redirectCallback(match[2]); 325 redirectCallback(match[2]);
326 } 326 }
327 else if (match && match[1] == "410") // Gone 327 else if (match && match[1] == "410") // Gone
328 { 328 {
329 let data = "[Adblock]\n" + 329 let data = "[Adblock]\n" +
330 subscription.filters.map(f => f.text).join("\n"); 330 subscription.filters.map(f => f.text).join("\n");
331 redirectCallback("data:text/plain," + encodeURIComponent(data)); 331 redirectCallback("data:text/plain," + encodeURIComponent(data));
332 } 332 }
333 }, false); 333 }, false);
334 request.send(null); 334 request.send(null);
335 } 335 }
336 } 336 }
337 } 337 }
338 } 338 }
339 339
340 /** 340 /**
341 * This object is responsible for downloading filter subscriptions whenever 341 * This object is responsible for downloading filter subscriptions whenever
342 * necessary. 342 * necessary.
343 * @type {Synchronizer} 343 * @type {Synchronizer}
344 */ 344 */
345 let synchronizer = new Synchronizer(); 345 let synchronizer = new Synchronizer();
346 346
347 exports.Synchronizer = synchronizer; 347 exports.Synchronizer = synchronizer;
OLDNEW
« no previous file with comments | « lib/filterStorage.js ('k') | test/filterListener.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld