Backed out changeset fc9cae9a0f60 (bug 1180495) for browser_purgehistory_clears_sh.js failures.

CLOSED TREE
This commit is contained in:
Ryan VanderMeulen 2015-08-05 14:54:49 -04:00
parent 7920697599
commit 36442aa165
5 changed files with 16 additions and 111 deletions

View File

@ -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]

View File

@ -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");
});
});

View File

@ -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);
}
});

View File

@ -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 @@
<parameter name="aState"/>
<body>
<![CDATA[
if (aTopic != "browser:purge-session-history")
if (aTopic != "browser:purge-session-history" || !this.sessionHistory)
return;
this.purgeSessionHistory();
]]>
</body>
</method>
// 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);
}
<method name="purgeSessionHistory">
<body>
<![CDATA[
this.messageManager.sendAsyncMessage("Browser:PurgeSessionHistory");
var purge = this.sessionHistory.count;
if (this.currentURI != "about:blank")
--purge; // Don't remove the page the user's staring at from shistory
if (purge > 0)
this.sessionHistory.PurgeHistory(purge);
]]>
</body>
</method>

View File

@ -389,15 +389,6 @@
</body>
</method>
<method name="purgeSessionHistory">
<body>
<![CDATA[
this.messageManager.sendAsyncMessage("Browser:PurgeSessionHistory");
this.webNavigation.canGoBack = false;
this.webNavigation.canGoForward = false;
]]>
</body>
</method>
</implementation>
</binding>