зеркало из 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
|
// Update SessionHistory with the document's title.
|
||||||
// page was loaded from history or the page bypassed history,
|
if (mOSHE && mLoadType != LOAD_BYPASS_HISTORY &&
|
||||||
// there is no need to update the title. There is no need to
|
mLoadType != LOAD_ERROR_PAGE) {
|
||||||
// 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)) {
|
|
||||||
mOSHE->SetTitle(mTitle);
|
mOSHE->SetTitle(mTitle);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
return NS_OK;
|
return NS_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -76,6 +76,8 @@ _TEST_FILES = \
|
||||||
file_bug385434_1.html \
|
file_bug385434_1.html \
|
||||||
file_bug385434_2.html \
|
file_bug385434_2.html \
|
||||||
file_bug385434_3.html \
|
file_bug385434_3.html \
|
||||||
|
test_bug509055.html \
|
||||||
|
file_bug509055.html \
|
||||||
$(NULL)
|
$(NULL)
|
||||||
|
|
||||||
libs:: $(_TEST_FILES)
|
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>
|
||||||
|
|
Загрузка…
Ссылка в новой задаче