| <!DOCTYPE html> |
| <title>Ensures that prefetch sends headers as per-spec</title> |
| <script src="/resources/testharness.js"></script> |
| <script src="/resources/testharnessreport.js"></script> |
| <script src="/common/utils.js"></script> |
| <script src="resources/prefetch-helper.js"></script> |
| <body> |
| <script> |
| |
| promise_test(async t => { |
| const {href} = await prefetch({"type": "image/png", file: "green.png"}, t); |
| const [info] = await get_prefetch_info(href); |
| const {headers} = info; |
| assert_equals(headers["sec-fetch-dest"], "empty"); |
| assert_equals(headers["sec-purpose"], "prefetch"); |
| assert_false("origin" in headers); |
| }, "Prefetch should include Sec-Purpose=prefetch and Sec-Fetch-Dest=empty headers"); |
| |
| promise_test(async t => { |
| const {href} = await prefetch({"type": "image/png", file: "green.png"}, t); |
| const [info] = await get_prefetch_info(href); |
| const {headers} = info; |
| assert_false("purpose" in headers); |
| assert_false("x-moz" in headers); |
| }, "Prefetch should not include proprietary headers (X-moz/Purpose)"); |
| |
| promise_test(async t => { |
| const {href} = await prefetch({"type": "image/png", file: "green.png", crossOrigin: "anonymous"}, t); |
| const [info] = await get_prefetch_info(href); |
| const {headers} = info; |
| assert_equals(headers["origin"], document.origin); |
| }, "Prefetch should respect CORS mode"); |
| |
| </script> |
| </body> |