Backout e28f0f4b25a4 (bug 819510) for causing bug 822093
authorEd Morley <emorley@mozilla.com>
Mon, 17 Dec 2012 12:43:55 +0000
changeset 125373 10cb0e3aac02f306797a301da67fd421389ce655
parent 125372 c56a4fcc3acc30dd959df131e03626ffd31ffccb
child 125374 3ad6ca44ce5b739953a8fde90b60e34eb07f7e21
push id2151
push userlsblakk@mozilla.com
push dateTue, 19 Feb 2013 18:06:57 +0000
treeherdermozilla-beta@4952e88741ec [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
bugs819510, 822093
milestone20.0a1
backs oute28f0f4b25a4e76ab368a88b12fd67a29c9faefd
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
Backout e28f0f4b25a4 (bug 819510) for causing bug 822093
browser/components/sessionstore/src/SessionStore.jsm
browser/components/sessionstore/test/Makefile.in
browser/components/sessionstore/test/browser_819510_perwindowpb.js
--- a/browser/components/sessionstore/src/SessionStore.jsm
+++ b/browser/components/sessionstore/src/SessionStore.jsm
@@ -3706,19 +3706,16 @@ let SessionStoreInternal = {
       return;
     }
 
 #ifdef MOZ_PER_WINDOW_PRIVATE_BROWSING
     // Forget about private windows.
     for (let i = oState.windows.length - 1; i >= 0; i--) {
       if (oState.windows[i].isPrivate) {
         oState.windows.splice(i, 1);
-        if (oState.selectedWindow >= i) {
-          oState.selectedWindow--;
-        }
       }
     }
     for (let i = oState._closedWindows.length - 1; i >= 0; i--) {
       if (oState._closedWindows[i].isPrivate) {
         oState._closedWindows.splice(i, 1);
       }
     }
 #endif
--- a/browser/components/sessionstore/test/Makefile.in
+++ b/browser/components/sessionstore/test/Makefile.in
@@ -132,17 +132,16 @@ MOCHITEST_BROWSER_FILES = \
 	$(filter disabled-for-intermittent-failures--bug-766044, browser_459906_sample.html) \
 	$(filter disabled-for-intermittent-failures--bug-765389, browser_461743_sample.html) \
 	$(NULL)
 
 ifdef MOZ_PER_WINDOW_PRIVATE_BROWSING
 MOCHITEST_BROWSER_FILES += \
 	browser_354894_perwindowpb.js \
 	browser_394759_perwindowpb.js \
-	browser_819510_perwindowpb.js \
 	$(NULL)
 else
 MOCHITEST_BROWSER_FILES += \
 	browser_248970_a.js \
 	browser_248970_b.js \
 	browser_354894.js \
 	browser_394759_privatebrowsing.js \
 	$(NULL)
deleted file mode 100644
--- a/browser/components/sessionstore/test/browser_819510_perwindowpb.js
+++ /dev/null
@@ -1,171 +0,0 @@
-/* Any copyright is dedicated to the Public Domain.
-   http://creativecommons.org/publicdomain/zero/1.0/ */
-
-const originalState = ss.getBrowserState();
-
-/** Private Browsing Test for Bug 819510 **/
-function test() {
-  waitForExplicitFinish();
-
-  registerCleanupFunction(function() {
-    Services.prefs.clearUserPref("browser.sessionstore.interval");
-    ss.setBrowserState(originalState);
-  });
-
-  runNextTest();
-}
-
-let tests = [
-  test_1,
-  test_2,
-  test_3,
-];
-
-const testState = {
-  windows: [{
-    tabs: [
-      { entries: [{ url: "about:blank" }] },
-    ]
-  }]
-};
-
-function runNextTest() {
-  // Set an empty state
-  let windowsEnum = Services.wm.getEnumerator("navigator:browser");
-  while (windowsEnum.hasMoreElements()) {
-    let currentWindow = windowsEnum.getNext();
-    if (currentWindow != window) {
-      currentWindow.close();
-    }
-  }
-
-  // Run the next test, or finish
-  if (tests.length) {
-    let currentTest = tests.shift();
-    waitForBrowserState(testState, currentTest);
-  }
-  else {
-    Services.prefs.clearUserPref("browser.sessionstore.interval");
-    ss.setBrowserState(originalState);
-    finish();
-  }
-}
-
-// Test opening default mochitest-normal-private-normal-private windows
-// (saving the state with last window being private)
-function test_1() {
-  testOnWindow(false, function(aWindow) {
-    aWindow.gBrowser.addTab("http://www.example.com/1");
-    testOnWindow(true, function(aWindow) {
-      aWindow.gBrowser.addTab("http://www.example.com/2");
-      testOnWindow(false, function(aWindow) {
-        aWindow.gBrowser.addTab("http://www.example.com/3");
-        testOnWindow(true, function(aWindow) {
-          aWindow.gBrowser.addTab("http://www.example.com/4");
-
-          let curState = JSON.parse(ss.getBrowserState());
-          is (curState.windows.length, 5, "Browser has opened 5 windows");
-          is (curState.windows[2].isPrivate, true, "Window is private");
-          is (curState.windows[4].isPrivate, true, "Last window is private");
-          is (curState.selectedWindow, 5, "Last window opened is the one selected");
-
-          Services.obs.addObserver(function observe(aSubject, aTopic, aData) {
-            Services.obs.removeObserver(observe, aTopic);
-            aSubject.QueryInterface(Ci.nsISupportsString);
-            let state = JSON.parse(aSubject.data);
-            is(state.windows.length, 3,
-              "sessionstore state: 3 windows in data being writted to disk");
-            is (state.selectedWindow, 3,
-              "Selected window is updated to match one of the saved windows");
-            state.windows.forEach(function(win) {
-              is(!win.isPrivate, true, "Saved window is not private");
-            });
-            is(state._closedWindows.length, 0,
-              "sessionstore state: no closed windows in data being writted to disk");
-            runNextTest();
-          }, "sessionstore-state-write", false);
-
-          Services.prefs.setIntPref("browser.sessionstore.interval", 0);
-        });
-      });
-    });
-  });
-}
-
-// Test opening default mochitest window + 2 private windows
-function test_2() {
-testOnWindow(true, function(aWindow) {
-  aWindow.gBrowser.addTab("http://www.example.com/1");
-    testOnWindow(true, function(aWindow) {
-      aWindow.gBrowser.addTab("http://www.example.com/2");
-
-      let curState = JSON.parse(ss.getBrowserState());
-      is (curState.windows.length, 3, "Browser has opened 3 windows");
-      is (curState.windows[1].isPrivate, true, "Window 1 is private");
-      is (curState.windows[2].isPrivate, true, "Window 2 is private");
-      is (curState.selectedWindow, 3, "Last window opened is the one selected");
-
-      Services.obs.addObserver(function observe(aSubject, aTopic, aData) {
-        Services.obs.removeObserver(observe, aTopic);
-        aSubject.QueryInterface(Ci.nsISupportsString);
-        let state = JSON.parse(aSubject.data);
-        is(state.windows.length, 1,
-          "sessionstore state: 1 windows in data being writted to disk");
-        is (state.selectedWindow, 1,
-          "Selected window is updated to match one of the saved windows");
-        is(state._closedWindows.length, 0,
-          "sessionstore state: no closed windows in data being writted to disk");
-        runNextTest();
-      }, "sessionstore-state-write", false);
-      Services.prefs.setIntPref("browser.sessionstore.interval", 0);
-  });
-});
-}
-
-// Test opening default-normal-private-normal windows and closing a normal window
-function test_3() {
-  testOnWindow(false, function(normalWindow) {
-    normalWindow.gBrowser.addTab("http://www.example.com/1");
-    testOnWindow(true, function(aWindow) {
-      aWindow.gBrowser.addTab("http://www.example.com/2");
-      testOnWindow(false, function(aWindow) {
-        aWindow.gBrowser.addTab("http://www.example.com/3");
-
-        let curState = JSON.parse(ss.getBrowserState());
-        is (curState.windows.length, 4, "Browser has opened 4 windows");
-        is (curState.windows[2].isPrivate, true, "Window 2 is private");
-        is (curState.selectedWindow, 4, "Last window opened is the one selected");
-
-        normalWindow.close();
-        Services.obs.addObserver(function observe(aSubject, aTopic, aData) {
-          Services.obs.removeObserver(observe, aTopic);
-          aSubject.QueryInterface(Ci.nsISupportsString);
-          let state = JSON.parse(aSubject.data);
-          is(state.windows.length, 2,
-            "sessionstore state: 2 windows in data being writted to disk");
-          is (state.selectedWindow, 2,
-            "Selected window is updated to match one of the saved windows");
-          state.windows.forEach(function(win) {
-            is(!win.isPrivate, true, "Saved window is not private");
-          });
-          is(state._closedWindows.length, 1,
-            "sessionstore state: 1 closed window in data being writted to disk");
-          state._closedWindows.forEach(function(win) {
-            is(!win.isPrivate, true, "Closed window is not private");
-          });
-          runNextTest();
-        }, "sessionstore-state-write", false);
-
-        Services.prefs.setIntPref("browser.sessionstore.interval", 0);
-      });
-    });
-  });
-}
-
-function testOnWindow(aIsPrivate, aCallback) {
-  let win = OpenBrowserWindow({private: aIsPrivate});
-  win.addEventListener("load", function onLoad() {
-    win.removeEventListener("load", onLoad, false);
-    executeSoon(function() { aCallback(win); });
-  }, false);
-}