summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/resource-timing/connection-reuse.html
diff options
context:
space:
mode:
Diffstat (limited to 'testing/web-platform/tests/resource-timing/connection-reuse.html')
-rw-r--r--testing/web-platform/tests/resource-timing/connection-reuse.html56
1 files changed, 56 insertions, 0 deletions
diff --git a/testing/web-platform/tests/resource-timing/connection-reuse.html b/testing/web-platform/tests/resource-timing/connection-reuse.html
new file mode 100644
index 0000000000..a1bc927cfd
--- /dev/null
+++ b/testing/web-platform/tests/resource-timing/connection-reuse.html
@@ -0,0 +1,56 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8" />
+<title>Resource Timing connection reuse</title>
+<link rel="author" title="Google" href="http://www.google.com/" />
+<link rel="help" href="https://www.w3.org/TR/resource-timing-2/#sec-performanceresourcetiming"/>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="/common/get-host-info.sub.js"></script>
+<script src="resources/entry-invariants.js"></script>
+<script src="resources/connection-reuse-test.js"></script>
+<script>
+ const {HTTPS_ORIGIN} = get_host_info();
+
+ // Fetches the given subresource a couple times with the same connection.
+ const http_path = "resources/fake_responses.py";
+ connection_reuse_test(http_path,
+ {
+ 'on_200': invariants.assert_tao_pass_no_redirect_http,
+ 'on_304': invariants.assert_tao_pass_304_not_modified_http,
+ }, "Reuse HTTP connection");
+
+ // Like above, but the subresource is fetched over HTTPS while this page is
+ // fetched over HTTP.
+ const https_url = `${HTTPS_ORIGIN}/resource-timing/${http_path}`;
+ connection_reuse_test(https_url,
+ {
+ 'on_200': invariants.assert_tao_pass_no_redirect_https,
+ 'on_304': invariants.assert_tao_pass_304_not_modified_https,
+ }, "Reuse HTTPS connection from HTTP page");
+
+ // Like the above mixed-content test but the final resource is behind an HTTP
+ // redirect response.
+ const redirect_path = (() => {
+ // The resource behind the redirect is the same fake_responses.py handler
+ // on the HTTPS origin. Pass it through encodeURIComponent so that it can
+ // be passed through a query-parameter.
+ const redirect_url = encodeURIComponent(https_url)
+ // The request is made to the HTTPS origin with a query parameter that will
+ // cause a 302 response.
+ return `${https_url}?redirect=${redirect_url}`;
+ })();
+ connection_reuse_test(redirect_path,
+ {
+ 'on_200': invariants.assert_tao_enabled_cross_origin_redirected_resource,
+ 'on_304': invariants.assert_tao_enabled_cross_origin_redirected_resource,
+ }, "Reuse HTTPS connection with redirects from an HTTP page");
+</script>
+</head>
+<body>
+<h1>Description</h1>
+<p>See <a href="resources/connection-reuse-test.js">the included test
+ script</a></p>
+</body>
+</html>