Index: assets/js/FilterListener.jsm |
diff --git a/assets/js/FilterListener.jsm b/assets/js/FilterListener.jsm |
deleted file mode 100755 |
index 7edb6343fc37683b02bb5cb12388b15aaf6a5cd6..0000000000000000000000000000000000000000 |
--- a/assets/js/FilterListener.jsm |
+++ /dev/null |
@@ -1,280 +0,0 @@ |
-/* |
- * This file is part of Adblock Plus <http://adblockplus.org/>, |
- * Copyright (C) 2006-2014 Eyeo GmbH |
- * |
- * Adblock Plus is free software: you can redistribute it and/or modify |
- * it under the terms of the GNU General Public License version 3 as |
- * published by the Free Software Foundation. |
- * |
- * Adblock Plus is distributed in the hope that it will be useful, |
- * but WITHOUT ANY WARRANTY; without even the implied warranty of |
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
- * GNU General Public License for more details. |
- * |
- * You should have received a copy of the GNU General Public License |
- * along with Adblock Plus. If not, see <http://www.gnu.org/licenses/>. |
- */ |
- |
- |
-// |
-// This file has been generated automatically from Adblock Plus source code |
-// |
- |
-(function (_patchFunc2) { |
- const cacheVersion = 3; |
- var batchMode = false; |
- var isDirty = 0; |
- var FilterListener = { |
- startup: function () { |
- FilterNotifier.addListener(function (action, item, newValue, oldValue) { |
- if (/^filter\.(.*)/.test(action)) |
- onFilterChange(RegExp["$1"], item, newValue, oldValue); |
- else |
- if (/^subscription\.(.*)/.test(action)) |
- onSubscriptionChange(RegExp["$1"], item, newValue, oldValue); |
- else |
- onGenericChange(action, item); |
- } |
- ); |
- ElemHide.init(); |
- var initialized = false; |
- var cacheFile = Utils.resolveFilePath(Prefs.data_directory); |
- cacheFile.append("cache.js"); |
- if (cacheFile.exists()) { |
- try { |
- var stream = Cc["@mozilla.org/network/file-input-stream;1"].createInstance(Ci.nsIFileInputStream); |
- stream.init(cacheFile, 1, 292, 0); |
- var json = Cc["@mozilla.org/dom/json;1"].createInstance(Ci.nsIJSON); |
- var cache = json.decodeFromStream(stream, "UTF-8"); |
- stream.close(); |
- if (cache.version == cacheVersion && cache.patternsTimestamp == FilterStorage.sourceFile.clone().lastModifiedTime) { |
- defaultMatcher.fromCache(cache); |
- ElemHide.fromCache(cache); |
- var loadDone = false; |
- function trapProperty(obj, prop) { |
- var origValue = obj[prop]; |
- delete obj[prop]; |
- obj.__defineGetter__(prop, function () { |
- delete obj[prop]; |
- obj[prop] = origValue; |
- if (!loadDone) { |
- loadDone = true; |
- FilterStorage.loadFromDisk(null, true); |
- } |
- return obj[prop]; |
- } |
- ); |
- obj.__defineSetter__(prop, function (value) { |
- delete obj[prop]; |
- return obj[prop] = value; |
- } |
- ); |
- } |
- for (var _loopIndex0 = 0; |
- _loopIndex0 < ["fileProperties", "subscriptions", "knownSubscriptions", "addSubscription", "removeSubscription", "updateSubscriptionFilters", "addFilter", "removeFilter", "increaseHitCount", "resetHitCounts"].length; ++ _loopIndex0) { |
- var prop = ["fileProperties", "subscriptions", "knownSubscriptions", "addSubscription", "removeSubscription", "updateSubscriptionFilters", "addFilter", "removeFilter", "increaseHitCount", "resetHitCounts"][_loopIndex0]; |
- trapProperty(FilterStorage, prop); |
- } |
- trapProperty(Filter, "fromText"); |
- trapProperty(Filter, "knownFilters"); |
- trapProperty(Subscription, "fromURL"); |
- trapProperty(Subscription, "knownSubscriptions"); |
- initialized = true; |
- ElemHide.apply(); |
- } |
- } |
- catch (e){ |
- Cu.reportError(e); |
- } |
- } |
- if (!initialized) |
- FilterStorage.loadFromDisk(); |
- Utils.observerService.addObserver(FilterListenerPrivate, "browser:purge-session-history", true); |
- } |
- , |
- shutdown: function () { |
- if (isDirty > 0) |
- FilterStorage.saveToDisk(); |
- } |
- , |
- get batchMode() { |
- return batchMode; |
- } |
- , |
- set batchMode(value) { |
- batchMode = value; |
- flushElemHide(); |
- } |
- , |
- setDirty: function (factor) { |
- if (factor == 0 && isDirty > 0) |
- isDirty = 1; |
- else |
- isDirty += factor; |
- if (isDirty >= 1 && !filtersFlushScheduled) { |
- Utils.runAsync(flushFiltersInternal); |
- filtersFlushScheduled = true; |
- } |
- } |
- |
- }; |
- var FilterListenerPrivate = { |
- observe: function (subject, topic, data) { |
- if (topic == "browser:purge-session-history" && Prefs.clearStatsOnHistoryPurge) { |
- FilterStorage.resetHitCounts(); |
- FilterListener.setDirty(0); |
- Prefs.recentReports = "[]"; |
- } |
- } |
- , |
- QueryInterface: XPCOMUtils.generateQI([Ci.nsISupportsWeakReference, Ci.nsIObserver]) |
- }; |
- var elemhideFlushScheduled = false; |
- function flushElemHide() { |
- if (elemhideFlushScheduled) |
- return ; |
- Utils.runAsync(flushElemHideInternal); |
- elemhideFlushScheduled = true; |
- } |
- function flushElemHideInternal() { |
- elemhideFlushScheduled = false; |
- if (!batchMode && ElemHide.isDirty) |
- ElemHide.apply(); |
- } |
- var filtersFlushScheduled = false; |
- function flushFiltersInternal() { |
- filtersFlushScheduled = false; |
- FilterStorage.saveToDisk(); |
- } |
- function addFilter(filter) { |
- if (!(filter instanceof ActiveFilter) || filter.disabled) |
- return ; |
- var hasEnabled = false; |
- for (var i = 0; |
- i < filter.subscriptions.length; i++) |
- if (!filter.subscriptions[i].disabled) |
- hasEnabled = true; |
- if (!hasEnabled) |
- return ; |
- if (filter instanceof RegExpFilter) |
- defaultMatcher.add(filter); |
- else |
- if (filter instanceof ElemHideFilter) |
- ElemHide.add(filter); |
- } |
- function removeFilter(filter) { |
- if (!(filter instanceof ActiveFilter)) |
- return ; |
- if (!filter.disabled) { |
- var hasEnabled = false; |
- for (var i = 0; |
- i < filter.subscriptions.length; i++) |
- if (!filter.subscriptions[i].disabled) |
- hasEnabled = true; |
- if (hasEnabled) |
- return ; |
- } |
- if (filter instanceof RegExpFilter) |
- defaultMatcher.remove(filter); |
- else |
- if (filter instanceof ElemHideFilter) |
- ElemHide.remove(filter); |
- } |
- function onSubscriptionChange(action, subscription, newValue, oldValue) { |
- if (action == "homepage" || action == "downloadStatus" || action == "lastDownload") |
- FilterListener.setDirty(0.2); |
- else |
- FilterListener.setDirty(1); |
- if (action != "added" && action != "removed" && action != "disabled" && action != "updated") |
- return ; |
- if (action != "removed" && !(subscription.url in FilterStorage.knownSubscriptions)) { |
- return ; |
- } |
- if ((action == "added" || action == "removed" || action == "updated") && subscription.disabled) { |
- return ; |
- } |
- if (action == "added" || action == "removed" || action == "disabled") { |
- var method = (action == "added" || (action == "disabled" && newValue == false) ? addFilter : removeFilter); |
- if (subscription.filters) |
- subscription.filters.forEach(method); |
- } |
- else |
- if (action == "updated") { |
- subscription.oldFilters.forEach(removeFilter); |
- subscription.filters.forEach(addFilter); |
- } |
- flushElemHide(); |
- } |
- function onFilterChange(action, filter, newValue, oldValue) { |
- if (action == "hitCount" || action == "lastHit") |
- FilterListener.setDirty(0.0001); |
- else |
- if (action == "disabled" || action == "moved") |
- FilterListener.setDirty(0.2); |
- else |
- FilterListener.setDirty(1); |
- if (action != "added" && action != "removed" && action != "disabled") |
- return ; |
- if ((action == "added" || action == "removed") && filter.disabled) { |
- return ; |
- } |
- if (action == "added" || (action == "disabled" && newValue == false)) |
- addFilter(filter); |
- else |
- removeFilter(filter); |
- flushElemHide(); |
- } |
- function onGenericChange(action) { |
- if (action == "load") { |
- isDirty = 0; |
- defaultMatcher.clear(); |
- ElemHide.clear(); |
- for (var _loopIndex1 = 0; |
- _loopIndex1 < FilterStorage.subscriptions.length; ++ _loopIndex1) { |
- var subscription = FilterStorage.subscriptions[_loopIndex1]; |
- if (!subscription.disabled) |
- subscription.filters.forEach(addFilter); |
- } |
- flushElemHide(); |
- } |
- else |
- if (action == "save") { |
- isDirty = 0; |
- var cache = { |
- version: cacheVersion, |
- patternsTimestamp: FilterStorage.sourceFile.clone().lastModifiedTime |
- }; |
- defaultMatcher.toCache(cache); |
- ElemHide.toCache(cache); |
- var cacheFile = Utils.resolveFilePath(Prefs.data_directory); |
- cacheFile.append("cache.js"); |
- try { |
- cacheFile.parent.create(Ci.nsIFile.DIRECTORY_TYPE, 493); |
- } |
- catch (e){} |
- try { |
- var fileStream = Cc["@mozilla.org/network/file-output-stream;1"].createInstance(Ci.nsIFileOutputStream); |
- fileStream.init(cacheFile, 2 | 8 | 32, 420, 0); |
- var json = Cc["@mozilla.org/dom/json;1"].createInstance(Ci.nsIJSON); |
- if (Utils.versionComparator.compare(Utils.platformVersion, "5.0") >= 0) { |
- json.encodeToStream(fileStream, "UTF-8", false, cache); |
- fileStream.close(); |
- } |
- else { |
- var stream = Cc["@mozilla.org/intl/converter-output-stream;1"].createInstance(Ci.nsIConverterOutputStream); |
- stream.init(fileStream, "UTF-8", 16384, Ci.nsIConverterInputStream.DEFAULT_REPLACEMENT_CHARACTER); |
- stream.writeString(json.encode(cache)); |
- stream.close(); |
- } |
- } |
- catch (e){ |
- delete FilterStorage.fileProperties.cacheTimestamp; |
- Cu.reportError(e); |
- } |
- } |
- } |
- if (typeof _patchFunc2 != "undefined") |
- eval("(" + _patchFunc2.toString() + ")()"); |
- window.FilterListener = FilterListener; |
-} |
-)(window.FilterListenerPatch); |