[Pkg-mozext-commits] [adblock-plus] 57/87: Issue 3862 - Make filterListener use the new FilterNotifier API
David Prévot
taffit at moszumanska.debian.org
Sat Apr 30 17:59:08 UTC 2016
This is an automated email from the git hooks/post-receive script.
taffit pushed a commit to branch master
in repository adblock-plus.
commit b5eab6d288825ea5990bed8bb2b08f1addae1255
Author: Sebastian Noack <sebastian at adblockplus.org>
Date: Wed Mar 23 14:10:07 2016 +0100
Issue 3862 - Make filterListener use the new FilterNotifier API
---
lib/filterListener.js | 171 +++++++++++++++++++++++++++++++-------------------
1 file changed, 107 insertions(+), 64 deletions(-)
diff --git a/lib/filterListener.js b/lib/filterListener.js
index 05a1d3b..db3a75b 100644
--- a/lib/filterListener.js
+++ b/lib/filterListener.js
@@ -19,6 +19,8 @@
* @fileOverview Component synchronizing filter storage with Matcher instances and ElemHide.
*/
+"use strict";
+
Cu.import("resource://gre/modules/XPCOMUtils.jsm");
Cu.import("resource://gre/modules/Services.jsm");
@@ -107,16 +109,28 @@ let HistoryPurgeObserver =
*/
function init()
{
- FilterNotifier.addListener(function(action, item, newValue, oldValue)
- {
- let match = /^(\w+)\.(.*)/.exec(action);
- if (match && match[1] == "filter")
- onFilterChange(match[2], item, newValue, oldValue);
- else if (match && match[1] == "subscription")
- onSubscriptionChange(match[2], item, newValue, oldValue);
- else
- onGenericChange(action, item);
- });
+ FilterNotifier.on("filter.hitCount", onFilterHitCount);
+ FilterNotifier.on("filter.lastHit", onFilterLastHit);
+ FilterNotifier.on("filter.added", onFilterAdded);
+ FilterNotifier.on("filter.removed", onFilterRemoved);
+ FilterNotifier.on("filter.disabled", onFilterDisabled);
+ FilterNotifier.on("filter.moved", onGenericChange);
+
+ FilterNotifier.on("subscription.added", onSubscriptionAdded);
+ FilterNotifier.on("subscription.removed", onSubscriptionRemoved);
+ FilterNotifier.on("subscription.disabled", onSubscriptionDisabled);
+ FilterNotifier.on("subscription.updated", onSubscriptionUpdated);
+ FilterNotifier.on("subscription.moved", onGenericChange);
+ FilterNotifier.on("subscription.title", onGenericChange);
+ FilterNotifier.on("subscription.fixedTitle", onGenericChange);
+ FilterNotifier.on("subscription.homepage", onGenericChange);
+ FilterNotifier.on("subscription.downloadStatus", onGenericChange);
+ FilterNotifier.on("subscription.lastCheck", onGenericChange);
+ FilterNotifier.on("subscription.errors", onGenericChange);
+
+ FilterNotifier.on("load", onLoad);
+ FilterNotifier.on("save", onSave);
+
if ("nsIStyleSheetService" in Ci)
ElemHide.init();
@@ -200,91 +214,120 @@ function removeFilter(filter)
}
}
-/**
- * Subscription change listener
- */
-function onSubscriptionChange(action, subscription, newValue, oldValue)
+function onSubscriptionAdded(subscription)
{
FilterListener.setDirty(1);
- if (action != "added" && action != "removed" && action != "disabled" && action != "updated")
- return;
-
- if (action != "removed" && !(subscription.url in FilterStorage.knownSubscriptions))
+ if (!subscription.disabled)
{
- // Ignore updates for subscriptions not in the list
- return;
+ subscription.filters.forEach(addFilter);
+ flushElemHide();
}
+}
- if ((action == "added" || action == "removed" || action == "updated") && subscription.disabled)
+function onSubscriptionRemoved(subscription)
+{
+ FilterListener.setDirty(1);
+
+ if (!subscription.disabled)
{
- // Ignore adding/removing/updating of disabled subscriptions
- return;
+ subscription.filters.forEach(removeFilter);
+ flushElemHide();
}
+}
- if (action == "added" || action == "removed" || action == "disabled")
+function onSubscriptionDisabled(subscription, newValue)
+{
+ FilterListener.setDirty(1);
+
+ if (subscription.url in FilterStorage.knownSubscriptions)
{
- let method = (action == "added" || (action == "disabled" && newValue == false) ? addFilter : removeFilter);
- if (subscription.filters)
- subscription.filters.forEach(method);
+ if (newValue == false)
+ subscription.filters.forEach(addFilter);
+ else
+ subscription.filters.forEach(removeFilter);
+ flushElemHide();
}
- else if (action == "updated")
+}
+
+function onSubscriptionUpdated(subscription)
+{
+ FilterListener.setDirty(1);
+
+ if (subscription.url in FilterStorage.knownSubscriptions &&
+ !subscription.disabled)
{
subscription.oldFilters.forEach(removeFilter);
subscription.filters.forEach(addFilter);
+ flushElemHide();
}
+}
- flushElemHide();
+function onFilterHitCount(filter, newValue)
+{
+ if (newValue == 0)
+ FilterListener.setDirty(0);
+ else
+ FilterListener.setDirty(0.002);
}
-/**
- * Filter change listener
- */
-function onFilterChange(action, filter, newValue, oldValue)
+function onFilterLastHit()
{
- if (action == "hitCount" && newValue == 0)
+ FilterListener.setDirty(0.002);
+}
+
+function onFilterAdded(filter)
+{
+ FilterListener.setDirty(1);
+
+ if (!filter.disabled)
{
- // Filter hits are being reset, make sure these changes are saved.
- FilterListener.setDirty(0);
+ addFilter(filter);
+ flushElemHide();
}
- else if (action == "hitCount" || action == "lastHit")
- FilterListener.setDirty(0.002);
- else
- FilterListener.setDirty(1);
+}
- if (action != "added" && action != "removed" && action != "disabled")
- return;
+function onFilterRemoved(filter)
+{
+ FilterListener.setDirty(1);
- if ((action == "added" || action == "removed") && filter.disabled)
+ if (!filter.disabled)
{
- // Ignore adding/removing of disabled filters
- return;
+ removeFilter(filter);
+ flushElemHide();
}
+}
+
+function onFilterDisabled(filter, newValue)
+{
+ FilterListener.setDirty(1);
- if (action == "added" || (action == "disabled" && newValue == false))
+ if (newValue == false)
addFilter(filter);
else
removeFilter(filter);
flushElemHide();
}
-/**
- * Generic notification listener
- */
-function onGenericChange(action)
+function onGenericChange()
{
- if (action == "load")
- {
- isDirty = 0;
-
- defaultMatcher.clear();
- ElemHide.clear();
- CSSRules.clear();
- for (let subscription of FilterStorage.subscriptions)
- if (!subscription.disabled)
- subscription.filters.forEach(addFilter);
- flushElemHide();
- }
- else if (action == "save")
- isDirty = 0;
+ FilterListener.setDirty(1);
+}
+
+function onLoad()
+{
+ isDirty = 0;
+
+ defaultMatcher.clear();
+ ElemHide.clear();
+ CSSRules.clear();
+ for (let subscription of FilterStorage.subscriptions)
+ if (!subscription.disabled)
+ subscription.filters.forEach(addFilter);
+ flushElemHide();
+}
+
+function onSave()
+{
+ isDirty = 0;
}
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-mozext/adblock-plus.git
More information about the Pkg-mozext-commits
mailing list