blob: ab878f88961077625268d5e6a4fc4ae29b3b8e1c [file] [log] [blame]
<title>Accept-CH-Lifetime test with cross-origin iframe</title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
Apart from this webpage, the test opens another html web page. One test is run
in this web page, and another in the second web page.
// This test fetches resources/http_equiv_accept_ch_lifetime.html in a cross
// origin iframe. The response to that webpage contains Accept-CH and
// Accept-CH-Lifetime http-equiv headers.
// Fetching that webpage should NOT cause the user-agent to persist origin
// preferences for the client hints specified.
// Next, to verify if the origin preferences were NOT persisted by the user
// agent, this test fetches resources/do_not_expect_client_hints_headers.html
// in a new window. Fetching of
// resources/do_not_expect_client_hints_headers.html
// verifies that the user agent did not actually sent the client hints in the
// request headers.
// Test is marked as tentative until
// is resolved.
// First, verify the initial state to make sure that the browser does not have
// client hints preferences cached from a previous run of the test.
promise_test(t => {
return fetch("").then(r => {
assert_equals(r.status, 200)
// Verify that the browser did not include client hints in the request
// headers when fetching
assert_false(r.headers.has("device-memory-received"), "device-memory-received");
}, "Precondition: Test that the browser does not have client hints preferences cached");
async_test(t => {
window.addEventListener('message', function(e) {
if(!e.source.location.pathname.includes("do_not_expect_client_hints_headers.html")) {
if(typeof != "string")
assert_equals(, "PASS");
}, "Loading of resources/do_not_expect_client_hints_headers.html did not finish.");
function acceptChLifetimeLoaded() {
var verify_win ="resources/do_not_expect_client_hints_headers.html");
assert_not_equals(verify_win, null, "Popup windows not allowed?");
<!-- Fetching this webpage should NOT cause user-agent to persist client hint
preferences for the origin.-->
<iframe onload="acceptChLifetimeLoaded()" src="https://{{hosts[][www]}}:{{ports[https][0]}}/client-hints/resources/http_equiv_accept_ch_lifetime.html"></iframe>