mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
Bug 890319 - about:customize doesn't work if we try to enter before the window has loaded, r=mikedeboer
This commit is contained in:
parent
de9ce9d493
commit
90157934df
@ -736,6 +736,8 @@ const gFormSubmitObserver = {
|
||||
};
|
||||
|
||||
var gBrowserInit = {
|
||||
delayedStartupFinished: false,
|
||||
|
||||
onLoad: function() {
|
||||
gMultiProcessBrowser = gPrefService.getBoolPref("browser.tabs.remote");
|
||||
|
||||
@ -1185,6 +1187,7 @@ var gBrowserInit = {
|
||||
|
||||
setTimeout(function () { BrowserChromeTest.markAsReady(); }, 0);
|
||||
});
|
||||
this.delayedStartupFinished = true;
|
||||
|
||||
Services.obs.notifyObservers(window, "browser-delayed-startup-finished", "");
|
||||
TelemetryTimestamps.add("delayedStartupFinished");
|
||||
|
@ -93,43 +93,56 @@ CustomizeMode.prototype = {
|
||||
return;
|
||||
}
|
||||
|
||||
// Disable lightweight themes while in customization mode since
|
||||
// they don't have large enough images to pad the full browser window.
|
||||
LightweightThemeManager.temporarilyToggleTheme(false);
|
||||
|
||||
this.dispatchToolboxEvent("beforecustomization");
|
||||
|
||||
let window = this.window;
|
||||
let document = this.document;
|
||||
|
||||
CustomizableUI.addListener(this);
|
||||
|
||||
// Add a keypress listener and mousedown listener to the tab-view-deck so that
|
||||
// we can quickly exit customization mode when pressing ESC or clicking on
|
||||
// the blueprint outside the customization container.
|
||||
let deck = document.getElementById("tab-view-deck");
|
||||
deck.addEventListener("keypress", this);
|
||||
deck.addEventListener("mousedown", this);
|
||||
|
||||
// Same goes for the menu button - if we're customizing, a mousedown to the
|
||||
// menu button means a quick exit from customization mode.
|
||||
window.PanelUI.hide();
|
||||
window.PanelUI.menuButton.addEventListener("mousedown", this);
|
||||
window.PanelUI.menuButton.open = true;
|
||||
window.PanelUI.beginBatchUpdate();
|
||||
|
||||
// Move the mainView in the panel to the holder so that we can see it
|
||||
// while customizing.
|
||||
let panelHolder = document.getElementById("customization-panelHolder");
|
||||
panelHolder.appendChild(window.PanelUI.mainView);
|
||||
|
||||
this._transitioning = true;
|
||||
|
||||
let customizer = document.getElementById("customization-container");
|
||||
customizer.parentNode.selectedPanel = customizer;
|
||||
customizer.hidden = false;
|
||||
|
||||
Task.spawn(function() {
|
||||
// We shouldn't start customize mode until after browser-delayed-startup has finished:
|
||||
if (!this.window.gBrowserInit.delayedStartupFinished) {
|
||||
let delayedStartupDeferred = Promise.defer();
|
||||
let delayedStartupObserver = function(aSubject) {
|
||||
if (aSubject == this.window) {
|
||||
Services.obs.removeObserver(delayedStartupObserver, "browser-delayed-startup-finished");
|
||||
delayedStartupDeferred.resolve();
|
||||
}
|
||||
}.bind(this);
|
||||
Services.obs.addObserver(delayedStartupObserver, "browser-delayed-startup-finished", false);
|
||||
yield delayedStartupDeferred.promise;
|
||||
}
|
||||
|
||||
// Disable lightweight themes while in customization mode since
|
||||
// they don't have large enough images to pad the full browser window.
|
||||
LightweightThemeManager.temporarilyToggleTheme(false);
|
||||
|
||||
this.dispatchToolboxEvent("beforecustomization");
|
||||
|
||||
let window = this.window;
|
||||
let document = this.document;
|
||||
|
||||
CustomizableUI.addListener(this);
|
||||
|
||||
// Add a keypress listener and mousedown listener to the tab-view-deck so that
|
||||
// we can quickly exit customization mode when pressing ESC or clicking on
|
||||
// the blueprint outside the customization container.
|
||||
let deck = document.getElementById("tab-view-deck");
|
||||
deck.addEventListener("keypress", this);
|
||||
deck.addEventListener("mousedown", this);
|
||||
|
||||
// Same goes for the menu button - if we're customizing, a mousedown to the
|
||||
// menu button means a quick exit from customization mode.
|
||||
window.PanelUI.hide();
|
||||
window.PanelUI.menuButton.addEventListener("mousedown", this);
|
||||
window.PanelUI.menuButton.open = true;
|
||||
window.PanelUI.beginBatchUpdate();
|
||||
|
||||
// Move the mainView in the panel to the holder so that we can see it
|
||||
// while customizing.
|
||||
let panelHolder = document.getElementById("customization-panelHolder");
|
||||
panelHolder.appendChild(window.PanelUI.mainView);
|
||||
|
||||
this._transitioning = true;
|
||||
|
||||
let customizer = document.getElementById("customization-container");
|
||||
customizer.parentNode.selectedPanel = customizer;
|
||||
customizer.hidden = false;
|
||||
|
||||
yield this._doTransition(true);
|
||||
|
||||
// Let everybody in this window know that we're about to customize.
|
||||
|
Loading…
Reference in New Issue
Block a user