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 = {
|
var gBrowserInit = {
|
||||||
|
delayedStartupFinished: false,
|
||||||
|
|
||||||
onLoad: function() {
|
onLoad: function() {
|
||||||
gMultiProcessBrowser = gPrefService.getBoolPref("browser.tabs.remote");
|
gMultiProcessBrowser = gPrefService.getBoolPref("browser.tabs.remote");
|
||||||
|
|
||||||
@ -1185,6 +1187,7 @@ var gBrowserInit = {
|
|||||||
|
|
||||||
setTimeout(function () { BrowserChromeTest.markAsReady(); }, 0);
|
setTimeout(function () { BrowserChromeTest.markAsReady(); }, 0);
|
||||||
});
|
});
|
||||||
|
this.delayedStartupFinished = true;
|
||||||
|
|
||||||
Services.obs.notifyObservers(window, "browser-delayed-startup-finished", "");
|
Services.obs.notifyObservers(window, "browser-delayed-startup-finished", "");
|
||||||
TelemetryTimestamps.add("delayedStartupFinished");
|
TelemetryTimestamps.add("delayedStartupFinished");
|
||||||
|
@ -93,43 +93,56 @@ CustomizeMode.prototype = {
|
|||||||
return;
|
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() {
|
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);
|
yield this._doTransition(true);
|
||||||
|
|
||||||
// Let everybody in this window know that we're about to customize.
|
// Let everybody in this window know that we're about to customize.
|
||||||
|
Loading…
Reference in New Issue
Block a user