mirror of
https://github.com/servo/servo.git
synced 2025-08-24 22:58:21 +01:00
Auto merge of #15098 - nox:load-fixes, r=jdm
Mark the page source as loaded only after parsing is done <!-- Reviewable:start --> This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/15098) <!-- Reviewable:end -->
This commit is contained in:
commit
6272cb5a51
12 changed files with 117 additions and 107 deletions
|
@ -1,43 +1,43 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title> adding several types of scripts through the DOM and removing some of them confuses scheduler (slow-loading scripts) </title>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="testlib/testlib.js"></script>
|
||||
<script type="text/javascript">
|
||||
setup({explicit_done:true});
|
||||
var head=document.getElementsByTagName('head')[0];
|
||||
function createScript(url, contents) {
|
||||
props = {};
|
||||
if (url) {
|
||||
props.src = url;
|
||||
}
|
||||
return testlib.addScript(contents, props, head, false);
|
||||
}
|
||||
var t = async_test(undefined, {timeout:10000})
|
||||
<head>
|
||||
<title> adding several types of scripts through the DOM and removing some of them confuses scheduler (slow-loading scripts) </title>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="testlib/testlib.js"></script>
|
||||
<script type="text/javascript">
|
||||
setup({ explicit_done: true });
|
||||
var head = document.getElementsByTagName('head')[0];
|
||||
function createScript(url, contents) {
|
||||
props = {};
|
||||
if (url) {
|
||||
props.src = url;
|
||||
}
|
||||
return testlib.addScript(contents, props, head, false);
|
||||
}
|
||||
var t = async_test(undefined, { timeout: 10000 })
|
||||
|
||||
function test() {
|
||||
document.getElementById("log").textContent = "Please wait..."
|
||||
var url = 'scripts/include-1.js?pipe=trickle(d1)';
|
||||
var script = createScript(url);
|
||||
var script2 = createScript('', 'log("Script #2 ran")');
|
||||
head.removeChild(script2);
|
||||
var url = 'scripts/include-2.js?pipe=trickle(d2)';
|
||||
var script3 = createScript(url);
|
||||
head.removeChild(script3);
|
||||
function test() {
|
||||
document.getElementById("log").textContent = "Please wait..."
|
||||
var url = 'scripts/include-1.js?pipe=trickle(d1)';
|
||||
var script = createScript(url);
|
||||
var script2 = createScript('', 'log("Script #2 ran")');
|
||||
head.removeChild(script2);
|
||||
var url = 'scripts/include-2.js?pipe=trickle(d2)';
|
||||
var script3 = createScript(url);
|
||||
head.removeChild(script3);
|
||||
|
||||
setTimeout(t.step_func(function() {
|
||||
done();
|
||||
assert_array_equals(eventOrder, ['Script #2 ran', 'external script #1', 'external script #2']);
|
||||
t.done();
|
||||
}), 5500);
|
||||
setTimeout(t.step_func(function () {
|
||||
done();
|
||||
assert_array_equals(eventOrder, ['Script #2 ran', 'external script #1', 'external script #2']);
|
||||
t.done();
|
||||
}), 5500);
|
||||
|
||||
};
|
||||
onload = t.step_func(test)
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
<div id="log">FAILED (This TC requires JavaScript enabled)</div>
|
||||
</body>
|
||||
</html*>
|
||||
};
|
||||
onload = t.step_func(test)
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
<div id="log">FAILED (This TC requires JavaScript enabled)</div>
|
||||
</body>
|
||||
</html>
|
||||
|
|
|
@ -1,32 +1,31 @@
|
|||
<!DOCTYPE html>
|
||||
<html><head>
|
||||
<title>scheduler: external defer script created with createContextualFragment</title>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="testlib/testlib.js"></script>
|
||||
<title>scheduler: external defer script created with createContextualFragment</title>
|
||||
<script src="/resources/testharness.js"></script>
|
||||
<script src="/resources/testharnessreport.js"></script>
|
||||
<script src="testlib/testlib.js"></script>
|
||||
</head>
|
||||
<div id="log"></div>
|
||||
<script>
|
||||
log('inline script #1');
|
||||
var t = async_test();
|
||||
|
||||
t.step(function() {
|
||||
var range = document.createRange();
|
||||
var fragment = range.createContextualFragment("<script defer src='scripts/include-1.js?pipe=trickle(d1)'><\/script>");
|
||||
document.body.appendChild(fragment.firstChild);
|
||||
});
|
||||
|
||||
addEventListener("DOMContentLoaded", t.step_func(function() {
|
||||
assert_array_equals(eventOrder, ['inline script #1', 'end inline script #1']);
|
||||
t.done();
|
||||
}));
|
||||
<body>
|
||||
<div id="log"></div>
|
||||
<script>
|
||||
log('inline script #1');
|
||||
var t = async_test();
|
||||
|
||||
addEventListener("load", t.step_func(function() {
|
||||
assert_array_equals(eventOrder, ['inline script #1', 'end inline script #1', 'external script #1']);
|
||||
t.done();
|
||||
}));
|
||||
|
||||
t.step(function () {
|
||||
var range = document.createRange();
|
||||
var fragment = range.createContextualFragment("<script defer src='scripts/include-1.js?pipe=trickle(d1)'><\/script>");
|
||||
document.body.appendChild(fragment.firstChild);
|
||||
});
|
||||
|
||||
log('end inline script #1');
|
||||
</script>
|
||||
addEventListener("DOMContentLoaded", t.step_func(function () {
|
||||
assert_array_equals(eventOrder, ['inline script #1', 'end inline script #1']);
|
||||
}));
|
||||
|
||||
addEventListener("load", t.step_func_done(function () {
|
||||
assert_array_equals(eventOrder, ['inline script #1', 'end inline script #1', 'external script #1']);
|
||||
}));
|
||||
|
||||
log('end inline script #1');
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue