Chromium Code Reviews| 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> |