// META: script=/common/get-host-info.sub.js // META: script=/common/utils.js // META: script=/common/dispatcher/dispatcher.js // META: script=/html/cross-origin-embedder-policy/credentialless/resources/common.js // META: script=./resources/common.js // META: timeout=long setup(() => { assert_implements(window.HTMLFencedFrameElement, "HTMLFencedFrameElement is not supported."); }) // Check whether this anonymous bit propagates toward FencedFrame. It shouldn't. promise_test(async test => { const origin = get_host_info().HTTPS_ORIGIN; const msg_queue = token(); // 1. Create an anonymous iframe. const frame_anonymous = newAnonymousIframe(origin); // 2. Create a FencedFrame within it. send(frame_anonymous, ` const importScript = ${importScript}; await importScript("/common/utils.js"); await importScript("/html/cross-origin-embedder-policy/credentialless" + "/resources/common.js"); await importScript("/html/anonymous-iframe/resources/common.js"); const frame_fenced = newFencedFrame("${origin}"); send("${msg_queue}", frame_fenced); `); const frame_fenced = await receive(msg_queue); // 3. Expect it not to be considered anonymous. send(frame_fenced, ` send("${msg_queue}", window.anonymouslyFramed); `); assert_equals(await receive(msg_queue), "false", "Check window.anonymouslyFramed in FencedFrame"); }, 'FencedFrame within an AnonymousIframe is not anonymous')