Firefox: initialize buttons when DOM is ready

This commit is contained in:
Deathamns 2014-12-16 18:09:55 +01:00
parent 45137c2be9
commit d13769b4a9
3 changed files with 10 additions and 10 deletions

View File

@ -10,7 +10,7 @@ var bgProcess;
function startup(data, reason) { function startup(data, reason) {
bgProcess = function(ev) { bgProcess = function(ev) {
if (ev) { if (ev) {
this.removeEventListener('load', bgProcess); this.removeEventListener(ev.type, bgProcess);
} }
bgProcess = Services.appShell.hiddenDOMWindow.document; bgProcess = Services.appShell.hiddenDOMWindow.document;
@ -22,9 +22,9 @@ function startup(data, reason) {
if (reason === APP_STARTUP) { if (reason === APP_STARTUP) {
Services.ww.registerNotification({ Services.ww.registerNotification({
observe: function(subject) { observe: function(win) {
Services.ww.unregisterNotification(this); Services.ww.unregisterNotification(this);
subject.addEventListener('load', bgProcess); win.addEventListener('DOMContentLoaded', bgProcess);
} }
}); });
} }

View File

@ -6,6 +6,7 @@ this.EXPORTED_SYMBOLS = ['contentPolicy', 'docObserver'];
Components.utils['import']('resource://gre/modules/Services.jsm'); Components.utils['import']('resource://gre/modules/Services.jsm');
Components.utils['import']('resource://gre/modules/XPCOMUtils.jsm'); Components.utils['import']('resource://gre/modules/XPCOMUtils.jsm');
// Components.utils['import']('resource://gre/modules/devtools/Console.jsm');
const Ci = Components.interfaces; const Ci = Components.interfaces;
let appName; let appName;

View File

@ -248,9 +248,9 @@ var windowWatcher = {
e.target.ownerDocument.defaultView e.target.ownerDocument.defaultView
); );
}, },
onLoad: function(e) { onReady: function(e) {
if (e) { if (e) {
this.removeEventListener('load', windowWatcher.onLoad); this.removeEventListener(e.type, windowWatcher.onReady);
} }
var docElement = this.document.documentElement; var docElement = this.document.documentElement;
@ -275,7 +275,7 @@ var windowWatcher = {
}, },
observe: function(win, topic) { observe: function(win, topic) {
if (topic === 'domwindowopened') { if (topic === 'domwindowopened') {
win.addEventListener('load', this.onLoad); win.addEventListener('DOMContentLoaded', this.onReady);
} }
} }
}; };
@ -318,12 +318,11 @@ vAPI.tabs.registerListeners = function() {
// onClosed - handled in windowWatcher.onTabClose // onClosed - handled in windowWatcher.onTabClose
// onPopup ? // onPopup ?
Services.ww.registerNotification(windowWatcher);
for (var win of this.getWindows()) { for (var win of this.getWindows()) {
windowWatcher.onLoad.call(win); windowWatcher.onReady.call(win);
} }
Services.ww.registerNotification(windowWatcher);
vAPI.toolbarButton.init(); vAPI.toolbarButton.init();
vAPI.unload.push(function() { vAPI.unload.push(function() {
@ -332,7 +331,7 @@ vAPI.tabs.registerListeners = function() {
for (var win of vAPI.tabs.getWindows()) { for (var win of vAPI.tabs.getWindows()) {
vAPI.toolbarButton.remove(win.document); vAPI.toolbarButton.remove(win.document);
win.removeEventListener('load', windowWatcher.onLoad); win.removeEventListener('load', windowWatcher.onReady);
win.gBrowser.removeTabsProgressListener(tabsProgressListener); win.gBrowser.removeTabsProgressListener(tabsProgressListener);
var tC = win.gBrowser.tabContainer; var tC = win.gBrowser.tabContainer;