diff options
Diffstat (limited to 'dom/tests/mochitest/script/test_bug1053321.html')
-rw-r--r-- | dom/tests/mochitest/script/test_bug1053321.html | 50 |
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> |