[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