зеркало из 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()
|
nsDocument::ScrollToRef()
|
||||||
{
|
{
|
||||||
if (mScrolledToRefAlready) {
|
if (mScrolledToRefAlready) {
|
||||||
|
nsCOMPtr<nsIPresShell> shell = GetShell();
|
||||||
|
if (shell) {
|
||||||
|
shell->ScrollToAnchor();
|
||||||
|
}
|
||||||
return;
|
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
|
// Now that the document has loaded, we can tell the presshell
|
||||||
// to unsuppress painting.
|
// to unsuppress painting.
|
||||||
if (mPresShell && !mStopped) {
|
if (mPresShell) {
|
||||||
nsCOMPtr<nsIPresShell> shellDeathGrip(mPresShell);
|
nsCOMPtr<nsIPresShell> shellDeathGrip(mPresShell);
|
||||||
mPresShell->UnsuppressPainting();
|
mPresShell->UnsuppressPainting();
|
||||||
// mPresShell could have been removed now, see bug 378682/421432
|
// mPresShell could have been removed now, see bug 378682/421432
|
||||||
if (mPresShell) {
|
if (mPresShell) {
|
||||||
mPresShell->ScrollToAnchor();
|
|
||||||
mPresShell->LoadComplete();
|
mPresShell->LoadComplete();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
nsJSContext::LoadEnd();
|
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-1.html fixed-1.html?ref
|
||||||
HTTP == fixed-opacity-1.html fixed-opacity-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
|
skip-if(B2G) HTTP == fixed-opacity-2.html fixed-opacity-2.html?ref
|
||||||
|
|
Загрузка…
Ссылка в новой задаче