Index: third_party/WebKit/LayoutTests/http/tests/loading/doc-write-sync-third-party-script-block.html |
diff --git a/third_party/WebKit/LayoutTests/http/tests/loading/doc-write-sync-third-party-script-block.html b/third_party/WebKit/LayoutTests/http/tests/loading/doc-write-sync-third-party-script-block.html |
new file mode 100644 |
index 0000000000000000000000000000000000000000..c9b719952229fc30d9714f7efb4c79cc59a1b021 |
--- /dev/null |
+++ b/third_party/WebKit/LayoutTests/http/tests/loading/doc-write-sync-third-party-script-block.html |
@@ -0,0 +1,80 @@ |
+<!DOCTYPE html> |
+<script src="../resources/testharness.js"></script> |
+<script src="../resources/testharnessreport.js"></script> |
+<script> |
+ var sameOrigin = 'http://127.0.0.1:8000' |
+ var crossOrigin = 'http://localhost:8000' |
+ var filePath = '/loading/resources/js-loaded.js' |
+ var jsLoaded = false; |
+ var loadSuccess = false; |
+ |
+ src = crossOrigin + filePath; |
+ document.write('<scr' + 'ipt src="' + src + '" onload="loadSuccess=true"></scr' + 'ipt>'); |
+</script> |
+ |
+<script> |
+ test(function () { |
+ assert_true(jsLoaded); |
+ assert_true(loadSuccess); |
+ }, "Blocking of scripts doesn't come into effect since feature is disabled"); |
+ |
+</script> |
+<script> |
+ if (window.internals) { |
+ internals.settings.setDisallowFetchForDocWrittenScriptsInMainFrame(true); |
+ internals.setNetworkStateNotifierTestOnly(true); |
+ internals.setNetworkConnectionInfo('cellular2g', 1.0); |
+ internals.evictAllResources(); |
jkarlin
2016/04/08 17:17:59
I don't think you meant to include this.
shivanisha
2016/04/08 18:41:11
I am including this to make sure cached resources
|
+ |
+ // Reset the state of the singleton network state notifier. |
+ window.addEventListener('beforeunload', function() { |
+ internals.settings.setDisallowFetchForDocWrittenScriptsInMainFrame(false); |
+ internals.setNetworkStateNotifierTestOnly(false); |
+ }, false); |
+ } |
+ |
+ src = sameOrigin + filePath; |
+ 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 = crossOrigin + filePath; |
+ 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; |
+ var loadFailed = false; |
+ |
+ filePath = '/loading/resources/js-loaded.js?1'; |
+ src = crossOrigin + filePath; |
+ document.write('<scr' + 'ipt src="' + src + '" onload="loadSuccess=true" onError="loadFailed=true"></scr' + 'ipt>'); |
+</script> |
+ |
+<script> |
+ test(function () { |
+ assert_false(jsLoaded); |
+ assert_false(loadSuccess); |
+ assert_true(loadFailed); |
+ }, "cross origin doc.written scripts are blocked"); |
+</script> |