mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
Bug 633575 - Preference/tools panels are broken if opened during initial page load [r=mfinkle]
--HG-- extra : rebase_source : 73b6cc16c4a0f7cfde9b86e830ba685127a2837a
This commit is contained in:
parent
b8e551ba10
commit
565ea12254
@ -500,10 +500,9 @@ var BrowserUI = {
|
||||
Elements.tabs.addEventListener("TabOpen", BrowserUI, true);
|
||||
Elements.tabs.addEventListener("TabRemove", BrowserUI, true);
|
||||
|
||||
// Init the views
|
||||
// Init the tool panel views
|
||||
ExtensionsView.init();
|
||||
DownloadsView.init();
|
||||
PreferencesView.init();
|
||||
ConsoleView.init();
|
||||
|
||||
#ifdef MOZ_IPC
|
||||
@ -535,6 +534,23 @@ var BrowserUI = {
|
||||
#endif
|
||||
}, false);
|
||||
|
||||
let panels = document.getElementById("panel-items");
|
||||
let panelViews = { // Use strings to avoid lazy-loading objects too soon.
|
||||
"prefs-container": "PreferencesView",
|
||||
"downloads-container": "DownloadsView",
|
||||
"addons-container": "ExtensionsView",
|
||||
"console-container": "ConsoleView"
|
||||
};
|
||||
|
||||
// Some initialization can be delayed until a panel is selected.
|
||||
panels.addEventListener("select", function(aEvent) {
|
||||
if (aEvent.target != panels)
|
||||
return;
|
||||
let viewName = panelViews[panels.selectedPanel.id];
|
||||
if (viewName)
|
||||
window[viewName].delayedInit();
|
||||
}, true);
|
||||
|
||||
#ifndef MOZ_OFFICIAL_BRANDING
|
||||
setTimeout(function() {
|
||||
let startup = Cc["@mozilla.org/toolkit/app-startup;1"].getService(Ci.nsIAppStartup_MOZILLA_2_0).getStartupInfo();
|
||||
|
@ -56,16 +56,6 @@ let ConsoleView = {
|
||||
this._count = 0;
|
||||
this.limit = 250;
|
||||
|
||||
let self = this;
|
||||
let panels = document.getElementById("panel-items");
|
||||
|
||||
panels.addEventListener("select",
|
||||
function(aEvent) {
|
||||
if (panels.selectedPanel.id == "console-container")
|
||||
self._delayedInit();
|
||||
},
|
||||
false);
|
||||
|
||||
try {
|
||||
// update users using the legacy pref
|
||||
if (Services.prefs.getBoolPref("browser.console.showInPanel")) {
|
||||
@ -79,11 +69,13 @@ let ConsoleView = {
|
||||
Services.prefs.addObserver(this._enabledPref, this, false);
|
||||
},
|
||||
|
||||
_delayedInit: function cv__delayedInit() {
|
||||
delayedInit: function cv__delayedInit() {
|
||||
if (this._inited)
|
||||
return;
|
||||
this._inited = true;
|
||||
|
||||
this.init(); // In case the panel is selected before init has been called.
|
||||
|
||||
Services.console.registerListener(this);
|
||||
|
||||
this.appendInitialItems();
|
||||
@ -94,8 +86,7 @@ let ConsoleView = {
|
||||
this._evalFrame.collapsed = true;
|
||||
document.getElementById("console-container").appendChild(this._evalFrame);
|
||||
|
||||
let self = this;
|
||||
this._evalFrame.addEventListener("load", function() { self.loadOrDisplayResult(); }, true);
|
||||
this._evalFrame.addEventListener("load", this.loadOrDisplayResult.bind(this), true);
|
||||
},
|
||||
|
||||
uninit: function cv_uninit() {
|
||||
|
@ -146,21 +146,14 @@ var DownloadsView = {
|
||||
|
||||
// Monitor downloads being removed by the download manager (non-UI)
|
||||
os.addObserver(this, "download-manager-remove-download", true);
|
||||
|
||||
let self = this;
|
||||
let panels = document.getElementById("panel-items");
|
||||
panels.addEventListener("select",
|
||||
function(aEvent) {
|
||||
if (panels.selectedPanel.id == "downloads-container")
|
||||
self._delayedInit();
|
||||
},
|
||||
false);
|
||||
},
|
||||
|
||||
_delayedInit: function dv__delayedInit() {
|
||||
delayedInit: function dv__delayedInit() {
|
||||
if (this._list)
|
||||
return;
|
||||
|
||||
this.init(); // In case the panel is selected before init has been called.
|
||||
|
||||
this._list = document.getElementById("downloads-list");
|
||||
|
||||
if (this._dlmgr == null)
|
||||
|
@ -225,15 +225,6 @@ var ExtensionsView = {
|
||||
if (!Services.prefs.getBoolPref("extensions.hideUpdateButton"))
|
||||
document.getElementById("addons-update-all").hidden = false;
|
||||
|
||||
let self = this;
|
||||
let panels = document.getElementById("panel-items");
|
||||
panels.addEventListener("select",
|
||||
function(aEvent) {
|
||||
if (panels.selectedPanel.id == "addons-container")
|
||||
self._delayedInit();
|
||||
},
|
||||
false);
|
||||
|
||||
#ifdef ANDROID
|
||||
// Hide the notification
|
||||
let alertsService = Cc["@mozilla.org/alerts-service;1"].getService(Ci.nsIAlertsService);
|
||||
@ -243,10 +234,12 @@ var ExtensionsView = {
|
||||
#endif
|
||||
},
|
||||
|
||||
_delayedInit: function ev__delayedInit() {
|
||||
delayedInit: function ev__delayedInit() {
|
||||
if (this._list)
|
||||
return;
|
||||
|
||||
this.init(); // In case the panel is selected before init has been called.
|
||||
|
||||
this._list = document.getElementById("addons-list");
|
||||
this._localItem = document.getElementById("addons-local");
|
||||
this._repoItem = document.getElementById("addons-repo");
|
||||
|
@ -97,28 +97,11 @@ var PreferencesView = {
|
||||
}
|
||||
},
|
||||
|
||||
init: function ev_init() {
|
||||
if (this._msg)
|
||||
return;
|
||||
|
||||
this._msg = document.getElementById("prefs-messages");
|
||||
|
||||
let self = this;
|
||||
let panels = document.getElementById("panel-items");
|
||||
panels.addEventListener("select",
|
||||
function(aEvent) {
|
||||
if (aEvent.target != panels)
|
||||
return;
|
||||
if (panels.selectedPanel.id == "prefs-container")
|
||||
self._delayedInit();
|
||||
},
|
||||
false);
|
||||
},
|
||||
|
||||
_delayedInit: function pv__delayedInit() {
|
||||
delayedInit: function pv__delayedInit() {
|
||||
if (this._languages)
|
||||
return;
|
||||
|
||||
this._msg = document.getElementById("prefs-messages");
|
||||
this._languages = document.getElementById("prefs-languages");
|
||||
this._loadLocales();
|
||||
|
||||
|
@ -269,7 +269,7 @@ function open_manager(aView, aCallback) {
|
||||
BrowserUI.showPanel("addons-container");
|
||||
|
||||
ExtensionsView.init();
|
||||
ExtensionsView._delayedInit();
|
||||
ExtensionsView.delayedInit();
|
||||
|
||||
window.addEventListener("ViewChanged", function() {
|
||||
window.removeEventListener("ViewChanged", arguments.callee, true);
|
||||
|
Loading…
Reference in New Issue
Block a user