| Index: third_party/WebKit/LayoutTests/http/tests/loading/doc-write-sync-third-party-script-reload.html
 | 
| diff --git a/third_party/WebKit/LayoutTests/http/tests/loading/doc-write-sync-third-party-script-reload.html b/third_party/WebKit/LayoutTests/http/tests/loading/doc-write-sync-third-party-script-reload.html
 | 
| new file mode 100644
 | 
| index 0000000000000000000000000000000000000000..f4d03d2f633c1f5e32305518b4c9c5fe57127e26
 | 
| --- /dev/null
 | 
| +++ b/third_party/WebKit/LayoutTests/http/tests/loading/doc-write-sync-third-party-script-reload.html
 | 
| @@ -0,0 +1,82 @@
 | 
| +<!DOCTYPE html>
 | 
| +<script src="../resources/testharness.js"></script>
 | 
| +<script src="../resources/testharnessreport.js"></script>
 | 
| +<script>
 | 
| +    var reloadTestSuccess = false;
 | 
| +</script>
 | 
| +
 | 
| +<script>
 | 
| +    test(function () {
 | 
| +        assert_true(window.internals !== null);
 | 
| +    }, "window.internals is required for the test to run");
 | 
| +
 | 
| +    internals.settings.setDisallowFetchForDocWrittenScriptsInMainFrameOnSlowConnections(true);
 | 
| +    internals.setNetworkStateNotifierTestOnly(true);
 | 
| +    internals.setNetworkConnectionInfo('cellular2g', 1.0);
 | 
| +    internals.evictAllResources();
 | 
| +
 | 
| +    window.addEventListener('beforeunload', function() {
 | 
| +        internals.settings.setDisallowFetchForDocWrittenScriptsInMainFrameOnSlowConnections(false);
 | 
| +        internals.setNetworkStateNotifierTestOnly(false);
 | 
| +        // Remove localStorage items, just in case they haven't been
 | 
| +        // already removed, due to test failure.
 | 
| +        if (window.localStorage.getItem("errorCount") !== null) {
 | 
| +            window.localStorage.removeItem("errorCount");
 | 
| +        }
 | 
| +
 | 
| +        if (window.localStorage.getItem("successCount") !== null) {
 | 
| +            window.localStorage.removeItem("successCount");
 | 
| +        }
 | 
| +    }, false);
 | 
| +
 | 
| +    if (window.localStorage.getItem("errorCount") === null) {
 | 
| +        window.localStorage.setItem("errorCount", 0);
 | 
| +    }
 | 
| +
 | 
| +    if (window.localStorage.getItem("successCount") === null) {
 | 
| +        window.localStorage.setItem("successCount", 0);
 | 
| +    }
 | 
| +
 | 
| +    var crossOrigin = 'http://localhost:8000';
 | 
| +    var filePath = '/loading/resources/js-loaded.js?reload';
 | 
| +
 | 
| +    // First time the script will be blocked and onError will reload the page.
 | 
| +    // On reload the script should not be blocked.
 | 
| +    // This tests two types of reload, one with and one without cache bypass.
 | 
| +    // The script should not be blocked in both cases.
 | 
| +    src = crossOrigin + filePath;
 | 
| +    document.write('<scr' + 'ipt src="' + src + '" onload="test(successTest,\'Load Success\')" onError="test(errorTest,\'Load Error\')"></scr' + 'ipt>');
 | 
| +
 | 
| +    var successTest = function() {
 | 
| +        assert_equals(+window.localStorage.getItem("errorCount"), 1);
 | 
| +
 | 
| +        var successCount = +window.localStorage.getItem("successCount");
 | 
| +        assert_greater_than_equal(successCount, 0);
 | 
| +
 | 
| +        if (successCount == 0)
 | 
| +        {
 | 
| +            window.localStorage.setItem("successCount", 1);
 | 
| +            internals.forceReload(true);
 | 
| +            return;
 | 
| +        }
 | 
| +
 | 
| +        assert_equals(successCount, 1);
 | 
| +        window.localStorage.removeItem("errorCount");
 | 
| +        window.localStorage.removeItem("successCount");
 | 
| +        reloadTestSuccess=true;
 | 
| +    }
 | 
| +
 | 
| +    var errorTest = function() {
 | 
| +        assert_equals(+window.localStorage.getItem("errorCount"), 0);
 | 
| +        assert_equals(+window.localStorage.getItem("successCount"), 0);
 | 
| +        window.localStorage.setItem("errorCount", 1);
 | 
| +        internals.forceReload(false);
 | 
| +    }
 | 
| +
 | 
| +</script>
 | 
| +
 | 
| +<script>
 | 
| +    test(function () {
 | 
| +        assert_true(reloadTestSuccess);
 | 
| +    }, "cross origin doc.written scripts are not blocked in a page reload");
 | 
| +</script>
 | 
| 
 |