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

Side by Side Diff: lib/subscriptionInit.js

Issue 29339020: Issue 3868 - Use the new FilterNotifier API (Closed)
Patch Set: Created March 23, 2016, 8:15 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/stats.js ('k') | lib/whitelisting.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-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
(...skipping 13 matching lines...) Expand all
24 let {FilterStorage} = require("filterStorage"); 24 let {FilterStorage} = require("filterStorage");
25 let {FilterNotifier} = require("filterNotifier"); 25 let {FilterNotifier} = require("filterNotifier");
26 let {Prefs} = require("prefs"); 26 let {Prefs} = require("prefs");
27 let {Synchronizer} = require("synchronizer"); 27 let {Synchronizer} = require("synchronizer");
28 let {Utils} = require("utils"); 28 let {Utils} = require("utils");
29 let {initNotifications} = require("notificationHelper"); 29 let {initNotifications} = require("notificationHelper");
30 30
31 let firstRun; 31 let firstRun;
32 let subscriptionsCallback = null; 32 let subscriptionsCallback = null;
33 33
34 let filtersLoaded = new Promise(resolve =>
35 {
36 function onFilterAction(action)
37 {
38 if (action == "load")
39 {
40 FilterNotifier.removeListener(onFilterAction);
41 resolve();
42 }
43 }
44 FilterNotifier.addListener(onFilterAction);
45 });
46
47 /** 34 /**
48 * If there aren't any filters, the default subscriptions are added. 35 * If there aren't any filters, the default subscriptions are added.
49 * However, if patterns.ini already did exist and/or any preference 36 * However, if patterns.ini already did exist and/or any preference
50 * is set to a non-default value, this indicates that this isn't the 37 * is set to a non-default value, this indicates that this isn't the
51 * first run, but something went wrong. 38 * first run, but something went wrong.
52 * 39 *
53 * This function detects the first run, and makes sure that the user 40 * This function detects the first run, and makes sure that the user
54 * gets notified (on the first run page) if the data appears incomplete 41 * gets notified (on the first run page) if the data appears incomplete
55 * and therefore will be reinitialized. 42 * and therefore will be reinitialized.
56 */ 43 */
(...skipping 108 matching lines...) Expand 10 before | Expand all | Expand 10 after
165 !subscription.lastDownload) 152 !subscription.lastDownload)
166 Synchronizer.execute(subscription); 153 Synchronizer.execute(subscription);
167 } 154 }
168 155
169 if (firstRun && !Prefs.suppress_first_run_page) 156 if (firstRun && !Prefs.suppress_first_run_page)
170 ext.pages.open(ext.getURL("firstRun.html")); 157 ext.pages.open(ext.getURL("firstRun.html"));
171 158
172 initNotifications(); 159 initNotifications();
173 } 160 }
174 161
175 Promise.all([filtersLoaded, Prefs.untilLoaded]).then(detectFirstRun) 162 Promise.all([FilterNotifier.once("load"),
176 .then(getSubscriptions) 163 Prefs.untilLoaded]).then(detectFirstRun)
177 .then(finishInitialization); 164 .then(getSubscriptions)
165 .then(finishInitialization);
178 166
179 /** 167 /**
180 * Indicates whether the default filter subscriptions have been added 168 * Indicates whether the default filter subscriptions have been added
181 * again because there weren't any subscriptions even though this wasn't 169 * again because there weren't any subscriptions even though this wasn't
182 * the first run. 170 * the first run.
183 * 171 *
184 * @type {boolean} 172 * @type {boolean}
185 */ 173 */
186 exports.reinitialized = false; 174 exports.reinitialized = false;
187 175
188 /** 176 /**
189 * Sets a callback that is called with an array of subscriptions to be added 177 * Sets a callback that is called with an array of subscriptions to be added
190 * during initialization. The callback must return an array of subscriptions 178 * during initialization. The callback must return an array of subscriptions
191 * that will effectively be added. 179 * that will effectively be added.
192 * 180 *
193 * @param {function} 181 * @param {function}
194 */ 182 */
195 exports.setSubscriptionsCallback = function(callback) 183 exports.setSubscriptionsCallback = function(callback)
196 { 184 {
197 subscriptionsCallback = callback; 185 subscriptionsCallback = callback;
198 }; 186 };
OLDNEW
« no previous file with comments | « lib/stats.js ('k') | lib/whitelisting.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld