Bug 577508 - Make the HTML5 parser hide the old page from view when the page being loaded shows a dialog. r=bzbarsky, a=blocking2.0-final.

This commit is contained in:
Henri Sivonen 2010-07-21 12:49:36 +03:00
Родитель 4a4cdce2c3
Коммит d77d338142
2 изменённых файлов: 28 добавлений и 18 удалений

Просмотреть файл

@ -9,7 +9,7 @@ https://bugzilla.mozilla.org/show_bug.cgi?id=469170
<script type="application/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
<link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/>
</head>
<body>
<body onload="runTest();">
<p><a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=469170">Mozilla Bug 469170</a></p>
<iframe id="source" width="50" height="50"
@ -20,28 +20,34 @@ https://bugzilla.mozilla.org/show_bug.cgi?id=469170
<script type="application/javascript">
/** Test for Bug 469170 **/
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
var canvas = document.getElementById('scratch');
var source = document.getElementById('source').contentWindow;
var context = canvas.getContext("2d");
SimpleTest.waitForExplicitFinish();
context.clearRect(0, 0, canvas.width, canvas.height);
context.drawWindow(source, 0, 0, source.innerWidth, source.innerHeight,
"transparent");
function runTest() {
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
var components = [ "red", "green", "blue", "alpha" ];
var canvas = document.getElementById('scratch');
var source = document.getElementById('source').contentWindow;
var context = canvas.getContext("2d");
var data = context.getImageData(0, 0, canvas.width, canvas.height).data;
var failed = false;
for (var i = 0; i < data.length; i++) {
if (data[i] != 0) {
is(data[i], 0, "pixel " + Math.floor(i/4) + " " + components[i%4]);
failed = true;
context.clearRect(0, 0, canvas.width, canvas.height);
context.drawWindow(source, 0, 0, source.innerWidth, source.innerHeight,
"transparent");
var components = [ "red", "green", "blue", "alpha" ];
var data = context.getImageData(0, 0, canvas.width, canvas.height).data;
var failed = false;
for (var i = 0; i < data.length; i++) {
if (data[i] != 0) {
is(data[i], 0, "pixel " + Math.floor(i/4) + " " + components[i%4]);
failed = true;
}
}
}
if (!failed) {
ok(!failed, "all pixels fully transparent");
if (!failed) {
ok(!failed, "all pixels fully transparent");
}
SimpleTest.finish();
}
</script>
</pre>

Просмотреть файл

@ -201,6 +201,10 @@ nsHtml5TreeOpExecutor::SetParser(nsIParser* aParser)
void
nsHtml5TreeOpExecutor::FlushPendingNotifications(mozFlushType aType)
{
if (aType >= Flush_InterruptibleLayout) {
// Bug 577508 / 253951
nsContentSink::StartLayout(PR_FALSE);
}
}
void