forked from mirrors/gecko-dev
MozReview-Commit-ID: DfvN9mAFYhI --HG-- rename : testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-77-t-novalid.html => testing/web-platform/tests/conformance-checkers/html-svg/animate-elem-77-t-isvalid.html rename : testing/web-platform/tests/conformance-checkers/html-svg/linking-a-10-f-novalid.html => testing/web-platform/tests/conformance-checkers/html-svg/linking-a-10-f-isvalid.html rename : testing/web-platform/tests/conformance-checkers/html/elements/picture/srcset-microsyntax-leading-dot-x-novalid.html => testing/web-platform/tests/conformance-checkers/html/elements/picture/srcset-microsyntax-leading-dot-x-valid.html rename : testing/web-platform/tests/content-security-policy/_unapproved/script-nonces-hidden.html.headers => testing/web-platform/tests/content-security-policy/nonce-hiding/script-nonces-hidden.tentative.html.headers rename : testing/web-platform/tests/content-security-policy/_unapproved/svgscript-nonces-hidden.html.headers => testing/web-platform/tests/content-security-policy/nonce-hiding/svgscript-nonces-hidden.tentative.html.headers rename : testing/web-platform/tests/html/semantics/interactive-elements/context-menus/contextmenu-event-manual.htm => testing/web-platform/tests/html/webappapis/scripting/events/contextmenu-event-manual.htm
63 lines
1.9 KiB
HTML
63 lines
1.9 KiB
HTML
<!DOCTYPE html>
|
|
<html>
|
|
<head>
|
|
<title>External classic scripts with nomodule content attribute must not run</title>
|
|
<link rel="author" title="Yusuke Suzuki" href="mailto:utatane.tea@gmail.com">
|
|
<link rel="author" title="Ryosuke Niwa" href="mailto:rniwa@webkit.org">
|
|
<script src="/resources/testharness.js"></script>
|
|
<script src="/resources/testharnessreport.js"></script>
|
|
<!-- Load this script synchronously to ensure test cases below can load it in 200ms -->
|
|
<script src="resources/set-script-executed.js"></script>
|
|
</head>
|
|
<body>
|
|
<script>
|
|
let supportsNoModule = "noModule" in document.getElementsByTagName("script")[0];
|
|
|
|
waitForLoadEvent = new Promise((resolve) => {
|
|
window.onload = resolve;
|
|
});
|
|
|
|
promise_test(() => {
|
|
window.executed = false;
|
|
let loaded = false;
|
|
let errored = false;
|
|
|
|
let script = document.createElement('script');
|
|
|
|
script.src = './resources/set-script-executed.js';
|
|
script.onload = () => loaded = true;
|
|
script.onerror = () => errored = true;
|
|
script.noModule = false;
|
|
document.body.appendChild(script);
|
|
|
|
return waitForLoadEvent.then(() => {
|
|
assert_true(supportsNoModule);
|
|
assert_true(executed);
|
|
assert_true(loaded);
|
|
assert_false(errored);
|
|
});
|
|
}, 'An asynchronously loaded classic script with noModule set to false must run');
|
|
|
|
promise_test(() => {
|
|
window.executed = false;
|
|
let loaded = false;
|
|
let errored = false;
|
|
|
|
let script = document.createElement('script');
|
|
script.src = './resources/set-script-executed.js';
|
|
script.onload = () => loaded = true;
|
|
script.onerror = () => errored = true;
|
|
script.noModule = true;
|
|
document.body.appendChild(script);
|
|
|
|
return waitForLoadEvent.then(() => {
|
|
assert_true(supportsNoModule);
|
|
assert_false(executed);
|
|
assert_false(loaded);
|
|
assert_false(errored);
|
|
});
|
|
}, 'An asynchronously loaded classic script with noModule set to true must not run');
|
|
|
|
</script>
|
|
</body>
|
|
</html>
|