diff options
Diffstat (limited to 'testing/web-platform/tests/preload/avoid-prefetching-on-text-plain.html')
-rw-r--r-- | testing/web-platform/tests/preload/avoid-prefetching-on-text-plain.html | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/testing/web-platform/tests/preload/avoid-prefetching-on-text-plain.html b/testing/web-platform/tests/preload/avoid-prefetching-on-text-plain.html new file mode 100644 index 0000000000..b14b7e4f8a --- /dev/null +++ b/testing/web-platform/tests/preload/avoid-prefetching-on-text-plain.html @@ -0,0 +1,47 @@ +<!DOCTYPE html> +<title>Ensures content delivered with Content-Type: text/plain header is not prefetched</title> +<!-- Regression test for https://crbug.com/1160665 --> +<script src="/resources/testharness.js"></script> +<script src="/resources/testharnessreport.js"></script> +<script src="/preload/resources/preload_helper.js"></script> +<body> + <script> + setup({single_test: true}); + window.addEventListener("load", function() { + verifyPreloadAndRTSupport(); + // This test works by loading a text/plain iframe containing a <script> tag. + // It then injects some post-load JavaScript to serialize the Performance API + // data and pass it back to this document. + var prefetchingIframe = document.getElementById('prefetching-frame'); + window.addEventListener("message", function(msg) { + // Parse the Performance API data passed from the plain text iframe. + const entries = JSON.parse(msg.data); + const resource_types = []; + for (const entry of entries) { + resource_types.push(entry.entryType); + } + // If preloading is working correctly, should only see the text document + // represented in the performance information. A 'resource' type indicates + // that we've prefetched something. + let resource_found = false; + for (const t of resource_types) { + if (t == "resource") { + resource_found = true; + break; + } + } + assert_false(resource_found, "no resources should be present"); + done(); + }); + prefetchingIframe.addEventListener('load', function() { + // Pass performance API info back to this document, process in above event handler. + const passMsg = 'parent.postMessage(JSON.stringify(performance.getEntries()));'; + prefetchingIframe.contentWindow.eval(passMsg); + }); + // Start the iframe load. + prefetchingIframe.src = "avoid-prefetching-on-text-plain-inner.html"; + }); + </script> + + <iframe id="prefetching-frame"></iframe> +</body> |