1
0
mirror of https://github.com/gorhill/uBlock.git synced 2024-07-08 12:57:57 +02:00

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.
This commit is contained in:
Deathamns 2014-12-18 21:24:11 +01:00
parent e61514b9b1
commit 782f8d441d
2 changed files with 24 additions and 14 deletions

View File

@ -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();
}
}
/******************************************************************************/

View File

@ -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'
};
/******************************************************************************/