author | Dão Gottwald <dao@mozilla.com> |
Thu, 04 Aug 2016 18:58:00 +0200 | |
changeset 308229 | bbca4bc3ccd869d661cdcdbb801b4c82bd8aad24 |
parent 308228 | 5ad07719e3bdf424673e7f1c7d0e0dc9b6880cae |
child 308230 | a0a49732aeb4ca43fa98c37cecc0c9fec5303e01 |
push id | 31092 |
push user | cbook@mozilla.com |
push date | Fri, 05 Aug 2016 10:16:59 +0000 |
treeherder | autoland@b97dd7dd3cb9 [default view] [failures only] |
perfherder | [talos] [build metrics] [platform microbench] (compared to previous push) |
reviewers | mdeboer |
bugs | 1292095 |
milestone | 51.0a1 |
first release with | nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
|
last release without | nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
|
browser/base/content/browser-ctrlTab.js | file | annotate | diff | comparison | revisions | |
browser/components/sessionstore/SessionStore.jsm | file | annotate | diff | comparison | revisions |
--- a/browser/base/content/browser-ctrlTab.js +++ b/browser/base/content/browser-ctrlTab.js @@ -465,17 +465,17 @@ var ctrlTab = { setTimeout(function (selected) { selected.focus(); }, 0, this.selected); } }, handleEvent: function ctrlTab_handleEvent(event) { switch (event.type) { - case "SSWindowStateReady": + case "SSWindowRestored": this._initRecentlyUsedTabs(); break; case "TabAttrModified": // tab attribute modified (e.g. label, crop, busy, image, selected) for (let i = this.previews.length - 1; i >= 0; i--) { if (this.previews[i]._tab && this.previews[i]._tab == event.target) { this.updatePreview(this.previews[i], event.target); break; @@ -526,17 +526,17 @@ var ctrlTab = { this._recentlyUsedTabs = Array.filter(gBrowser.tabs, tab => !tab.closing) .sort((tab1, tab2) => tab2.lastAccessed - tab1.lastAccessed); }, _init: function ctrlTab__init(enable) { var toggleEventListener = enable ? "addEventListener" : "removeEventListener"; - window[toggleEventListener]("SSWindowStateReady", this, false); + window[toggleEventListener]("SSWindowRestored", this, false); var tabContainer = gBrowser.tabContainer; tabContainer[toggleEventListener]("TabOpen", this, false); tabContainer[toggleEventListener]("TabAttrModified", this, false); tabContainer[toggleEventListener]("TabSelect", this, false); tabContainer[toggleEventListener]("TabClose", this, false); document[toggleEventListener]("keypress", this, false);
--- a/browser/components/sessionstore/SessionStore.jsm +++ b/browser/components/sessionstore/SessionStore.jsm @@ -3068,16 +3068,18 @@ var SessionStoreInternal = { // set smoothScroll back to the original value tabstrip.smoothScroll = smoothScroll; TelemetryStopwatch.finish("FX_SESSION_RESTORE_RESTORE_WINDOW_MS"); this._setWindowStateReady(aWindow); + this._sendWindowRestoredNotification(aWindow); + Services.obs.notifyObservers(aWindow, NOTIFY_SINGLE_WINDOW_RESTORED, ""); this._sendRestoreCompletedNotifications(); }, /** * Restore multiple windows using the provided state. * @param aWindow @@ -4059,16 +4061,27 @@ var SessionStoreInternal = { */ _sendWindowStateEvent: function ssi_sendWindowStateEvent(aWindow, aType) { let event = aWindow.document.createEvent("Events"); event.initEvent("SSWindowState" + aType, true, false); aWindow.dispatchEvent(event); }, /** + * Dispatch the SSWindowRestored event for the given window. + * @param aWindow + * The window which has been restored + */ + _sendWindowRestoredNotification(aWindow) { + let event = aWindow.document.createEvent("Events"); + event.initEvent("SSWindowRestored", true, false); + aWindow.dispatchEvent(event); + }, + + /** * Dispatch the SSTabRestored event for the given tab. * @param aTab * The tab which has been restored * @param aIsRemotenessUpdate * True if this tab was restored due to flip from running from * out-of-main-process to in-main-process or vice-versa. */ _sendTabRestoredNotification(aTab, aIsRemotenessUpdate) {