Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/bandwagon/content/ui/overlays/browserOverlayController.js
diff options
context:
space:
mode:
Diffstat (limited to 'bandwagon/content/ui/overlays/browserOverlayController.js')
-rw-r--r--bandwagon/content/ui/overlays/browserOverlayController.js132
1 files changed, 85 insertions, 47 deletions
diff --git a/bandwagon/content/ui/overlays/browserOverlayController.js b/bandwagon/content/ui/overlays/browserOverlayController.js
index 0e17c2a..868ac37 100644
--- a/bandwagon/content/ui/overlays/browserOverlayController.js
+++ b/bandwagon/content/ui/overlays/browserOverlayController.js
@@ -56,28 +56,22 @@ Bandwagon.Controller.BrowserOverlay.initBandwagon = function()
bandwagonService.init();
- // Set up uninstall observer
- bandwagonService.startUninstallObserver();
}
catch (e)
{
Bandwagon.Logger.error("Error initializing bandwagon: " + e);
}
- try
- {
- gBrowser.addEventListener("DOMContentLoaded", Bandwagon.Controller.BrowserOverlay.addSubscriptionRefreshEventListenerToDocument, true);
- }
- catch (e)
- {
- Bandwagon.Logger.debug("Error adding subscription refresh event listener to document (probably harmless): " + e);
- }
+ /** OBSOLETE
+ // add listener to every page loaded in the browser - listen for our custom bandwagonSubscribe event
+ gBrowser.addEventListener("load", Bandwagon.Controller.BrowserOverlay.addSubscribeEventListenerToDocument, true);
+ */
+
+ gBrowser.addEventListener("load", Bandwagon.Controller.BrowserOverlay.addSubscriptionRefreshEventListenerToDocument, true);
}
Bandwagon.Controller.BrowserOverlay.addSubscriptionRefreshEventListenerToDocument = function(event)
{
- Bandwagon.Logger.debug("In Bandwagon.Controller.BrowserOverlay.addSubscriptionRefreshEventListenerToDocument()");
-
if (event.originalTarget instanceof HTMLDocument)
{
var doc = event.originalTarget;
@@ -89,18 +83,12 @@ Bandwagon.Controller.BrowserOverlay.addSubscriptionRefreshEventListenerToDocumen
doc=doc.defaultView.frameElement.ownerDocument;
}
}
+
+ // TODO only add to AMO
- if (doc && doc.defaultView && doc.defaultView.location && doc.defaultView.location.host)
- {
- var docHost = doc.defaultView.location.host;
+ doc.addEventListener("bandwagonRefresh", Bandwagon.Controller.BrowserOverlay.handleSubscriptionRefreshEvent, true);
- if (docHost == Bandwagon.Preferences.getPreference("amo_host"))
- {
- Bandwagon.Logger.debug("This document is on $amo_host, will add bandwagonRefresh listener");
-
- doc.addEventListener("bandwagonRefresh", Bandwagon.Controller.BrowserOverlay.handleSubscriptionRefreshEvent, true);
- }
- }
+ Bandwagon.Logger.debug("added bandwagonRefresh listener");
}
}
@@ -111,6 +99,75 @@ Bandwagon.Controller.BrowserOverlay.handleSubscriptionRefreshEvent = function(ev
bandwagonService.updateCollectionsList();
}
+/** OBSOLETE
+Bandwagon.Controller.BrowserOverlay.addSubscribeEventListenerToDocument = function(event)
+{
+ if (event.originalTarget instanceof HTMLDocument)
+ {
+ var doc = event.originalTarget;
+
+ if (event.originalTarget.defaultView.frameElement)
+ {
+ while (doc.defaultView.frameElement)
+ {
+ doc=doc.defaultView.frameElement.ownerDocument;
+ }
+ }
+
+ doc.addEventListener("bandwagonSubscribe", Bandwagon.Controller.BrowserOverlay.handleSubscribeEvent, true);
+
+ //Bandwagon.Logger.debug("added bandwagonSubscribe listener");
+ }
+}
+*/
+
+/** OBSOLETE
+Bandwagon.Controller.BrowserOverlay.handleSubscribeEvent = function(event)
+{
+ if (event.target && event.target.getAttribute("href"))
+ {
+ var collectionURL = event.target.getAttribute("href");
+
+ Bandwagon.Logger.info("Received subscribe event for collection: " + collectionURL);
+
+ Bandwagon.Controller.BrowserOverlay._openExtensionManagerCollectionsPaneWithSubscribe(collectionURL);
+ }
+ else
+ {
+ Bandwagon.Logger.error("Missing data payload in bandwagonSubscribe event");
+ }
+}
+*/
+
+/** OBSOLETE
+Bandwagon.Controller.BrowserOverlay._openExtensionManagerCollectionsPaneWithSubscribe = function(collectionURL)
+{
+ const EMTYPE = "Extension:Manager";
+ var wm = Components.classes["@mozilla.org/appshell/window-mediator;1"]
+ .getService(Components.interfaces.nsIWindowMediator);
+ var theEM = wm.getMostRecentWindow(EMTYPE);
+
+ if (theEM)
+ {
+ // extensions manager window already open - focus, show collections pane, call doShowCollectionPreview
+
+ theEM.focus();
+ theEM.showView('bandwagon-collections');
+
+ setTimeout(function() { Bandwagon.Controller.CollectionsPane.doShowCollectionPreview(collectionURL); }, 500);
+ }
+ else
+ {
+ // extensions manager window NOT already open - open with 'subscribe' argument (this will show collection pane, call doShowCollectionPreview)
+
+ const EMURL = "chrome://mozapps/content/extensions/extensions.xul";
+ const EMFEATURES = "chrome,menubar,extra-chrome,toolbar,dialog=no,resizable";
+
+ window.openDialog(EMURL, "", EMFEATURES, {subscribe: collectionURL});
+ }
+}
+*/
+
Bandwagon.Controller.BrowserOverlay._removeLoadListener = function()
{
window.removeEventListener("load", Bandwagon.init, true);
@@ -131,18 +188,9 @@ Bandwagon.Controller.BrowserOverlay.openFirstRunLandingPage = function()
/* Toolbar button action - Open add-ons window with Subscriptions tab focused */
Bandwagon.Controller.BrowserOverlay.openAddons = function()
{
- var wm = Components.classes["@mozilla.org/appshell/window-mediator;1"]
- .getService(Components.interfaces.nsIWindowMediator);
- var win = wm.getMostRecentWindow("Extension:Manager");
- if (win) {
- win.focus();
- }
- else
- {
- const EMURL = "chrome://mozapps/content/extensions/extensions.xul";
- const EMFEATURES = "chrome,menubar,extra-chrome,toolbar,dialog=no,resizable";
- window.openDialog(EMURL, "", EMFEATURES, "bandwagon-collections");
- }
+ const EMURL = "chrome://mozapps/content/extensions/extensions.xul";
+ const EMFEATURES = "chrome,menubar,extra-chrome,toolbar,dialog=no,resizable";
+ window.openDialog(EMURL, "", EMFEATURES, "bandwagon-collections");
}
Bandwagon.Controller.BrowserOverlay.showNewAddonsAlert = function(collection)
@@ -151,18 +199,8 @@ Bandwagon.Controller.BrowserOverlay.showNewAddonsAlert = function(collection)
var bandwagonStrings = document.getElementById("bandwagon-strings");
- var alertsService;
-
- try
- {
- alertsService = Components.classes["@mozilla.org/alerts-service;1"]
- .getService(Components.interfaces.nsIAlertsService);
- }
- catch (e)
- {
- Bandwagon.Logger.warn("Can't get a reference to the alerts service on this platform: " + e);
- return;
- }
+ var alertsService = Components.classes["@mozilla.org/alerts-service;1"]
+ .getService(Components.interfaces.nsIAlertsService);
var unnotifiedCount = collection.getUnnotifiedAddons().length;
var collectionName = (collection.name?collection.name:collection.resourceURL);
@@ -221,7 +259,7 @@ Bandwagon.Controller.BrowserOverlay.showNewAddonsAlert = function(collection)
}
catch (e)
{
- Bandwagon.Logger.warn("Error showing alert notification on this platform: " + e);
+ Bandwagon.Logger.debug(e);
}
}