diff options
author | wolfbeast <mcwerewolf@gmail.com> | 2018-07-10 13:28:03 +0200 |
---|---|---|
committer | wolfbeast <mcwerewolf@gmail.com> | 2018-07-10 13:28:03 +0200 |
commit | e0a8dcfed131ffa58a5e2cb1d30fe48c745c2fdc (patch) | |
tree | a3e4bc52cb2fdce52d8dbf88a4db41d81017c1b8 /dom/html/test/file_script_module.html | |
parent | 100c6a7e95b8e9624fc43fabc96d88070635d1ef (diff) | |
download | UXP-e0a8dcfed131ffa58a5e2cb1d30fe48c745c2fdc.tar UXP-e0a8dcfed131ffa58a5e2cb1d30fe48c745c2fdc.tar.gz UXP-e0a8dcfed131ffa58a5e2cb1d30fe48c745c2fdc.tar.lz UXP-e0a8dcfed131ffa58a5e2cb1d30fe48c745c2fdc.tar.xz UXP-e0a8dcfed131ffa58a5e2cb1d30fe48c745c2fdc.zip |
Bug 1330900 - Implement <script nomodule>
This patch implements:
- noModule getter/setter for HTMLScriptElement
- the nomodule attribute for HTMLScriptElement
- the logic in nsScriptLoader that denies the loading of a nomodule script
- tests
Tag #618
Diffstat (limited to 'dom/html/test/file_script_module.html')
-rw-r--r-- | dom/html/test/file_script_module.html | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/dom/html/test/file_script_module.html b/dom/html/test/file_script_module.html new file mode 100644 index 000000000..78c499265 --- /dev/null +++ b/dom/html/test/file_script_module.html @@ -0,0 +1,42 @@ +<html> +<body> + <script> +// Helper methods. +function ok(a, msg) { + parent.postMessage({ check: !!a, msg }, "*") +} + +function is(a, b, msg) { + ok(a === b, msg); +} + +function finish() { + parent.postMessage({ done: true }, "*"); +} + </script> + + <script id="a" nomodule>42</script> + <script id="b">42</script> + <script> +// Let's test the behavior of nomodule attribute and noModule getter/setter. +var a = document.getElementById("a"); +is(a.noModule, true, "HTMLScriptElement with nomodule attribute has noModule set to true"); +a.removeAttribute("nomodule"); +is(a.noModule, false, "HTMLScriptElement without nomodule attribute has noModule set to false"); +a.noModule = true; +ok(a.hasAttribute('nomodule'), "HTMLScriptElement.noModule = true add the nomodule attribute"); + +var b = document.getElementById("b"); +is(b.noModule, false, "HTMLScriptElement without nomodule attribute has noModule set to false"); +b.noModule = true; +ok(b.hasAttribute('nomodule'), "HTMLScriptElement.noModule = true add the nomodule attribute"); + </script> + + <script>var foo = 42;</script> + <script nomodule>foo = 43;</script> + <script> +is(foo, 42, "nomodule HTMLScriptElements should not be executed in modern browsers"); +finish(); + </script> +</body> +</html> |