зеркало из https://github.com/mozilla/gecko-dev.git
Bug 509055: Changing document.title does not change SHEntry's title if document was loaded from history. r=smaug
This commit is contained in:
Родитель
fbd09820fd
Коммит
a980bf6bde
|
@ -4628,17 +4628,13 @@ nsDocShell::SetTitle(const PRUnichar * aTitle)
|
|||
}
|
||||
|
||||
|
||||
// Update SessionHistory with the document's title. If the
|
||||
// page was loaded from history or the page bypassed history,
|
||||
// there is no need to update the title. There is no need to
|
||||
// go to mSessionHistory to update the title. Setting it in mOSHE
|
||||
// would suffice.
|
||||
if (mOSHE && (mLoadType != LOAD_BYPASS_HISTORY) &&
|
||||
(mLoadType != LOAD_HISTORY) && (mLoadType != LOAD_ERROR_PAGE)) {
|
||||
// Update SessionHistory with the document's title.
|
||||
if (mOSHE && mLoadType != LOAD_BYPASS_HISTORY &&
|
||||
mLoadType != LOAD_ERROR_PAGE) {
|
||||
|
||||
mOSHE->SetTitle(mTitle);
|
||||
}
|
||||
|
||||
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
|
|
|
@ -76,6 +76,8 @@ _TEST_FILES = \
|
|||
file_bug385434_1.html \
|
||||
file_bug385434_2.html \
|
||||
file_bug385434_3.html \
|
||||
test_bug509055.html \
|
||||
file_bug509055.html \
|
||||
$(NULL)
|
||||
|
||||
libs:: $(_TEST_FILES)
|
||||
|
|
|
@ -0,0 +1,9 @@
|
|||
<!DOCTYPE HTML>
|
||||
<html>
|
||||
<head>
|
||||
<title>Test inner frame for bug 509055</title>
|
||||
</head>
|
||||
<body onhashchange="hashchangeCallback(event)">
|
||||
file_bug509055.html
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,93 @@
|
|||
<!DOCTYPE HTML>
|
||||
<html>
|
||||
<!--
|
||||
https://bugzilla.mozilla.org/show_bug.cgi?id=509055
|
||||
-->
|
||||
<head>
|
||||
<title>Test for Bug 509055</title>
|
||||
<script type="application/javascript" src="/MochiKit/packed.js"></script>
|
||||
<script type="application/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
|
||||
<script type="application/javascript" src="/tests/SimpleTest/EventUtils.js"></script>
|
||||
<link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/>
|
||||
</head>
|
||||
<body>
|
||||
<a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=509055">Mozilla Bug 509055</a>
|
||||
<p id="display"></p>
|
||||
<div id="status"></div>
|
||||
<div id="content">
|
||||
</div>
|
||||
<pre id="test">
|
||||
<script type="application/javascript;version=1.7">
|
||||
|
||||
/** Test for Bug 509055 **/
|
||||
|
||||
SimpleTest.waitForExplicitFinish();
|
||||
|
||||
var gGen;
|
||||
|
||||
function shortWait() {
|
||||
setTimeout(function() { gGen.next(); }, 0, false);
|
||||
}
|
||||
|
||||
function onChildHashchange(e) {
|
||||
// gGen might be undefined when we refresh the page, so we have to check here
|
||||
if(gGen)
|
||||
gGen.next();
|
||||
}
|
||||
|
||||
function onChildLoad(e) {
|
||||
if(gGen)
|
||||
gGen.next();
|
||||
}
|
||||
|
||||
function runTest() {
|
||||
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
|
||||
|
||||
var popup = window.open("file_bug509055.html", "popup 0",
|
||||
"height=200,width=200,location=yes," +
|
||||
"menubar=yes,status=yes,toolbar=yes,dependent=yes");
|
||||
popup.hashchangeCallback = onChildHashchange;
|
||||
popup.onload = onChildLoad;
|
||||
yield; // wait for load
|
||||
|
||||
// Not sure why this wait is necessary, but without it, the change to
|
||||
// location.hash below doesn't create a SHEntry or enable the back button.
|
||||
shortWait();
|
||||
yield;
|
||||
|
||||
popup.location.hash = "#1";
|
||||
yield; // wait for hashchange
|
||||
|
||||
popup.history.back();
|
||||
yield; // wait for hashchange
|
||||
|
||||
popup.document.title = "Changed";
|
||||
|
||||
// Wait for listeners to be notified of the title change.
|
||||
shortWait();
|
||||
yield;
|
||||
|
||||
var sh = popup.QueryInterface(Components.interfaces.nsIInterfaceRequestor)
|
||||
.getInterface(Components.interfaces.nsIWebNavigation)
|
||||
.sessionHistory;
|
||||
|
||||
// Get the title of the inner popup's current SHEntry
|
||||
var sheTitle = sh.getEntryAtIndex(sh.index, false).title;
|
||||
is(sheTitle, "Changed", "SHEntry's title should change when we change.");
|
||||
|
||||
popup.close();
|
||||
|
||||
SimpleTest.finish();
|
||||
yield;
|
||||
}
|
||||
|
||||
window.addEventListener('load', function() {
|
||||
gGen = runTest();
|
||||
gGen.next();
|
||||
}, false);
|
||||
|
||||
</script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
Загрузка…
Ссылка в новой задаче