Rietveld Code Review Tool
Help | Bug tracker | Discussion group | Source code

Unified Diff: lib/ui.js

Issue 6020195227271168: Moved initAntiAdblockNotification function from ui.js to its own file (Closed)
Patch Set: Created March 19, 2014, 1:40 p.m.
Use n/p to move between diff chunks; N/P to move between comments.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « lib/antiadblock-setup.js ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: lib/ui.js
===================================================================
--- a/lib/ui.js
+++ b/lib/ui.js
@@ -25,11 +25,12 @@
let {FilterStorage} = require("filterStorage");
let {FilterNotifier} = require("filterNotifier");
let {RequestNotifier} = require("requestNotifier");
-let {Filter, ActiveFilter} = require("filterClasses");
+let {Filter} = require("filterClasses");
let {Subscription, SpecialSubscription, DownloadableSubscription} = require("subscriptionClasses");
let {Synchronizer} = require("synchronizer");
let {KeySelector} = require("keySelector");
let {Notification} = require("notification");
+let {setupAntiAdblockNotification} = require("antiadblock-setup");
let CustomizableUI;
try
@@ -398,73 +399,6 @@
}
},
- _initAntiAdblockNotification: function()
- {
- let notification = {
- id: "antiadblock",
- type: "question",
- title: Utils.getString("notification_antiadblock_title"),
- message: Utils.getString("notification_antiadblock_message"),
- urlFilters: []
- };
-
- function notificationListener(approved)
- {
- let subscription = Subscription.fromURL(Prefs.subscriptions_antiadblockurl);
- if (subscription.url in FilterStorage.knownSubscriptions)
- subscription.disabled = !approved;
- }
-
- function addAntiAdblockNotification(subscription)
- {
- let urlFilters = [];
- for each (let filter in subscription.filters)
- if (filter instanceof ActiveFilter)
- for (let domain in filter.domains)
- if (domain && urlFilters.indexOf(domain) == -1)
- urlFilters.push(domain);
- notification.urlFilters = urlFilters;
- Notification.addNotification(notification);
- Notification.addQuestionListener(notification.id, notificationListener);
- }
-
- function removeAntiAdblockNotification()
- {
- Notification.removeNotification(notification);
- Notification.removeQuestionListener(notification.id, notificationListener);
- }
-
- let subscription = Subscription.fromURL(Prefs.subscriptions_antiadblockurl);
- if (subscription.lastDownload && subscription.disabled)
- addAntiAdblockNotification(subscription);
-
- FilterNotifier.addListener(function(action, value, newItem, oldItem)
- {
- if (!/^subscription\.(updated|removed|disabled)$/.test(action) || value.url != Prefs.subscriptions_antiadblockurl)
- return;
-
- if (action == "subscription.updated")
- addAntiAdblockNotification(value);
- else if (action == "subscription.removed" || (action == "subscription.disabled" && !value.disabled))
- removeAntiAdblockNotification();
- });
-
- var documentCreationObserver = {
- observe: function(subject, topic, data)
- {
- if (!(subject instanceof Ci.nsIDOMWindow))
- return;
-
- this._showNextNotification(subject.location.href);
- }.bind(this)
- };
- Services.obs.addObserver(documentCreationObserver, "content-document-global-created", false);
- onShutdown.add(function()
- {
- Services.obs.removeObserver(documentCreationObserver, "content-document-global-created", false);
- });
- },
-
/**
* Gets called once the initialization is finished and Adblock Plus elements
* can be added to the UI.
@@ -522,7 +456,7 @@
}.bind(this));
notificationTimer = Cc["@mozilla.org/timer;1"].createInstance(Ci.nsITimer);
- notificationTimer.initWithCallback(this._showNextNotification.bind(this),
+ notificationTimer.initWithCallback(this.showNextNotification.bind(this),
3 * 60 * 1000, Ci.nsITimer.TYPE_ONE_SHOT);
onShutdown.add(function() notificationTimer.cancel());
},
@@ -598,7 +532,22 @@
}, false);
// Add "anti-adblock messages" notification
- this._initAntiAdblockNotification();
+ setupAntiAdblockNotification();
+
+ let documentCreationObserver = {
+ observe: function(subject, topic, data)
+ {
+ if (!(subject instanceof Ci.nsIDOMWindow))
+ return;
+
+ this.showNextNotification(subject.location.href);
+ }.bind(UI)
+ };
+ Services.obs.addObserver(documentCreationObserver, "content-document-global-created", false);
+ onShutdown.add(function()
+ {
+ Services.obs.removeObserver(documentCreationObserver, "content-document-global-created", false);
+ });
// First-run actions?
if (!this.firstRunDone)
@@ -1850,7 +1799,7 @@
}
},
- _showNextNotification: function(url)
+ showNextNotification: function(url)
{
let window = this.currentWindow;
if (!window)
« no previous file with comments | « lib/antiadblock-setup.js ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld