From 782f8d441d7e12b3ffcbcde379ea4aad2d2bd796 Mon Sep 17 00:00:00 2001 From: Deathamns Date: Thu, 18 Dec 2014 21:24:11 +0100 Subject: [PATCH] Firefox: revert previous change Initializing the extension with AddonManager takes too long (at least for this extension). When starting the browser, tabs loaded before the extension could, and because of that, blocking didn't work. It works better, if it's initialized when the window's DOM is ready. --- platform/firefox/bootstrap.js | 32 +++++++++++++++++++---------- platform/firefox/vapi-background.js | 6 +++--- 2 files changed, 24 insertions(+), 14 deletions(-) diff --git a/platform/firefox/bootstrap.js b/platform/firefox/bootstrap.js index 330ed8419..800317109 100644 --- a/platform/firefox/bootstrap.js +++ b/platform/firefox/bootstrap.js @@ -19,7 +19,7 @@ Home: https://github.com/gorhill/uBlock */ -/* global APP_SHUTDOWN */ +/* global APP_SHUTDOWN, APP_STARTUP */ /* exported startup, shutdown, install, uninstall */ 'use strict'; @@ -30,13 +30,12 @@ let bgProcess; /******************************************************************************/ -function startup(data) { - let {AddonManager} = Components.utils['import']( - 'resource://gre/modules/AddonManager.jsm', - null - ); +function startup(data, reason) { + bgProcess = function(e) { + if (e) { + this.removeEventListener('DOMContentLoaded', bgProcess); + } - AddonManager.getAddonByID(data.id, addon => { let hDoc = Components.classes['@mozilla.org/appshell/appShellService;1'] .getService(Components.interfaces.nsIAppShellService) .hiddenDOMWindow.document; @@ -44,12 +43,23 @@ function startup(data) { bgProcess = hDoc.documentElement.appendChild( hDoc.createElementNS('http://www.w3.org/1999/xhtml', 'iframe') ); + bgProcess.setAttribute('src', 'chrome://ublock/content/background.html'); + }; - let bgURI = 'chrome://ublock/content/background.html'; + if (reason === APP_STARTUP) { + let ww = Components.classes['@mozilla.org/embedcomp/window-watcher;1'] + .getService(Components.interfaces.nsIWindowWatcher); - // send addon data synchronously to the background script - bgProcess.src = bgURI + '#' + [addon.name, addon.version]; - }); + ww.registerNotification({ + observe: function(win) { + ww.unregisterNotification(this); + win.addEventListener('DOMContentLoaded', bgProcess); + } + }); + } + else { + bgProcess(); + } } /******************************************************************************/ diff --git a/platform/firefox/vapi-background.js b/platform/firefox/vapi-background.js index 4afb30eb1..dc24fd903 100644 --- a/platform/firefox/vapi-background.js +++ b/platform/firefox/vapi-background.js @@ -43,10 +43,10 @@ vAPI.firefox = true; /******************************************************************************/ -vAPI.app = location.hash.slice(1).split(','); +// TODO: read these data from somewhere... vAPI.app = { - name: vAPI.app[0], - version: vAPI.app[1] + name: 'µBlock', + version: '0.8.2.0' }; /******************************************************************************/