Bug 637644. Start layout on the new document in CreateAboutBlankContentViewer, since if we don't do it here no one ever will. r=jst, a=blocker

This commit is contained in:
Boris Zbarsky 2011-03-02 14:45:13 -05:00
parent befbd5cc3b
commit f21fa55002
4 changed files with 118 additions and 0 deletions

View File

@ -6539,6 +6539,14 @@ nsDocShell::CreateAboutBlankContentViewer(nsIPrincipal* aPrincipal,
SetCurrentURI(blankDoc->GetDocumentURI(), nsnull, PR_TRUE);
rv = mIsBeingDestroyed ? NS_ERROR_NOT_AVAILABLE : NS_OK;
if (NS_SUCCEEDED(rv)) {
nsCOMPtr<nsIPresShell> shell = blankDoc->GetShell();
if (shell && !shell->DidInitialReflow()) {
nsRect r = shell->GetPresContext()->GetVisibleArea();
shell->InitialReflow(r.width, r.height);
}
}
}
}
}

View File

@ -93,8 +93,10 @@ _TEST_FILES = \
test_bug590573.html \
file_bug590573_1.html \
file_bug590573_2.html \
test_bug598895.html \
test_bug634834.html \
file_bug634834.html \
test_bug637644.html \
$(NULL)
ifeq ($(MOZ_WIDGET_TOOLKIT),cocoa)

View File

@ -0,0 +1,54 @@
<!DOCTYPE HTML>
<html>
<!--
https://bugzilla.mozilla.org/show_bug.cgi?id=598895
-->
<head>
<title>Test for Bug 598895</title>
<script type="application/javascript" src="/MochiKit/packed.js"></script>
<script type="application/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
<script type="text/javascript" src="/tests/SimpleTest/WindowSnapshot.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=598895">Mozilla Bug 598895</a>
<p id="display"></p>
<div id="content" style="display: none">
</div>
<pre id="test">
<script type="application/javascript">
/** Test for Bug 598895 **/
SimpleTest.waitForExplicitFinish();
addLoadEvent(function() {
var win1 = window.open();
win1.document.body.textContent = "Should show";
var windowsLoaded = 0;
window.onmessage = function (ev) {
is(ev.data, "loaded", "Message should be 'loaded'");
if (++windowsLoaded == 2) {
var one = snapshotWindow(win1);
var two = snapshotWindow(win2);
var three = snapshotWindow(win3);
win1.close();
win2.close();
win3.close();
ok(compareSnapshots(one, two, true)[0], "Popups should look identical");
ok(compareSnapshots(one, three, false)[0], "Popups should not look identical");
SimpleTest.finish();
}
}
var win2 = window.open("data:text/html,<script>window.onload = function() { opener.postMessage('loaded', '*'); }</" + "script><body>Should show</body>");
var win3 = window.open("data:text/html,<script>window.onload = function() { opener.postMessage('loaded', '*'); }</" + "script><body></body>");
});
</script>
</pre>
</body>
</html>

View File

@ -0,0 +1,54 @@
<!DOCTYPE HTML>
<html>
<!--
https://bugzilla.mozilla.org/show_bug.cgi?id=637644
-->
<head>
<title>Test for Bug 637644</title>
<script type="application/javascript" src="/MochiKit/packed.js"></script>
<script type="application/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
<script type="text/javascript" src="/tests/SimpleTest/WindowSnapshot.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=637644">Mozilla Bug 637644</a>
<p id="display"></p>
<div id="content" style="display: none">
</div>
<pre id="test">
<script type="application/javascript">
/** Test for Bug 637644 **/
SimpleTest.waitForExplicitFinish();
addLoadEvent(function() {
var win1 = window.open("", "", "height=500,width=500");
win1.document.body.textContent = "Should show";
var windowsLoaded = 0;
window.onmessage = function (ev) {
is(ev.data, "loaded", "Message should be 'loaded'");
if (++windowsLoaded == 2) {
var one = snapshotWindow(win1);
var two = snapshotWindow(win2);
var three = snapshotWindow(win3);
win1.close();
win2.close();
win3.close();
ok(compareSnapshots(one, two, true)[0], "Popups should look identical");
ok(compareSnapshots(one, three, false)[0], "Popups should not look identical");
SimpleTest.finish();
}
}
var win2 = window.open("data:text/html,<script>window.onload = function() { opener.postMessage('loaded', '*'); }</" + "script><body>Should show</body>", "", "height=500,width=500");
var win3 = window.open("data:text/html,<script>window.onload = function() { opener.postMessage('loaded', '*'); }</" + "script><body></body>", "", "height=500,width=500");
});
</script>
</pre>
</body>
</html>