| <!DOCTYPE html> |
| <title>Test window.name after bcg swap</title> |
| <script src="/resources/testharness.js"></script> |
| <script src="/resources/testharnessreport.js"></script> |
| <script src="/common/dispatcher/dispatcher.js"></script> |
| <script src="/common/utils.js"></script> |
| <script src="resources/utils.js"></script> |
| |
| <body> |
| <script> |
| promise_test(async () => { |
| const fenced_frame = attachFencedFrameContext(); |
| |
| // This test verifies that COOP is not enabled in fenced frames. To do so, we |
| // set the fenced frame's `window.name` and navigate it to a cross-origin page |
| // with the `Cross-Origin-Opener-Policy: same-origin` response header. |
| await fenced_frame.execute(() => { |
| const remote_origin = get_host_info().REMOTE_ORIGIN; |
| window.name = "test"; |
| const remote_url = new URL(location.pathname + location.search, remote_origin); |
| |
| let existing_pipe_query = remote_url.searchParams.get('pipe'); |
| const all_pipes = existing_pipe_query.split('|'); |
| all_pipes.push('header(Cross-Origin-Opener-Policy, same-origin)'); |
| |
| remote_url.searchParams.set('pipe', all_pipes.join('|')); |
| |
| window.executor.suspend(() => { |
| location.href = remote_url; |
| }); |
| }); |
| |
| // Verify that the fenced frame's `window.name` is still there |
| await fenced_frame.execute(() => { |
| assert_equals(window.name, 'test'); |
| }); |
| |
| }, "window.name after bcg swap"); |
| </script> |
| </body> |