Origin-keyed agent clusters: make COI imply origin-keying

All other observable impacts of origin-keying, namely the impact on
postMessage and document.domain, are already in place for cross-origin
isolated agent clusters. So we only need to update the
window.originAgentCluster getter.

Fixed: 1163687
Change-Id: Ie10f26def8de2046d2b0ce69b37d56b3c89db57b
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2630231
Reviewed-by: Yutaka Hirano <yhirano@chromium.org>
Commit-Queue: Domenic Denicola <domenic@chromium.org>
Cr-Commit-Position: refs/heads/master@{#844135}
diff --git a/html/browsers/origin/origin-keyed-agent-clusters/getter-special-cases/cross-origin-isolated.sub.https.html b/html/browsers/origin/origin-keyed-agent-clusters/getter-special-cases/cross-origin-isolated.sub.https.html
new file mode 100644
index 0000000..e10d345
--- /dev/null
+++ b/html/browsers/origin/origin-keyed-agent-clusters/getter-special-cases/cross-origin-isolated.sub.https.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>window.originAgentCluster must be implied by cross-origin isolation</title>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+
+<iframe src="//{{domains[www1]}}:{{location[port]}}/html/browsers/origin/origin-keyed-agent-clusters/resources/coep-frame.html"></iframe>
+
+<div id="log"></div>
+
+<script type="module">
+import { testGetter } from "../resources/helpers.mjs";
+
+setup({ explicit_done: true });
+
+window.onload = () => {
+  // Cross-origin isolated pages are always origin-keyed.
+  testGetter(self, true, "self");
+
+  // Child frames of cross-origin isolated pages must also be cross-origin
+  // isolated, and thus also origin-keyed. Make sure the implementation doesn't
+  // treat them specially in some wierd way, for the purposes of this
+  // implication.
+  testGetter(0, true, "child");
+
+  done();
+};
+</script>
diff --git a/html/browsers/origin/origin-keyed-agent-clusters/getter-special-cases/cross-origin-isolated.sub.https.html.headers b/html/browsers/origin/origin-keyed-agent-clusters/getter-special-cases/cross-origin-isolated.sub.https.html.headers
new file mode 100644
index 0000000..5f8621e
--- /dev/null
+++ b/html/browsers/origin/origin-keyed-agent-clusters/getter-special-cases/cross-origin-isolated.sub.https.html.headers
@@ -0,0 +1,2 @@
+Cross-Origin-Embedder-Policy: require-corp
+Cross-Origin-Opener-Policy: same-origin
diff --git a/html/browsers/origin/origin-keyed-agent-clusters/resources/coep-frame.html b/html/browsers/origin/origin-keyed-agent-clusters/resources/coep-frame.html
new file mode 100644
index 0000000..7cbd89b
--- /dev/null
+++ b/html/browsers/origin/origin-keyed-agent-clusters/resources/coep-frame.html
@@ -0,0 +1,5 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>A page with COEP set that will respond when asked</title>
+
+<script type="module" src="send-header-page-script.mjs"></script>
diff --git a/html/browsers/origin/origin-keyed-agent-clusters/resources/coep-frame.html.headers b/html/browsers/origin/origin-keyed-agent-clusters/resources/coep-frame.html.headers
new file mode 100644
index 0000000..4e798cd
--- /dev/null
+++ b/html/browsers/origin/origin-keyed-agent-clusters/resources/coep-frame.html.headers
@@ -0,0 +1,2 @@
+Cross-Origin-Embedder-Policy: require-corp
+Cross-Origin-Resource-Policy: cross-origin