Index: third_party/WebKit/LayoutTests/http/tests/loading/doc-write-sync-third-party-script-block1.html |
diff --git a/third_party/WebKit/LayoutTests/http/tests/loading/doc-write-sync-third-party-script-block1.html b/third_party/WebKit/LayoutTests/http/tests/loading/doc-write-sync-third-party-script-block1.html |
new file mode 100644 |
index 0000000000000000000000000000000000000000..cc7329e0cebccbb0c0e0b11f41fe14236161bf3f |
--- /dev/null |
+++ b/third_party/WebKit/LayoutTests/http/tests/loading/doc-write-sync-third-party-script-block1.html |
@@ -0,0 +1,71 @@ |
+<!DOCTYPE html> |
jkarlin
2016/04/06 14:55:31
instead of ...-block1.html, how about ...-block-th
shivanisha
2016/04/06 20:40:09
sounds good. Will rename the three different test
|
+<script src="../resources/testharness.js"></script> |
+<script src="../resources/testharnessreport.js"></script> |
+<script> |
+ var jsLoaded = false; |
+ var loadsuccess = false; |
Bryan McQuade
2016/04/06 12:37:21
for consistency let's name this loadSuccess
shivanisha
2016/04/06 14:18:36
done
|
+ |
+ src = 'http://localhost:8000/loading/resources/js-loaded.js'; |
+ document.write('<scr' + 'ipt src="' + src + '" onload="loadsuccess=true"></scr' + 'ipt>'); |
+</script> |
+ |
+<script> |
+ test(function () { |
+ assert_true(jsLoaded); |
+ assert_true(loadsuccess); |
+ }, "Blocking script doesn't kick in since feature is disabled"); |
+ |
+</script> |
+<script> |
+ if (window.internals){ |
+ internals.settings.setDisallowFetchForDocWrittenScriptsInMainFrame(true); |
+ internals.setNetworkStateNotifierTestOnly(true); |
+ internals.setNetworkConnectionInfo('cellular2g', 2.0); |
+ } |
+ src = './resources/js-loaded.js'; |
+ jsLoaded = false; |
+ loadsuccess = false; |
+ document.write('<scr' + 'ipt src="' + src + '" onload="loadsuccess=true"></scr' + 'ipt>'); |
+</script> |
+ |
+<script> |
+ test(function () { |
+ assert_true(jsLoaded); |
+ assert_true(loadsuccess); |
+ }, "Same domain doc.written scripts are not blocked"); |
+</script> |
+ |
+<script> |
+ var jsLoaded = false; |
+ var loadsuccess = false; |
+ |
+ src = 'http://localhost:8000/loading/resources/js-loaded.js'; |
jkarlin
2016/04/06 14:55:31
It's subtle that this is a different origin. Can y
shivanisha
2016/04/06 20:40:09
sounds good
|
+ document.write('<scr' + 'ipt src="' + src + '" onload="loadsuccess=true"></scr' + 'ipt>'); |
+</script> |
+ |
+<script> |
+ test(function () { |
+ assert_true(jsLoaded); |
+ assert_true(loadsuccess); |
+ }, "cross-origin script not blocked since it is cached"); |
+ |
+</script> |
+<script> |
+ jsLoaded = false; |
+ loadsuccess = false; |
+ |
+ src = 'http://localhost:8000/loading/resources/js-loaded1.js'; |
Bryan McQuade
2016/04/06 12:37:21
great, thanks! this is fine, but you might be able
shivanisha
2016/04/06 14:18:36
Yes, this works. Removing js-loaded1.js
|
+ document.write('<scr' + 'ipt src="' + src + '" onload="loadsuccess=true"></scr' + 'ipt>'); |
Bryan McQuade
2016/04/06 12:37:21
can we also add an onError="loadFailed=true" and a
shivanisha
2016/04/06 14:18:36
Added
|
+</script> |
+ |
+<script> |
+ test(function () { |
+ assert_false(jsLoaded); |
+ assert_false(loadsuccess); |
+ }, "cross origin doc.written scripts are blocked"); |
+ |
+ window.addEventListener('beforeunload', function() { |
+ internals.setNetworkStateNotifierTestOnly(false); |
+ internals.settings.setDisallowFetchForDocWrittenScriptsInMainFrame(false); |
+ }, false); |
+</script> |