Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(76)

Unified Diff: third_party/WebKit/LayoutTests/http/tests/loading/doc-write-sync-third-party-script-block.html

Issue 1849223002: Blocking synchronous and third party doc.written scripts (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Applied patch on latest from origin/master, review comments Created 4 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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>

Powered by Google App Engine
This is Rietveld 408576698