summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-domain-failure.https.sub.html
diff options
context:
space:
mode:
Diffstat (limited to 'testing/web-platform/tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-domain-failure.https.sub.html')
-rw-r--r--testing/web-platform/tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-domain-failure.https.sub.html49
1 files changed, 49 insertions, 0 deletions
diff --git a/testing/web-platform/tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-domain-failure.https.sub.html b/testing/web-platform/tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-domain-failure.https.sub.html
new file mode 100644
index 0000000000..6fa196e094
--- /dev/null
+++ b/testing/web-platform/tests/html/infrastructure/safe-passing-of-structured-data/shared-array-buffers/window-domain-failure.https.sub.html
@@ -0,0 +1,49 @@
+<!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>
+<body>
+<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;
+ let childCrossOriginIsolated;
+ 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;
+ }
+ if (e.data.name === "hasSharedArrayBuffer") {
+ const hasSharedArrayBuffer = e.data.value;
+
+ // document.domain mutation is no-op because the surrounding agent
+ // cluster's cross-origin isolated is true.
+ assert_equals(domain, "{{domains[www1]}}");
+
+ // crossOriginIsolated is false in the nested frame because the frame is
+ // cross-origin and hence the cross-origin isolated capability is false.
+ // We use assert_equals instead of assert_false here to see if
+ // `childCrossOriginIsolated` is set.
+ assert_equals(childCrossOriginIsolated, false);
+
+ assert_false(hasSharedArrayBuffer);
+ t.done();
+ return;
+ }
+ assert_unreached("Got a message event, expected a messageerror event");
+ });
+ document.body.append(iframe);
+}, "SharedArrayBuffer and a same-origin-domain (but not same-origin) iframe");
+</script>