diff --git a/browser/base/content/test/general/browser.ini b/browser/base/content/test/general/browser.ini index b87c17c81bb..4b19883871c 100644 --- a/browser/base/content/test/general/browser.ini +++ b/browser/base/content/test/general/browser.ini @@ -353,7 +353,6 @@ skip-if = buildapp == 'mulet' || e10s # Bug 1101973 - breaks the next test in e1 skip-if = buildapp == 'mulet' [browser_private_no_prompt.js] skip-if = buildapp == 'mulet' -[browser_purgehistory_clears_sh.js] [browser_PageMetaData_pushstate.js] [browser_relatedTabs.js] [browser_remoteTroubleshoot.js] diff --git a/browser/base/content/test/general/browser_purgehistory_clears_sh.js b/browser/base/content/test/general/browser_purgehistory_clears_sh.js deleted file mode 100644 index 80b3ec491b5..00000000000 --- a/browser/base/content/test/general/browser_purgehistory_clears_sh.js +++ /dev/null @@ -1,66 +0,0 @@ -/* Any copyright is dedicated to the Public Domain. - * http://creativecommons.org/publicdomain/zero/1.0/ */ - -const url = "http://example.org/browser/browser/base/content/test/general/dummy_page.html"; - -add_task(function* purgeHistoryTest() { - let tab = yield BrowserTestUtils.withNewTab({ - gBrowser, - url, - }, function* purgeHistoryTestInner(browser) { - let backButton = browser.ownerDocument.getElementById("Browser:Back"); - let forwardButton = browser.ownerDocument.getElementById("Browser:Forward"); - - ok(!browser.webNavigation.canGoBack, - "Initial value for webNavigation.canGoBack"); - ok(!browser.webNavigation.canGoForward, - "Initial value for webNavigation.canGoBack"); - ok(backButton.hasAttribute("disabled"), "Back button is disabled"); - ok(forwardButton.hasAttribute("disabled"), "Forward button is disabled"); - - let pushState = ContentTask.spawn(browser, null, function*() { - let startHistory = content.history.length; - content.history.pushState({}, ""); - content.history.pushState({}, ""); - content.history.back(); - let newHistory = content.history.length; - return [startHistory, newHistory]; - }); - - let [startHistory, newHistory] = yield pushState; - - is(startHistory, 1, "Initial SHistory size"); - is(newHistory, 3, "New SHistory size"); - - ok(browser.webNavigation.canGoBack, true, - "New value for webNavigation.canGoBack"); - ok(browser.webNavigation.canGoForward, true, - "New value for webNavigation.canGoForward"); - ok(!backButton.hasAttribute("disabled"), "Back button was enabled"); - ok(!forwardButton.hasAttribute("disabled"), "Forward button was enabled"); - - - let tmp = {}; - Cc["@mozilla.org/moz/jssubscript-loader;1"] - .getService(Ci.mozIJSSubScriptLoader) - .loadSubScript("chrome://browser/content/sanitize.js", tmp); - - let {Sanitizer} = tmp; - let sanitizer = new Sanitizer(); - - yield sanitizer.sanitize(["history"]); - - let historyAfterPurge = yield ContentTask.spawn(browser, null, function*() { - return content.history.length; - }); - - is(historyAfterPurge, 1, "SHistory correctly cleared"); - - ok(!browser.webNavigation.canGoBack, - "webNavigation.canGoBack correctly cleared"); - ok(!browser.webNavigation.canGoForward, - "webNavigation.canGoForward correctly cleared"); - ok(backButton.hasAttribute("disabled"), "Back button was disabled"); - ok(forwardButton.hasAttribute("disabled"), "Forward button was disabled"); - }); -}); diff --git a/toolkit/content/browser-content.js b/toolkit/content/browser-content.js index 306ef3ad1f2..90420a25df9 100644 --- a/toolkit/content/browser-content.js +++ b/toolkit/content/browser-content.js @@ -724,27 +724,3 @@ let AudioPlaybackListener = { }, }; AudioPlaybackListener.init(); - -addMessageListener("Browser:PurgeSessionHistory", function BrowserPurgeHistory() { - let sessionHistory = docShell.QueryInterface(Ci.nsIWebNavigation).sessionHistory; - if (!sessionHistory) { - return; - } - - // place the entry at current index at the end of the history list, so it won't get removed - if (sessionHistory.index < sessionHistory.count - 1) { - let indexEntry = sessionHistory.getEntryAtIndex(sessionHistory.index, false); - sessionHistory.QueryInterface(Components.interfaces.nsISHistoryInternal); - indexEntry.QueryInterface(Components.interfaces.nsISHEntry); - sessionHistory.addEntry(indexEntry, true); - } - - let purge = sessionHistory.count; - if (global.content.location.href != "about:blank") { - --purge; // Don't remove the page the user's staring at from shistory - } - - if (purge > 0) { - sessionHistory.PurgeHistory(purge); - } -}); diff --git a/toolkit/content/widgets/browser.xml b/toolkit/content/widgets/browser.xml index ef2edf834ee..61d94747734 100644 --- a/toolkit/content/widgets/browser.xml +++ b/toolkit/content/widgets/browser.xml @@ -821,7 +821,7 @@ // |webNavigation.sessionHistory| will have been set by the frame // loader when creating the docShell as long as this xul:browser // doesn't have the 'disablehistory' attribute set. - if (!this.hasAttribute("disablehistory")) { + if (this.docShell && this.webNavigation.sessionHistory) { var os = Components.classes["@mozilla.org/observer-service;1"] .getService(Components.interfaces.nsIObserverService); os.addObserver(this, "browser:purge-session-history", false); @@ -879,7 +879,7 @@ return; this.mDestroyed = true; - if (!this.hasAttribute("disablehistory")) { + if (this.docShell && this.webNavigation.sessionHistory) { var os = Components.classes["@mozilla.org/observer-service;1"] .getService(Components.interfaces.nsIObserverService); try { @@ -969,18 +969,23 @@ - - + // place the entry at current index at the end of the history list, so it won't get removed + if (this.sessionHistory.index < this.sessionHistory.count - 1) { + var indexEntry = this.sessionHistory.getEntryAtIndex(this.sessionHistory.index, false); + this.sessionHistory.QueryInterface(Components.interfaces.nsISHistoryInternal); + indexEntry.QueryInterface(Components.interfaces.nsISHEntry); + this.sessionHistory.addEntry(indexEntry, true); + } - - - 0) + this.sessionHistory.PurgeHistory(purge); ]]> diff --git a/toolkit/content/widgets/remote-browser.xml b/toolkit/content/widgets/remote-browser.xml index bea8e9fd0fc..2d26842e390 100644 --- a/toolkit/content/widgets/remote-browser.xml +++ b/toolkit/content/widgets/remote-browser.xml @@ -389,15 +389,6 @@ - - - - -