Backed out changeset aef73dcc9acc for bustage.
authorMike Conley <>
Tue, 24 Nov 2015 23:45:41 -0500
changeset 274064 31cf031ca23e4927db55f9e5469ac3e4c6599a35
parent 274063 aef73dcc9acc1b4434254e1e6bde1bfd36268b48
child 274065 ef95cb431736da42d3b21ae288140225100d9f97
child 274161 61ad0b3da56aadbfbeb850a76530c16b3ca2565f
push id29720
push dateWed, 25 Nov 2015 11:50:29 +0000
treeherdermozilla-central@ef95cb431736 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
backs outaef73dcc9acc1b4434254e1e6bde1bfd36268b48
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
Backed out changeset aef73dcc9acc for bustage.
--- a/browser/components/sessionstore/SessionStore.jsm
+++ b/browser/components/sessionstore/SessionStore.jsm
@@ -1241,19 +1241,16 @@ var SessionStoreInternal = {
       // Store the window's close date to figure out when each individual tab
       // was closed. This timestamp should allow re-arranging data based on how
       // recently something was closed.
       winData.closedAt =;
       // we don't want to save the busy state
       delete winData.busy;
-      // clear this window from the list, since it has definitely been closed.
-      delete this._windows[aWindow.__SSi];
       // Now we have to figure out if this window is worth saving in the _closedWindows
       // Object.
       // We're about to flush the tabs from this window, but it's possible that we
       // might never hear back from the content process(es) in time before the user
       // chooses to restore the closed window. So we do the following:
       // 1) Use the tab state cache to determine synchronously if the window is
@@ -1289,16 +1286,18 @@ var SessionStoreInternal = {
         // least one saveable tab or are the last window.
         if (!winData.isPrivate) {
           // It's possible that a tab switched its privacy state at some point
           // before our flush, so we need to filter again.
+        // clear this window from the list
+        delete this._windows[aWindow.__SSi];
         // Update the tabs data now that we've got the most
         // recent information.
         this.cleanUpWindow(aWindow, winData);
         // save the state without this window to disk
     } else {