summaryrefslogtreecommitdiffstats
path: root/dom/tests/mochitest/script/test_bug1053321.html
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--dom/tests/mochitest/script/test_bug1053321.html50
1 files changed, 50 insertions, 0 deletions
diff --git a/dom/tests/mochitest/script/test_bug1053321.html b/dom/tests/mochitest/script/test_bug1053321.html
new file mode 100644
index 0000000000..bad2b4b4c4
--- /dev/null
+++ b/dom/tests/mochitest/script/test_bug1053321.html
@@ -0,0 +1,50 @@
+<!DOCTYPE html>
+<html>
+<!--
+This test confirms we don't block body referred sub-resources by head-referenced defer and async scripts.
+If this test times out, the two image requests, that unblock the two script requests, never happen, hence
+are unexpectedly blocked.
+-->
+
+<head>
+ <script src="/tests/SimpleTest/SimpleTest.js"></script>
+ <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" />
+
+ <script>
+ // The two scripts below are expected to load and call scriptLoaded().
+ SimpleTest.waitForExplicitFinish();
+
+ window.expected_scripts = {
+ "defer": true,
+ "async": true,
+ };
+
+ function scriptLoaded(script)
+ {
+ ok(true, 'Script ' + script + ' executed');
+ delete window.expected_scripts[script];
+
+ let expecting = Object.keys(window.expected_scripts).length;
+ info("Expecting " + expecting + " more script(s) to execute");
+
+ if (expecting == 0) {
+ SimpleTest.finish();
+ }
+ }
+ </script>
+
+ <!-- this script is not loaded until file_blocked_script.sjs?unblock&defer request is made,
+ when this script is executed, it calls SimpleTest.finish().
+ -->
+ <script defer src="file_blocked_script.sjs?blocked&defer"></script>
+
+ <!-- this script is not loaded until file_blocked_script.sjs?unblock&async request is made,
+ when this script is executed, it calls SimpleTest.finish().
+ -->
+ <script async src="file_blocked_script.sjs?blocked&async"></script>
+</head>
+
+<body>
+ <img src="file_blocked_script.sjs?unblock&defer"/>
+ <img src="file_blocked_script.sjs?unblock&async"/>
+</body>