summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/meta/fenced-frame
diff options
context:
space:
mode:
Diffstat (limited to 'testing/web-platform/meta/fenced-frame')
-rw-r--r--testing/web-platform/meta/fenced-frame/ancestor-throttle.https.html.ini18
-rw-r--r--testing/web-platform/meta/fenced-frame/anchor-focus.https.html.ini6
-rw-r--r--testing/web-platform/meta/fenced-frame/autofocus-denied.https.html.ini3
-rw-r--r--testing/web-platform/meta/fenced-frame/automatic-beacon-click-handler.https.html.ini6
-rw-r--r--testing/web-platform/meta/fenced-frame/background-fetch.https.html.ini18
-rw-r--r--testing/web-platform/meta/fenced-frame/background-sync.https.html.ini30
-rw-r--r--testing/web-platform/meta/fenced-frame/badging.https.html.ini12
-rw-r--r--testing/web-platform/meta/fenced-frame/battery_status.https.html.ini3
-rw-r--r--testing/web-platform/meta/fenced-frame/before-unload.https.html.ini3
-rw-r--r--testing/web-platform/meta/fenced-frame/can-load-api.https.html.ini21
-rw-r--r--testing/web-platform/meta/fenced-frame/change-src-attribute-after-config-installation-does-not-trigger-navigation.https.html.ini3
-rw-r--r--testing/web-platform/meta/fenced-frame/client-hints-meta.https.html.ini3
-rw-r--r--testing/web-platform/meta/fenced-frame/client-hints.https.html.ini3
-rw-r--r--testing/web-platform/meta/fenced-frame/compute-pressure.https.html.ini3
-rw-r--r--testing/web-platform/meta/fenced-frame/config-installation-triggers-navigation-of-navigated-fenced-frame.https.html.ini3
-rw-r--r--testing/web-platform/meta/fenced-frame/config-installation-triggers-navigation.https.html.ini3
-rw-r--r--testing/web-platform/meta/fenced-frame/config-with-empty-url-installation-unloads-navigated-fenced-frame.https.html.ini3
-rw-r--r--testing/web-platform/meta/fenced-frame/consume-user-activation.https.html.ini3
-rw-r--r--testing/web-platform/meta/fenced-frame/content-index.https.html.ini18
-rw-r--r--testing/web-platform/meta/fenced-frame/coop-bcg-swap.https.html.ini3
-rw-r--r--testing/web-platform/meta/fenced-frame/create-credential.https.html.ini3
-rw-r--r--testing/web-platform/meta/fenced-frame/create-in-sandbox-and-adopt-outside-sandbox.https.html.ini3
-rw-r--r--testing/web-platform/meta/fenced-frame/csp-allowed.https.html.ini36
-rw-r--r--testing/web-platform/meta/fenced-frame/csp-blocked.https.html.ini78
-rw-r--r--testing/web-platform/meta/fenced-frame/csp-fenced-frame-src-allowed.https.html.ini3
-rw-r--r--testing/web-platform/meta/fenced-frame/csp-fenced-frame-src-blocked.https.html.ini6
-rw-r--r--testing/web-platform/meta/fenced-frame/csp-frame-src-allowed.https.html.ini3
-rw-r--r--testing/web-platform/meta/fenced-frame/csp-frame-src-blocked.https.html.ini6
-rw-r--r--testing/web-platform/meta/fenced-frame/csp-transparent-url.https.html.ini12
-rw-r--r--testing/web-platform/meta/fenced-frame/csp.https.html.ini3
-rw-r--r--testing/web-platform/meta/fenced-frame/cspee.https.html.ini15
-rw-r--r--testing/web-platform/meta/fenced-frame/default-enabled-features-allow-all.https.html.ini6
-rw-r--r--testing/web-platform/meta/fenced-frame/default-enabled-features-allow-none.https.html.ini6
-rw-r--r--testing/web-platform/meta/fenced-frame/default-enabled-features-allow-self.https.html.ini12
-rw-r--r--testing/web-platform/meta/fenced-frame/default-enabled-features-attribute-allow.https.html.ini9
-rw-r--r--testing/web-platform/meta/fenced-frame/default-enabled-features-attribute-change.https.html.ini6
-rw-r--r--testing/web-platform/meta/fenced-frame/default-enabled-features-attribute-disallow.https.html.ini6
-rw-r--r--testing/web-platform/meta/fenced-frame/default-enabled-features-attribution-disabled.https.html.ini6
-rw-r--r--testing/web-platform/meta/fenced-frame/default-enabled-features-subframe.https.html.ini6
-rw-r--r--testing/web-platform/meta/fenced-frame/default-enabled-features-unset.https.html.ini6
-rw-r--r--testing/web-platform/meta/fenced-frame/deprecated-config-apis.https.html.ini6
-rw-r--r--testing/web-platform/meta/fenced-frame/disallowed-navigation-to-blob.https.html.ini6
-rw-r--r--testing/web-platform/meta/fenced-frame/disallowed-navigation-to-data.https.html.ini6
-rw-r--r--testing/web-platform/meta/fenced-frame/disallowed-navigation-to-http.https.html.ini6
-rw-r--r--testing/web-platform/meta/fenced-frame/disallowed-navigations-dangling-markup-urn.https.html.ini18
-rw-r--r--testing/web-platform/meta/fenced-frame/disallowed-navigations-dangling-markup.https.html.ini18
-rw-r--r--testing/web-platform/meta/fenced-frame/disallowed-navigations.https.html.ini19
-rw-r--r--testing/web-platform/meta/fenced-frame/document-picture-in-picture-denied.https.html.ini3
-rw-r--r--testing/web-platform/meta/fenced-frame/document-referrer.https.html.ini3
-rw-r--r--testing/web-platform/meta/fenced-frame/download.https.html.ini6
-rw-r--r--testing/web-platform/meta/fenced-frame/embedder-coop-coep-blocked.https.html.ini3
-rw-r--r--testing/web-platform/meta/fenced-frame/embedder-csp-not-propagate.https.html.ini3
-rw-r--r--testing/web-platform/meta/fenced-frame/embedder-no-coep.https.html.ini7
-rw-r--r--testing/web-platform/meta/fenced-frame/embedder-require-corp.https.html.ini13
-rw-r--r--testing/web-platform/meta/fenced-frame/fedcm-get-credential.https.html.ini3
-rw-r--r--testing/web-platform/meta/fenced-frame/fence-api.https.html.ini3
-rw-r--r--testing/web-platform/meta/fenced-frame/fence-report-event.https.html.ini3
-rw-r--r--testing/web-platform/meta/fenced-frame/fence-urn-iframes.https.html.ini9
-rw-r--r--testing/web-platform/meta/fenced-frame/fledge-container-size-mutation-observer.https.html.ini3
-rw-r--r--testing/web-platform/meta/fenced-frame/fledge-container-size.https.html.ini3
-rw-r--r--testing/web-platform/meta/fenced-frame/fragment-navigation.https.html.ini12
-rw-r--r--testing/web-platform/meta/fenced-frame/frame-navigation.https.html.ini3
-rw-r--r--testing/web-platform/meta/fenced-frame/gamepad.https.html.ini3
-rw-r--r--testing/web-platform/meta/fenced-frame/get-mode-in-nested-frame.https.html.ini3
-rw-r--r--testing/web-platform/meta/fenced-frame/get-nested-configs.https.html.ini24
-rw-r--r--testing/web-platform/meta/fenced-frame/header-referrer.https.html.ini3
-rw-r--r--testing/web-platform/meta/fenced-frame/header-secFetchDest.https.html.ini3
-rw-r--r--testing/web-platform/meta/fenced-frame/hid.https.html.ini3
-rw-r--r--testing/web-platform/meta/fenced-frame/history-back-and-forward-should-not-work-in-fenced-tree.https.html.ini2
-rw-r--r--testing/web-platform/meta/fenced-frame/history-length-fenced-navigations-replace-do-not-contribute-to-joint.https.html.ini3
-rw-r--r--testing/web-platform/meta/fenced-frame/history-length-outer-page-navigation-not-reflected-in-fenced.https.html.ini6
-rw-r--r--testing/web-platform/meta/fenced-frame/ignore-child-fenced-frame-onload-event.https.html.ini3
-rw-r--r--testing/web-platform/meta/fenced-frame/input-on-coop-fenced-frame.https.html.ini3
-rw-r--r--testing/web-platform/meta/fenced-frame/insecure-context.html.ini3
-rw-r--r--testing/web-platform/meta/fenced-frame/intersection-observer.https.html.ini3
-rw-r--r--testing/web-platform/meta/fenced-frame/invalid-url.https.html.ini3
-rw-r--r--testing/web-platform/meta/fenced-frame/key-scrolling.https.html.ini3
-rw-r--r--testing/web-platform/meta/fenced-frame/load-ad-with-size.https.html.ini3
-rw-r--r--testing/web-platform/meta/fenced-frame/loading.https.html.ini6
-rw-r--r--testing/web-platform/meta/fenced-frame/location-ancestorOrigins.https.html.ini3
-rw-r--r--testing/web-platform/meta/fenced-frame/mediaDevices-setCaptureHandle.https.html.ini3
-rw-r--r--testing/web-platform/meta/fenced-frame/navigate-ancestor-by-name.https.html.ini3
-rw-r--r--testing/web-platform/meta/fenced-frame/navigate-ancestor-nested-fenced-frame.https.html.ini6
-rw-r--r--testing/web-platform/meta/fenced-frame/navigate-ancestor-nested-iframe.https.html.ini6
-rw-r--r--testing/web-platform/meta/fenced-frame/navigate-ancestor-top-level-fenced-frame.https.html.ini6
-rw-r--r--testing/web-platform/meta/fenced-frame/navigate-by-name-succeed.https.html.ini3
-rw-r--r--testing/web-platform/meta/fenced-frame/navigate-descendant-by-name.https.html.ini9
-rw-r--r--testing/web-platform/meta/fenced-frame/navigate-related-page-by-name.https.html.ini6
-rw-r--r--testing/web-platform/meta/fenced-frame/navigator-keyboard-layout-map.https.html.ini3
-rw-r--r--testing/web-platform/meta/fenced-frame/navigator-keyboard-lock.https.html.ini3
-rw-r--r--testing/web-platform/meta/fenced-frame/navigator-subapp.https.html.ini3
-rw-r--r--testing/web-platform/meta/fenced-frame/navigator-vibrate.https.html.ini3
-rw-r--r--testing/web-platform/meta/fenced-frame/navigator-virtualkeyboard.https.html.ini3
-rw-r--r--testing/web-platform/meta/fenced-frame/nested-opaque-ad-sizes.https.html.ini3
-rw-r--r--testing/web-platform/meta/fenced-frame/notification.https.html.ini9
-rw-r--r--testing/web-platform/meta/fenced-frame/opaque-ad-sizes-exact-size.https.html.ini33
-rw-r--r--testing/web-platform/meta/fenced-frame/opaque-ad-sizes-special-cases.https.html.ini24
-rw-r--r--testing/web-platform/meta/fenced-frame/payment-handler.https.html.ini6
-rw-r--r--testing/web-platform/meta/fenced-frame/payment-request.https.html.ini3
-rw-r--r--testing/web-platform/meta/fenced-frame/permission-api-denied-non-standard.https.html.ini30
-rw-r--r--testing/web-platform/meta/fenced-frame/permission-api-denied.https.html.ini48
-rw-r--r--testing/web-platform/meta/fenced-frame/permission-geolocation.https.html.ini16
-rw-r--r--testing/web-platform/meta/fenced-frame/permission-notification.https.html.ini3
-rw-r--r--testing/web-platform/meta/fenced-frame/picture-in-picture.https.html.ini3
-rw-r--r--testing/web-platform/meta/fenced-frame/popup-noopener.https.html.ini9
-rw-r--r--testing/web-platform/meta/fenced-frame/prerender.https.html.ini3
-rw-r--r--testing/web-platform/meta/fenced-frame/presentation-receiver.https.html.ini3
-rw-r--r--testing/web-platform/meta/fenced-frame/reinsert.https.html.ini3
-rw-r--r--testing/web-platform/meta/fenced-frame/resize-lock-input.https.html.ini3
-rw-r--r--testing/web-platform/meta/fenced-frame/resize-lock-zoom.https.html.ini3
-rw-r--r--testing/web-platform/meta/fenced-frame/resize-lock.https.html.ini27
-rw-r--r--testing/web-platform/meta/fenced-frame/resolve-to-config-promise.https.html.ini12
-rw-r--r--testing/web-platform/meta/fenced-frame/sandbox-attribute.https.html.ini18
-rw-r--r--testing/web-platform/meta/fenced-frame/sandbox-mandatory-flags.https.html.ini16
-rw-r--r--testing/web-platform/meta/fenced-frame/sandboxed-features-alert.https.html.ini6
-rw-r--r--testing/web-platform/meta/fenced-frame/sandboxed-features-confirm.https.html.ini6
-rw-r--r--testing/web-platform/meta/fenced-frame/sandboxed-features-documentdomain.https.html.ini6
-rw-r--r--testing/web-platform/meta/fenced-frame/sandboxed-features-pointerlock.https.html.ini6
-rw-r--r--testing/web-platform/meta/fenced-frame/sandboxed-features-presentation-request.https.html.ini6
-rw-r--r--testing/web-platform/meta/fenced-frame/sandboxed-features-printdialog.https.html.ini6
-rw-r--r--testing/web-platform/meta/fenced-frame/sandboxed-features-prompt.https.html.ini6
-rw-r--r--testing/web-platform/meta/fenced-frame/sandboxed-features-screen-orientation-lock.https.html.ini6
-rw-r--r--testing/web-platform/meta/fenced-frame/script-focus.https.html.ini24
-rw-r--r--testing/web-platform/meta/fenced-frame/selecturl-flexible-size.https.html.ini3
-rw-r--r--testing/web-platform/meta/fenced-frame/self-urn-navigation.https.html.ini3
-rw-r--r--testing/web-platform/meta/fenced-frame/serviceWorker-dedicated-worker.https.html.ini9
-rw-r--r--testing/web-platform/meta/fenced-frame/serviceWorker-frameType.https.html.ini3
-rw-r--r--testing/web-platform/meta/fenced-frame/serviceWorker-push.https.html.ini6
-rw-r--r--testing/web-platform/meta/fenced-frame/set-automatic-beacon.https.html.ini9
-rw-r--r--testing/web-platform/meta/fenced-frame/show-directory-picker.https.html.ini3
-rw-r--r--testing/web-platform/meta/fenced-frame/show-open-file-picker.https.html.ini3
-rw-r--r--testing/web-platform/meta/fenced-frame/storage-partitioning.https.html.ini18
-rw-r--r--testing/web-platform/meta/fenced-frame/unique-cookie-partition.https.html.ini9
-rw-r--r--testing/web-platform/meta/fenced-frame/user-activation.https.html.ini3
-rw-r--r--testing/web-platform/meta/fenced-frame/visual-viewport.https.html.ini3
-rw-r--r--testing/web-platform/meta/fenced-frame/web-bluetooth.https.html.ini3
-rw-r--r--testing/web-platform/meta/fenced-frame/web-nfc.https.html.ini3
-rw-r--r--testing/web-platform/meta/fenced-frame/web-share.https.html.ini3
-rw-r--r--testing/web-platform/meta/fenced-frame/web-usb.https.html.ini3
-rw-r--r--testing/web-platform/meta/fenced-frame/window-close.https.html.ini3
-rw-r--r--testing/web-platform/meta/fenced-frame/window-frameElement.https.html.ini3
-rw-r--r--testing/web-platform/meta/fenced-frame/window-navigation-204.https.html.ini3
-rw-r--r--testing/web-platform/meta/fenced-frame/window-outer-dimensions.https.html.ini12
-rw-r--r--testing/web-platform/meta/fenced-frame/window-parent.https.html.ini3
-rw-r--r--testing/web-platform/meta/fenced-frame/window-top.https.html.ini3
145 files changed, 1147 insertions, 0 deletions
diff --git a/testing/web-platform/meta/fenced-frame/ancestor-throttle.https.html.ini b/testing/web-platform/meta/fenced-frame/ancestor-throttle.https.html.ini
new file mode 100644
index 0000000000..823e2c2c9a
--- /dev/null
+++ b/testing/web-platform/meta/fenced-frame/ancestor-throttle.https.html.ini
@@ -0,0 +1,18 @@
+[ancestor-throttle.https.html]
+ [root(origin1)->fenced(origin2)->iframe(origin1) should honor CSP frame-ancestors headers up until the fenced frame root]
+ expected: FAIL
+
+ [root(origin1)->fenced(origin2)->iframe(origin1) should honor XFO SAMEORIGIN headers up until the fenced frame root]
+ expected: FAIL
+
+ [root(origin1)->fenced(origin2)->iframe(origin2) should honor CSP frame-ancestors headers up until the fenced frame root]
+ expected: FAIL
+
+ [root(origin1)->fenced(origin2)->iframe(origin2) should honor XFO SAMEORIGIN headers up until the fenced frame root]
+ expected: FAIL
+
+ [root(origin1)->fenced(origin1)->iframe(origin2)->iframe(origin2) should honor CSP frame-ancestors headers up until the fenced frame root]
+ expected: FAIL
+
+ [root(origin1)->fenced(origin1)->iframe(origin2)->iframe(origin2) should honor XFO SAMEORIGIN headers up until the fenced frame root]
+ expected: FAIL
diff --git a/testing/web-platform/meta/fenced-frame/anchor-focus.https.html.ini b/testing/web-platform/meta/fenced-frame/anchor-focus.https.html.ini
new file mode 100644
index 0000000000..85a0636ffb
--- /dev/null
+++ b/testing/web-platform/meta/fenced-frame/anchor-focus.https.html.ini
@@ -0,0 +1,6 @@
+[anchor-focus.https.html]
+ [Anchor focusing is blocked on an element in a fenced frame without user activation.]
+ expected: FAIL
+
+ [Anchor focusing is allowed on an element in a fenced frame with user activation.]
+ expected: FAIL
diff --git a/testing/web-platform/meta/fenced-frame/autofocus-denied.https.html.ini b/testing/web-platform/meta/fenced-frame/autofocus-denied.https.html.ini
new file mode 100644
index 0000000000..c90e246f85
--- /dev/null
+++ b/testing/web-platform/meta/fenced-frame/autofocus-denied.https.html.ini
@@ -0,0 +1,3 @@
+[autofocus-denied.https.html]
+ [Autofocusing is blocked on an element in a fenced frame as it's treated like a cross-origin subframe.]
+ expected: FAIL
diff --git a/testing/web-platform/meta/fenced-frame/automatic-beacon-click-handler.https.html.ini b/testing/web-platform/meta/fenced-frame/automatic-beacon-click-handler.https.html.ini
new file mode 100644
index 0000000000..52e7ce8693
--- /dev/null
+++ b/testing/web-platform/meta/fenced-frame/automatic-beacon-click-handler.https.html.ini
@@ -0,0 +1,6 @@
+[automatic-beacon-click-handler.https.html]
+ [Set and trigger an automatic beacon in a click handler]
+ expected: FAIL
+
+ [Set and trigger an automatic beacon in an <a> click handler]
+ expected: FAIL
diff --git a/testing/web-platform/meta/fenced-frame/background-fetch.https.html.ini b/testing/web-platform/meta/fenced-frame/background-fetch.https.html.ini
new file mode 100644
index 0000000000..48c6b3bd5f
--- /dev/null
+++ b/testing/web-platform/meta/fenced-frame/background-fetch.https.html.ini
@@ -0,0 +1,18 @@
+[background-fetch.https.html]
+ [backgroundFetch.fetch]
+ expected: FAIL
+
+ [backgroundFetch.get]
+ expected: FAIL
+
+ [backgroundFetch.getIds]
+ expected: FAIL
+
+ [backgroundFetch.fetch in service worker]
+ expected: FAIL
+
+ [backgroundFetch.get in service worker]
+ expected: FAIL
+
+ [backgroundFetch.getIds in service worker]
+ expected: FAIL
diff --git a/testing/web-platform/meta/fenced-frame/background-sync.https.html.ini b/testing/web-platform/meta/fenced-frame/background-sync.https.html.ini
new file mode 100644
index 0000000000..ccae49aebc
--- /dev/null
+++ b/testing/web-platform/meta/fenced-frame/background-sync.https.html.ini
@@ -0,0 +1,30 @@
+[background-sync.https.html]
+ [background sync register]
+ expected: FAIL
+
+ [background sync getTags]
+ expected: FAIL
+
+ [background sync register in service worker]
+ expected: FAIL
+
+ [background sync getTags in service worker]
+ expected: FAIL
+
+ [periodic sync register]
+ expected: FAIL
+
+ [periodic sync getTags]
+ expected: FAIL
+
+ [periodic sync unregister]
+ expected: FAIL
+
+ [periodic sync register in service worker]
+ expected: FAIL
+
+ [periodic sync getTags in service worker]
+ expected: FAIL
+
+ [periodic sync unregister in service worker]
+ expected: FAIL
diff --git a/testing/web-platform/meta/fenced-frame/badging.https.html.ini b/testing/web-platform/meta/fenced-frame/badging.https.html.ini
new file mode 100644
index 0000000000..53da146125
--- /dev/null
+++ b/testing/web-platform/meta/fenced-frame/badging.https.html.ini
@@ -0,0 +1,12 @@
+[badging.https.html]
+ [setAppBadge should fail inside a fenced frame]
+ expected: FAIL
+
+ [clearAppBadge should fail inside a fenced frame]
+ expected: FAIL
+
+ [setAppBadge should fail from a service worker inside a fenced frame]
+ expected: FAIL
+
+ [clearAppBadge should fail from a service worker inside a fenced frame]
+ expected: FAIL
diff --git a/testing/web-platform/meta/fenced-frame/battery_status.https.html.ini b/testing/web-platform/meta/fenced-frame/battery_status.https.html.ini
new file mode 100644
index 0000000000..9799ea7c04
--- /dev/null
+++ b/testing/web-platform/meta/fenced-frame/battery_status.https.html.ini
@@ -0,0 +1,3 @@
+[battery_status.https.html]
+ [battery status should not be read in the fenced frame.]
+ expected: FAIL
diff --git a/testing/web-platform/meta/fenced-frame/before-unload.https.html.ini b/testing/web-platform/meta/fenced-frame/before-unload.https.html.ini
new file mode 100644
index 0000000000..75c163fd64
--- /dev/null
+++ b/testing/web-platform/meta/fenced-frame/before-unload.https.html.ini
@@ -0,0 +1,3 @@
+[before-unload.https.html]
+ [before unload event in fenced frames]
+ expected: FAIL
diff --git a/testing/web-platform/meta/fenced-frame/can-load-api.https.html.ini b/testing/web-platform/meta/fenced-frame/can-load-api.https.html.ini
new file mode 100644
index 0000000000..3544696b08
--- /dev/null
+++ b/testing/web-platform/meta/fenced-frame/can-load-api.https.html.ini
@@ -0,0 +1,21 @@
+[can-load-api.https.html]
+ [canLoadOpaqueURL called on a page that can load a FF should return true]
+ expected: FAIL
+
+ [canLoadOpaqueURL returns true inside an opaque-ads fenced frame]
+ expected: FAIL
+
+ [canLoadOpaqueURL returns false inside an default fenced frame]
+ expected: FAIL
+
+ [canLoadOpaqueURL returns true for all 3 fenced-frame-src allowed values]
+ expected: FAIL
+
+ [canLoadOpaqueURL ignores fallback CSPs]
+ expected: FAIL
+
+ [canLoadOpaqueURL ignores unrelated CSPs]
+ expected: FAIL
+
+ [canLoadOpaqueURL returns false in a detached frame]
+ expected: FAIL
diff --git a/testing/web-platform/meta/fenced-frame/change-src-attribute-after-config-installation-does-not-trigger-navigation.https.html.ini b/testing/web-platform/meta/fenced-frame/change-src-attribute-after-config-installation-does-not-trigger-navigation.https.html.ini
new file mode 100644
index 0000000000..9baaa3955c
--- /dev/null
+++ b/testing/web-platform/meta/fenced-frame/change-src-attribute-after-config-installation-does-not-trigger-navigation.https.html.ini
@@ -0,0 +1,3 @@
+[change-src-attribute-after-config-installation-does-not-trigger-navigation.https.html]
+ [Changing the src attribute of a fenced frame when a config with url]
+ expected: FAIL
diff --git a/testing/web-platform/meta/fenced-frame/client-hints-meta.https.html.ini b/testing/web-platform/meta/fenced-frame/client-hints-meta.https.html.ini
new file mode 100644
index 0000000000..5127e8f2e3
--- /dev/null
+++ b/testing/web-platform/meta/fenced-frame/client-hints-meta.https.html.ini
@@ -0,0 +1,3 @@
+[client-hints-meta.https.html]
+ [fenced frames not send client hints]
+ expected: FAIL
diff --git a/testing/web-platform/meta/fenced-frame/client-hints.https.html.ini b/testing/web-platform/meta/fenced-frame/client-hints.https.html.ini
new file mode 100644
index 0000000000..57240da1f6
--- /dev/null
+++ b/testing/web-platform/meta/fenced-frame/client-hints.https.html.ini
@@ -0,0 +1,3 @@
+[client-hints.https.html]
+ [fenced frames not send client hints]
+ expected: FAIL
diff --git a/testing/web-platform/meta/fenced-frame/compute-pressure.https.html.ini b/testing/web-platform/meta/fenced-frame/compute-pressure.https.html.ini
new file mode 100644
index 0000000000..e3d6116723
--- /dev/null
+++ b/testing/web-platform/meta/fenced-frame/compute-pressure.https.html.ini
@@ -0,0 +1,3 @@
+[compute-pressure.https.html]
+ [PressureObserver.observe() fails in a fenced frame.]
+ expected: FAIL
diff --git a/testing/web-platform/meta/fenced-frame/config-installation-triggers-navigation-of-navigated-fenced-frame.https.html.ini b/testing/web-platform/meta/fenced-frame/config-installation-triggers-navigation-of-navigated-fenced-frame.https.html.ini
new file mode 100644
index 0000000000..c92c9eab32
--- /dev/null
+++ b/testing/web-platform/meta/fenced-frame/config-installation-triggers-navigation-of-navigated-fenced-frame.https.html.ini
@@ -0,0 +1,3 @@
+[config-installation-triggers-navigation-of-navigated-fenced-frame.https.html]
+ [Installing an inner config to a fenced frame that has navigated triggers]
+ expected: FAIL
diff --git a/testing/web-platform/meta/fenced-frame/config-installation-triggers-navigation.https.html.ini b/testing/web-platform/meta/fenced-frame/config-installation-triggers-navigation.https.html.ini
new file mode 100644
index 0000000000..b1a77d03a2
--- /dev/null
+++ b/testing/web-platform/meta/fenced-frame/config-installation-triggers-navigation.https.html.ini
@@ -0,0 +1,3 @@
+[config-installation-triggers-navigation.https.html]
+ [Installing an inner config to a fenced frame triggers navigation.]
+ expected: FAIL
diff --git a/testing/web-platform/meta/fenced-frame/config-with-empty-url-installation-unloads-navigated-fenced-frame.https.html.ini b/testing/web-platform/meta/fenced-frame/config-with-empty-url-installation-unloads-navigated-fenced-frame.https.html.ini
new file mode 100644
index 0000000000..d36ba4d41e
--- /dev/null
+++ b/testing/web-platform/meta/fenced-frame/config-with-empty-url-installation-unloads-navigated-fenced-frame.https.html.ini
@@ -0,0 +1,3 @@
+[config-with-empty-url-installation-unloads-navigated-fenced-frame.https.html]
+ [Installing a config with empty url to a navigated fenced unloads ]
+ expected: FAIL
diff --git a/testing/web-platform/meta/fenced-frame/consume-user-activation.https.html.ini b/testing/web-platform/meta/fenced-frame/consume-user-activation.https.html.ini
new file mode 100644
index 0000000000..134dc25281
--- /dev/null
+++ b/testing/web-platform/meta/fenced-frame/consume-user-activation.https.html.ini
@@ -0,0 +1,3 @@
+[consume-user-activation.https.html]
+ [user-activation]
+ expected: FAIL
diff --git a/testing/web-platform/meta/fenced-frame/content-index.https.html.ini b/testing/web-platform/meta/fenced-frame/content-index.https.html.ini
new file mode 100644
index 0000000000..f5ea71936c
--- /dev/null
+++ b/testing/web-platform/meta/fenced-frame/content-index.https.html.ini
@@ -0,0 +1,18 @@
+[content-index.https.html]
+ [index.add should fail inside a fenced frame]
+ expected: FAIL
+
+ [index.delete should fail inside a fenced frame]
+ expected: FAIL
+
+ [index.getAll should fail inside a fenced frame]
+ expected: FAIL
+
+ [index.add should fail from the service worker inside a fenced frame]
+ expected: FAIL
+
+ [index.delete should fail from the service worker inside a fenced frame]
+ expected: FAIL
+
+ [index.getAll should fail from the service worker inside a fenced frame]
+ expected: FAIL
diff --git a/testing/web-platform/meta/fenced-frame/coop-bcg-swap.https.html.ini b/testing/web-platform/meta/fenced-frame/coop-bcg-swap.https.html.ini
new file mode 100644
index 0000000000..1fcf57858b
--- /dev/null
+++ b/testing/web-platform/meta/fenced-frame/coop-bcg-swap.https.html.ini
@@ -0,0 +1,3 @@
+[coop-bcg-swap.https.html]
+ [window.name after bcg swap]
+ expected: FAIL
diff --git a/testing/web-platform/meta/fenced-frame/create-credential.https.html.ini b/testing/web-platform/meta/fenced-frame/create-credential.https.html.ini
new file mode 100644
index 0000000000..5203677151
--- /dev/null
+++ b/testing/web-platform/meta/fenced-frame/create-credential.https.html.ini
@@ -0,0 +1,3 @@
+[create-credential.https.html]
+ [navigator.credentials.create]
+ expected: FAIL
diff --git a/testing/web-platform/meta/fenced-frame/create-in-sandbox-and-adopt-outside-sandbox.https.html.ini b/testing/web-platform/meta/fenced-frame/create-in-sandbox-and-adopt-outside-sandbox.https.html.ini
new file mode 100644
index 0000000000..96a9915695
--- /dev/null
+++ b/testing/web-platform/meta/fenced-frame/create-in-sandbox-and-adopt-outside-sandbox.https.html.ini
@@ -0,0 +1,3 @@
+[create-in-sandbox-and-adopt-outside-sandbox.https.html]
+ [Adopting a fenced frame from a too-strict document to a suitable document leaves the frame in a functional state]
+ expected: FAIL
diff --git a/testing/web-platform/meta/fenced-frame/csp-allowed.https.html.ini b/testing/web-platform/meta/fenced-frame/csp-allowed.https.html.ini
new file mode 100644
index 0000000000..b26b78ee69
--- /dev/null
+++ b/testing/web-platform/meta/fenced-frame/csp-allowed.https.html.ini
@@ -0,0 +1,36 @@
+[csp-allowed.https.html]
+ [Fenced frame loaded for CSP fenced-frame-src * using config]
+ expected: FAIL
+
+ [Opaque-ads can load API returns true for * using config]
+ expected: FAIL
+
+ [Fenced frame loaded for CSP fenced-frame-src https: using config]
+ expected: FAIL
+
+ [Opaque-ads can load API returns true for https: using config]
+ expected: FAIL
+
+ [Fenced frame loaded for CSP fenced-frame-src https://*:* using config]
+ expected: FAIL
+
+ [Opaque-ads can load API returns true for https://*:* using config]
+ expected: FAIL
+
+ [Fenced frame loaded for CSP fenced-frame-src * using urn:uuid]
+ expected: FAIL
+
+ [Opaque-ads can load API returns true for * using urn:uuid]
+ expected: FAIL
+
+ [Fenced frame loaded for CSP fenced-frame-src https: using urn:uuid]
+ expected: FAIL
+
+ [Opaque-ads can load API returns true for https: using urn:uuid]
+ expected: FAIL
+
+ [Fenced frame loaded for CSP fenced-frame-src https://*:* using urn:uuid]
+ expected: FAIL
+
+ [Opaque-ads can load API returns true for https://*:* using urn:uuid]
+ expected: FAIL
diff --git a/testing/web-platform/meta/fenced-frame/csp-blocked.https.html.ini b/testing/web-platform/meta/fenced-frame/csp-blocked.https.html.ini
new file mode 100644
index 0000000000..554c25af0b
--- /dev/null
+++ b/testing/web-platform/meta/fenced-frame/csp-blocked.https.html.ini
@@ -0,0 +1,78 @@
+[csp-blocked.https.html]
+ [Fenced frame blocked for CSP fenced-frame-src 'none' using config]
+ expected: FAIL
+
+ [Opaque-ads can load API returns false for 'none' using config]
+ expected: FAIL
+
+ [Fenced frame blocked for CSP fenced-frame-src 'self' using config]
+ expected: FAIL
+
+ [Opaque-ads can load API returns false for 'self' using config]
+ expected: FAIL
+
+ [Fenced frame blocked for CSP fenced-frame-src data: using config]
+ expected: FAIL
+
+ [Opaque-ads can load API returns false for data: using config]
+ expected: FAIL
+
+ [Fenced frame blocked for CSP fenced-frame-src https://* using config]
+ expected: FAIL
+
+ [Opaque-ads can load API returns false for https://* using config]
+ expected: FAIL
+
+ [Fenced frame blocked for CSP fenced-frame-src https://*:80 using config]
+ expected: FAIL
+
+ [Opaque-ads can load API returns false for https://*:80 using config]
+ expected: FAIL
+
+ [Fenced frame blocked for CSP fenced-frame-src https://b.test:* using config]
+ expected: FAIL
+
+ [Opaque-ads can load API returns false for https://b.test:* using config]
+ expected: FAIL
+
+ [Fenced frame not loaded using config if any of CSPs in place disallow loading]
+ expected: FAIL
+
+ [Fenced frame blocked for CSP fenced-frame-src 'none' using urn:uuid]
+ expected: FAIL
+
+ [Opaque-ads can load API returns false for 'none' using urn:uuid]
+ expected: FAIL
+
+ [Fenced frame blocked for CSP fenced-frame-src 'self' using urn:uuid]
+ expected: FAIL
+
+ [Opaque-ads can load API returns false for 'self' using urn:uuid]
+ expected: FAIL
+
+ [Fenced frame blocked for CSP fenced-frame-src data: using urn:uuid]
+ expected: FAIL
+
+ [Opaque-ads can load API returns false for data: using urn:uuid]
+ expected: FAIL
+
+ [Fenced frame blocked for CSP fenced-frame-src https://* using urn:uuid]
+ expected: FAIL
+
+ [Opaque-ads can load API returns false for https://* using urn:uuid]
+ expected: FAIL
+
+ [Fenced frame blocked for CSP fenced-frame-src https://*:80 using urn:uuid]
+ expected: FAIL
+
+ [Opaque-ads can load API returns false for https://*:80 using urn:uuid]
+ expected: FAIL
+
+ [Fenced frame blocked for CSP fenced-frame-src https://b.test:* using urn:uuid]
+ expected: FAIL
+
+ [Opaque-ads can load API returns false for https://b.test:* using urn:uuid]
+ expected: FAIL
+
+ [Fenced frame not loaded using urn:uuid if any of CSPs in place disallow loading]
+ expected: FAIL
diff --git a/testing/web-platform/meta/fenced-frame/csp-fenced-frame-src-allowed.https.html.ini b/testing/web-platform/meta/fenced-frame/csp-fenced-frame-src-allowed.https.html.ini
new file mode 100644
index 0000000000..b1ae473079
--- /dev/null
+++ b/testing/web-platform/meta/fenced-frame/csp-fenced-frame-src-allowed.https.html.ini
@@ -0,0 +1,3 @@
+[csp-fenced-frame-src-allowed.https.html]
+ [csp-fenced-frame-src-allowed]
+ expected: FAIL
diff --git a/testing/web-platform/meta/fenced-frame/csp-fenced-frame-src-blocked.https.html.ini b/testing/web-platform/meta/fenced-frame/csp-fenced-frame-src-blocked.https.html.ini
new file mode 100644
index 0000000000..d23dcfb47f
--- /dev/null
+++ b/testing/web-platform/meta/fenced-frame/csp-fenced-frame-src-blocked.https.html.ini
@@ -0,0 +1,6 @@
+[csp-fenced-frame-src-blocked.https.html]
+ [csp-fenced-frame-src-blocked]
+ expected: FAIL
+
+ [fenced-frame-src none is taken into account with navigator.canLoadAdAuctionFencedFrame]
+ expected: FAIL
diff --git a/testing/web-platform/meta/fenced-frame/csp-frame-src-allowed.https.html.ini b/testing/web-platform/meta/fenced-frame/csp-frame-src-allowed.https.html.ini
new file mode 100644
index 0000000000..21d50fbf75
--- /dev/null
+++ b/testing/web-platform/meta/fenced-frame/csp-frame-src-allowed.https.html.ini
@@ -0,0 +1,3 @@
+[csp-frame-src-allowed.https.html]
+ [csp-frame-src-allowed]
+ expected: FAIL
diff --git a/testing/web-platform/meta/fenced-frame/csp-frame-src-blocked.https.html.ini b/testing/web-platform/meta/fenced-frame/csp-frame-src-blocked.https.html.ini
new file mode 100644
index 0000000000..14df316a5a
--- /dev/null
+++ b/testing/web-platform/meta/fenced-frame/csp-frame-src-blocked.https.html.ini
@@ -0,0 +1,6 @@
+[csp-frame-src-blocked.https.html]
+ [csp-frame-src-blocked]
+ expected: FAIL
+
+ [frame-src none is taken into account with navigator.canLoadAdAuctionFencedFrame]
+ expected: FAIL
diff --git a/testing/web-platform/meta/fenced-frame/csp-transparent-url.https.html.ini b/testing/web-platform/meta/fenced-frame/csp-transparent-url.https.html.ini
new file mode 100644
index 0000000000..994eb653fd
--- /dev/null
+++ b/testing/web-platform/meta/fenced-frame/csp-transparent-url.https.html.ini
@@ -0,0 +1,12 @@
+[csp-transparent-url.https.html]
+ [Fenced frame loaded for CSP fenced-frame-src *]
+ expected: FAIL
+
+ [Fenced frame loaded for CSP fenced-frame-src https:]
+ expected: FAIL
+
+ [Fenced frame loaded for CSP fenced-frame-src 'self']
+ expected: FAIL
+
+ [Fenced frame blocked for CSP fenced-frame-src 'none']
+ expected: FAIL
diff --git a/testing/web-platform/meta/fenced-frame/csp.https.html.ini b/testing/web-platform/meta/fenced-frame/csp.https.html.ini
new file mode 100644
index 0000000000..3ee3a442a3
--- /dev/null
+++ b/testing/web-platform/meta/fenced-frame/csp.https.html.ini
@@ -0,0 +1,3 @@
+[csp.https.html]
+ [Fenced Frames should not honor the csp attribute from parent page]
+ expected: FAIL
diff --git a/testing/web-platform/meta/fenced-frame/cspee.https.html.ini b/testing/web-platform/meta/fenced-frame/cspee.https.html.ini
new file mode 100644
index 0000000000..ed02aa0861
--- /dev/null
+++ b/testing/web-platform/meta/fenced-frame/cspee.https.html.ini
@@ -0,0 +1,15 @@
+[cspee.https.html]
+ [fenced frame should not be loaded in CSPEE]
+ expected: FAIL
+
+ [fenced frame should not be loaded if any ancestor has CSPEE]
+ expected: FAIL
+
+ [canLoadOpaqueURL considers CSPEE headers]
+ expected: FAIL
+
+ [canLoadOpaqueURL considers CSPEE headers up the ancestor chain]
+ expected: FAIL
+
+ [canLoadOpaqueURL returns true if no CSPEE headers are present in iframe]
+ expected: FAIL
diff --git a/testing/web-platform/meta/fenced-frame/default-enabled-features-allow-all.https.html.ini b/testing/web-platform/meta/fenced-frame/default-enabled-features-allow-all.https.html.ini
new file mode 100644
index 0000000000..f81ad7b441
--- /dev/null
+++ b/testing/web-platform/meta/fenced-frame/default-enabled-features-allow-all.https.html.ini
@@ -0,0 +1,6 @@
+[default-enabled-features-allow-all.https.html]
+ [Same-origin fenced frame loads when feature policies are *]
+ expected: FAIL
+
+ [Cross-origin fenced frame loads when feature policies are *]
+ expected: FAIL
diff --git a/testing/web-platform/meta/fenced-frame/default-enabled-features-allow-none.https.html.ini b/testing/web-platform/meta/fenced-frame/default-enabled-features-allow-none.https.html.ini
new file mode 100644
index 0000000000..59e6dfd219
--- /dev/null
+++ b/testing/web-platform/meta/fenced-frame/default-enabled-features-allow-none.https.html.ini
@@ -0,0 +1,6 @@
+[default-enabled-features-allow-none.https.html]
+ [Same-origin fenced frame does not load when feature policies are none]
+ expected: FAIL
+
+ [Cross-origin fenced frame does not load when feature policies are none]
+ expected: FAIL
diff --git a/testing/web-platform/meta/fenced-frame/default-enabled-features-allow-self.https.html.ini b/testing/web-platform/meta/fenced-frame/default-enabled-features-allow-self.https.html.ini
new file mode 100644
index 0000000000..9c67cd676c
--- /dev/null
+++ b/testing/web-platform/meta/fenced-frame/default-enabled-features-allow-self.https.html.ini
@@ -0,0 +1,12 @@
+[default-enabled-features-allow-self.https.html]
+ [Same-origin fenced frame loads when feature policies are self]
+ expected: FAIL
+
+ [Cross-origin fenced frame does not load when feature policies are self]
+ expected: FAIL
+
+ [A fenced frame redirected to a page that does not allow feature policies does not navigate]
+ expected: FAIL
+
+ [Fenced frames default feature policies are set to not allow anything.]
+ expected: FAIL
diff --git a/testing/web-platform/meta/fenced-frame/default-enabled-features-attribute-allow.https.html.ini b/testing/web-platform/meta/fenced-frame/default-enabled-features-attribute-allow.https.html.ini
new file mode 100644
index 0000000000..7e54dc259a
--- /dev/null
+++ b/testing/web-platform/meta/fenced-frame/default-enabled-features-attribute-allow.https.html.ini
@@ -0,0 +1,9 @@
+[default-enabled-features-attribute-allow.https.html]
+ [Same-origin fenced frame with allow attribute enabling required features]
+ expected: FAIL
+
+ [Cross-origin fenced frame with allow attribute enabling required features]
+ expected: FAIL
+
+ [Delivered policies can further restrict permissions of a fenced frame]
+ expected: FAIL
diff --git a/testing/web-platform/meta/fenced-frame/default-enabled-features-attribute-change.https.html.ini b/testing/web-platform/meta/fenced-frame/default-enabled-features-attribute-change.https.html.ini
new file mode 100644
index 0000000000..f97710da2e
--- /dev/null
+++ b/testing/web-platform/meta/fenced-frame/default-enabled-features-attribute-change.https.html.ini
@@ -0,0 +1,6 @@
+[default-enabled-features-attribute-change.https.html]
+ [Changing the allow attribute is a no-op for the current navigation]
+ expected: FAIL
+
+ [Changing the allow attribute is a no-op for frame-initiated navigations]
+ expected: FAIL
diff --git a/testing/web-platform/meta/fenced-frame/default-enabled-features-attribute-disallow.https.html.ini b/testing/web-platform/meta/fenced-frame/default-enabled-features-attribute-disallow.https.html.ini
new file mode 100644
index 0000000000..c46d59cb0f
--- /dev/null
+++ b/testing/web-platform/meta/fenced-frame/default-enabled-features-attribute-disallow.https.html.ini
@@ -0,0 +1,6 @@
+[default-enabled-features-attribute-disallow.https.html]
+ [Same-origin fenced frame with allow attribute disabling required feature]
+ expected: FAIL
+
+ [Cross-origin fenced frame with allow attribute disabling required feature]
+ expected: FAIL
diff --git a/testing/web-platform/meta/fenced-frame/default-enabled-features-attribution-disabled.https.html.ini b/testing/web-platform/meta/fenced-frame/default-enabled-features-attribution-disabled.https.html.ini
new file mode 100644
index 0000000000..701a18264c
--- /dev/null
+++ b/testing/web-platform/meta/fenced-frame/default-enabled-features-attribution-disabled.https.html.ini
@@ -0,0 +1,6 @@
+[default-enabled-features-attribution-disabled.https.html]
+ [Same-origin fenced frame with allow attribute enabling required feature but page disabling feature.]
+ expected: FAIL
+
+ [Cross-origin fenced frame with allow attribute enabling required feature but page disabling feature.]
+ expected: FAIL
diff --git a/testing/web-platform/meta/fenced-frame/default-enabled-features-subframe.https.html.ini b/testing/web-platform/meta/fenced-frame/default-enabled-features-subframe.https.html.ini
new file mode 100644
index 0000000000..cc9be586e0
--- /dev/null
+++ b/testing/web-platform/meta/fenced-frame/default-enabled-features-subframe.https.html.ini
@@ -0,0 +1,6 @@
+[default-enabled-features-subframe.https.html]
+ [Iframes nested in fenced frames inherit the fenced frame policies]
+ expected: FAIL
+
+ [Iframes nested in fenced frames can further restrict policies]
+ expected: FAIL
diff --git a/testing/web-platform/meta/fenced-frame/default-enabled-features-unset.https.html.ini b/testing/web-platform/meta/fenced-frame/default-enabled-features-unset.https.html.ini
new file mode 100644
index 0000000000..7c541fc8e4
--- /dev/null
+++ b/testing/web-platform/meta/fenced-frame/default-enabled-features-unset.https.html.ini
@@ -0,0 +1,6 @@
+[default-enabled-features-unset.https.html]
+ [Same-origin fenced frame loads when feature policies are unset]
+ expected: FAIL
+
+ [Cross-origin fenced frame loads when feature policies are unset]
+ expected: FAIL
diff --git a/testing/web-platform/meta/fenced-frame/deprecated-config-apis.https.html.ini b/testing/web-platform/meta/fenced-frame/deprecated-config-apis.https.html.ini
new file mode 100644
index 0000000000..bd17248dcb
--- /dev/null
+++ b/testing/web-platform/meta/fenced-frame/deprecated-config-apis.https.html.ini
@@ -0,0 +1,6 @@
+[deprecated-config-apis.https.html]
+ [deprecated urn APIs should work with configs generated by an API]
+ expected: FAIL
+
+ [deprecated urn APIs should not work with configs generated by a WebIDL constructor]
+ expected: FAIL
diff --git a/testing/web-platform/meta/fenced-frame/disallowed-navigation-to-blob.https.html.ini b/testing/web-platform/meta/fenced-frame/disallowed-navigation-to-blob.https.html.ini
new file mode 100644
index 0000000000..a380540594
--- /dev/null
+++ b/testing/web-platform/meta/fenced-frame/disallowed-navigation-to-blob.https.html.ini
@@ -0,0 +1,6 @@
+[disallowed-navigation-to-blob.https.html]
+ [fenced frame config => blob: URL]
+ expected: FAIL
+
+ [fenced frame urn:uuid => blob: URL]
+ expected: FAIL
diff --git a/testing/web-platform/meta/fenced-frame/disallowed-navigation-to-data.https.html.ini b/testing/web-platform/meta/fenced-frame/disallowed-navigation-to-data.https.html.ini
new file mode 100644
index 0000000000..ce1162ac0c
--- /dev/null
+++ b/testing/web-platform/meta/fenced-frame/disallowed-navigation-to-data.https.html.ini
@@ -0,0 +1,6 @@
+[disallowed-navigation-to-data.https.html]
+ [fenced frame config => data: URL]
+ expected: FAIL
+
+ [fenced frame urn:uuid => data: URL]
+ expected: FAIL
diff --git a/testing/web-platform/meta/fenced-frame/disallowed-navigation-to-http.https.html.ini b/testing/web-platform/meta/fenced-frame/disallowed-navigation-to-http.https.html.ini
new file mode 100644
index 0000000000..5b88d8da5b
--- /dev/null
+++ b/testing/web-platform/meta/fenced-frame/disallowed-navigation-to-http.https.html.ini
@@ -0,0 +1,6 @@
+[disallowed-navigation-to-http.https.html]
+ [fenced frame config => http: URL]
+ expected: FAIL
+
+ [fenced frame urn:uuid => http: URL]
+ expected: FAIL
diff --git a/testing/web-platform/meta/fenced-frame/disallowed-navigations-dangling-markup-urn.https.html.ini b/testing/web-platform/meta/fenced-frame/disallowed-navigations-dangling-markup-urn.https.html.ini
new file mode 100644
index 0000000000..4505f1dd17
--- /dev/null
+++ b/testing/web-platform/meta/fenced-frame/disallowed-navigations-dangling-markup-urn.https.html.ini
@@ -0,0 +1,18 @@
+[disallowed-navigations-dangling-markup-urn.https.html]
+ [fenced frame opaque URN => https: URL with dangling markup 'blo\nck<ed']
+ expected: FAIL
+
+ [fenced frame opaque URN => https: URL with dangling markup 'blo\rck<ed']
+ expected: FAIL
+
+ [fenced frame opaque URN => https: URL with dangling markup 'blo\tck<ed']
+ expected: FAIL
+
+ [fenced frame opaque URN => https: URL with dangling markup 'blo<ck\ned']
+ expected: FAIL
+
+ [fenced frame opaque URN => https: URL with dangling markup 'blo<ck\red']
+ expected: FAIL
+
+ [fenced frame opaque URN => https: URL with dangling markup 'blo<ck\ted']
+ expected: FAIL
diff --git a/testing/web-platform/meta/fenced-frame/disallowed-navigations-dangling-markup.https.html.ini b/testing/web-platform/meta/fenced-frame/disallowed-navigations-dangling-markup.https.html.ini
new file mode 100644
index 0000000000..cc0c9de2c8
--- /dev/null
+++ b/testing/web-platform/meta/fenced-frame/disallowed-navigations-dangling-markup.https.html.ini
@@ -0,0 +1,18 @@
+[disallowed-navigations-dangling-markup.https.html]
+ [fenced frame dangling-markup URL with 'blo\nck<ed']
+ expected: FAIL
+
+ [fenced frame dangling-markup URL with 'blo\rck<ed']
+ expected: FAIL
+
+ [fenced frame dangling-markup URL with 'blo\tck<ed']
+ expected: FAIL
+
+ [fenced frame dangling-markup URL with 'blo<ck\ned']
+ expected: FAIL
+
+ [fenced frame dangling-markup URL with 'blo<ck\red']
+ expected: FAIL
+
+ [fenced frame dangling-markup URL with 'blo<ck\ted']
+ expected: FAIL
diff --git a/testing/web-platform/meta/fenced-frame/disallowed-navigations.https.html.ini b/testing/web-platform/meta/fenced-frame/disallowed-navigations.https.html.ini
new file mode 100644
index 0000000000..bcc9b2a8aa
--- /dev/null
+++ b/testing/web-platform/meta/fenced-frame/disallowed-navigations.https.html.ini
@@ -0,0 +1,19 @@
+[disallowed-navigations.https.html]
+ expected:
+ if (os == "win") and debug: [TIMEOUT, CRASH]
+ if (os == "linux") and debug: [TIMEOUT, CRASH]
+ TIMEOUT
+ [iframe javascript: URL]
+ expected: TIMEOUT
+
+ [fenced frame data: URL]
+ expected: NOTRUN
+
+ [fenced frame blob: URL]
+ expected: NOTRUN
+
+ [fenced frame javascript: URL]
+ expected: NOTRUN
+
+ [fenced frame http: URL]
+ expected: NOTRUN
diff --git a/testing/web-platform/meta/fenced-frame/document-picture-in-picture-denied.https.html.ini b/testing/web-platform/meta/fenced-frame/document-picture-in-picture-denied.https.html.ini
new file mode 100644
index 0000000000..bafeb3da8f
--- /dev/null
+++ b/testing/web-platform/meta/fenced-frame/document-picture-in-picture-denied.https.html.ini
@@ -0,0 +1,3 @@
+[document-picture-in-picture-denied.https.html]
+ [fencedframes cannot open a DocumentPictureInPicture window.]
+ expected: FAIL
diff --git a/testing/web-platform/meta/fenced-frame/document-referrer.https.html.ini b/testing/web-platform/meta/fenced-frame/document-referrer.https.html.ini
new file mode 100644
index 0000000000..fd51327a71
--- /dev/null
+++ b/testing/web-platform/meta/fenced-frame/document-referrer.https.html.ini
@@ -0,0 +1,3 @@
+[document-referrer.https.html]
+ [document.referrer]
+ expected: FAIL
diff --git a/testing/web-platform/meta/fenced-frame/download.https.html.ini b/testing/web-platform/meta/fenced-frame/download.https.html.ini
new file mode 100644
index 0000000000..3c2c702162
--- /dev/null
+++ b/testing/web-platform/meta/fenced-frame/download.https.html.ini
@@ -0,0 +1,6 @@
+[download.https.html]
+ [Anchor click triggering download in fenced frames is blocked.]
+ expected: FAIL
+
+ [Navigation resulted download in fenced frames is blocked.]
+ expected: FAIL
diff --git a/testing/web-platform/meta/fenced-frame/embedder-coop-coep-blocked.https.html.ini b/testing/web-platform/meta/fenced-frame/embedder-coop-coep-blocked.https.html.ini
new file mode 100644
index 0000000000..af3bbaa98f
--- /dev/null
+++ b/testing/web-platform/meta/fenced-frame/embedder-coop-coep-blocked.https.html.ini
@@ -0,0 +1,3 @@
+[embedder-coop-coep-blocked.https.html]
+ [Create a fencedframe without COEP from an embedder setting COEP]
+ expected: FAIL
diff --git a/testing/web-platform/meta/fenced-frame/embedder-csp-not-propagate.https.html.ini b/testing/web-platform/meta/fenced-frame/embedder-csp-not-propagate.https.html.ini
new file mode 100644
index 0000000000..098f99b11b
--- /dev/null
+++ b/testing/web-platform/meta/fenced-frame/embedder-csp-not-propagate.https.html.ini
@@ -0,0 +1,3 @@
+[embedder-csp-not-propagate.https.html]
+ [Embedder CSP should not propagate to fenced frame]
+ expected: FAIL
diff --git a/testing/web-platform/meta/fenced-frame/embedder-no-coep.https.html.ini b/testing/web-platform/meta/fenced-frame/embedder-no-coep.https.html.ini
new file mode 100644
index 0000000000..5b24020336
--- /dev/null
+++ b/testing/web-platform/meta/fenced-frame/embedder-no-coep.https.html.ini
@@ -0,0 +1,7 @@
+[embedder-no-coep.https.html]
+ expected: ERROR
+ [Create fencedframe with COEP:require-corp]
+ expected: TIMEOUT
+
+ [Create fencedframe without COEP header]
+ expected: NOTRUN
diff --git a/testing/web-platform/meta/fenced-frame/embedder-require-corp.https.html.ini b/testing/web-platform/meta/fenced-frame/embedder-require-corp.https.html.ini
new file mode 100644
index 0000000000..1b89359373
--- /dev/null
+++ b/testing/web-platform/meta/fenced-frame/embedder-require-corp.https.html.ini
@@ -0,0 +1,13 @@
+[embedder-require-corp.https.html]
+ expected:
+ if (os == "linux") and debug: [ERROR, CRASH]
+ if (os == "win") and debug: [CRASH, ERROR]
+ ERROR
+ [Create fencedframe with COEP:require-corp]
+ expected: TIMEOUT
+
+ [Create fencedframe without COEP header]
+ expected: NOTRUN
+
+ [Create fencedframe with a cross site COEP:require-corp and CORP:same-orign]
+ expected: NOTRUN
diff --git a/testing/web-platform/meta/fenced-frame/fedcm-get-credential.https.html.ini b/testing/web-platform/meta/fenced-frame/fedcm-get-credential.https.html.ini
new file mode 100644
index 0000000000..35525492e6
--- /dev/null
+++ b/testing/web-platform/meta/fenced-frame/fedcm-get-credential.https.html.ini
@@ -0,0 +1,3 @@
+[fedcm-get-credential.https.html]
+ [navigator.credentials.get]
+ expected: FAIL
diff --git a/testing/web-platform/meta/fenced-frame/fence-api.https.html.ini b/testing/web-platform/meta/fenced-frame/fence-api.https.html.ini
new file mode 100644
index 0000000000..6e78c613bf
--- /dev/null
+++ b/testing/web-platform/meta/fenced-frame/fence-api.https.html.ini
@@ -0,0 +1,3 @@
+[fence-api.https.html]
+ [window.fence]
+ expected: FAIL
diff --git a/testing/web-platform/meta/fenced-frame/fence-report-event.https.html.ini b/testing/web-platform/meta/fenced-frame/fence-report-event.https.html.ini
new file mode 100644
index 0000000000..1ec9f9923e
--- /dev/null
+++ b/testing/web-platform/meta/fenced-frame/fence-report-event.https.html.ini
@@ -0,0 +1,3 @@
+[fence-report-event.https.html]
+ [window.fence.reportEvent]
+ expected: FAIL
diff --git a/testing/web-platform/meta/fenced-frame/fence-urn-iframes.https.html.ini b/testing/web-platform/meta/fenced-frame/fence-urn-iframes.https.html.ini
new file mode 100644
index 0000000000..4704101259
--- /dev/null
+++ b/testing/web-platform/meta/fenced-frame/fence-urn-iframes.https.html.ini
@@ -0,0 +1,9 @@
+[fence-urn-iframes.https.html]
+ [window.fence is unavailable in normal (non-urn) iframes]
+ expected: FAIL
+
+ [window.fence is available in urn iframes]
+ expected: FAIL
+
+ [window.fence is available in same-origin subframes of urn iframes]
+ expected: FAIL
diff --git a/testing/web-platform/meta/fenced-frame/fledge-container-size-mutation-observer.https.html.ini b/testing/web-platform/meta/fenced-frame/fledge-container-size-mutation-observer.https.html.ini
new file mode 100644
index 0000000000..5dfffe3eca
--- /dev/null
+++ b/testing/web-platform/meta/fenced-frame/fledge-container-size-mutation-observer.https.html.ini
@@ -0,0 +1,3 @@
+[fledge-container-size-mutation-observer.https.html]
+ [Container size assert no exception ignores mutation observer]
+ expected: FAIL
diff --git a/testing/web-platform/meta/fenced-frame/fledge-container-size.https.html.ini b/testing/web-platform/meta/fenced-frame/fledge-container-size.https.html.ini
new file mode 100644
index 0000000000..8bfee3af9b
--- /dev/null
+++ b/testing/web-platform/meta/fenced-frame/fledge-container-size.https.html.ini
@@ -0,0 +1,3 @@
+[fledge-container-size.https.html]
+ [FLEDGE successful container size]
+ expected: FAIL
diff --git a/testing/web-platform/meta/fenced-frame/fragment-navigation.https.html.ini b/testing/web-platform/meta/fenced-frame/fragment-navigation.https.html.ini
new file mode 100644
index 0000000000..c1e6eeb584
--- /dev/null
+++ b/testing/web-platform/meta/fenced-frame/fragment-navigation.https.html.ini
@@ -0,0 +1,12 @@
+[fragment-navigation.https.html]
+ [opaque to opaque fragment navigation]
+ expected: FAIL
+
+ [opaque to transparent fragment navigation]
+ expected: FAIL
+
+ [transparent to opaque fragment navigation]
+ expected: FAIL
+
+ [transparent to transparent fragment navigation]
+ expected: FAIL
diff --git a/testing/web-platform/meta/fenced-frame/frame-navigation.https.html.ini b/testing/web-platform/meta/fenced-frame/frame-navigation.https.html.ini
new file mode 100644
index 0000000000..ea223ac5eb
--- /dev/null
+++ b/testing/web-platform/meta/fenced-frame/frame-navigation.https.html.ini
@@ -0,0 +1,3 @@
+[frame-navigation.https.html]
+ [Fenced frame navigation should succeed]
+ expected: FAIL
diff --git a/testing/web-platform/meta/fenced-frame/gamepad.https.html.ini b/testing/web-platform/meta/fenced-frame/gamepad.https.html.ini
new file mode 100644
index 0000000000..5a83ebd0af
--- /dev/null
+++ b/testing/web-platform/meta/fenced-frame/gamepad.https.html.ini
@@ -0,0 +1,3 @@
+[gamepad.https.html]
+ [Gamepads information should not be read in the fenced frame.]
+ expected: FAIL
diff --git a/testing/web-platform/meta/fenced-frame/get-mode-in-nested-frame.https.html.ini b/testing/web-platform/meta/fenced-frame/get-mode-in-nested-frame.https.html.ini
new file mode 100644
index 0000000000..e53d34fbab
--- /dev/null
+++ b/testing/web-platform/meta/fenced-frame/get-mode-in-nested-frame.https.html.ini
@@ -0,0 +1,3 @@
+[get-mode-in-nested-frame.https.html]
+ [Trigger GetFencedFrameMode() in a nested nested iframe]
+ expected: FAIL
diff --git a/testing/web-platform/meta/fenced-frame/get-nested-configs.https.html.ini b/testing/web-platform/meta/fenced-frame/get-nested-configs.https.html.ini
new file mode 100644
index 0000000000..a3b75e6f9d
--- /dev/null
+++ b/testing/web-platform/meta/fenced-frame/get-nested-configs.https.html.ini
@@ -0,0 +1,24 @@
+[get-nested-configs.https.html]
+ [getNestedConfigs() created by FLEDGE should return configurations]
+ expected: FAIL
+
+ [getNestedConfigs() from a fenced frame with the config from sharedStroage.selectURL() should be empty]
+ expected: FAIL
+
+ [getNestedConfigs() from a fenced frame with the urn:uuid from sharedStroage.selectURL() should be empty]
+ expected: FAIL
+
+ [getNestedConfigs() from a default mode frame should be empty]
+ expected: FAIL
+
+ [getNestedConfigs() should work in a same-origin nested iframe]
+ expected: FAIL
+
+ [Nested configs created by FLEDGE should be navigable by fenced frame]
+ expected: FAIL
+
+ [Nested configs created by FLEDGE should be navigable by URN iframe]
+ expected: FAIL
+
+ [Navigating an invalid config should be handled gracefully]
+ expected: FAIL
diff --git a/testing/web-platform/meta/fenced-frame/header-referrer.https.html.ini b/testing/web-platform/meta/fenced-frame/header-referrer.https.html.ini
new file mode 100644
index 0000000000..9724bdd9d5
--- /dev/null
+++ b/testing/web-platform/meta/fenced-frame/header-referrer.https.html.ini
@@ -0,0 +1,3 @@
+[header-referrer.https.html]
+ [header.referrer]
+ expected: FAIL
diff --git a/testing/web-platform/meta/fenced-frame/header-secFetchDest.https.html.ini b/testing/web-platform/meta/fenced-frame/header-secFetchDest.https.html.ini
new file mode 100644
index 0000000000..ee710d91bd
--- /dev/null
+++ b/testing/web-platform/meta/fenced-frame/header-secFetchDest.https.html.ini
@@ -0,0 +1,3 @@
+[header-secFetchDest.https.html]
+ [header.secFetchDest]
+ expected: FAIL
diff --git a/testing/web-platform/meta/fenced-frame/hid.https.html.ini b/testing/web-platform/meta/fenced-frame/hid.https.html.ini
new file mode 100644
index 0000000000..226750f4ee
--- /dev/null
+++ b/testing/web-platform/meta/fenced-frame/hid.https.html.ini
@@ -0,0 +1,3 @@
+[hid.https.html]
+ [HID getDevice must fail in a fenced frame]
+ expected: FAIL
diff --git a/testing/web-platform/meta/fenced-frame/history-back-and-forward-should-not-work-in-fenced-tree.https.html.ini b/testing/web-platform/meta/fenced-frame/history-back-and-forward-should-not-work-in-fenced-tree.https.html.ini
new file mode 100644
index 0000000000..5f51907792
--- /dev/null
+++ b/testing/web-platform/meta/fenced-frame/history-back-and-forward-should-not-work-in-fenced-tree.https.html.ini
@@ -0,0 +1,2 @@
+[history-back-and-forward-should-not-work-in-fenced-tree.https.html]
+ expected: ERROR
diff --git a/testing/web-platform/meta/fenced-frame/history-length-fenced-navigations-replace-do-not-contribute-to-joint.https.html.ini b/testing/web-platform/meta/fenced-frame/history-length-fenced-navigations-replace-do-not-contribute-to-joint.https.html.ini
new file mode 100644
index 0000000000..66cf38ba08
--- /dev/null
+++ b/testing/web-platform/meta/fenced-frame/history-length-fenced-navigations-replace-do-not-contribute-to-joint.https.html.ini
@@ -0,0 +1,3 @@
+[history-length-fenced-navigations-replace-do-not-contribute-to-joint.https.html]
+ [All fenced navigations should be replace-only and not contribute to joint session history]
+ expected: FAIL
diff --git a/testing/web-platform/meta/fenced-frame/history-length-outer-page-navigation-not-reflected-in-fenced.https.html.ini b/testing/web-platform/meta/fenced-frame/history-length-outer-page-navigation-not-reflected-in-fenced.https.html.ini
new file mode 100644
index 0000000000..b6d43d499a
--- /dev/null
+++ b/testing/web-platform/meta/fenced-frame/history-length-outer-page-navigation-not-reflected-in-fenced.https.html.ini
@@ -0,0 +1,6 @@
+[history-length-outer-page-navigation-not-reflected-in-fenced.https.html]
+ [history.length should not reflect navigations within outer page in fenced frame]
+ expected: FAIL
+
+ [history.length should not reflect navigations within outer page in fenced frame nexted iframe]
+ expected: FAIL
diff --git a/testing/web-platform/meta/fenced-frame/ignore-child-fenced-frame-onload-event.https.html.ini b/testing/web-platform/meta/fenced-frame/ignore-child-fenced-frame-onload-event.https.html.ini
new file mode 100644
index 0000000000..39839a9e14
--- /dev/null
+++ b/testing/web-platform/meta/fenced-frame/ignore-child-fenced-frame-onload-event.https.html.ini
@@ -0,0 +1,3 @@
+[ignore-child-fenced-frame-onload-event.https.html]
+ [ignore child fenced frame onload event test.]
+ expected: FAIL
diff --git a/testing/web-platform/meta/fenced-frame/input-on-coop-fenced-frame.https.html.ini b/testing/web-platform/meta/fenced-frame/input-on-coop-fenced-frame.https.html.ini
new file mode 100644
index 0000000000..10bc7ddbf5
--- /dev/null
+++ b/testing/web-platform/meta/fenced-frame/input-on-coop-fenced-frame.https.html.ini
@@ -0,0 +1,3 @@
+[input-on-coop-fenced-frame.https.html]
+ [Input in non-matching COOP fenced frame doesn't crash.]
+ expected: FAIL
diff --git a/testing/web-platform/meta/fenced-frame/insecure-context.html.ini b/testing/web-platform/meta/fenced-frame/insecure-context.html.ini
new file mode 100644
index 0000000000..f974aefa78
--- /dev/null
+++ b/testing/web-platform/meta/fenced-frame/insecure-context.html.ini
@@ -0,0 +1,3 @@
+[insecure-context.html]
+ [FencedFrame is not available in an insecure context]
+ expected: FAIL
diff --git a/testing/web-platform/meta/fenced-frame/intersection-observer.https.html.ini b/testing/web-platform/meta/fenced-frame/intersection-observer.https.html.ini
new file mode 100644
index 0000000000..b8012118ec
--- /dev/null
+++ b/testing/web-platform/meta/fenced-frame/intersection-observer.https.html.ini
@@ -0,0 +1,3 @@
+[intersection-observer.https.html]
+ [Intersection Observer Test]
+ expected: FAIL
diff --git a/testing/web-platform/meta/fenced-frame/invalid-url.https.html.ini b/testing/web-platform/meta/fenced-frame/invalid-url.https.html.ini
new file mode 100644
index 0000000000..ab44e9cbf2
--- /dev/null
+++ b/testing/web-platform/meta/fenced-frame/invalid-url.https.html.ini
@@ -0,0 +1,3 @@
+[invalid-url.https.html]
+ [URL with invalid port specified]
+ expected: FAIL
diff --git a/testing/web-platform/meta/fenced-frame/key-scrolling.https.html.ini b/testing/web-platform/meta/fenced-frame/key-scrolling.https.html.ini
new file mode 100644
index 0000000000..57e982a565
--- /dev/null
+++ b/testing/web-platform/meta/fenced-frame/key-scrolling.https.html.ini
@@ -0,0 +1,3 @@
+[key-scrolling.https.html]
+ [Keyboard scrolling bubbles out of fenced frame]
+ expected: FAIL
diff --git a/testing/web-platform/meta/fenced-frame/load-ad-with-size.https.html.ini b/testing/web-platform/meta/fenced-frame/load-ad-with-size.https.html.ini
new file mode 100644
index 0000000000..3f2972ae29
--- /dev/null
+++ b/testing/web-platform/meta/fenced-frame/load-ad-with-size.https.html.ini
@@ -0,0 +1,3 @@
+[load-ad-with-size.https.html]
+ [Fenced frame loading an ad with size.]
+ expected: FAIL
diff --git a/testing/web-platform/meta/fenced-frame/loading.https.html.ini b/testing/web-platform/meta/fenced-frame/loading.https.html.ini
new file mode 100644
index 0000000000..ad372b8e59
--- /dev/null
+++ b/testing/web-platform/meta/fenced-frame/loading.https.html.ini
@@ -0,0 +1,6 @@
+[loading.https.html]
+ [fenced frame loading a config.]
+ expected: FAIL
+
+ [fenced frame loading an urn:uuid.]
+ expected: FAIL
diff --git a/testing/web-platform/meta/fenced-frame/location-ancestorOrigins.https.html.ini b/testing/web-platform/meta/fenced-frame/location-ancestorOrigins.https.html.ini
new file mode 100644
index 0000000000..25811c43d9
--- /dev/null
+++ b/testing/web-platform/meta/fenced-frame/location-ancestorOrigins.https.html.ini
@@ -0,0 +1,3 @@
+[location-ancestorOrigins.https.html]
+ [location.ancestorOrigins]
+ expected: FAIL
diff --git a/testing/web-platform/meta/fenced-frame/mediaDevices-setCaptureHandle.https.html.ini b/testing/web-platform/meta/fenced-frame/mediaDevices-setCaptureHandle.https.html.ini
new file mode 100644
index 0000000000..56b1d627fd
--- /dev/null
+++ b/testing/web-platform/meta/fenced-frame/mediaDevices-setCaptureHandle.https.html.ini
@@ -0,0 +1,3 @@
+[mediaDevices-setCaptureHandle.https.html]
+ [navigator.mediaDevices.setCaptureHandleConfig]
+ expected: FAIL
diff --git a/testing/web-platform/meta/fenced-frame/navigate-ancestor-by-name.https.html.ini b/testing/web-platform/meta/fenced-frame/navigate-ancestor-by-name.https.html.ini
new file mode 100644
index 0000000000..9e0a50c279
--- /dev/null
+++ b/testing/web-platform/meta/fenced-frame/navigate-ancestor-by-name.https.html.ini
@@ -0,0 +1,3 @@
+[navigate-ancestor-by-name.https.html]
+ [navigate named ancestors]
+ expected: FAIL
diff --git a/testing/web-platform/meta/fenced-frame/navigate-ancestor-nested-fenced-frame.https.html.ini b/testing/web-platform/meta/fenced-frame/navigate-ancestor-nested-fenced-frame.https.html.ini
new file mode 100644
index 0000000000..009fc92713
--- /dev/null
+++ b/testing/web-platform/meta/fenced-frame/navigate-ancestor-nested-fenced-frame.https.html.ini
@@ -0,0 +1,6 @@
+[navigate-ancestor-nested-fenced-frame.https.html]
+ [Nested fenced frames that navigate _parent end up navigating themselves]
+ expected: FAIL
+
+ [Nested fenced frames that navigate _top end up navigating themselves]
+ expected: FAIL
diff --git a/testing/web-platform/meta/fenced-frame/navigate-ancestor-nested-iframe.https.html.ini b/testing/web-platform/meta/fenced-frame/navigate-ancestor-nested-iframe.https.html.ini
new file mode 100644
index 0000000000..0f37f40e93
--- /dev/null
+++ b/testing/web-platform/meta/fenced-frame/navigate-ancestor-nested-iframe.https.html.ini
@@ -0,0 +1,6 @@
+[navigate-ancestor-nested-iframe.https.html]
+ [Iframes nested in fenced frames fail to navigate _parent]
+ expected: FAIL
+
+ [Iframes nested in fenced frames fail to navigate _top]
+ expected: FAIL
diff --git a/testing/web-platform/meta/fenced-frame/navigate-ancestor-top-level-fenced-frame.https.html.ini b/testing/web-platform/meta/fenced-frame/navigate-ancestor-top-level-fenced-frame.https.html.ini
new file mode 100644
index 0000000000..26e0ba8f3d
--- /dev/null
+++ b/testing/web-platform/meta/fenced-frame/navigate-ancestor-top-level-fenced-frame.https.html.ini
@@ -0,0 +1,6 @@
+[navigate-ancestor-top-level-fenced-frame.https.html]
+ [Top-level fenced frames that navigate _parent end up navigating themselves]
+ expected: FAIL
+
+ [Top-level fenced frames that navigate _top end up navigating themselves]
+ expected: FAIL
diff --git a/testing/web-platform/meta/fenced-frame/navigate-by-name-succeed.https.html.ini b/testing/web-platform/meta/fenced-frame/navigate-by-name-succeed.https.html.ini
new file mode 100644
index 0000000000..cc586d50b6
--- /dev/null
+++ b/testing/web-platform/meta/fenced-frame/navigate-by-name-succeed.https.html.ini
@@ -0,0 +1,3 @@
+[navigate-by-name-succeed.https.html]
+ [navigate iframe sibling of fenced frame]
+ expected: FAIL
diff --git a/testing/web-platform/meta/fenced-frame/navigate-descendant-by-name.https.html.ini b/testing/web-platform/meta/fenced-frame/navigate-descendant-by-name.https.html.ini
new file mode 100644
index 0000000000..2a00735ba3
--- /dev/null
+++ b/testing/web-platform/meta/fenced-frame/navigate-descendant-by-name.https.html.ini
@@ -0,0 +1,9 @@
+[navigate-descendant-by-name.https.html]
+ [navigate iframe nested in a fenced frame by name]
+ expected: FAIL
+
+ [navigate top-level fenced frame by name]
+ expected: FAIL
+
+ [navigate nested fenced frame by name]
+ expected: FAIL
diff --git a/testing/web-platform/meta/fenced-frame/navigate-related-page-by-name.https.html.ini b/testing/web-platform/meta/fenced-frame/navigate-related-page-by-name.https.html.ini
new file mode 100644
index 0000000000..ce3709ebac
--- /dev/null
+++ b/testing/web-platform/meta/fenced-frame/navigate-related-page-by-name.https.html.ini
@@ -0,0 +1,6 @@
+[navigate-related-page-by-name.https.html]
+ [navigate related pages from inside a fenced frame]
+ expected: FAIL
+
+ [navigate fenced frames inside related pages from the embedder]
+ expected: FAIL
diff --git a/testing/web-platform/meta/fenced-frame/navigator-keyboard-layout-map.https.html.ini b/testing/web-platform/meta/fenced-frame/navigator-keyboard-layout-map.https.html.ini
new file mode 100644
index 0000000000..e9fcde9903
--- /dev/null
+++ b/testing/web-platform/meta/fenced-frame/navigator-keyboard-layout-map.https.html.ini
@@ -0,0 +1,3 @@
+[navigator-keyboard-layout-map.https.html]
+ [keyboard.getLayoutMap()]
+ expected: FAIL
diff --git a/testing/web-platform/meta/fenced-frame/navigator-keyboard-lock.https.html.ini b/testing/web-platform/meta/fenced-frame/navigator-keyboard-lock.https.html.ini
new file mode 100644
index 0000000000..0ee6a9e972
--- /dev/null
+++ b/testing/web-platform/meta/fenced-frame/navigator-keyboard-lock.https.html.ini
@@ -0,0 +1,3 @@
+[navigator-keyboard-lock.https.html]
+ [keyboard.lock]
+ expected: FAIL
diff --git a/testing/web-platform/meta/fenced-frame/navigator-subapp.https.html.ini b/testing/web-platform/meta/fenced-frame/navigator-subapp.https.html.ini
new file mode 100644
index 0000000000..6cfe792f64
--- /dev/null
+++ b/testing/web-platform/meta/fenced-frame/navigator-subapp.https.html.ini
@@ -0,0 +1,3 @@
+[navigator-subapp.https.html]
+ [navigator.subApps.list() should fail in the fenced frame.]
+ expected: FAIL
diff --git a/testing/web-platform/meta/fenced-frame/navigator-vibrate.https.html.ini b/testing/web-platform/meta/fenced-frame/navigator-vibrate.https.html.ini
new file mode 100644
index 0000000000..6b23bea18b
--- /dev/null
+++ b/testing/web-platform/meta/fenced-frame/navigator-vibrate.https.html.ini
@@ -0,0 +1,3 @@
+[navigator-vibrate.https.html]
+ [navigator.vibrate]
+ expected: FAIL
diff --git a/testing/web-platform/meta/fenced-frame/navigator-virtualkeyboard.https.html.ini b/testing/web-platform/meta/fenced-frame/navigator-virtualkeyboard.https.html.ini
new file mode 100644
index 0000000000..496a9c8ece
--- /dev/null
+++ b/testing/web-platform/meta/fenced-frame/navigator-virtualkeyboard.https.html.ini
@@ -0,0 +1,3 @@
+[navigator-virtualkeyboard.https.html]
+ [virtualKeyboard.overlaysContent]
+ expected: FAIL
diff --git a/testing/web-platform/meta/fenced-frame/nested-opaque-ad-sizes.https.html.ini b/testing/web-platform/meta/fenced-frame/nested-opaque-ad-sizes.https.html.ini
new file mode 100644
index 0000000000..5b39484e8c
--- /dev/null
+++ b/testing/web-platform/meta/fenced-frame/nested-opaque-ad-sizes.https.html.ini
@@ -0,0 +1,3 @@
+[nested-opaque-ad-sizes.https.html]
+ [nested fenced frames don't use the size list]
+ expected: FAIL
diff --git a/testing/web-platform/meta/fenced-frame/notification.https.html.ini b/testing/web-platform/meta/fenced-frame/notification.https.html.ini
new file mode 100644
index 0000000000..ae40a771d1
--- /dev/null
+++ b/testing/web-platform/meta/fenced-frame/notification.https.html.ini
@@ -0,0 +1,9 @@
+[notification.https.html]
+ [new Notification should fail inside a fenced frame]
+ expected: FAIL
+
+ [new Notification should fail from the service worker in a fenced frame]
+ expected: FAIL
+
+ [showNotification() should fail from the service worker in a fenced frame]
+ expected: FAIL
diff --git a/testing/web-platform/meta/fenced-frame/opaque-ad-sizes-exact-size.https.html.ini b/testing/web-platform/meta/fenced-frame/opaque-ad-sizes-exact-size.https.html.ini
new file mode 100644
index 0000000000..d6965d2a90
--- /dev/null
+++ b/testing/web-platform/meta/fenced-frame/opaque-ad-sizes-exact-size.https.html.ini
@@ -0,0 +1,33 @@
+[opaque-ad-sizes-exact-size.https.html]
+ [320x50]
+ expected: FAIL
+
+ [728x90]
+ expected: FAIL
+
+ [970x90]
+ expected: FAIL
+
+ [320x100]
+ expected: FAIL
+
+ [160x600]
+ expected: FAIL
+
+ [300x250]
+ expected: FAIL
+
+ [970x250]
+ expected: FAIL
+
+ [336x280]
+ expected: FAIL
+
+ [320x48]
+ expected: FAIL
+
+ [300x600]
+ expected: FAIL
+
+ [300x1050]
+ expected: FAIL
diff --git a/testing/web-platform/meta/fenced-frame/opaque-ad-sizes-special-cases.https.html.ini b/testing/web-platform/meta/fenced-frame/opaque-ad-sizes-special-cases.https.html.ini
new file mode 100644
index 0000000000..c790a45d23
--- /dev/null
+++ b/testing/web-platform/meta/fenced-frame/opaque-ad-sizes-special-cases.https.html.ini
@@ -0,0 +1,24 @@
+[opaque-ad-sizes-special-cases.https.html]
+ [970.1x250]
+ expected: FAIL
+
+ [970x250.1]
+ expected: FAIL
+
+ [971x250]
+ expected: FAIL
+
+ [970x251]
+ expected: FAIL
+
+ [0x100]
+ expected: FAIL
+
+ [100x0]
+ expected: FAIL
+
+ [MAXxMAX]
+ expected: FAIL
+
+ [INFINITYxINFINITY]
+ expected: FAIL
diff --git a/testing/web-platform/meta/fenced-frame/payment-handler.https.html.ini b/testing/web-platform/meta/fenced-frame/payment-handler.https.html.ini
new file mode 100644
index 0000000000..f3bb542ecf
--- /dev/null
+++ b/testing/web-platform/meta/fenced-frame/payment-handler.https.html.ini
@@ -0,0 +1,6 @@
+[payment-handler.https.html]
+ [paymentManager should fail inside a fenced frame]
+ expected: FAIL
+
+ [paymentManager should fail from the service worker inside a fenced frame]
+ expected: FAIL
diff --git a/testing/web-platform/meta/fenced-frame/payment-request.https.html.ini b/testing/web-platform/meta/fenced-frame/payment-request.https.html.ini
new file mode 100644
index 0000000000..92b9fae8f5
--- /dev/null
+++ b/testing/web-platform/meta/fenced-frame/payment-request.https.html.ini
@@ -0,0 +1,3 @@
+[payment-request.https.html]
+ [new PaymentRequest should fail inside a fenced frame]
+ expected: FAIL
diff --git a/testing/web-platform/meta/fenced-frame/permission-api-denied-non-standard.https.html.ini b/testing/web-platform/meta/fenced-frame/permission-api-denied-non-standard.https.html.ini
new file mode 100644
index 0000000000..228b804c5a
--- /dev/null
+++ b/testing/web-platform/meta/fenced-frame/permission-api-denied-non-standard.https.html.ini
@@ -0,0 +1,30 @@
+[permission-api-denied-non-standard.https.html]
+ [Permission API in fenced frames should always return denied]
+ expected: FAIL
+
+ [Permission API in fenced frames should always return denied 1]
+ expected: FAIL
+
+ [Permission API in fenced frames should always return denied 2]
+ expected: FAIL
+
+ [Permission API in fenced frames should always return denied 3]
+ expected: FAIL
+
+ [Permission API in fenced frames should always return denied 4]
+ expected: FAIL
+
+ [Permission API in fenced frames should always return denied 5]
+ expected: FAIL
+
+ [Permission API in fenced frames should always return denied 6]
+ expected: FAIL
+
+ [Permission API in fenced frames should always return denied 7]
+ expected: FAIL
+
+ [Permission API in fenced frames should always return denied 8]
+ expected: FAIL
+
+ [Permission API in fenced frames should always return denied 9]
+ expected: FAIL
diff --git a/testing/web-platform/meta/fenced-frame/permission-api-denied.https.html.ini b/testing/web-platform/meta/fenced-frame/permission-api-denied.https.html.ini
new file mode 100644
index 0000000000..8b30be96ef
--- /dev/null
+++ b/testing/web-platform/meta/fenced-frame/permission-api-denied.https.html.ini
@@ -0,0 +1,48 @@
+[permission-api-denied.https.html]
+ [Permission API in fenced frames should always return denied]
+ expected: FAIL
+
+ [Permission API in fenced frames should always return denied 1]
+ expected: FAIL
+
+ [Permission API in fenced frames should always return denied 2]
+ expected: FAIL
+
+ [Permission API in fenced frames should always return denied 3]
+ expected: FAIL
+
+ [Permission API in fenced frames should always return denied 4]
+ expected: FAIL
+
+ [Permission API in fenced frames should always return denied 5]
+ expected: FAIL
+
+ [Permission API in fenced frames should always return denied 6]
+ expected: FAIL
+
+ [Permission API in fenced frames should always return denied 7]
+ expected: FAIL
+
+ [Permission API in fenced frames should always return denied 8]
+ expected: FAIL
+
+ [Permission API in fenced frames should always return denied 9]
+ expected: FAIL
+
+ [Permission API in fenced frames should always return denied 10]
+ expected: FAIL
+
+ [Permission API in fenced frames should always return denied 11]
+ expected: FAIL
+
+ [Permission API in fenced frames should always return denied 12]
+ expected: FAIL
+
+ [Permission API in fenced frames should always return denied 13]
+ expected: FAIL
+
+ [Permission API in fenced frames should always return denied 14]
+ expected: FAIL
+
+ [Permission API in fenced frames should always return denied 15]
+ expected: FAIL
diff --git a/testing/web-platform/meta/fenced-frame/permission-geolocation.https.html.ini b/testing/web-platform/meta/fenced-frame/permission-geolocation.https.html.ini
new file mode 100644
index 0000000000..6e1267e9a9
--- /dev/null
+++ b/testing/web-platform/meta/fenced-frame/permission-geolocation.https.html.ini
@@ -0,0 +1,16 @@
+[permission-geolocation.https.html]
+ expected: TIMEOUT
+ [geolocation permission is not permitted for fenced frames]
+ expected: TIMEOUT
+
+ [geolocation permission is not permitted for fenced frames, even if a `Permissions-Policy` header is sent on the primary page.]
+ expected: NOTRUN
+
+ [geolocation permission is not permitted for fenced frames, even if a `Permissions-Policy` header is sent on the fenced frame response.]
+ expected: NOTRUN
+
+ [geolocation permission is not permitted for fenced frames, even if an `allow` attribute is set for an iframe in the fenced frame.]
+ expected: NOTRUN
+
+ [geolocation permission is not permitted for fenced frames, even if a `Permissions-Policy` header and an `allow` attribute is set for an iframe in the fenced frame.]
+ expected: NOTRUN
diff --git a/testing/web-platform/meta/fenced-frame/permission-notification.https.html.ini b/testing/web-platform/meta/fenced-frame/permission-notification.https.html.ini
new file mode 100644
index 0000000000..effca6a823
--- /dev/null
+++ b/testing/web-platform/meta/fenced-frame/permission-notification.https.html.ini
@@ -0,0 +1,3 @@
+[permission-notification.https.html]
+ [notification permission should not be granted]
+ expected: FAIL
diff --git a/testing/web-platform/meta/fenced-frame/picture-in-picture.https.html.ini b/testing/web-platform/meta/fenced-frame/picture-in-picture.https.html.ini
new file mode 100644
index 0000000000..3944c71dda
--- /dev/null
+++ b/testing/web-platform/meta/fenced-frame/picture-in-picture.https.html.ini
@@ -0,0 +1,3 @@
+[picture-in-picture.https.html]
+ [Test HTMLVideoElement.requestPictureInPicture]
+ expected: FAIL
diff --git a/testing/web-platform/meta/fenced-frame/popup-noopener.https.html.ini b/testing/web-platform/meta/fenced-frame/popup-noopener.https.html.ini
new file mode 100644
index 0000000000..275bb8c784
--- /dev/null
+++ b/testing/web-platform/meta/fenced-frame/popup-noopener.https.html.ini
@@ -0,0 +1,9 @@
+[popup-noopener.https.html]
+ [Create popup from top-level fenced frame]
+ expected: FAIL
+
+ [Create popup from iframe nested in a fenced frame]
+ expected: FAIL
+
+ [Create popup from nested fenced frame]
+ expected: FAIL
diff --git a/testing/web-platform/meta/fenced-frame/prerender.https.html.ini b/testing/web-platform/meta/fenced-frame/prerender.https.html.ini
new file mode 100644
index 0000000000..312186f619
--- /dev/null
+++ b/testing/web-platform/meta/fenced-frame/prerender.https.html.ini
@@ -0,0 +1,3 @@
+[prerender.https.html]
+ [Fenced Frame must not load prerendered page.]
+ expected: FAIL
diff --git a/testing/web-platform/meta/fenced-frame/presentation-receiver.https.html.ini b/testing/web-platform/meta/fenced-frame/presentation-receiver.https.html.ini
new file mode 100644
index 0000000000..aa1c09d7ca
--- /dev/null
+++ b/testing/web-platform/meta/fenced-frame/presentation-receiver.https.html.ini
@@ -0,0 +1,3 @@
+[presentation-receiver.https.html]
+ [presentation receiver should not be allowed]
+ expected: FAIL
diff --git a/testing/web-platform/meta/fenced-frame/reinsert.https.html.ini b/testing/web-platform/meta/fenced-frame/reinsert.https.html.ini
new file mode 100644
index 0000000000..828a2d8463
--- /dev/null
+++ b/testing/web-platform/meta/fenced-frame/reinsert.https.html.ini
@@ -0,0 +1,3 @@
+[reinsert.https.html]
+ [Fenced frames should not crash and burn when re-inserting a fenced frame]
+ expected: FAIL
diff --git a/testing/web-platform/meta/fenced-frame/resize-lock-input.https.html.ini b/testing/web-platform/meta/fenced-frame/resize-lock-input.https.html.ini
new file mode 100644
index 0000000000..ef753b9ed3
--- /dev/null
+++ b/testing/web-platform/meta/fenced-frame/resize-lock-input.https.html.ini
@@ -0,0 +1,3 @@
+[resize-lock-input.https.html]
+ [Test Resize Lock]
+ expected: FAIL
diff --git a/testing/web-platform/meta/fenced-frame/resize-lock-zoom.https.html.ini b/testing/web-platform/meta/fenced-frame/resize-lock-zoom.https.html.ini
new file mode 100644
index 0000000000..2ff71ef835
--- /dev/null
+++ b/testing/web-platform/meta/fenced-frame/resize-lock-zoom.https.html.ini
@@ -0,0 +1,3 @@
+[resize-lock-zoom.https.html]
+ [Test Resize Lock]
+ expected: FAIL
diff --git a/testing/web-platform/meta/fenced-frame/resize-lock.https.html.ini b/testing/web-platform/meta/fenced-frame/resize-lock.https.html.ini
new file mode 100644
index 0000000000..e3981381b2
--- /dev/null
+++ b/testing/web-platform/meta/fenced-frame/resize-lock.https.html.ini
@@ -0,0 +1,27 @@
+[resize-lock.https.html]
+ [FLEDGE->FLEDGE]
+ expected: FAIL
+
+ [sharedStorage->sharedStorage]
+ expected: FAIL
+
+ [default->default]
+ expected: FAIL
+
+ [default->FLEDGE]
+ expected: FAIL
+
+ [default->sharedStorage]
+ expected: FAIL
+
+ [FLEDGE->default]
+ expected: FAIL
+
+ [sharedStorage->default]
+ expected: FAIL
+
+ [sharedStorage->FLEDGE]
+ expected: FAIL
+
+ [FLEDGE->sharedStorage]
+ expected: FAIL
diff --git a/testing/web-platform/meta/fenced-frame/resolve-to-config-promise.https.html.ini b/testing/web-platform/meta/fenced-frame/resolve-to-config-promise.https.html.ini
new file mode 100644
index 0000000000..f352e27df8
--- /dev/null
+++ b/testing/web-platform/meta/fenced-frame/resolve-to-config-promise.https.html.ini
@@ -0,0 +1,12 @@
+[resolve-to-config-promise.https.html]
+ [resolveToConfig set to a promise that resolves to true]
+ expected: FAIL
+
+ [resolveToConfig set to a promise that resolves to false]
+ expected: FAIL
+
+ [resolveToConfig set to a promise that immediately resolves]
+ expected: FAIL
+
+ [resolveToConfig set to a promise that resolves to an invalid value]
+ expected: FAIL
diff --git a/testing/web-platform/meta/fenced-frame/sandbox-attribute.https.html.ini b/testing/web-platform/meta/fenced-frame/sandbox-attribute.https.html.ini
new file mode 100644
index 0000000000..0beca735d7
--- /dev/null
+++ b/testing/web-platform/meta/fenced-frame/sandbox-attribute.https.html.ini
@@ -0,0 +1,18 @@
+[sandbox-attribute.https.html]
+ [Navigation fails with no allowed features]
+ expected: FAIL
+
+ [Navigation succeeds with exactly the required unsandboxed features]
+ expected: FAIL
+
+ [Navigation succeeds with extra unsandboxed features]
+ expected: FAIL
+
+ [Navigation fails with too few unsandboxed features]
+ expected: FAIL
+
+ [Navigation fails with malformed sandbox flags]
+ expected: FAIL
+
+ [Navigation fails with the required unsandboxed features, plus some malformed ones]
+ expected: FAIL
diff --git a/testing/web-platform/meta/fenced-frame/sandbox-mandatory-flags.https.html.ini b/testing/web-platform/meta/fenced-frame/sandbox-mandatory-flags.https.html.ini
new file mode 100644
index 0000000000..08249305de
--- /dev/null
+++ b/testing/web-platform/meta/fenced-frame/sandbox-mandatory-flags.https.html.ini
@@ -0,0 +1,16 @@
+[sandbox-mandatory-flags.https.html]
+ expected:
+ if (os == "win") and debug: [TIMEOUT, CRASH]
+ if (os == "linux") and debug: [TIMEOUT, CRASH]
+ TIMEOUT
+ [Sandboxed Iframe with mandatory flags can load a fenced frame.]
+ expected: TIMEOUT
+
+ [Sandboxed Iframe without one of mandatory flag must fail to load a fenced frame.]
+ expected: NOTRUN
+
+ [Nested sandboxed iframe without one of mandatory flag must fail to load afenced frame even when the inner nested sandboxed iframe has all mandatory allow- flags.]
+ expected: NOTRUN
+
+ [navigator.canLoadAdAuctionFencedFrame considers mandatory sandbox flags]
+ expected: NOTRUN
diff --git a/testing/web-platform/meta/fenced-frame/sandboxed-features-alert.https.html.ini b/testing/web-platform/meta/fenced-frame/sandboxed-features-alert.https.html.ini
new file mode 100644
index 0000000000..a2dcd3bf02
--- /dev/null
+++ b/testing/web-platform/meta/fenced-frame/sandboxed-features-alert.https.html.ini
@@ -0,0 +1,6 @@
+[sandboxed-features-alert.https.html]
+ [The fenced frame must fail to open an alert dialog.]
+ expected: FAIL
+
+ [The fenced frame must fail to open an alert dialog.[looser sandboxed\]]
+ expected: FAIL
diff --git a/testing/web-platform/meta/fenced-frame/sandboxed-features-confirm.https.html.ini b/testing/web-platform/meta/fenced-frame/sandboxed-features-confirm.https.html.ini
new file mode 100644
index 0000000000..175e641d38
--- /dev/null
+++ b/testing/web-platform/meta/fenced-frame/sandboxed-features-confirm.https.html.ini
@@ -0,0 +1,6 @@
+[sandboxed-features-confirm.https.html]
+ [The fenced frame must fail to open a confirm dialog.]
+ expected: FAIL
+
+ [The fenced frame must fail to open a confirm dialog.[looser sandboxed\]]
+ expected: FAIL
diff --git a/testing/web-platform/meta/fenced-frame/sandboxed-features-documentdomain.https.html.ini b/testing/web-platform/meta/fenced-frame/sandboxed-features-documentdomain.https.html.ini
new file mode 100644
index 0000000000..11f728fcaa
--- /dev/null
+++ b/testing/web-platform/meta/fenced-frame/sandboxed-features-documentdomain.https.html.ini
@@ -0,0 +1,6 @@
+[sandboxed-features-documentdomain.https.html]
+ [The fenced frame must fail to change Document.domain.]
+ expected: FAIL
+
+ [The fenced frame must fail to change Document.domain.[looser sandboxed\]]
+ expected: FAIL
diff --git a/testing/web-platform/meta/fenced-frame/sandboxed-features-pointerlock.https.html.ini b/testing/web-platform/meta/fenced-frame/sandboxed-features-pointerlock.https.html.ini
new file mode 100644
index 0000000000..f9064b5c4e
--- /dev/null
+++ b/testing/web-platform/meta/fenced-frame/sandboxed-features-pointerlock.https.html.ini
@@ -0,0 +1,6 @@
+[sandboxed-features-pointerlock.https.html]
+ [The fenced frame must fail to call requestPointerLock().]
+ expected: FAIL
+
+ [The fenced frame must fail to call requestPointerLock().[looser sandboxed\]]
+ expected: FAIL
diff --git a/testing/web-platform/meta/fenced-frame/sandboxed-features-presentation-request.https.html.ini b/testing/web-platform/meta/fenced-frame/sandboxed-features-presentation-request.https.html.ini
new file mode 100644
index 0000000000..7b7225f4a2
--- /dev/null
+++ b/testing/web-platform/meta/fenced-frame/sandboxed-features-presentation-request.https.html.ini
@@ -0,0 +1,6 @@
+[sandboxed-features-presentation-request.https.html]
+ [The fenced frame must fail to create a PresentationRequest.]
+ expected: FAIL
+
+ [The fenced frame must fail to create a PresentationRequest.[looser sandboxed\]]
+ expected: FAIL
diff --git a/testing/web-platform/meta/fenced-frame/sandboxed-features-printdialog.https.html.ini b/testing/web-platform/meta/fenced-frame/sandboxed-features-printdialog.https.html.ini
new file mode 100644
index 0000000000..4bec0da9af
--- /dev/null
+++ b/testing/web-platform/meta/fenced-frame/sandboxed-features-printdialog.https.html.ini
@@ -0,0 +1,6 @@
+[sandboxed-features-printdialog.https.html]
+ [The fenced frame must fail to print the page.]
+ expected: FAIL
+
+ [The fenced frame must fail to print the page.[looser sandboxed\]]
+ expected: FAIL
diff --git a/testing/web-platform/meta/fenced-frame/sandboxed-features-prompt.https.html.ini b/testing/web-platform/meta/fenced-frame/sandboxed-features-prompt.https.html.ini
new file mode 100644
index 0000000000..db6be31fd4
--- /dev/null
+++ b/testing/web-platform/meta/fenced-frame/sandboxed-features-prompt.https.html.ini
@@ -0,0 +1,6 @@
+[sandboxed-features-prompt.https.html]
+ [The fenced frame must fail to open a prompt.]
+ expected: FAIL
+
+ [The fenced frame must fail to open a prompt.[looser sandboxed\]]
+ expected: FAIL
diff --git a/testing/web-platform/meta/fenced-frame/sandboxed-features-screen-orientation-lock.https.html.ini b/testing/web-platform/meta/fenced-frame/sandboxed-features-screen-orientation-lock.https.html.ini
new file mode 100644
index 0000000000..471dfb034a
--- /dev/null
+++ b/testing/web-platform/meta/fenced-frame/sandboxed-features-screen-orientation-lock.https.html.ini
@@ -0,0 +1,6 @@
+[sandboxed-features-screen-orientation-lock.https.html]
+ [The fenced frame must fail to call screen.orientation.lock().]
+ expected: FAIL
+
+ [The fenced frame must fail to call screen.orientation.lock().[looser sandboxed\]]
+ expected: FAIL
diff --git a/testing/web-platform/meta/fenced-frame/script-focus.https.html.ini b/testing/web-platform/meta/fenced-frame/script-focus.https.html.ini
new file mode 100644
index 0000000000..b5b44f58b2
--- /dev/null
+++ b/testing/web-platform/meta/fenced-frame/script-focus.https.html.ini
@@ -0,0 +1,24 @@
+[script-focus.https.html]
+ [An embedder can focus out of a fenced frame]
+ expected: FAIL
+
+ [Fenced frames can't pull script focus until getting user activation]
+ expected: FAIL
+
+ [Focused fenced frames can move programmatic focus within frame]
+ expected: FAIL
+
+ [Script focus into a fenced frame consumes user activation]
+ expected: FAIL
+
+ [Another fenced frame cannot pull focus out of a focused fenced frame]
+ expected: FAIL
+
+ [A fenced frame nested in another fenced frame cannot pull focus]
+ expected: FAIL
+
+ [A fenced frame cannot pull window.focus() without user activation]
+ expected: FAIL
+
+ [A fenced frame can pull window.focus() after user activation]
+ expected: FAIL
diff --git a/testing/web-platform/meta/fenced-frame/selecturl-flexible-size.https.html.ini b/testing/web-platform/meta/fenced-frame/selecturl-flexible-size.https.html.ini
new file mode 100644
index 0000000000..09ec0ca12f
--- /dev/null
+++ b/testing/web-platform/meta/fenced-frame/selecturl-flexible-size.https.html.ini
@@ -0,0 +1,3 @@
+[selecturl-flexible-size.https.html]
+ [299x72->100x101]
+ expected: FAIL
diff --git a/testing/web-platform/meta/fenced-frame/self-urn-navigation.https.html.ini b/testing/web-platform/meta/fenced-frame/self-urn-navigation.https.html.ini
new file mode 100644
index 0000000000..66b6e36800
--- /dev/null
+++ b/testing/web-platform/meta/fenced-frame/self-urn-navigation.https.html.ini
@@ -0,0 +1,3 @@
+[self-urn-navigation.https.html]
+ [fenced frame-initiated self urn navigation]
+ expected: FAIL
diff --git a/testing/web-platform/meta/fenced-frame/serviceWorker-dedicated-worker.https.html.ini b/testing/web-platform/meta/fenced-frame/serviceWorker-dedicated-worker.https.html.ini
new file mode 100644
index 0000000000..a1ba492ad4
--- /dev/null
+++ b/testing/web-platform/meta/fenced-frame/serviceWorker-dedicated-worker.https.html.ini
@@ -0,0 +1,9 @@
+[serviceWorker-dedicated-worker.https.html]
+ [Fenced frame's service workers can control fenced frame's dedicated workers]
+ expected: FAIL
+
+ [Fenced frame's service workers can not control the dedicated workers in the parent frame]
+ expected: FAIL
+
+ [Service workers in the parent frame of fenced frames can not control dedicated workers in fenced frames]
+ expected: FAIL
diff --git a/testing/web-platform/meta/fenced-frame/serviceWorker-frameType.https.html.ini b/testing/web-platform/meta/fenced-frame/serviceWorker-frameType.https.html.ini
new file mode 100644
index 0000000000..ae253ac460
--- /dev/null
+++ b/testing/web-platform/meta/fenced-frame/serviceWorker-frameType.https.html.ini
@@ -0,0 +1,3 @@
+[serviceWorker-frameType.https.html]
+ [serviceWorker.frameType]
+ expected: FAIL
diff --git a/testing/web-platform/meta/fenced-frame/serviceWorker-push.https.html.ini b/testing/web-platform/meta/fenced-frame/serviceWorker-push.https.html.ini
new file mode 100644
index 0000000000..8b20204078
--- /dev/null
+++ b/testing/web-platform/meta/fenced-frame/serviceWorker-push.https.html.ini
@@ -0,0 +1,6 @@
+[serviceWorker-push.https.html]
+ [subscribe() should fail inside a fenced frame]
+ expected: FAIL
+
+ [subscribe() should fail from the service worker inside a fenced frame]
+ expected: FAIL
diff --git a/testing/web-platform/meta/fenced-frame/set-automatic-beacon.https.html.ini b/testing/web-platform/meta/fenced-frame/set-automatic-beacon.https.html.ini
new file mode 100644
index 0000000000..6901807480
--- /dev/null
+++ b/testing/web-platform/meta/fenced-frame/set-automatic-beacon.https.html.ini
@@ -0,0 +1,9 @@
+[set-automatic-beacon.https.html]
+ [setReportEventDataForAutomaticBeacons works at the size limit]
+ expected: FAIL
+
+ [setReportEventDataForAutomaticBeacons fails over the size limit]
+ expected: FAIL
+
+ [setReportEventDataForAutomaticBeacons fails for invalid destination]
+ expected: FAIL
diff --git a/testing/web-platform/meta/fenced-frame/show-directory-picker.https.html.ini b/testing/web-platform/meta/fenced-frame/show-directory-picker.https.html.ini
new file mode 100644
index 0000000000..6f3c6bbe85
--- /dev/null
+++ b/testing/web-platform/meta/fenced-frame/show-directory-picker.https.html.ini
@@ -0,0 +1,3 @@
+[show-directory-picker.https.html]
+ [Directory information should not be read in the fenced frame.]
+ expected: FAIL
diff --git a/testing/web-platform/meta/fenced-frame/show-open-file-picker.https.html.ini b/testing/web-platform/meta/fenced-frame/show-open-file-picker.https.html.ini
new file mode 100644
index 0000000000..1fbea5b1ad
--- /dev/null
+++ b/testing/web-platform/meta/fenced-frame/show-open-file-picker.https.html.ini
@@ -0,0 +1,3 @@
+[show-open-file-picker.https.html]
+ [Directory information should not be read in the fenced frame.]
+ expected: FAIL
diff --git a/testing/web-platform/meta/fenced-frame/storage-partitioning.https.html.ini b/testing/web-platform/meta/fenced-frame/storage-partitioning.https.html.ini
new file mode 100644
index 0000000000..0e2fea2654
--- /dev/null
+++ b/testing/web-platform/meta/fenced-frame/storage-partitioning.https.html.ini
@@ -0,0 +1,18 @@
+[storage-partitioning.https.html]
+ [document.cookie]
+ expected: FAIL
+
+ [localStorage]
+ expected: FAIL
+
+ [sessionStorage]
+ expected: FAIL
+
+ [Cache API]
+ expected: FAIL
+
+ [File System Access API]
+ expected: FAIL
+
+ [IndexedDB]
+ expected: FAIL
diff --git a/testing/web-platform/meta/fenced-frame/unique-cookie-partition.https.html.ini b/testing/web-platform/meta/fenced-frame/unique-cookie-partition.https.html.ini
new file mode 100644
index 0000000000..94c841a168
--- /dev/null
+++ b/testing/web-platform/meta/fenced-frame/unique-cookie-partition.https.html.ini
@@ -0,0 +1,9 @@
+[unique-cookie-partition.https.html]
+ [Cookie access from top-level fenced frame]
+ expected: FAIL
+
+ [Cookie access from iframe nested in a fenced frame]
+ expected: FAIL
+
+ [Cookie access from nested fenced frame]
+ expected: FAIL
diff --git a/testing/web-platform/meta/fenced-frame/user-activation.https.html.ini b/testing/web-platform/meta/fenced-frame/user-activation.https.html.ini
new file mode 100644
index 0000000000..ad26738b7a
--- /dev/null
+++ b/testing/web-platform/meta/fenced-frame/user-activation.https.html.ini
@@ -0,0 +1,3 @@
+[user-activation.https.html]
+ [user-activation]
+ expected: FAIL
diff --git a/testing/web-platform/meta/fenced-frame/visual-viewport.https.html.ini b/testing/web-platform/meta/fenced-frame/visual-viewport.https.html.ini
new file mode 100644
index 0000000000..33943eda0c
--- /dev/null
+++ b/testing/web-platform/meta/fenced-frame/visual-viewport.https.html.ini
@@ -0,0 +1,3 @@
+[visual-viewport.https.html]
+ [visualViewport values inside fenced frame]
+ expected: FAIL
diff --git a/testing/web-platform/meta/fenced-frame/web-bluetooth.https.html.ini b/testing/web-platform/meta/fenced-frame/web-bluetooth.https.html.ini
new file mode 100644
index 0000000000..ddee4101b2
--- /dev/null
+++ b/testing/web-platform/meta/fenced-frame/web-bluetooth.https.html.ini
@@ -0,0 +1,3 @@
+[web-bluetooth.https.html]
+ [Web Bluetooth requestDevice() must fail in a fenced frame]
+ expected: FAIL
diff --git a/testing/web-platform/meta/fenced-frame/web-nfc.https.html.ini b/testing/web-platform/meta/fenced-frame/web-nfc.https.html.ini
new file mode 100644
index 0000000000..049cc9f601
--- /dev/null
+++ b/testing/web-platform/meta/fenced-frame/web-nfc.https.html.ini
@@ -0,0 +1,3 @@
+[web-nfc.https.html]
+ [Test Web NFC API]
+ expected: FAIL
diff --git a/testing/web-platform/meta/fenced-frame/web-share.https.html.ini b/testing/web-platform/meta/fenced-frame/web-share.https.html.ini
new file mode 100644
index 0000000000..0baf1fc4d6
--- /dev/null
+++ b/testing/web-platform/meta/fenced-frame/web-share.https.html.ini
@@ -0,0 +1,3 @@
+[web-share.https.html]
+ [Web Sharelock in a fenced frame must fail]
+ expected: FAIL
diff --git a/testing/web-platform/meta/fenced-frame/web-usb.https.html.ini b/testing/web-platform/meta/fenced-frame/web-usb.https.html.ini
new file mode 100644
index 0000000000..8b9da27109
--- /dev/null
+++ b/testing/web-platform/meta/fenced-frame/web-usb.https.html.ini
@@ -0,0 +1,3 @@
+[web-usb.https.html]
+ [navigator.usb.requestDevice]
+ expected: FAIL
diff --git a/testing/web-platform/meta/fenced-frame/window-close.https.html.ini b/testing/web-platform/meta/fenced-frame/window-close.https.html.ini
new file mode 100644
index 0000000000..f9d1677939
--- /dev/null
+++ b/testing/web-platform/meta/fenced-frame/window-close.https.html.ini
@@ -0,0 +1,3 @@
+[window-close.https.html]
+ [window.close]
+ expected: FAIL
diff --git a/testing/web-platform/meta/fenced-frame/window-frameElement.https.html.ini b/testing/web-platform/meta/fenced-frame/window-frameElement.https.html.ini
new file mode 100644
index 0000000000..5d1c8a1973
--- /dev/null
+++ b/testing/web-platform/meta/fenced-frame/window-frameElement.https.html.ini
@@ -0,0 +1,3 @@
+[window-frameElement.https.html]
+ [window.frameElement null for same-origin fenced frames]
+ expected: FAIL
diff --git a/testing/web-platform/meta/fenced-frame/window-navigation-204.https.html.ini b/testing/web-platform/meta/fenced-frame/window-navigation-204.https.html.ini
new file mode 100644
index 0000000000..98b0d5d810
--- /dev/null
+++ b/testing/web-platform/meta/fenced-frame/window-navigation-204.https.html.ini
@@ -0,0 +1,3 @@
+[window-navigation-204.https.html]
+ [window.navigation.204]
+ expected: FAIL
diff --git a/testing/web-platform/meta/fenced-frame/window-outer-dimensions.https.html.ini b/testing/web-platform/meta/fenced-frame/window-outer-dimensions.https.html.ini
new file mode 100644
index 0000000000..62ca4a508e
--- /dev/null
+++ b/testing/web-platform/meta/fenced-frame/window-outer-dimensions.https.html.ini
@@ -0,0 +1,12 @@
+[window-outer-dimensions.https.html]
+ [window.outerWidth]
+ expected: FAIL
+
+ [window.outerHeight]
+ expected: FAIL
+
+ [window.outerWidth nested iframe]
+ expected: FAIL
+
+ [window.outerHeight nested iframe]
+ expected: FAIL
diff --git a/testing/web-platform/meta/fenced-frame/window-parent.https.html.ini b/testing/web-platform/meta/fenced-frame/window-parent.https.html.ini
new file mode 100644
index 0000000000..40ba19cb57
--- /dev/null
+++ b/testing/web-platform/meta/fenced-frame/window-parent.https.html.ini
@@ -0,0 +1,3 @@
+[window-parent.https.html]
+ [window.parent]
+ expected: FAIL
diff --git a/testing/web-platform/meta/fenced-frame/window-top.https.html.ini b/testing/web-platform/meta/fenced-frame/window-top.https.html.ini
new file mode 100644
index 0000000000..a3772a87b9
--- /dev/null
+++ b/testing/web-platform/meta/fenced-frame/window-top.https.html.ini
@@ -0,0 +1,3 @@
+[window-top.https.html]
+ [window.top]
+ expected: FAIL