Left: | ||
Right: |
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 341 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
352 filter.hitCount = 0; | 352 filter.hitCount = 0; |
353 filter.lastHit = 0; | 353 filter.lastHit = 0; |
354 } | 354 } |
355 }, | 355 }, |
356 | 356 |
357 _loading: false, | 357 _loading: false, |
358 | 358 |
359 /** | 359 /** |
360 * Loads all subscriptions from the disk | 360 * Loads all subscriptions from the disk |
361 * @param {nsIFile} [sourceFile] File to read from | 361 * @param {nsIFile} [sourceFile] File to read from |
362 * @param {Function} [errorCallback] Function to be executed in case of an err or | |
362 */ | 363 */ |
363 loadFromDisk: function(sourceFile) | 364 loadFromDisk: function(sourceFile, errorCallback) |
364 { | 365 { |
365 if (this._loading) | 366 if (this._loading) |
366 return; | 367 return; |
367 | 368 |
368 TimeLine.enter("Entered FilterStorage.loadFromDisk()"); | 369 TimeLine.enter("Entered FilterStorage.loadFromDisk()"); |
369 this._loading = true; | 370 this._loading = true; |
370 | 371 |
371 let readFile = function(sourceFile, backupIndex) | 372 let readFile = function(sourceFile, backupIndex) |
372 { | 373 { |
373 TimeLine.enter("FilterStorage.loadFromDisk() -> readFile()"); | 374 TimeLine.enter("FilterStorage.loadFromDisk() -> readFile()"); |
(...skipping 20 matching lines...) Expand all Loading... | |
394 let [, part1, part2] = /^(.*)(\.\w+)$/.exec(sourceFile.leafName) || [null, sourceFile.leafName, ""]; | 395 let [, part1, part2] = /^(.*)(\.\w+)$/.exec(sourceFile.leafName) || [null, sourceFile.leafName, ""]; |
395 | 396 |
396 sourceFile = sourceFile.clone(); | 397 sourceFile = sourceFile.clone(); |
397 sourceFile.leafName = part1 + "-backup" + (++backupIndex) + part2; | 398 sourceFile.leafName = part1 + "-backup" + (++backupIndex) + part2; |
398 | 399 |
399 IO.statFile(sourceFile, function(e, statData) | 400 IO.statFile(sourceFile, function(e, statData) |
400 { | 401 { |
401 if (!e && statData.exists) | 402 if (!e && statData.exists) |
402 readFile(sourceFile, backupIndex); | 403 readFile(sourceFile, backupIndex); |
403 else | 404 else |
404 doneReading(parser); | 405 { |
406 // The file is empty and loading the backup failed | |
407 if (typeof errorCallback == "function") | |
408 errorCallback(); | |
409 else | |
410 doneReading(parser); | |
411 } | |
Wladimir Palant
2014/05/26 15:08:46
This callback is unnecessary and actually harmful
Thomas Greiner
2014/05/26 17:45:38
Done.
| |
405 }); | 412 }); |
406 TimeLine.leave("FilterStorage.loadFromDisk() read callback done"); | 413 TimeLine.leave("FilterStorage.loadFromDisk() read callback done"); |
407 return; | 414 return; |
408 } | 415 } |
409 } | 416 } |
410 doneReading(parser); | 417 doneReading(parser); |
411 }.bind(this), "FilterStorageRead"); | 418 }.bind(this), "FilterStorageRead"); |
412 | 419 |
413 TimeLine.leave("FilterStorage.loadFromDisk() <- readFile()", "FilterStorag eRead"); | 420 TimeLine.leave("FilterStorage.loadFromDisk() <- readFile()", "FilterStorag eRead"); |
414 }.bind(this); | 421 }.bind(this); |
(...skipping 470 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
885 Subscription.knownSubscriptions = origKnownSubscriptions; | 892 Subscription.knownSubscriptions = origKnownSubscriptions; |
886 } | 893 } |
887 | 894 |
888 // Allow events to be processed every now and then. | 895 // Allow events to be processed every now and then. |
889 // Note: IO.readFromFile() will deal with the potential reentrance here. | 896 // Note: IO.readFromFile() will deal with the potential reentrance here. |
890 this.linesProcessed++; | 897 this.linesProcessed++; |
891 if (this.linesProcessed % 1000 == 0) | 898 if (this.linesProcessed % 1000 == 0) |
892 Utils.yield(); | 899 Utils.yield(); |
893 } | 900 } |
894 }; | 901 }; |
OLD | NEW |