| <!DOCTYPE html> |
| <meta charset="utf-8"> |
| <title>Structured cloning of SharedArrayBuffers into same-origin-domain windows</title> |
| <link rel="help" href="https://html.spec.whatwg.org/multipage/#structuredserialize"> |
| <link rel="author" title="Domenic Denicola" href="mailto:d@domenic.me"> |
| <script src="/resources/testharness.js"></script> |
| <script src="/resources/testharnessreport.js"></script> |
| |
| <div id="log"></div> |
| |
| <script> |
| "use strict"; |
| document.domain = "{{host}}"; |
| |
| async_test(t => { |
| const iframe = document.createElement("iframe"); |
| t.add_cleanup(() => iframe.remove()); |
| iframe.src = "//{{domains[www1]}}:{{location[port]}}/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/resources/iframe-domain-failure.sub.html"; |
| let domain = null; |
| let childCrossOriginIsolated = null; |
| window.onmessage = t.step_func((e) => { |
| if (e.data.name === "domain") { |
| domain = e.data.value; |
| return; |
| } |
| if (e.data.name === "crossOriginIsolated") { |
| childCrossOriginIsolated = e.data.value; |
| return; |
| } |
| assert_unreached("Got a message event, expected a messageerror event"); |
| }); |
| window.onmessageerror = t.step_func_done(() => { |
| // crossOriginIsolated is false in the nested frame because the frame is |
| // cross-origin and hence the cross-origin isolated capability is false. |
| assert_equals(childCrossOriginIsolated, false); |
| // But document.domain mutation is no-op because the surrounding agent |
| // cluster's cross-origin isolated is true. |
| assert_equals(domain, "{{domains[www1]}}"); |
| }); |
| document.body.append(iframe); |
| }, "SharedArrayBuffer and a same-origin-domain (but not same-origin) iframe"); |
| </script> |