зеркало из https://github.com/mozilla/gecko-dev.git
Bug 952087 Anchor scroll fails if the anchor is created between DOMContentLoaded and onload r=smaug
This commit is contained in:
Родитель
32ea4fd540
Коммит
a1b1fdf915
|
@ -8818,6 +8818,10 @@ void
|
|||
nsDocument::ScrollToRef()
|
||||
{
|
||||
if (mScrolledToRefAlready) {
|
||||
nsCOMPtr<nsIPresShell> shell = GetShell();
|
||||
if (shell) {
|
||||
shell->ScrollToAnchor();
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
|
@ -1025,17 +1025,22 @@ nsDocumentViewer::LoadComplete(nsresult aStatus)
|
|||
}
|
||||
}
|
||||
|
||||
if (!mStopped) {
|
||||
if (mDocument) {
|
||||
mDocument->ScrollToRef();
|
||||
}
|
||||
|
||||
// Now that the document has loaded, we can tell the presshell
|
||||
// to unsuppress painting.
|
||||
if (mPresShell && !mStopped) {
|
||||
if (mPresShell) {
|
||||
nsCOMPtr<nsIPresShell> shellDeathGrip(mPresShell);
|
||||
mPresShell->UnsuppressPainting();
|
||||
// mPresShell could have been removed now, see bug 378682/421432
|
||||
if (mPresShell) {
|
||||
mPresShell->ScrollToAnchor();
|
||||
mPresShell->LoadComplete();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
nsJSContext::LoadEnd();
|
||||
|
||||
|
|
|
@ -0,0 +1,12 @@
|
|||
<?xml version="1.0"?>
|
||||
<!DOCTYPE html>
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
</head>
|
||||
<body style="margin: 0;">
|
||||
<div style="height: 50px; width: 50px; background-color: red;"/>
|
||||
<div style="height: 1000px;"/>
|
||||
<div id="d" style="height: 50px; width: 50px; background-color: green;"/>
|
||||
<div style="height: 1000px;"/>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,16 @@
|
|||
<?xml version="1.0"?>
|
||||
<!DOCTYPE html>
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
<script>
|
||||
var xhr = new XMLHttpRequest();
|
||||
xhr.onprogress = function() {
|
||||
};
|
||||
xhr.onload = function() {
|
||||
document.documentElement.innerHTML = this.responseXML.documentElement.innerHTML;
|
||||
};
|
||||
xhr.open("get", "deferred-anchor-ref.xhtml");
|
||||
xhr.send();
|
||||
</script>
|
||||
</head>
|
||||
</html>
|
|
@ -1,3 +1,4 @@
|
|||
HTTP == deferred-anchor.xhtml#d deferred-anchor-ref.xhtml#d
|
||||
HTTP == fixed-1.html fixed-1.html?ref
|
||||
HTTP == fixed-opacity-1.html fixed-opacity-1.html?ref
|
||||
skip-if(B2G) HTTP == fixed-opacity-2.html fixed-opacity-2.html?ref
|
||||
|
|
Загрузка…
Ссылка в новой задаче