| OLD | NEW |
| 1 /* | 1 /* |
| 2 * This file is part of Adblock Plus <http://adblockplus.org/>, | 2 * This file is part of Adblock Plus <http://adblockplus.org/>, |
| 3 * Copyright (C) 2006-2014 Eyeo GmbH | 3 * Copyright (C) 2006-2014 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 81 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 92 /** | 92 /** |
| 93 * Will be set to true if no patterns.ini file exists. | 93 * Will be set to true if no patterns.ini file exists. |
| 94 * @type Boolean | 94 * @type Boolean |
| 95 */ | 95 */ |
| 96 firstRun: false, | 96 firstRun: false, |
| 97 | 97 |
| 98 /** | 98 /** |
| 99 * Map of properties listed in the filter storage file before the sections | 99 * Map of properties listed in the filter storage file before the sections |
| 100 * start. Right now this should be only the format version. | 100 * start. Right now this should be only the format version. |
| 101 */ | 101 */ |
| 102 fileProperties: {__proto__: null}, | 102 fileProperties: Object.create(null), |
| 103 | 103 |
| 104 /** | 104 /** |
| 105 * List of filter subscriptions containing all filters | 105 * List of filter subscriptions containing all filters |
| 106 * @type Array of Subscription | 106 * @type Array of Subscription |
| 107 */ | 107 */ |
| 108 subscriptions: [], | 108 subscriptions: [], |
| 109 | 109 |
| 110 /** | 110 /** |
| 111 * Map of subscriptions already on the list, by their URL/identifier | 111 * Map of subscriptions already on the list, by their URL/identifier |
| 112 * @type Object | 112 * @type Object |
| 113 */ | 113 */ |
| 114 knownSubscriptions: {__proto__: null}, | 114 knownSubscriptions: Object.create(null), |
| 115 | 115 |
| 116 /** | 116 /** |
| 117 * Finds the filter group that a filter should be added to by default. Will | 117 * Finds the filter group that a filter should be added to by default. Will |
| 118 * return null if this group doesn't exist yet. | 118 * return null if this group doesn't exist yet. |
| 119 */ | 119 */ |
| 120 getGroupForFilter: function(/**Filter*/ filter) /**SpecialSubscription*/ | 120 getGroupForFilter: function(/**Filter*/ filter) /**SpecialSubscription*/ |
| 121 { | 121 { |
| 122 let generalSubscription = null; | 122 let generalSubscription = null; |
| 123 for (let subscription of FilterStorage.subscriptions) | 123 for (let subscription of FilterStorage.subscriptions) |
| 124 { | 124 { |
| (...skipping 288 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 413 doneReading(parser); | 413 doneReading(parser); |
| 414 }.bind(this), "FilterStorageRead"); | 414 }.bind(this), "FilterStorageRead"); |
| 415 | 415 |
| 416 TimeLine.leave("FilterStorage.loadFromDisk() <- readFile()", "FilterStorag
eRead"); | 416 TimeLine.leave("FilterStorage.loadFromDisk() <- readFile()", "FilterStorag
eRead"); |
| 417 }.bind(this); | 417 }.bind(this); |
| 418 | 418 |
| 419 var doneReading = function(parser) | 419 var doneReading = function(parser) |
| 420 { | 420 { |
| 421 // Old special groups might have been converted, remove them if they are e
mpty | 421 // Old special groups might have been converted, remove them if they are e
mpty |
| 422 let specialMap = {"~il~": true, "~wl~": true, "~fl~": true, "~eh~": true}; | 422 let specialMap = {"~il~": true, "~wl~": true, "~fl~": true, "~eh~": true}; |
| 423 let knownSubscriptions = {__proto__: null}; | 423 let knownSubscriptions = Object.create(null); |
| 424 for (let i = 0; i < parser.subscriptions.length; i++) | 424 for (let i = 0; i < parser.subscriptions.length; i++) |
| 425 { | 425 { |
| 426 let subscription = parser.subscriptions[i]; | 426 let subscription = parser.subscriptions[i]; |
| 427 if (subscription instanceof SpecialSubscription && subscription.filters.
length == 0 && subscription.url in specialMap) | 427 if (subscription instanceof SpecialSubscription && subscription.filters.
length == 0 && subscription.url in specialMap) |
| 428 parser.subscriptions.splice(i--, 1); | 428 parser.subscriptions.splice(i--, 1); |
| 429 else | 429 else |
| 430 knownSubscriptions[subscription.url] = subscription; | 430 knownSubscriptions[subscription.url] = subscription; |
| 431 } | 431 } |
| 432 | 432 |
| 433 this.fileProperties = parser.fileProperties; | 433 this.fileProperties = parser.fileProperties; |
| (...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 487 } | 487 } |
| 488 | 488 |
| 489 TimeLine.leave("FilterStorage.loadFromDisk() done"); | 489 TimeLine.leave("FilterStorage.loadFromDisk() done"); |
| 490 }, | 490 }, |
| 491 | 491 |
| 492 _generateFilterData: function(subscriptions) | 492 _generateFilterData: function(subscriptions) |
| 493 { | 493 { |
| 494 yield "# Adblock Plus preferences"; | 494 yield "# Adblock Plus preferences"; |
| 495 yield "version=" + formatVersion; | 495 yield "version=" + formatVersion; |
| 496 | 496 |
| 497 let saved = {__proto__: null}; | 497 let saved = Object.create(null); |
| 498 let buf = []; | 498 let buf = []; |
| 499 | 499 |
| 500 // Save filter data | 500 // Save filter data |
| 501 for (let i = 0; i < subscriptions.length; i++) | 501 for (let i = 0; i < subscriptions.length; i++) |
| 502 { | 502 { |
| 503 let subscription = subscriptions[i]; | 503 let subscription = subscriptions[i]; |
| 504 for (let j = 0; j < subscription.filters.length; j++) | 504 for (let j = 0; j < subscription.filters.length; j++) |
| 505 { | 505 { |
| 506 let filter = subscription.filters[j]; | 506 let filter = subscription.filters[j]; |
| 507 if (!(filter.text in saved)) | 507 if (!(filter.text in saved)) |
| (...skipping 279 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 787 PrivateBrowsing.init(); | 787 PrivateBrowsing.init(); |
| 788 | 788 |
| 789 /** | 789 /** |
| 790 * IO.readFromFile() listener to parse filter data. | 790 * IO.readFromFile() listener to parse filter data. |
| 791 * @constructor | 791 * @constructor |
| 792 */ | 792 */ |
| 793 function INIParser() | 793 function INIParser() |
| 794 { | 794 { |
| 795 this.fileProperties = this.curObj = {}; | 795 this.fileProperties = this.curObj = {}; |
| 796 this.subscriptions = []; | 796 this.subscriptions = []; |
| 797 this.knownFilters = {__proto__: null}; | 797 this.knownFilters = Object.create(null); |
| 798 this.knownSubscriptions = {__proto__: null}; | 798 this.knownSubscriptions = Object.create(null); |
| 799 } | 799 } |
| 800 INIParser.prototype = | 800 INIParser.prototype = |
| 801 { | 801 { |
| 802 linesProcessed: 0, | 802 linesProcessed: 0, |
| 803 subscriptions: null, | 803 subscriptions: null, |
| 804 knownFilters: null, | 804 knownFilters: null, |
| 805 knownSubscriptions : null, | 805 knownSubscriptions : null, |
| 806 wantObj: true, | 806 wantObj: true, |
| 807 fileProperties: null, | 807 fileProperties: null, |
| 808 curObj: null, | 808 curObj: null, |
| (...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 888 Subscription.knownSubscriptions = origKnownSubscriptions; | 888 Subscription.knownSubscriptions = origKnownSubscriptions; |
| 889 } | 889 } |
| 890 | 890 |
| 891 // Allow events to be processed every now and then. | 891 // Allow events to be processed every now and then. |
| 892 // Note: IO.readFromFile() will deal with the potential reentrance here. | 892 // Note: IO.readFromFile() will deal with the potential reentrance here. |
| 893 this.linesProcessed++; | 893 this.linesProcessed++; |
| 894 if (this.linesProcessed % 1000 == 0) | 894 if (this.linesProcessed % 1000 == 0) |
| 895 Utils.yield(); | 895 Utils.yield(); |
| 896 } | 896 } |
| 897 }; | 897 }; |
| OLD | NEW |