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

Side by Side Diff: lib/filterStorage.js

Issue 29853561: Issue 6854 - Remove deprecated FilterNotifier methods (Closed) Base URL: https://hg.adblockplus.org/adblockpluscore/
Patch Set: Created Aug. 11, 2018, 2:43 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
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
(...skipping 113 matching lines...) Expand 10 before | Expand all | Expand 10 after
124 */ 124 */
125 addSubscription(subscription) 125 addSubscription(subscription)
126 { 126 {
127 if (FilterStorage.knownSubscriptions.has(subscription.url)) 127 if (FilterStorage.knownSubscriptions.has(subscription.url))
128 return; 128 return;
129 129
130 FilterStorage.subscriptions.push(subscription); 130 FilterStorage.subscriptions.push(subscription);
131 FilterStorage.knownSubscriptions.set(subscription.url, subscription); 131 FilterStorage.knownSubscriptions.set(subscription.url, subscription);
132 addSubscriptionFilters(subscription); 132 addSubscriptionFilters(subscription);
133 133
134 FilterNotifier.triggerListeners("subscription.added", subscription); 134 FilterNotifier.emit("subscription.added", subscription);
135 }, 135 },
136 136
137 /** 137 /**
138 * Removes a filter subscription from the list 138 * Removes a filter subscription from the list
139 * @param {Subscription} subscription filter subscription to be removed 139 * @param {Subscription} subscription filter subscription to be removed
140 */ 140 */
141 removeSubscription(subscription) 141 removeSubscription(subscription)
142 { 142 {
143 for (let i = 0; i < FilterStorage.subscriptions.length; i++) 143 for (let i = 0; i < FilterStorage.subscriptions.length; i++)
144 { 144 {
145 if (FilterStorage.subscriptions[i].url == subscription.url) 145 if (FilterStorage.subscriptions[i].url == subscription.url)
146 { 146 {
147 removeSubscriptionFilters(subscription); 147 removeSubscriptionFilters(subscription);
148 148
149 FilterStorage.subscriptions.splice(i--, 1); 149 FilterStorage.subscriptions.splice(i--, 1);
150 FilterStorage.knownSubscriptions.delete(subscription.url); 150 FilterStorage.knownSubscriptions.delete(subscription.url);
151 FilterNotifier.triggerListeners("subscription.removed", subscription); 151 FilterNotifier.emit("subscription.removed", subscription);
152 return; 152 return;
153 } 153 }
154 } 154 }
155 }, 155 },
156 156
157 /** 157 /**
158 * Moves a subscription in the list to a new position. 158 * Moves a subscription in the list to a new position.
159 * @param {Subscription} subscription filter subscription to be moved 159 * @param {Subscription} subscription filter subscription to be moved
160 * @param {Subscription} [insertBefore] filter subscription to insert before 160 * @param {Subscription} [insertBefore] filter subscription to insert before
161 * (if omitted the subscription will be put at the end of the list) 161 * (if omitted the subscription will be put at the end of the list)
(...skipping 11 matching lines...) Expand all
173 if (newPos < 0) 173 if (newPos < 0)
174 newPos = FilterStorage.subscriptions.length; 174 newPos = FilterStorage.subscriptions.length;
175 175
176 if (currentPos < newPos) 176 if (currentPos < newPos)
177 newPos--; 177 newPos--;
178 if (currentPos == newPos) 178 if (currentPos == newPos)
179 return; 179 return;
180 180
181 FilterStorage.subscriptions.splice(currentPos, 1); 181 FilterStorage.subscriptions.splice(currentPos, 1);
182 FilterStorage.subscriptions.splice(newPos, 0, subscription); 182 FilterStorage.subscriptions.splice(newPos, 0, subscription);
183 FilterNotifier.triggerListeners("subscription.moved", subscription); 183 FilterNotifier.emit("subscription.moved", subscription);
184 }, 184 },
185 185
186 /** 186 /**
187 * Replaces the list of filters in a subscription by a new list 187 * Replaces the list of filters in a subscription by a new list
188 * @param {Subscription} subscription filter subscription to be updated 188 * @param {Subscription} subscription filter subscription to be updated
189 * @param {Filter[]} filters new filter list 189 * @param {Filter[]} filters new filter list
190 */ 190 */
191 updateSubscriptionFilters(subscription, filters) 191 updateSubscriptionFilters(subscription, filters)
192 { 192 {
193 removeSubscriptionFilters(subscription); 193 removeSubscriptionFilters(subscription);
194 subscription.oldFilters = subscription.filters; 194 subscription.oldFilters = subscription.filters;
195 subscription.filters = filters; 195 subscription.filters = filters;
196 addSubscriptionFilters(subscription); 196 addSubscriptionFilters(subscription);
197 FilterNotifier.triggerListeners("subscription.updated", subscription); 197 FilterNotifier.emit("subscription.updated", subscription);
198 delete subscription.oldFilters; 198 delete subscription.oldFilters;
199 }, 199 },
200 200
201 /** 201 /**
202 * Adds a user-defined filter to the list 202 * Adds a user-defined filter to the list
203 * @param {Filter} filter 203 * @param {Filter} filter
204 * @param {SpecialSubscription} [subscription] 204 * @param {SpecialSubscription} [subscription]
205 * particular group that the filter should be added to 205 * particular group that the filter should be added to
206 * @param {number} [position] 206 * @param {number} [position]
207 * position within the subscription at which the filter should be added 207 * position within the subscription at which the filter should be added
(...skipping 16 matching lines...) Expand all
224 this.addSubscription(subscription); 224 this.addSubscription(subscription);
225 return; 225 return;
226 } 226 }
227 227
228 if (typeof position == "undefined") 228 if (typeof position == "undefined")
229 position = subscription.filters.length; 229 position = subscription.filters.length;
230 230
231 if (filter.subscriptions.indexOf(subscription) < 0) 231 if (filter.subscriptions.indexOf(subscription) < 0)
232 filter.subscriptions.push(subscription); 232 filter.subscriptions.push(subscription);
233 subscription.filters.splice(position, 0, filter); 233 subscription.filters.splice(position, 0, filter);
234 FilterNotifier.triggerListeners("filter.added", filter, subscription, 234 FilterNotifier.emit("filter.added", filter, subscription, position);
235 position);
236 }, 235 },
237 236
238 /** 237 /**
239 * Removes a user-defined filter from the list 238 * Removes a user-defined filter from the list
240 * @param {Filter} filter 239 * @param {Filter} filter
241 * @param {SpecialSubscription} [subscription] a particular filter group that 240 * @param {SpecialSubscription} [subscription] a particular filter group that
242 * the filter should be removed from (if ommited will be removed from all 241 * the filter should be removed from (if ommited will be removed from all
243 * subscriptions) 242 * subscriptions)
244 * @param {number} [position] position inside the filter group at which the 243 * @param {number} [position] position inside the filter group at which the
245 * filter should be removed (if ommited all instances will be removed) 244 * filter should be removed (if ommited all instances will be removed)
(...skipping 27 matching lines...) Expand all
273 let currentPosition = positions[j]; 272 let currentPosition = positions[j];
274 if (currentSubscription.filters[currentPosition] == filter) 273 if (currentSubscription.filters[currentPosition] == filter)
275 { 274 {
276 currentSubscription.filters.splice(currentPosition, 1); 275 currentSubscription.filters.splice(currentPosition, 1);
277 if (currentSubscription.filters.indexOf(filter) < 0) 276 if (currentSubscription.filters.indexOf(filter) < 0)
278 { 277 {
279 let index = filter.subscriptions.indexOf(currentSubscription); 278 let index = filter.subscriptions.indexOf(currentSubscription);
280 if (index >= 0) 279 if (index >= 0)
281 filter.subscriptions.splice(index, 1); 280 filter.subscriptions.splice(index, 1);
282 } 281 }
283 FilterNotifier.triggerListeners( 282 FilterNotifier.emit("filter.removed", filter, currentSubscription,
284 "filter.removed", filter, currentSubscription, currentPosition 283 currentPosition);
285 );
286 } 284 }
287 } 285 }
288 } 286 }
289 } 287 }
290 }, 288 },
291 289
292 /** 290 /**
293 * Moves a user-defined filter to a new position 291 * Moves a user-defined filter to a new position
294 * @param {Filter} filter 292 * @param {Filter} filter
295 * @param {SpecialSubscription} subscription filter group where the filter is 293 * @param {SpecialSubscription} subscription filter group where the filter is
296 * located 294 * located
297 * @param {number} oldPosition current position of the filter 295 * @param {number} oldPosition current position of the filter
298 * @param {number} newPosition new position of the filter 296 * @param {number} newPosition new position of the filter
299 */ 297 */
300 moveFilter(filter, subscription, oldPosition, newPosition) 298 moveFilter(filter, subscription, oldPosition, newPosition)
301 { 299 {
302 if (!(subscription instanceof SpecialSubscription) || 300 if (!(subscription instanceof SpecialSubscription) ||
303 subscription.filters[oldPosition] != filter) 301 subscription.filters[oldPosition] != filter)
304 { 302 {
305 return; 303 return;
306 } 304 }
307 305
308 newPosition = Math.min(Math.max(newPosition, 0), 306 newPosition = Math.min(Math.max(newPosition, 0),
309 subscription.filters.length - 1); 307 subscription.filters.length - 1);
310 if (oldPosition == newPosition) 308 if (oldPosition == newPosition)
311 return; 309 return;
312 310
313 subscription.filters.splice(oldPosition, 1); 311 subscription.filters.splice(oldPosition, 1);
314 subscription.filters.splice(newPosition, 0, filter); 312 subscription.filters.splice(newPosition, 0, filter);
315 FilterNotifier.triggerListeners("filter.moved", filter, subscription, 313 FilterNotifier.emit("filter.moved", filter, subscription, oldPosition,
316 oldPosition, newPosition); 314 newPosition);
317 }, 315 },
318 316
319 /** 317 /**
320 * Increases the hit count for a filter by one 318 * Increases the hit count for a filter by one
321 * @param {Filter} filter 319 * @param {Filter} filter
322 */ 320 */
323 increaseHitCount(filter) 321 increaseHitCount(filter)
324 { 322 {
325 if (!Prefs.savestats || !(filter instanceof ActiveFilter)) 323 if (!Prefs.savestats || !(filter instanceof ActiveFilter))
326 return; 324 return;
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
372 for (let subscription of parser.subscriptions) 370 for (let subscription of parser.subscriptions)
373 knownSubscriptions.set(subscription.url, subscription); 371 knownSubscriptions.set(subscription.url, subscription);
374 372
375 this.fileProperties = parser.fileProperties; 373 this.fileProperties = parser.fileProperties;
376 this.subscriptions = parser.subscriptions; 374 this.subscriptions = parser.subscriptions;
377 this.knownSubscriptions = knownSubscriptions; 375 this.knownSubscriptions = knownSubscriptions;
378 Filter.knownFilters = parser.knownFilters; 376 Filter.knownFilters = parser.knownFilters;
379 Subscription.knownSubscriptions = parser.knownSubscriptions; 377 Subscription.knownSubscriptions = parser.knownSubscriptions;
380 378
381 if (!silent) 379 if (!silent)
382 FilterNotifier.triggerListeners("load"); 380 FilterNotifier.emit("load");
383 } 381 }
384 }; 382 };
385 }, 383 },
386 384
387 /** 385 /**
388 * Loads all subscriptions from the disk. 386 * Loads all subscriptions from the disk.
389 * @return {Promise} promise resolved or rejected when loading is complete 387 * @return {Promise} promise resolved or rejected when loading is complete
390 */ 388 */
391 loadFromDisk() 389 loadFromDisk()
392 { 390 {
(...skipping 27 matching lines...) Expand all
420 throw new Error("No data in the file"); 418 throw new Error("No data in the file");
421 } 419 }
422 }); 420 });
423 }).catch(error => 421 }).catch(error =>
424 { 422 {
425 Cu.reportError(error); 423 Cu.reportError(error);
426 return tryBackup(1); 424 return tryBackup(1);
427 }).then(() => 425 }).then(() =>
428 { 426 {
429 this.initialized = true; 427 this.initialized = true;
430 FilterNotifier.triggerListeners("load"); 428 FilterNotifier.emit("load");
431 }); 429 });
432 }, 430 },
433 431
434 /** 432 /**
435 * Constructs the file name for a patterns.ini backup. 433 * Constructs the file name for a patterns.ini backup.
436 * @param {number} backupIndex 434 * @param {number} backupIndex
437 * number of the backup file (1 being the most recent) 435 * number of the backup file (1 being the most recent)
438 * @return {string} backup file name 436 * @return {string} backup file name
439 */ 437 */
440 getBackupName(backupIndex) 438 getBackupName(backupIndex)
(...skipping 147 matching lines...) Expand 10 before | Expand all | Expand 10 after
588 return renameBackup(Prefs.patternsbackups - 1); 586 return renameBackup(Prefs.patternsbackups - 1);
589 }).catch(error => 587 }).catch(error =>
590 { 588 {
591 // Errors during backup creation shouldn't prevent writing filters. 589 // Errors during backup creation shouldn't prevent writing filters.
592 Cu.reportError(error); 590 Cu.reportError(error);
593 }).then(() => 591 }).then(() =>
594 { 592 {
595 return IO.writeToFile(this.sourceFile, this.exportData()); 593 return IO.writeToFile(this.sourceFile, this.exportData());
596 }).then(() => 594 }).then(() =>
597 { 595 {
598 FilterNotifier.triggerListeners("save"); 596 FilterNotifier.emit("save");
599 }).catch(error => 597 }).catch(error =>
600 { 598 {
601 // If saving failed, report error but continue - we still have to process 599 // If saving failed, report error but continue - we still have to process
602 // flags. 600 // flags.
603 Cu.reportError(error); 601 Cu.reportError(error);
604 }).then(() => 602 }).then(() =>
605 { 603 {
606 this._saving = false; 604 this._saving = false;
607 if (this._needsSave) 605 if (this._needsSave)
608 { 606 {
(...skipping 164 matching lines...) Expand 10 before | Expand all | Expand 10 after
773 else if (this.wantObj === false && val) 771 else if (this.wantObj === false && val)
774 this.curObj.push(val.replace(/\\\[/g, "[")); 772 this.curObj.push(val.replace(/\\\[/g, "["));
775 } 773 }
776 finally 774 finally
777 { 775 {
778 Filter.knownFilters = origKnownFilters; 776 Filter.knownFilters = origKnownFilters;
779 Subscription.knownSubscriptions = origKnownSubscriptions; 777 Subscription.knownSubscriptions = origKnownSubscriptions;
780 } 778 }
781 } 779 }
782 }; 780 };
OLDNEW
« no previous file with comments | « lib/filterNotifier.js ('k') | lib/subscriptionClasses.js » ('j') | test/filterNotifier.js » ('J')

Powered by Google App Engine
This is Rietveld