summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/meta/speculation-rules
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-19 00:47:55 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-19 00:47:55 +0000
commit26a029d407be480d791972afb5975cf62c9360a6 (patch)
treef435a8308119effd964b339f76abb83a57c29483 /testing/web-platform/meta/speculation-rules
parentInitial commit. (diff)
downloadfirefox-26a029d407be480d791972afb5975cf62c9360a6.tar.xz
firefox-26a029d407be480d791972afb5975cf62c9360a6.zip
Adding upstream version 124.0.1.upstream/124.0.1
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'testing/web-platform/meta/speculation-rules')
-rw-r--r--testing/web-platform/meta/speculation-rules/prefetch/anonymous-client.https.html.ini2
-rw-r--r--testing/web-platform/meta/speculation-rules/prefetch/cross-origin-cookies.https.html.ini2
-rw-r--r--testing/web-platform/meta/speculation-rules/prefetch/different-initiators-2.https.html.ini2
-rw-r--r--testing/web-platform/meta/speculation-rules/prefetch/different-initiators.sub.https.html.ini8
-rw-r--r--testing/web-platform/meta/speculation-rules/prefetch/document-rules.https.html.ini56
-rw-r--r--testing/web-platform/meta/speculation-rules/prefetch/duplicate-urls.https.html.ini2
-rw-r--r--testing/web-platform/meta/speculation-rules/prefetch/fragment.https.html.ini2
-rw-r--r--testing/web-platform/meta/speculation-rules/prefetch/implicit-source.https.html.ini2
-rw-r--r--testing/web-platform/meta/speculation-rules/prefetch/initiators-a-element.sub.https.html.ini5
-rw-r--r--testing/web-platform/meta/speculation-rules/prefetch/initiators-iframe-location-href.sub.https.html.ini5
-rw-r--r--testing/web-platform/meta/speculation-rules/prefetch/initiators-window-open.sub.https.html.ini5
-rw-r--r--testing/web-platform/meta/speculation-rules/prefetch/invalid-rules.https.html.ini2
-rw-r--r--testing/web-platform/meta/speculation-rules/prefetch/multiple-url.https.html.ini2
-rw-r--r--testing/web-platform/meta/speculation-rules/prefetch/navigation-timing-delivery-type.https.html.ini11
-rw-r--r--testing/web-platform/meta/speculation-rules/prefetch/navigation-timing-requestStart-responseStart.https.html.ini8
-rw-r--r--testing/web-platform/meta/speculation-rules/prefetch/navigation-timing-sizes.https.html.ini14
-rw-r--r--testing/web-platform/meta/speculation-rules/prefetch/no-vary-search/prefetch-single-with-hint.https.html.ini86
-rw-r--r--testing/web-platform/meta/speculation-rules/prefetch/no-vary-search/prefetch-single.https.html.ini96
-rw-r--r--testing/web-platform/meta/speculation-rules/prefetch/out-of-document-rule-set.https.html.ini41
-rw-r--r--testing/web-platform/meta/speculation-rules/prefetch/prefetch-single.https.html.ini11
-rw-r--r--testing/web-platform/meta/speculation-rules/prefetch/prefetch-status.https.html.ini14
-rw-r--r--testing/web-platform/meta/speculation-rules/prefetch/prefetch-traverse-reload.sub.html.ini2
-rw-r--r--testing/web-platform/meta/speculation-rules/prefetch/prefetch-uses-cache.sub.https.html.ini5
-rw-r--r--testing/web-platform/meta/speculation-rules/prefetch/redirect-url.sub.https.html.ini2
-rw-r--r--testing/web-platform/meta/speculation-rules/prefetch/referrer-policy-from-rules.https.html.ini35
-rw-r--r--testing/web-platform/meta/speculation-rules/prefetch/referrer-policy-not-accepted.https.html.ini12
-rw-r--r--testing/web-platform/meta/speculation-rules/prefetch/referrer-policy.https.html.ini31
-rw-r--r--testing/web-platform/meta/speculation-rules/prefetch/same-origin-cookies.https.html.ini8
-rw-r--r--testing/web-platform/meta/speculation-rules/prefetch/user-pass.https.html.ini5
-rw-r--r--testing/web-platform/meta/speculation-rules/prerender/about-blank-iframes.html.ini2
-rw-r--r--testing/web-platform/meta/speculation-rules/prerender/accept-client-hint-cache.https.html.ini2
-rw-r--r--testing/web-platform/meta/speculation-rules/prerender/activation-start.html.ini2
-rw-r--r--testing/web-platform/meta/speculation-rules/prerender/blob_object_url.html.ini2
-rw-r--r--testing/web-platform/meta/speculation-rules/prerender/cache-storage.https.html.ini4
-rw-r--r--testing/web-platform/meta/speculation-rules/prerender/clients-matchall.https.html.ini4
-rw-r--r--testing/web-platform/meta/speculation-rules/prerender/cookies.https.html.ini4
-rw-r--r--testing/web-platform/meta/speculation-rules/prerender/credentialed-prerender-not-opt-in.html.ini4
-rw-r--r--testing/web-platform/meta/speculation-rules/prerender/credentialed-prerender-opt-in.html.ini4
-rw-r--r--testing/web-platform/meta/speculation-rules/prerender/cross-origin-iframe.html.ini10
-rw-r--r--testing/web-platform/meta/speculation-rules/prerender/cross-origin-isolated.https.html.ini10
-rw-r--r--testing/web-platform/meta/speculation-rules/prerender/csp-script-src-elem-inline-speculation-rules.html.ini8
-rw-r--r--testing/web-platform/meta/speculation-rules/prerender/csp-script-src-inline-speculation-rules.html.ini8
-rw-r--r--testing/web-platform/meta/speculation-rules/prerender/csp-script-src-self.html.ini8
-rw-r--r--testing/web-platform/meta/speculation-rules/prerender/csp-script-src-strict-dynamic.html.ini8
-rw-r--r--testing/web-platform/meta/speculation-rules/prerender/csp-script-src-unsafe-inline.html.ini8
-rw-r--r--testing/web-platform/meta/speculation-rules/prerender/fetch-blob.html.ini10
-rw-r--r--testing/web-platform/meta/speculation-rules/prerender/fetch-intercepted-by-service-worker.https.html.ini4
-rw-r--r--testing/web-platform/meta/speculation-rules/prerender/iframe-added-post-activation.html.ini5
-rw-r--r--testing/web-platform/meta/speculation-rules/prerender/indexeddb.html.ini4
-rw-r--r--testing/web-platform/meta/speculation-rules/prerender/local-storage.html.ini10
-rw-r--r--testing/web-platform/meta/speculation-rules/prerender/main-frame-navigation.https.html.ini2
-rw-r--r--testing/web-platform/meta/speculation-rules/prerender/media-autoplay.html.ini4
-rw-r--r--testing/web-platform/meta/speculation-rules/prerender/navigation-api-location-replace.html.ini2
-rw-r--r--testing/web-platform/meta/speculation-rules/prerender/navigation-api-multiple-entries.html.ini2
-rw-r--r--testing/web-platform/meta/speculation-rules/prerender/navigation-api.html.ini2
-rw-r--r--testing/web-platform/meta/speculation-rules/prerender/navigation-intercepted-by-service-worker.https.html.ini4
-rw-r--r--testing/web-platform/meta/speculation-rules/prerender/navigator-plugins.html.ini2
-rw-r--r--testing/web-platform/meta/speculation-rules/prerender/prefetch.https.html.ini2
-rw-r--r--testing/web-platform/meta/speculation-rules/prerender/prerender-while-prerender.html.ini2
-rw-r--r--testing/web-platform/meta/speculation-rules/prerender/referrer-policy-from-rules.html.ini9
-rw-r--r--testing/web-platform/meta/speculation-rules/prerender/referrer-policy-mismatch.html.ini4
-rw-r--r--testing/web-platform/meta/speculation-rules/prerender/referrer-policy-no-referrer.html.ini4
-rw-r--r--testing/web-platform/meta/speculation-rules/prerender/referrer-policy-origin.html.ini4
-rw-r--r--testing/web-platform/meta/speculation-rules/prerender/referrer-policy-strict-origin.html.ini4
-rw-r--r--testing/web-platform/meta/speculation-rules/prerender/referrer.html.ini4
-rw-r--r--testing/web-platform/meta/speculation-rules/prerender/register-service-worker.https.html.ini4
-rw-r--r--testing/web-platform/meta/speculation-rules/prerender/remove-script-element.html.ini4
-rw-r--r--testing/web-platform/meta/speculation-rules/prerender/response-code-non-successful.html.ini32
-rw-r--r--testing/web-platform/meta/speculation-rules/prerender/response-code-successful.html.ini17
-rw-r--r--testing/web-platform/meta/speculation-rules/prerender/restriction-audio-setSinkId-with-invalid-sinkId.https.tentative.html.ini10
-rw-r--r--testing/web-platform/meta/speculation-rules/prerender/restriction-audio-setSinkId.https.tentative.html.ini10
-rw-r--r--testing/web-platform/meta/speculation-rules/prerender/restriction-background-fetch.https.html.ini10
-rw-r--r--testing/web-platform/meta/speculation-rules/prerender/restriction-background-sync.tentative.https.html.ini10
-rw-r--r--testing/web-platform/meta/speculation-rules/prerender/restriction-battery-status.https.html.ini10
-rw-r--r--testing/web-platform/meta/speculation-rules/prerender/restriction-bluetooth.tentative.https.html.ini4
-rw-r--r--testing/web-platform/meta/speculation-rules/prerender/restriction-broadcast-channel.html.ini4
-rw-r--r--testing/web-platform/meta/speculation-rules/prerender/restriction-dedicated-worker.https.html.ini4
-rw-r--r--testing/web-platform/meta/speculation-rules/prerender/restriction-encrypted-media-unsupported-config.https.html.ini4
-rw-r--r--testing/web-platform/meta/speculation-rules/prerender/restriction-encrypted-media.https.html.ini4
-rw-r--r--testing/web-platform/meta/speculation-rules/prerender/restriction-focus.html.ini4
-rw-r--r--testing/web-platform/meta/speculation-rules/prerender/restriction-idle-detection.https.html.ini4
-rw-r--r--testing/web-platform/meta/speculation-rules/prerender/restriction-local-file-system-access.https.html.ini4
-rw-r--r--testing/web-platform/meta/speculation-rules/prerender/restriction-media-auto-play-attribute.html.ini10
-rw-r--r--testing/web-platform/meta/speculation-rules/prerender/restriction-media-camera.https.html.ini10
-rw-r--r--testing/web-platform/meta/speculation-rules/prerender/restriction-media-device-info.https.html.ini10
-rw-r--r--testing/web-platform/meta/speculation-rules/prerender/restriction-media-microphone.https.html.ini10
-rw-r--r--testing/web-platform/meta/speculation-rules/prerender/restriction-media-play.html.ini10
-rw-r--r--testing/web-platform/meta/speculation-rules/prerender/restriction-message-boxes.html.ini4
-rw-r--r--testing/web-platform/meta/speculation-rules/prerender/restriction-midi-sysex.https.html.ini4
-rw-r--r--testing/web-platform/meta/speculation-rules/prerender/restriction-midi.https.html.ini4
-rw-r--r--testing/web-platform/meta/speculation-rules/prerender/restriction-notification.https.html.ini4
-rw-r--r--testing/web-platform/meta/speculation-rules/prerender/restriction-presentation-request.https.html.ini4
-rw-r--r--testing/web-platform/meta/speculation-rules/prerender/restriction-prompt-by-before-unload.html.ini4
-rw-r--r--testing/web-platform/meta/speculation-rules/prerender/restriction-push.https.html.ini4
-rw-r--r--testing/web-platform/meta/speculation-rules/prerender/restriction-request-picture-in-picture.html.ini4
-rw-r--r--testing/web-platform/meta/speculation-rules/prerender/restriction-screen-capture.https.html.ini10
-rw-r--r--testing/web-platform/meta/speculation-rules/prerender/restriction-screen-orientation-lock.https.html.ini4
-rw-r--r--testing/web-platform/meta/speculation-rules/prerender/restriction-sensor-accelerometer.https.html.ini10
-rw-r--r--testing/web-platform/meta/speculation-rules/prerender/restriction-sensor-ambient-light-sensor.https.html.ini10
-rw-r--r--testing/web-platform/meta/speculation-rules/prerender/restriction-sensor-gyroscope.https.html.ini10
-rw-r--r--testing/web-platform/meta/speculation-rules/prerender/restriction-sensor-magnetometer.https.html.ini10
-rw-r--r--testing/web-platform/meta/speculation-rules/prerender/restriction-service-worker-postmessage.https.html.ini4
-rw-r--r--testing/web-platform/meta/speculation-rules/prerender/restriction-service-worker-unregister.https.html.ini4
-rw-r--r--testing/web-platform/meta/speculation-rules/prerender/restriction-service-worker-update.https.html.ini4
-rw-r--r--testing/web-platform/meta/speculation-rules/prerender/restriction-speech-synthesis.html.ini4
-rw-r--r--testing/web-platform/meta/speculation-rules/prerender/restriction-storage-persist.https.html.ini4
-rw-r--r--testing/web-platform/meta/speculation-rules/prerender/restriction-wake-lock.https.html.ini4
-rw-r--r--testing/web-platform/meta/speculation-rules/prerender/restriction-web-hid.https.html.ini4
-rw-r--r--testing/web-platform/meta/speculation-rules/prerender/restriction-web-locks.https.html.ini4
-rw-r--r--testing/web-platform/meta/speculation-rules/prerender/restriction-web-nfc.https.html.ini4
-rw-r--r--testing/web-platform/meta/speculation-rules/prerender/restriction-web-serial.tentative.https.html.ini4
-rw-r--r--testing/web-platform/meta/speculation-rules/prerender/restriction-web-share.https.html.ini4
-rw-r--r--testing/web-platform/meta/speculation-rules/prerender/restriction-web-usb.https.html.ini4
-rw-r--r--testing/web-platform/meta/speculation-rules/prerender/restriction-web-xr-immersive-vr-session.https.html.ini10
-rw-r--r--testing/web-platform/meta/speculation-rules/prerender/restriction-web-xr-inline-session.https.html.ini10
-rw-r--r--testing/web-platform/meta/speculation-rules/prerender/restriction-window-move.html.ini5
-rw-r--r--testing/web-platform/meta/speculation-rules/prerender/restriction-window-open.html.ini4
-rw-r--r--testing/web-platform/meta/speculation-rules/prerender/restriction-window-resize.html.ini5
-rw-r--r--testing/web-platform/meta/speculation-rules/prerender/restrictions.html.ini4
-rw-r--r--testing/web-platform/meta/speculation-rules/prerender/sandbox-iframe.html.ini4
-rw-r--r--testing/web-platform/meta/speculation-rules/prerender/script-supports-speculationrules.html.ini5
-rw-r--r--testing/web-platform/meta/speculation-rules/prerender/service-workers.https.html.ini4
-rw-r--r--testing/web-platform/meta/speculation-rules/prerender/session-history-activation.https.html.ini4
-rw-r--r--testing/web-platform/meta/speculation-rules/prerender/session-history-location.https.html.ini4
-rw-r--r--testing/web-platform/meta/speculation-rules/prerender/session-history-navigation.https.html.ini4
-rw-r--r--testing/web-platform/meta/speculation-rules/prerender/session-history-pushstate.https.html.ini4
-rw-r--r--testing/web-platform/meta/speculation-rules/prerender/session-history-subframe-navigation.https.html.ini4
-rw-r--r--testing/web-platform/meta/speculation-rules/prerender/session-history-subframe-reload.https.html.ini4
-rw-r--r--testing/web-platform/meta/speculation-rules/prerender/state-and-event.html.ini4
-rw-r--r--testing/web-platform/meta/speculation-rules/prerender/visibility-state.html.ini4
-rw-r--r--testing/web-platform/meta/speculation-rules/prerender/windowclient-navigate-to-cross-origin-url-on-iframe.https.html.ini4
-rw-r--r--testing/web-platform/meta/speculation-rules/prerender/windowclient-navigate-to-same-origin-url-on-iframe.https.html.ini4
-rw-r--r--testing/web-platform/meta/speculation-rules/prerender/windowclient-navigate.https.html.ini4
-rw-r--r--testing/web-platform/meta/speculation-rules/prerender/workers-in-cross-origin-iframe.html.ini2
-rw-r--r--testing/web-platform/meta/speculation-rules/prerender/workers.html.ini4
135 files changed, 1072 insertions, 0 deletions
diff --git a/testing/web-platform/meta/speculation-rules/prefetch/anonymous-client.https.html.ini b/testing/web-platform/meta/speculation-rules/prefetch/anonymous-client.https.html.ini
new file mode 100644
index 0000000000..c2fbf3415c
--- /dev/null
+++ b/testing/web-platform/meta/speculation-rules/prefetch/anonymous-client.https.html.ini
@@ -0,0 +1,2 @@
+[anonymous-client.https.html]
+ expected: ERROR
diff --git a/testing/web-platform/meta/speculation-rules/prefetch/cross-origin-cookies.https.html.ini b/testing/web-platform/meta/speculation-rules/prefetch/cross-origin-cookies.https.html.ini
new file mode 100644
index 0000000000..91ae946d82
--- /dev/null
+++ b/testing/web-platform/meta/speculation-rules/prefetch/cross-origin-cookies.https.html.ini
@@ -0,0 +1,2 @@
+[cross-origin-cookies.https.html]
+ expected: ERROR
diff --git a/testing/web-platform/meta/speculation-rules/prefetch/different-initiators-2.https.html.ini b/testing/web-platform/meta/speculation-rules/prefetch/different-initiators-2.https.html.ini
new file mode 100644
index 0000000000..dc5b49697f
--- /dev/null
+++ b/testing/web-platform/meta/speculation-rules/prefetch/different-initiators-2.https.html.ini
@@ -0,0 +1,2 @@
+[different-initiators-2.https.html]
+ expected: ERROR
diff --git a/testing/web-platform/meta/speculation-rules/prefetch/different-initiators.sub.https.html.ini b/testing/web-platform/meta/speculation-rules/prefetch/different-initiators.sub.https.html.ini
new file mode 100644
index 0000000000..ea784d5a1b
--- /dev/null
+++ b/testing/web-platform/meta/speculation-rules/prefetch/different-initiators.sub.https.html.ini
@@ -0,0 +1,8 @@
+[different-initiators.sub.https.html?cross-site-1]
+ expected: ERROR
+
+[different-initiators.sub.https.html?same-site]
+ expected: ERROR
+
+[different-initiators.sub.https.html?cross-site-2]
+ expected: ERROR
diff --git a/testing/web-platform/meta/speculation-rules/prefetch/document-rules.https.html.ini b/testing/web-platform/meta/speculation-rules/prefetch/document-rules.https.html.ini
new file mode 100644
index 0000000000..464a6bd4eb
--- /dev/null
+++ b/testing/web-platform/meta/speculation-rules/prefetch/document-rules.https.html.ini
@@ -0,0 +1,56 @@
+[document-rules.https.html?include=invalidPredicate]
+ expected: ERROR
+
+[document-rules.https.html?include=linkInShadowTree]
+ expected: ERROR
+
+[document-rules.https.html?include=defaultPredicate]
+ expected: ERROR
+
+[document-rules.https.html?include=hrefMatches]
+ expected: ERROR
+
+[document-rules.https.html?include=not]
+ expected: ERROR
+
+[document-rules.https.html?include=or]
+ expected: ERROR
+
+[document-rules.https.html?include=and]
+ expected: ERROR
+
+[document-rules.https.html?include=linkHrefChanged]
+ expected: ERROR
+
+[document-rules.https.html?include=newRuleSetAdded]
+ expected: ERROR
+
+[document-rules.https.html?include=selectorMatchesDisplayLocked]
+ expected: ERROR
+
+[document-rules.https.html?include=unslottedLink]
+ expected: ERROR
+
+[document-rules.https.html?include=selectorMatches]
+ expected: ERROR
+
+[document-rules.https.html?include=selectorMatchesDisplayNone]
+ expected: ERROR
+
+[document-rules.https.html?include=selectorMatchesInShadowTree]
+ expected: ERROR
+
+[document-rules.https.html?include=selectorMatchesScopingRoot]
+ expected: ERROR
+
+[document-rules.https.html?include=immediateMutation]
+ expected: ERROR
+
+[document-rules.https.html?include=linkToSelfFragment]
+ expected: ERROR
+
+[document-rules.https.html?include=baseURLChangedByBaseElement]
+ expected: ERROR
+
+[document-rules.https.html?include=baseURLChangedBySameDocumentNavigation]
+ expected: ERROR
diff --git a/testing/web-platform/meta/speculation-rules/prefetch/duplicate-urls.https.html.ini b/testing/web-platform/meta/speculation-rules/prefetch/duplicate-urls.https.html.ini
new file mode 100644
index 0000000000..ea74744dd9
--- /dev/null
+++ b/testing/web-platform/meta/speculation-rules/prefetch/duplicate-urls.https.html.ini
@@ -0,0 +1,2 @@
+[duplicate-urls.https.html]
+ expected: ERROR
diff --git a/testing/web-platform/meta/speculation-rules/prefetch/fragment.https.html.ini b/testing/web-platform/meta/speculation-rules/prefetch/fragment.https.html.ini
new file mode 100644
index 0000000000..481df98721
--- /dev/null
+++ b/testing/web-platform/meta/speculation-rules/prefetch/fragment.https.html.ini
@@ -0,0 +1,2 @@
+[fragment.https.html]
+ expected: ERROR
diff --git a/testing/web-platform/meta/speculation-rules/prefetch/implicit-source.https.html.ini b/testing/web-platform/meta/speculation-rules/prefetch/implicit-source.https.html.ini
new file mode 100644
index 0000000000..df6f2b9232
--- /dev/null
+++ b/testing/web-platform/meta/speculation-rules/prefetch/implicit-source.https.html.ini
@@ -0,0 +1,2 @@
+[implicit-source.https.html]
+ expected: ERROR
diff --git a/testing/web-platform/meta/speculation-rules/prefetch/initiators-a-element.sub.https.html.ini b/testing/web-platform/meta/speculation-rules/prefetch/initiators-a-element.sub.https.html.ini
new file mode 100644
index 0000000000..399d9ac167
--- /dev/null
+++ b/testing/web-platform/meta/speculation-rules/prefetch/initiators-a-element.sub.https.html.ini
@@ -0,0 +1,5 @@
+[initiators-a-element.sub.https.html?same-site]
+ expected: ERROR
+
+[initiators-a-element.sub.https.html?cross-site]
+ expected: ERROR
diff --git a/testing/web-platform/meta/speculation-rules/prefetch/initiators-iframe-location-href.sub.https.html.ini b/testing/web-platform/meta/speculation-rules/prefetch/initiators-iframe-location-href.sub.https.html.ini
new file mode 100644
index 0000000000..b13c63e0dd
--- /dev/null
+++ b/testing/web-platform/meta/speculation-rules/prefetch/initiators-iframe-location-href.sub.https.html.ini
@@ -0,0 +1,5 @@
+[initiators-iframe-location-href.sub.https.html?cross-site]
+ expected: ERROR
+
+[initiators-iframe-location-href.sub.https.html?same-site]
+ expected: ERROR
diff --git a/testing/web-platform/meta/speculation-rules/prefetch/initiators-window-open.sub.https.html.ini b/testing/web-platform/meta/speculation-rules/prefetch/initiators-window-open.sub.https.html.ini
new file mode 100644
index 0000000000..79502152e9
--- /dev/null
+++ b/testing/web-platform/meta/speculation-rules/prefetch/initiators-window-open.sub.https.html.ini
@@ -0,0 +1,5 @@
+[initiators-window-open.sub.https.html?same-site]
+ expected: ERROR
+
+[initiators-window-open.sub.https.html?cross-site]
+ expected: ERROR
diff --git a/testing/web-platform/meta/speculation-rules/prefetch/invalid-rules.https.html.ini b/testing/web-platform/meta/speculation-rules/prefetch/invalid-rules.https.html.ini
new file mode 100644
index 0000000000..8f8e7671de
--- /dev/null
+++ b/testing/web-platform/meta/speculation-rules/prefetch/invalid-rules.https.html.ini
@@ -0,0 +1,2 @@
+[invalid-rules.https.html]
+ expected: ERROR
diff --git a/testing/web-platform/meta/speculation-rules/prefetch/multiple-url.https.html.ini b/testing/web-platform/meta/speculation-rules/prefetch/multiple-url.https.html.ini
new file mode 100644
index 0000000000..10cf634266
--- /dev/null
+++ b/testing/web-platform/meta/speculation-rules/prefetch/multiple-url.https.html.ini
@@ -0,0 +1,2 @@
+[multiple-url.https.html]
+ expected: ERROR
diff --git a/testing/web-platform/meta/speculation-rules/prefetch/navigation-timing-delivery-type.https.html.ini b/testing/web-platform/meta/speculation-rules/prefetch/navigation-timing-delivery-type.https.html.ini
new file mode 100644
index 0000000000..9efd52a74e
--- /dev/null
+++ b/testing/web-platform/meta/speculation-rules/prefetch/navigation-timing-delivery-type.https.html.ini
@@ -0,0 +1,11 @@
+[navigation-timing-delivery-type.https.html?prefetch=true&bypass_cache=true]
+ expected: ERROR
+
+[navigation-timing-delivery-type.https.html?prefetch=false&bypass_cache=false]
+ expected: ERROR
+
+[navigation-timing-delivery-type.https.html?prefetch=true&bypass_cache=false]
+ expected: ERROR
+
+[navigation-timing-delivery-type.https.html?prefetch=false&bypass_cache=true]
+ expected: ERROR
diff --git a/testing/web-platform/meta/speculation-rules/prefetch/navigation-timing-requestStart-responseStart.https.html.ini b/testing/web-platform/meta/speculation-rules/prefetch/navigation-timing-requestStart-responseStart.https.html.ini
new file mode 100644
index 0000000000..215621a2ee
--- /dev/null
+++ b/testing/web-platform/meta/speculation-rules/prefetch/navigation-timing-requestStart-responseStart.https.html.ini
@@ -0,0 +1,8 @@
+[navigation-timing-requestStart-responseStart.https.html?prefetch=true]
+ expected: ERROR
+
+[navigation-timing-requestStart-responseStart.https.html]
+ expected: ERROR
+
+[navigation-timing-requestStart-responseStart.https.html?default]
+ expected: ERROR
diff --git a/testing/web-platform/meta/speculation-rules/prefetch/navigation-timing-sizes.https.html.ini b/testing/web-platform/meta/speculation-rules/prefetch/navigation-timing-sizes.https.html.ini
new file mode 100644
index 0000000000..82091cd5c9
--- /dev/null
+++ b/testing/web-platform/meta/speculation-rules/prefetch/navigation-timing-sizes.https.html.ini
@@ -0,0 +1,14 @@
+[navigation-timing-sizes.https.html?bypass_cache=true]
+ expected: ERROR
+
+[navigation-timing-sizes.https.html?prefetch=true&bypass_cache=true]
+ expected: ERROR
+
+[navigation-timing-sizes.https.html]
+ expected: ERROR
+
+[navigation-timing-sizes.https.html?prefetch=true]
+ expected: ERROR
+
+[navigation-timing-sizes.https.html?default]
+ expected: ERROR
diff --git a/testing/web-platform/meta/speculation-rules/prefetch/no-vary-search/prefetch-single-with-hint.https.html.ini b/testing/web-platform/meta/speculation-rules/prefetch/no-vary-search/prefetch-single-with-hint.https.html.ini
new file mode 100644
index 0000000000..22a60038b9
--- /dev/null
+++ b/testing/web-platform/meta/speculation-rules/prefetch/no-vary-search/prefetch-single-with-hint.https.html.ini
@@ -0,0 +1,86 @@
+[prefetch-single-with-hint.https.html?14-14]
+ expected: ERROR
+
+[prefetch-single-with-hint.https.html?1-1]
+ expected: ERROR
+
+[prefetch-single-with-hint.https.html?17-17]
+ expected: ERROR
+
+[prefetch-single-with-hint.https.html?11-11]
+ expected: ERROR
+
+[prefetch-single-with-hint.https.html?6-6]
+ expected: ERROR
+
+[prefetch-single-with-hint.https.html?18-18]
+ expected: ERROR
+
+[prefetch-single-with-hint.https.html?20-20]
+ expected: ERROR
+
+[prefetch-single-with-hint.https.html?9-9]
+ expected: ERROR
+
+[prefetch-single-with-hint.https.html?8-8]
+ expected: ERROR
+
+[prefetch-single-with-hint.https.html?2-2]
+ expected: ERROR
+
+[prefetch-single-with-hint.https.html?22-22]
+ expected: ERROR
+
+[prefetch-single-with-hint.https.html?3-3]
+ expected: ERROR
+
+[prefetch-single-with-hint.https.html?24-24]
+ expected: ERROR
+
+[prefetch-single-with-hint.https.html?10-10]
+ expected: ERROR
+
+[prefetch-single-with-hint.https.html?15-15]
+ expected: ERROR
+
+[prefetch-single-with-hint.https.html?19-19]
+ expected: ERROR
+
+[prefetch-single-with-hint.https.html?16-16]
+ expected: ERROR
+
+[prefetch-single-with-hint.https.html?21-21]
+ expected: ERROR
+
+[prefetch-single-with-hint.https.html?12-12]
+ expected: ERROR
+
+[prefetch-single-with-hint.https.html?5-5]
+ expected: ERROR
+
+[prefetch-single-with-hint.https.html?13-13]
+ expected: ERROR
+
+[prefetch-single-with-hint.https.html?23-23]
+ expected: ERROR
+
+[prefetch-single-with-hint.https.html?4-4]
+ expected: ERROR
+
+[prefetch-single-with-hint.https.html?25-last]
+ expected: ERROR
+
+[prefetch-single-with-hint.https.html?7-7]
+ expected: ERROR
+
+[prefetch-single-with-hint.https.html?26-26]
+ expected: ERROR
+
+[prefetch-single-with-hint.https.html?27-27]
+ expected: ERROR
+
+[prefetch-single-with-hint.https.html?25-25]
+ expected: ERROR
+
+[prefetch-single-with-hint.https.html?28-last]
+ expected: ERROR
diff --git a/testing/web-platform/meta/speculation-rules/prefetch/no-vary-search/prefetch-single.https.html.ini b/testing/web-platform/meta/speculation-rules/prefetch/no-vary-search/prefetch-single.https.html.ini
new file mode 100644
index 0000000000..0f316d8d82
--- /dev/null
+++ b/testing/web-platform/meta/speculation-rules/prefetch/no-vary-search/prefetch-single.https.html.ini
@@ -0,0 +1,96 @@
+[prefetch-single.https.html?19-19]
+ expected: ERROR
+
+[prefetch-single.https.html?6-6]
+ expected: ERROR
+
+[prefetch-single.https.html?12-12]
+ expected: ERROR
+
+[prefetch-single.https.html?5-5]
+ expected: ERROR
+
+[prefetch-single.https.html?26-last]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
+ [Use the prefetched URL. Empty No-Vary-Search means default URL variance. The prefetched and the navigated URLs have to be the same.]
+ expected: FAIL
+
+
+[prefetch-single.https.html?2-2]
+ expected: ERROR
+
+[prefetch-single.https.html?4-4]
+ expected: ERROR
+
+[prefetch-single.https.html?14-14]
+ expected: ERROR
+
+[prefetch-single.https.html?11-11]
+ expected: ERROR
+
+[prefetch-single.https.html?8-8]
+ expected: ERROR
+
+[prefetch-single.https.html?9-9]
+ expected: ERROR
+
+[prefetch-single.https.html?10-10]
+ expected: ERROR
+
+[prefetch-single.https.html?20-20]
+ expected: ERROR
+
+[prefetch-single.https.html?3-3]
+ expected: ERROR
+
+[prefetch-single.https.html?13-13]
+ expected: ERROR
+
+[prefetch-single.https.html?7-7]
+ expected: ERROR
+
+[prefetch-single.https.html?23-23]
+ expected: ERROR
+
+[prefetch-single.https.html?22-22]
+ expected: ERROR
+
+[prefetch-single.https.html?1-1]
+ expected: ERROR
+
+[prefetch-single.https.html?25-25]
+ expected: ERROR
+
+[prefetch-single.https.html?18-18]
+ expected: ERROR
+
+[prefetch-single.https.html?17-17]
+ expected: ERROR
+
+[prefetch-single.https.html?15-15]
+ expected: ERROR
+
+[prefetch-single.https.html?21-21]
+ expected: ERROR
+
+[prefetch-single.https.html?24-24]
+ expected: ERROR
+
+[prefetch-single.https.html?16-16]
+ expected: ERROR
+
+[prefetch-single.https.html?26-26]
+ expected: ERROR
+
+[prefetch-single.https.html?27-27]
+ expected: ERROR
+
+[prefetch-single.https.html?29-29]
+ expected: ERROR
+
+[prefetch-single.https.html?30-last]
+ expected: ERROR
+
+[prefetch-single.https.html?28-28]
+ expected: ERROR
diff --git a/testing/web-platform/meta/speculation-rules/prefetch/out-of-document-rule-set.https.html.ini b/testing/web-platform/meta/speculation-rules/prefetch/out-of-document-rule-set.https.html.ini
new file mode 100644
index 0000000000..88d581f7ac
--- /dev/null
+++ b/testing/web-platform/meta/speculation-rules/prefetch/out-of-document-rule-set.https.html.ini
@@ -0,0 +1,41 @@
+[out-of-document-rule-set.https.html?include=RelativeUrlForSpeculationRulesSet]
+ expected: ERROR
+
+[out-of-document-rule-set.https.html?include=RelativeUrlForCandidate]
+ expected: ERROR
+
+[out-of-document-rule-set.https.html?include=FailCORS]
+ expected: ERROR
+
+[out-of-document-rule-set.https.html?include=InvalidUrlForSpeculationRulesSet]
+ expected: ERROR
+
+[out-of-document-rule-set.https.html?include=EmptyRuleSet]
+ expected: ERROR
+
+[out-of-document-rule-set.https.html?include=StatusCode199]
+ expected: ERROR
+
+[out-of-document-rule-set.https.html?include=FailToParseRuleSet]
+ expected: ERROR
+
+[out-of-document-rule-set.https.html?include=BaseCase]
+ expected: ERROR
+
+[out-of-document-rule-set.https.html?include=StatusCode404]
+ expected: ERROR
+
+[out-of-document-rule-set.https.html?include=UseNonUTF8EncodingForSpeculationRulesSet]
+ expected: ERROR
+
+[out-of-document-rule-set.https.html?include=InvalidMimeType]
+ expected: ERROR
+
+[out-of-document-rule-set.https.html?include=FailToParseSpeculationRulesHeader]
+ expected: ERROR
+
+[out-of-document-rule-set.https.html?include=FollowRedirect]
+ expected: ERROR
+
+[out-of-document-rule-set.https.html?include=InnerListInSpeculationRulesHeader]
+ expected: ERROR
diff --git a/testing/web-platform/meta/speculation-rules/prefetch/prefetch-single.https.html.ini b/testing/web-platform/meta/speculation-rules/prefetch/prefetch-single.https.html.ini
new file mode 100644
index 0000000000..55a45ae471
--- /dev/null
+++ b/testing/web-platform/meta/speculation-rules/prefetch/prefetch-single.https.html.ini
@@ -0,0 +1,11 @@
+[prefetch-single.https.html?from_protocol=https&to_protocol=https]
+ expected: ERROR
+
+[prefetch-single.https.html?from_protocol=http&to_protocol=http]
+ expected: ERROR
+
+[prefetch-single.https.html?from_protocol=http&to_protocol=https]
+ expected: ERROR
+
+[prefetch-single.https.html?from_protocol=https&to_protocol=http]
+ expected: ERROR
diff --git a/testing/web-platform/meta/speculation-rules/prefetch/prefetch-status.https.html.ini b/testing/web-platform/meta/speculation-rules/prefetch/prefetch-status.https.html.ini
new file mode 100644
index 0000000000..f60e7b75c4
--- /dev/null
+++ b/testing/web-platform/meta/speculation-rules/prefetch/prefetch-status.https.html.ini
@@ -0,0 +1,14 @@
+[prefetch-status.https.html?status=500&should_prefetch=false]
+ expected: ERROR
+
+[prefetch-status.https.html?status=400&should_prefetch=false]
+ expected: ERROR
+
+[prefetch-status.https.html?status=299&should_prefetch=true]
+ expected: ERROR
+
+[prefetch-status.https.html?status=250&should_prefetch=true]
+ expected: ERROR
+
+[prefetch-status.https.html?status=200&should_prefetch=true]
+ expected: ERROR
diff --git a/testing/web-platform/meta/speculation-rules/prefetch/prefetch-traverse-reload.sub.html.ini b/testing/web-platform/meta/speculation-rules/prefetch/prefetch-traverse-reload.sub.html.ini
new file mode 100644
index 0000000000..d4c35bf2df
--- /dev/null
+++ b/testing/web-platform/meta/speculation-rules/prefetch/prefetch-traverse-reload.sub.html.ini
@@ -0,0 +1,2 @@
+[prefetch-traverse-reload.sub.html]
+ expected: ERROR
diff --git a/testing/web-platform/meta/speculation-rules/prefetch/prefetch-uses-cache.sub.https.html.ini b/testing/web-platform/meta/speculation-rules/prefetch/prefetch-uses-cache.sub.https.html.ini
new file mode 100644
index 0000000000..c12ce2cbe7
--- /dev/null
+++ b/testing/web-platform/meta/speculation-rules/prefetch/prefetch-uses-cache.sub.https.html.ini
@@ -0,0 +1,5 @@
+[prefetch-uses-cache.sub.https.html?same-site]
+ expected: ERROR
+
+[prefetch-uses-cache.sub.https.html?cross-site]
+ expected: ERROR
diff --git a/testing/web-platform/meta/speculation-rules/prefetch/redirect-url.sub.https.html.ini b/testing/web-platform/meta/speculation-rules/prefetch/redirect-url.sub.https.html.ini
new file mode 100644
index 0000000000..6fccf5c4e5
--- /dev/null
+++ b/testing/web-platform/meta/speculation-rules/prefetch/redirect-url.sub.https.html.ini
@@ -0,0 +1,2 @@
+[redirect-url.sub.https.html]
+ expected: ERROR
diff --git a/testing/web-platform/meta/speculation-rules/prefetch/referrer-policy-from-rules.https.html.ini b/testing/web-platform/meta/speculation-rules/prefetch/referrer-policy-from-rules.https.html.ini
new file mode 100644
index 0000000000..af2f216a56
--- /dev/null
+++ b/testing/web-platform/meta/speculation-rules/prefetch/referrer-policy-from-rules.https.html.ini
@@ -0,0 +1,35 @@
+[referrer-policy-from-rules.https.html?4-4]
+ expected: ERROR
+
+[referrer-policy-from-rules.https.html?1-1]
+ expected: ERROR
+
+[referrer-policy-from-rules.https.html?3-3]
+ expected: ERROR
+
+[referrer-policy-from-rules.https.html?2-2]
+ expected: ERROR
+
+[referrer-policy-from-rules.https.html?5-last]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
+ [with "unsafe-url" referrer policy in rule set overriding "strict-origin" of referring page]
+ expected: FAIL
+
+ [with "unsafe-url" referrer policy in rule set overriding "strict-origin" of cross-site referring page]
+ expected: FAIL
+
+
+[referrer-policy-from-rules.https.html?6-last]
+ [with "unsafe-url" referrer policy in rule set overriding "strict-origin" of referring page]
+ expected: FAIL
+
+
+[referrer-policy-from-rules.https.html?5-5]
+ expected: ERROR
+
+[referrer-policy-from-rules.https.html?7-last]
+ expected: ERROR
+
+[referrer-policy-from-rules.https.html?6-6]
+ expected: ERROR
diff --git a/testing/web-platform/meta/speculation-rules/prefetch/referrer-policy-not-accepted.https.html.ini b/testing/web-platform/meta/speculation-rules/prefetch/referrer-policy-not-accepted.https.html.ini
new file mode 100644
index 0000000000..11fda50250
--- /dev/null
+++ b/testing/web-platform/meta/speculation-rules/prefetch/referrer-policy-not-accepted.https.html.ini
@@ -0,0 +1,12 @@
+[referrer-policy-not-accepted.https.html]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
+ [with "unsafe-url" referrer policy]
+ expected: FAIL
+
+
+[referrer-policy-not-accepted.https.html?1-1]
+ expected: ERROR
+
+[referrer-policy-not-accepted.https.html?2-last]
+ expected: ERROR
diff --git a/testing/web-platform/meta/speculation-rules/prefetch/referrer-policy.https.html.ini b/testing/web-platform/meta/speculation-rules/prefetch/referrer-policy.https.html.ini
new file mode 100644
index 0000000000..8a951bb9e3
--- /dev/null
+++ b/testing/web-platform/meta/speculation-rules/prefetch/referrer-policy.https.html.ini
@@ -0,0 +1,31 @@
+[referrer-policy.https.html]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
+ [with "strict-origin-when-cross-origin" referrer policy]
+ expected: FAIL
+
+ [with "strict-origin" referrer policy]
+ expected: FAIL
+
+ [with "no-referrer" referrer policy]
+ expected: FAIL
+
+
+[referrer-policy.https.html?2-2]
+ expected: ERROR
+
+[referrer-policy.https.html?1-1]
+ expected: ERROR
+
+[referrer-policy.https.html?3-last]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
+ [with "no-referrer" referrer policy]
+ expected: FAIL
+
+
+[referrer-policy.https.html?3-3]
+ expected: ERROR
+
+[referrer-policy.https.html?4-last]
+ expected: ERROR
diff --git a/testing/web-platform/meta/speculation-rules/prefetch/same-origin-cookies.https.html.ini b/testing/web-platform/meta/speculation-rules/prefetch/same-origin-cookies.https.html.ini
new file mode 100644
index 0000000000..a8959321ff
--- /dev/null
+++ b/testing/web-platform/meta/speculation-rules/prefetch/same-origin-cookies.https.html.ini
@@ -0,0 +1,8 @@
+[same-origin-cookies.https.html]
+ expected: ERROR
+
+[same-origin-cookies.https.html?2-last]
+ expected: ERROR
+
+[same-origin-cookies.https.html?1-1]
+ expected: ERROR
diff --git a/testing/web-platform/meta/speculation-rules/prefetch/user-pass.https.html.ini b/testing/web-platform/meta/speculation-rules/prefetch/user-pass.https.html.ini
new file mode 100644
index 0000000000..752a5cde74
--- /dev/null
+++ b/testing/web-platform/meta/speculation-rules/prefetch/user-pass.https.html.ini
@@ -0,0 +1,5 @@
+[user-pass.https.html?cross-origin=true]
+ expected: ERROR
+
+[user-pass.https.html?cross-origin=false]
+ expected: ERROR
diff --git a/testing/web-platform/meta/speculation-rules/prerender/about-blank-iframes.html.ini b/testing/web-platform/meta/speculation-rules/prerender/about-blank-iframes.html.ini
new file mode 100644
index 0000000000..bab2f66026
--- /dev/null
+++ b/testing/web-platform/meta/speculation-rules/prerender/about-blank-iframes.html.ini
@@ -0,0 +1,2 @@
+[about-blank-iframes.html]
+ expected: ERROR
diff --git a/testing/web-platform/meta/speculation-rules/prerender/accept-client-hint-cache.https.html.ini b/testing/web-platform/meta/speculation-rules/prerender/accept-client-hint-cache.https.html.ini
new file mode 100644
index 0000000000..8834b8a400
--- /dev/null
+++ b/testing/web-platform/meta/speculation-rules/prerender/accept-client-hint-cache.https.html.ini
@@ -0,0 +1,2 @@
+[accept-client-hint-cache.https.html]
+ expected: ERROR
diff --git a/testing/web-platform/meta/speculation-rules/prerender/activation-start.html.ini b/testing/web-platform/meta/speculation-rules/prerender/activation-start.html.ini
new file mode 100644
index 0000000000..15beca96ab
--- /dev/null
+++ b/testing/web-platform/meta/speculation-rules/prerender/activation-start.html.ini
@@ -0,0 +1,2 @@
+[activation-start.html]
+ expected: ERROR
diff --git a/testing/web-platform/meta/speculation-rules/prerender/blob_object_url.html.ini b/testing/web-platform/meta/speculation-rules/prerender/blob_object_url.html.ini
new file mode 100644
index 0000000000..1beaa14a65
--- /dev/null
+++ b/testing/web-platform/meta/speculation-rules/prerender/blob_object_url.html.ini
@@ -0,0 +1,2 @@
+[blob_object_url.html]
+ expected: ERROR
diff --git a/testing/web-platform/meta/speculation-rules/prerender/cache-storage.https.html.ini b/testing/web-platform/meta/speculation-rules/prerender/cache-storage.https.html.ini
new file mode 100644
index 0000000000..9702de444f
--- /dev/null
+++ b/testing/web-platform/meta/speculation-rules/prerender/cache-storage.https.html.ini
@@ -0,0 +1,4 @@
+[cache-storage.https.html]
+ expected:
+ if (os == "android") and fission: [ERROR, TIMEOUT]
+ ERROR
diff --git a/testing/web-platform/meta/speculation-rules/prerender/clients-matchall.https.html.ini b/testing/web-platform/meta/speculation-rules/prerender/clients-matchall.https.html.ini
new file mode 100644
index 0000000000..e5e869f339
--- /dev/null
+++ b/testing/web-platform/meta/speculation-rules/prerender/clients-matchall.https.html.ini
@@ -0,0 +1,4 @@
+[clients-matchall.https.html]
+ expected:
+ if (os == "android") and fission: [ERROR, TIMEOUT]
+ ERROR
diff --git a/testing/web-platform/meta/speculation-rules/prerender/cookies.https.html.ini b/testing/web-platform/meta/speculation-rules/prerender/cookies.https.html.ini
new file mode 100644
index 0000000000..6d4e0468bf
--- /dev/null
+++ b/testing/web-platform/meta/speculation-rules/prerender/cookies.https.html.ini
@@ -0,0 +1,4 @@
+[cookies.https.html]
+ expected:
+ if (os == "android") and fission: [ERROR, TIMEOUT]
+ ERROR
diff --git a/testing/web-platform/meta/speculation-rules/prerender/credentialed-prerender-not-opt-in.html.ini b/testing/web-platform/meta/speculation-rules/prerender/credentialed-prerender-not-opt-in.html.ini
new file mode 100644
index 0000000000..ef8ad2ca53
--- /dev/null
+++ b/testing/web-platform/meta/speculation-rules/prerender/credentialed-prerender-not-opt-in.html.ini
@@ -0,0 +1,4 @@
+[credentialed-prerender-not-opt-in.html]
+ expected:
+ if (os == "android") and fission: [ERROR, TIMEOUT]
+ ERROR
diff --git a/testing/web-platform/meta/speculation-rules/prerender/credentialed-prerender-opt-in.html.ini b/testing/web-platform/meta/speculation-rules/prerender/credentialed-prerender-opt-in.html.ini
new file mode 100644
index 0000000000..01267886a2
--- /dev/null
+++ b/testing/web-platform/meta/speculation-rules/prerender/credentialed-prerender-opt-in.html.ini
@@ -0,0 +1,4 @@
+[credentialed-prerender-opt-in.html]
+ expected:
+ if (os == "android") and fission: [ERROR, TIMEOUT]
+ ERROR
diff --git a/testing/web-platform/meta/speculation-rules/prerender/cross-origin-iframe.html.ini b/testing/web-platform/meta/speculation-rules/prerender/cross-origin-iframe.html.ini
new file mode 100644
index 0000000000..525f4d1161
--- /dev/null
+++ b/testing/web-platform/meta/speculation-rules/prerender/cross-origin-iframe.html.ini
@@ -0,0 +1,10 @@
+[cross-origin-iframe.html]
+ expected:
+ if (os == "android") and fission: [ERROR, TIMEOUT]
+ ERROR
+
+[cross-origin-iframe.html?target_hint=_self]
+ expected: ERROR
+
+[cross-origin-iframe.html?target_hint=_blank]
+ expected: ERROR
diff --git a/testing/web-platform/meta/speculation-rules/prerender/cross-origin-isolated.https.html.ini b/testing/web-platform/meta/speculation-rules/prerender/cross-origin-isolated.https.html.ini
new file mode 100644
index 0000000000..b2af94542b
--- /dev/null
+++ b/testing/web-platform/meta/speculation-rules/prerender/cross-origin-isolated.https.html.ini
@@ -0,0 +1,10 @@
+[cross-origin-isolated.https.html]
+ expected:
+ if (os == "android") and fission: [TIMEOUT, ERROR]
+ ERROR
+
+[cross-origin-isolated.https.html?target_hint=_self]
+ expected: ERROR
+
+[cross-origin-isolated.https.html?target_hint=_blank]
+ expected: ERROR
diff --git a/testing/web-platform/meta/speculation-rules/prerender/csp-script-src-elem-inline-speculation-rules.html.ini b/testing/web-platform/meta/speculation-rules/prerender/csp-script-src-elem-inline-speculation-rules.html.ini
new file mode 100644
index 0000000000..4596f8d0b5
--- /dev/null
+++ b/testing/web-platform/meta/speculation-rules/prerender/csp-script-src-elem-inline-speculation-rules.html.ini
@@ -0,0 +1,8 @@
+[csp-script-src-elem-inline-speculation-rules.html]
+ expected: ERROR
+
+[csp-script-src-elem-inline-speculation-rules.html?target_hint=_self]
+ expected: ERROR
+
+[csp-script-src-elem-inline-speculation-rules.html?target_hint=_blank]
+ expected: ERROR
diff --git a/testing/web-platform/meta/speculation-rules/prerender/csp-script-src-inline-speculation-rules.html.ini b/testing/web-platform/meta/speculation-rules/prerender/csp-script-src-inline-speculation-rules.html.ini
new file mode 100644
index 0000000000..f782cd6acc
--- /dev/null
+++ b/testing/web-platform/meta/speculation-rules/prerender/csp-script-src-inline-speculation-rules.html.ini
@@ -0,0 +1,8 @@
+[csp-script-src-inline-speculation-rules.html]
+ expected: ERROR
+
+[csp-script-src-inline-speculation-rules.html?target_hint=_self]
+ expected: ERROR
+
+[csp-script-src-inline-speculation-rules.html?target_hint=_blank]
+ expected: ERROR
diff --git a/testing/web-platform/meta/speculation-rules/prerender/csp-script-src-self.html.ini b/testing/web-platform/meta/speculation-rules/prerender/csp-script-src-self.html.ini
new file mode 100644
index 0000000000..dcd9545d5c
--- /dev/null
+++ b/testing/web-platform/meta/speculation-rules/prerender/csp-script-src-self.html.ini
@@ -0,0 +1,8 @@
+[csp-script-src-self.html]
+ expected: ERROR
+
+[csp-script-src-self.html?target_hint=_self]
+ expected: ERROR
+
+[csp-script-src-self.html?target_hint=_blank]
+ expected: ERROR
diff --git a/testing/web-platform/meta/speculation-rules/prerender/csp-script-src-strict-dynamic.html.ini b/testing/web-platform/meta/speculation-rules/prerender/csp-script-src-strict-dynamic.html.ini
new file mode 100644
index 0000000000..1f07976dfc
--- /dev/null
+++ b/testing/web-platform/meta/speculation-rules/prerender/csp-script-src-strict-dynamic.html.ini
@@ -0,0 +1,8 @@
+[csp-script-src-strict-dynamic.html]
+ expected: ERROR
+
+[csp-script-src-strict-dynamic.html?target_hint=_self]
+ expected: ERROR
+
+[csp-script-src-strict-dynamic.html?target_hint=_blank]
+ expected: ERROR
diff --git a/testing/web-platform/meta/speculation-rules/prerender/csp-script-src-unsafe-inline.html.ini b/testing/web-platform/meta/speculation-rules/prerender/csp-script-src-unsafe-inline.html.ini
new file mode 100644
index 0000000000..e15317e641
--- /dev/null
+++ b/testing/web-platform/meta/speculation-rules/prerender/csp-script-src-unsafe-inline.html.ini
@@ -0,0 +1,8 @@
+[csp-script-src-unsafe-inline.html]
+ expected: ERROR
+
+[csp-script-src-unsafe-inline.html?target_hint=_self]
+ expected: ERROR
+
+[csp-script-src-unsafe-inline.html?target_hint=_blank]
+ expected: ERROR
diff --git a/testing/web-platform/meta/speculation-rules/prerender/fetch-blob.html.ini b/testing/web-platform/meta/speculation-rules/prerender/fetch-blob.html.ini
new file mode 100644
index 0000000000..e5e54bb8dd
--- /dev/null
+++ b/testing/web-platform/meta/speculation-rules/prerender/fetch-blob.html.ini
@@ -0,0 +1,10 @@
+[fetch-blob.html]
+ expected:
+ if (os == "android") and fission: [ERROR, TIMEOUT]
+ ERROR
+
+[fetch-blob.html?target_hint=_self]
+ expected: ERROR
+
+[fetch-blob.html?target_hint=_blank]
+ expected: ERROR
diff --git a/testing/web-platform/meta/speculation-rules/prerender/fetch-intercepted-by-service-worker.https.html.ini b/testing/web-platform/meta/speculation-rules/prerender/fetch-intercepted-by-service-worker.https.html.ini
new file mode 100644
index 0000000000..d0584220e0
--- /dev/null
+++ b/testing/web-platform/meta/speculation-rules/prerender/fetch-intercepted-by-service-worker.https.html.ini
@@ -0,0 +1,4 @@
+[fetch-intercepted-by-service-worker.https.html]
+ expected:
+ if (os == "android") and fission: [ERROR, TIMEOUT]
+ ERROR
diff --git a/testing/web-platform/meta/speculation-rules/prerender/iframe-added-post-activation.html.ini b/testing/web-platform/meta/speculation-rules/prerender/iframe-added-post-activation.html.ini
new file mode 100644
index 0000000000..e9f2088db2
--- /dev/null
+++ b/testing/web-platform/meta/speculation-rules/prerender/iframe-added-post-activation.html.ini
@@ -0,0 +1,5 @@
+[iframe-added-post-activation.html]
+ expected:
+ if (os == "linux") and not fission and not debug: [ERROR, CRASH]
+ if (os == "android") and fission: [ERROR, TIMEOUT]
+ ERROR
diff --git a/testing/web-platform/meta/speculation-rules/prerender/indexeddb.html.ini b/testing/web-platform/meta/speculation-rules/prerender/indexeddb.html.ini
new file mode 100644
index 0000000000..dc2443926e
--- /dev/null
+++ b/testing/web-platform/meta/speculation-rules/prerender/indexeddb.html.ini
@@ -0,0 +1,4 @@
+[indexeddb.html]
+ expected:
+ if (os == "android") and fission: [ERROR, TIMEOUT]
+ ERROR
diff --git a/testing/web-platform/meta/speculation-rules/prerender/local-storage.html.ini b/testing/web-platform/meta/speculation-rules/prerender/local-storage.html.ini
new file mode 100644
index 0000000000..16ef2f4fae
--- /dev/null
+++ b/testing/web-platform/meta/speculation-rules/prerender/local-storage.html.ini
@@ -0,0 +1,10 @@
+[local-storage.html]
+ expected:
+ if (os == "android") and fission: [TIMEOUT, ERROR]
+ ERROR
+
+[local-storage.html?target_hint=_blank]
+ expected: ERROR
+
+[local-storage.html?target_hint=_self]
+ expected: ERROR
diff --git a/testing/web-platform/meta/speculation-rules/prerender/main-frame-navigation.https.html.ini b/testing/web-platform/meta/speculation-rules/prerender/main-frame-navigation.https.html.ini
new file mode 100644
index 0000000000..690b1ef762
--- /dev/null
+++ b/testing/web-platform/meta/speculation-rules/prerender/main-frame-navigation.https.html.ini
@@ -0,0 +1,2 @@
+[main-frame-navigation.https.html]
+ expected: ERROR
diff --git a/testing/web-platform/meta/speculation-rules/prerender/media-autoplay.html.ini b/testing/web-platform/meta/speculation-rules/prerender/media-autoplay.html.ini
new file mode 100644
index 0000000000..54487bfcb5
--- /dev/null
+++ b/testing/web-platform/meta/speculation-rules/prerender/media-autoplay.html.ini
@@ -0,0 +1,4 @@
+[media-autoplay.html]
+ expected:
+ if (os == "android") and fission: [ERROR, TIMEOUT]
+ ERROR
diff --git a/testing/web-platform/meta/speculation-rules/prerender/navigation-api-location-replace.html.ini b/testing/web-platform/meta/speculation-rules/prerender/navigation-api-location-replace.html.ini
new file mode 100644
index 0000000000..338c84f1c1
--- /dev/null
+++ b/testing/web-platform/meta/speculation-rules/prerender/navigation-api-location-replace.html.ini
@@ -0,0 +1,2 @@
+[navigation-api-location-replace.html]
+ expected: ERROR
diff --git a/testing/web-platform/meta/speculation-rules/prerender/navigation-api-multiple-entries.html.ini b/testing/web-platform/meta/speculation-rules/prerender/navigation-api-multiple-entries.html.ini
new file mode 100644
index 0000000000..0d87a01266
--- /dev/null
+++ b/testing/web-platform/meta/speculation-rules/prerender/navigation-api-multiple-entries.html.ini
@@ -0,0 +1,2 @@
+[navigation-api-multiple-entries.html]
+ expected: ERROR
diff --git a/testing/web-platform/meta/speculation-rules/prerender/navigation-api.html.ini b/testing/web-platform/meta/speculation-rules/prerender/navigation-api.html.ini
new file mode 100644
index 0000000000..904994cefc
--- /dev/null
+++ b/testing/web-platform/meta/speculation-rules/prerender/navigation-api.html.ini
@@ -0,0 +1,2 @@
+[navigation-api.html]
+ expected: ERROR
diff --git a/testing/web-platform/meta/speculation-rules/prerender/navigation-intercepted-by-service-worker.https.html.ini b/testing/web-platform/meta/speculation-rules/prerender/navigation-intercepted-by-service-worker.https.html.ini
new file mode 100644
index 0000000000..2ca2887647
--- /dev/null
+++ b/testing/web-platform/meta/speculation-rules/prerender/navigation-intercepted-by-service-worker.https.html.ini
@@ -0,0 +1,4 @@
+[navigation-intercepted-by-service-worker.https.html]
+ expected:
+ if (os == "android") and fission: [ERROR, TIMEOUT]
+ ERROR
diff --git a/testing/web-platform/meta/speculation-rules/prerender/navigator-plugins.html.ini b/testing/web-platform/meta/speculation-rules/prerender/navigator-plugins.html.ini
new file mode 100644
index 0000000000..a006069540
--- /dev/null
+++ b/testing/web-platform/meta/speculation-rules/prerender/navigator-plugins.html.ini
@@ -0,0 +1,2 @@
+[navigator-plugins.html]
+ expected: ERROR
diff --git a/testing/web-platform/meta/speculation-rules/prerender/prefetch.https.html.ini b/testing/web-platform/meta/speculation-rules/prerender/prefetch.https.html.ini
new file mode 100644
index 0000000000..bf1acbea33
--- /dev/null
+++ b/testing/web-platform/meta/speculation-rules/prerender/prefetch.https.html.ini
@@ -0,0 +1,2 @@
+[prefetch.https.html]
+ expected: ERROR
diff --git a/testing/web-platform/meta/speculation-rules/prerender/prerender-while-prerender.html.ini b/testing/web-platform/meta/speculation-rules/prerender/prerender-while-prerender.html.ini
new file mode 100644
index 0000000000..34e75ba891
--- /dev/null
+++ b/testing/web-platform/meta/speculation-rules/prerender/prerender-while-prerender.html.ini
@@ -0,0 +1,2 @@
+[prerender-while-prerender.html]
+ expected: ERROR
diff --git a/testing/web-platform/meta/speculation-rules/prerender/referrer-policy-from-rules.html.ini b/testing/web-platform/meta/speculation-rules/prerender/referrer-policy-from-rules.html.ini
new file mode 100644
index 0000000000..aebde9854e
--- /dev/null
+++ b/testing/web-platform/meta/speculation-rules/prerender/referrer-policy-from-rules.html.ini
@@ -0,0 +1,9 @@
+[referrer-policy-from-rules.html?1-1]
+ expected:
+ if (os == "android") and fission: [TIMEOUT, ERROR]
+ ERROR
+
+[referrer-policy-from-rules.html?2-last]
+ expected:
+ if (os == "android") and fission: [ERROR, TIMEOUT]
+ ERROR
diff --git a/testing/web-platform/meta/speculation-rules/prerender/referrer-policy-mismatch.html.ini b/testing/web-platform/meta/speculation-rules/prerender/referrer-policy-mismatch.html.ini
new file mode 100644
index 0000000000..0ecad782de
--- /dev/null
+++ b/testing/web-platform/meta/speculation-rules/prerender/referrer-policy-mismatch.html.ini
@@ -0,0 +1,4 @@
+[referrer-policy-mismatch.html]
+ expected:
+ if (os == "android") and fission: [ERROR, TIMEOUT]
+ ERROR
diff --git a/testing/web-platform/meta/speculation-rules/prerender/referrer-policy-no-referrer.html.ini b/testing/web-platform/meta/speculation-rules/prerender/referrer-policy-no-referrer.html.ini
new file mode 100644
index 0000000000..c2fbccd8c2
--- /dev/null
+++ b/testing/web-platform/meta/speculation-rules/prerender/referrer-policy-no-referrer.html.ini
@@ -0,0 +1,4 @@
+[referrer-policy-no-referrer.html]
+ expected:
+ if (os == "android") and fission: [ERROR, TIMEOUT]
+ ERROR
diff --git a/testing/web-platform/meta/speculation-rules/prerender/referrer-policy-origin.html.ini b/testing/web-platform/meta/speculation-rules/prerender/referrer-policy-origin.html.ini
new file mode 100644
index 0000000000..fc4e7cf9a6
--- /dev/null
+++ b/testing/web-platform/meta/speculation-rules/prerender/referrer-policy-origin.html.ini
@@ -0,0 +1,4 @@
+[referrer-policy-origin.html]
+ expected:
+ if (os == "android") and fission: [ERROR, TIMEOUT]
+ ERROR
diff --git a/testing/web-platform/meta/speculation-rules/prerender/referrer-policy-strict-origin.html.ini b/testing/web-platform/meta/speculation-rules/prerender/referrer-policy-strict-origin.html.ini
new file mode 100644
index 0000000000..e4eb73bad6
--- /dev/null
+++ b/testing/web-platform/meta/speculation-rules/prerender/referrer-policy-strict-origin.html.ini
@@ -0,0 +1,4 @@
+[referrer-policy-strict-origin.html]
+ expected:
+ if (os == "android") and fission: [ERROR, TIMEOUT]
+ ERROR
diff --git a/testing/web-platform/meta/speculation-rules/prerender/referrer.html.ini b/testing/web-platform/meta/speculation-rules/prerender/referrer.html.ini
new file mode 100644
index 0000000000..158802545b
--- /dev/null
+++ b/testing/web-platform/meta/speculation-rules/prerender/referrer.html.ini
@@ -0,0 +1,4 @@
+[referrer.html]
+ expected:
+ if (os == "android") and fission: [ERROR, TIMEOUT]
+ ERROR
diff --git a/testing/web-platform/meta/speculation-rules/prerender/register-service-worker.https.html.ini b/testing/web-platform/meta/speculation-rules/prerender/register-service-worker.https.html.ini
new file mode 100644
index 0000000000..8e3afe2953
--- /dev/null
+++ b/testing/web-platform/meta/speculation-rules/prerender/register-service-worker.https.html.ini
@@ -0,0 +1,4 @@
+[register-service-worker.https.html]
+ expected:
+ if (os == "android") and fission: [ERROR, TIMEOUT]
+ ERROR
diff --git a/testing/web-platform/meta/speculation-rules/prerender/remove-script-element.html.ini b/testing/web-platform/meta/speculation-rules/prerender/remove-script-element.html.ini
new file mode 100644
index 0000000000..3771418428
--- /dev/null
+++ b/testing/web-platform/meta/speculation-rules/prerender/remove-script-element.html.ini
@@ -0,0 +1,4 @@
+[remove-script-element.html]
+ expected:
+ if (os == "android") and fission: [ERROR, TIMEOUT]
+ ERROR
diff --git a/testing/web-platform/meta/speculation-rules/prerender/response-code-non-successful.html.ini b/testing/web-platform/meta/speculation-rules/prerender/response-code-non-successful.html.ini
new file mode 100644
index 0000000000..fed8f95d82
--- /dev/null
+++ b/testing/web-platform/meta/speculation-rules/prerender/response-code-non-successful.html.ini
@@ -0,0 +1,32 @@
+[response-code-non-successful.html]
+ expected: ERROR
+
+[response-code-non-successful.html?code=204]
+ expected:
+ if (os == "android") and fission: [ERROR, TIMEOUT]
+ ERROR
+
+[response-code-non-successful.html?code=500]
+ expected:
+ if (os == "android") and fission: [ERROR, TIMEOUT]
+ ERROR
+
+[response-code-non-successful.html?code=402]
+ expected:
+ if (os == "android") and fission: [ERROR, TIMEOUT]
+ ERROR
+
+[response-code-non-successful.html?code=205]
+ expected:
+ if (os == "android") and fission: [ERROR, TIMEOUT]
+ ERROR
+
+[response-code-non-successful.html?code=503]
+ expected:
+ if (os == "android") and fission: [TIMEOUT, ERROR]
+ ERROR
+
+[response-code-non-successful.html?code=404]
+ expected:
+ if (os == "android") and fission: [ERROR, TIMEOUT]
+ ERROR
diff --git a/testing/web-platform/meta/speculation-rules/prerender/response-code-successful.html.ini b/testing/web-platform/meta/speculation-rules/prerender/response-code-successful.html.ini
new file mode 100644
index 0000000000..97eb120e45
--- /dev/null
+++ b/testing/web-platform/meta/speculation-rules/prerender/response-code-successful.html.ini
@@ -0,0 +1,17 @@
+[response-code-successful.html]
+ expected: ERROR
+
+[response-code-successful.html?code=201]
+ expected: ERROR
+
+[response-code-successful.html?code=203]
+ expected: ERROR
+
+[response-code-successful.html?code=200]
+ expected: ERROR
+
+[response-code-successful.html?code=202]
+ expected: ERROR
+
+[response-code-successful.html?code=232]
+ expected: ERROR
diff --git a/testing/web-platform/meta/speculation-rules/prerender/restriction-audio-setSinkId-with-invalid-sinkId.https.tentative.html.ini b/testing/web-platform/meta/speculation-rules/prerender/restriction-audio-setSinkId-with-invalid-sinkId.https.tentative.html.ini
new file mode 100644
index 0000000000..3d947b8205
--- /dev/null
+++ b/testing/web-platform/meta/speculation-rules/prerender/restriction-audio-setSinkId-with-invalid-sinkId.https.tentative.html.ini
@@ -0,0 +1,10 @@
+[restriction-audio-setSinkId-with-invalid-sinkId.https.tentative.html]
+ expected:
+ if (os == "android") and fission: [ERROR, TIMEOUT]
+ ERROR
+
+[restriction-audio-setSinkId-with-invalid-sinkId.https.tentative.html?target_hint=_blank]
+ expected: ERROR
+
+[restriction-audio-setSinkId-with-invalid-sinkId.https.tentative.html?target_hint=_self]
+ expected: ERROR
diff --git a/testing/web-platform/meta/speculation-rules/prerender/restriction-audio-setSinkId.https.tentative.html.ini b/testing/web-platform/meta/speculation-rules/prerender/restriction-audio-setSinkId.https.tentative.html.ini
new file mode 100644
index 0000000000..226f658f76
--- /dev/null
+++ b/testing/web-platform/meta/speculation-rules/prerender/restriction-audio-setSinkId.https.tentative.html.ini
@@ -0,0 +1,10 @@
+[restriction-audio-setSinkId.https.tentative.html]
+ expected:
+ if (os == "android") and fission: [ERROR, TIMEOUT]
+ ERROR
+
+[restriction-audio-setSinkId.https.tentative.html?target_hint=_self]
+ expected: ERROR
+
+[restriction-audio-setSinkId.https.tentative.html?target_hint=_blank]
+ expected: ERROR
diff --git a/testing/web-platform/meta/speculation-rules/prerender/restriction-background-fetch.https.html.ini b/testing/web-platform/meta/speculation-rules/prerender/restriction-background-fetch.https.html.ini
new file mode 100644
index 0000000000..0e73a5fa2a
--- /dev/null
+++ b/testing/web-platform/meta/speculation-rules/prerender/restriction-background-fetch.https.html.ini
@@ -0,0 +1,10 @@
+[restriction-background-fetch.https.html]
+ expected:
+ if (os == "android") and fission: [ERROR, TIMEOUT]
+ ERROR
+
+[restriction-background-fetch.https.html?target_hint=_self]
+ expected: ERROR
+
+[restriction-background-fetch.https.html?target_hint=_blank]
+ expected: ERROR
diff --git a/testing/web-platform/meta/speculation-rules/prerender/restriction-background-sync.tentative.https.html.ini b/testing/web-platform/meta/speculation-rules/prerender/restriction-background-sync.tentative.https.html.ini
new file mode 100644
index 0000000000..026831553c
--- /dev/null
+++ b/testing/web-platform/meta/speculation-rules/prerender/restriction-background-sync.tentative.https.html.ini
@@ -0,0 +1,10 @@
+[restriction-background-sync.tentative.https.html]
+ expected:
+ if (os == "android") and fission: [ERROR, TIMEOUT]
+ ERROR
+
+[restriction-background-sync.tentative.https.html?target_hint=_self]
+ expected: ERROR
+
+[restriction-background-sync.tentative.https.html?target_hint=_blank]
+ expected: ERROR
diff --git a/testing/web-platform/meta/speculation-rules/prerender/restriction-battery-status.https.html.ini b/testing/web-platform/meta/speculation-rules/prerender/restriction-battery-status.https.html.ini
new file mode 100644
index 0000000000..de2f1e34f5
--- /dev/null
+++ b/testing/web-platform/meta/speculation-rules/prerender/restriction-battery-status.https.html.ini
@@ -0,0 +1,10 @@
+[restriction-battery-status.https.html]
+ expected:
+ if (os == "android") and fission: [ERROR, TIMEOUT]
+ ERROR
+
+[restriction-battery-status.https.html?target_hint=_self]
+ expected: ERROR
+
+[restriction-battery-status.https.html?target_hint=_blank]
+ expected: ERROR
diff --git a/testing/web-platform/meta/speculation-rules/prerender/restriction-bluetooth.tentative.https.html.ini b/testing/web-platform/meta/speculation-rules/prerender/restriction-bluetooth.tentative.https.html.ini
new file mode 100644
index 0000000000..e72096a1de
--- /dev/null
+++ b/testing/web-platform/meta/speculation-rules/prerender/restriction-bluetooth.tentative.https.html.ini
@@ -0,0 +1,4 @@
+[restriction-bluetooth.tentative.https.html]
+ expected:
+ if (os == "android") and fission: [ERROR, TIMEOUT]
+ ERROR
diff --git a/testing/web-platform/meta/speculation-rules/prerender/restriction-broadcast-channel.html.ini b/testing/web-platform/meta/speculation-rules/prerender/restriction-broadcast-channel.html.ini
new file mode 100644
index 0000000000..4f425c5a95
--- /dev/null
+++ b/testing/web-platform/meta/speculation-rules/prerender/restriction-broadcast-channel.html.ini
@@ -0,0 +1,4 @@
+[restriction-broadcast-channel.html]
+ expected:
+ if (os == "android") and fission: [ERROR, TIMEOUT]
+ ERROR
diff --git a/testing/web-platform/meta/speculation-rules/prerender/restriction-dedicated-worker.https.html.ini b/testing/web-platform/meta/speculation-rules/prerender/restriction-dedicated-worker.https.html.ini
new file mode 100644
index 0000000000..579a531ebd
--- /dev/null
+++ b/testing/web-platform/meta/speculation-rules/prerender/restriction-dedicated-worker.https.html.ini
@@ -0,0 +1,4 @@
+[restriction-dedicated-worker.https.html]
+ expected:
+ if (os == "android") and fission: [TIMEOUT, ERROR]
+ ERROR
diff --git a/testing/web-platform/meta/speculation-rules/prerender/restriction-encrypted-media-unsupported-config.https.html.ini b/testing/web-platform/meta/speculation-rules/prerender/restriction-encrypted-media-unsupported-config.https.html.ini
new file mode 100644
index 0000000000..42358c37a2
--- /dev/null
+++ b/testing/web-platform/meta/speculation-rules/prerender/restriction-encrypted-media-unsupported-config.https.html.ini
@@ -0,0 +1,4 @@
+[restriction-encrypted-media-unsupported-config.https.html]
+ expected:
+ if (os == "android") and fission: [ERROR, TIMEOUT]
+ ERROR
diff --git a/testing/web-platform/meta/speculation-rules/prerender/restriction-encrypted-media.https.html.ini b/testing/web-platform/meta/speculation-rules/prerender/restriction-encrypted-media.https.html.ini
new file mode 100644
index 0000000000..b6da5cfdc9
--- /dev/null
+++ b/testing/web-platform/meta/speculation-rules/prerender/restriction-encrypted-media.https.html.ini
@@ -0,0 +1,4 @@
+[restriction-encrypted-media.https.html]
+ expected:
+ if (os == "android") and fission: [ERROR, TIMEOUT]
+ ERROR
diff --git a/testing/web-platform/meta/speculation-rules/prerender/restriction-focus.html.ini b/testing/web-platform/meta/speculation-rules/prerender/restriction-focus.html.ini
new file mode 100644
index 0000000000..ad5f36b3aa
--- /dev/null
+++ b/testing/web-platform/meta/speculation-rules/prerender/restriction-focus.html.ini
@@ -0,0 +1,4 @@
+[restriction-focus.html]
+ expected:
+ if (os == "android") and fission: [ERROR, TIMEOUT]
+ ERROR
diff --git a/testing/web-platform/meta/speculation-rules/prerender/restriction-idle-detection.https.html.ini b/testing/web-platform/meta/speculation-rules/prerender/restriction-idle-detection.https.html.ini
new file mode 100644
index 0000000000..c418ca2341
--- /dev/null
+++ b/testing/web-platform/meta/speculation-rules/prerender/restriction-idle-detection.https.html.ini
@@ -0,0 +1,4 @@
+[restriction-idle-detection.https.html]
+ expected:
+ if (os == "android") and fission: [ERROR, TIMEOUT]
+ ERROR
diff --git a/testing/web-platform/meta/speculation-rules/prerender/restriction-local-file-system-access.https.html.ini b/testing/web-platform/meta/speculation-rules/prerender/restriction-local-file-system-access.https.html.ini
new file mode 100644
index 0000000000..5db924f3a7
--- /dev/null
+++ b/testing/web-platform/meta/speculation-rules/prerender/restriction-local-file-system-access.https.html.ini
@@ -0,0 +1,4 @@
+[restriction-local-file-system-access.https.html]
+ expected:
+ if (os == "android") and fission: [TIMEOUT, ERROR]
+ ERROR
diff --git a/testing/web-platform/meta/speculation-rules/prerender/restriction-media-auto-play-attribute.html.ini b/testing/web-platform/meta/speculation-rules/prerender/restriction-media-auto-play-attribute.html.ini
new file mode 100644
index 0000000000..44fcae5416
--- /dev/null
+++ b/testing/web-platform/meta/speculation-rules/prerender/restriction-media-auto-play-attribute.html.ini
@@ -0,0 +1,10 @@
+[restriction-media-auto-play-attribute.html]
+ expected:
+ if (os == "android") and fission: [ERROR, TIMEOUT]
+ ERROR
+
+[restriction-media-auto-play-attribute.html?target_hint=_blank]
+ expected: ERROR
+
+[restriction-media-auto-play-attribute.html?target_hint=_self]
+ expected: ERROR
diff --git a/testing/web-platform/meta/speculation-rules/prerender/restriction-media-camera.https.html.ini b/testing/web-platform/meta/speculation-rules/prerender/restriction-media-camera.https.html.ini
new file mode 100644
index 0000000000..5529fb3e82
--- /dev/null
+++ b/testing/web-platform/meta/speculation-rules/prerender/restriction-media-camera.https.html.ini
@@ -0,0 +1,10 @@
+[restriction-media-camera.https.html]
+ expected:
+ if (os == "android") and fission: [ERROR, TIMEOUT]
+ ERROR
+
+[restriction-media-camera.https.html?target_hint=_blank]
+ expected: ERROR
+
+[restriction-media-camera.https.html?target_hint=_self]
+ expected: ERROR
diff --git a/testing/web-platform/meta/speculation-rules/prerender/restriction-media-device-info.https.html.ini b/testing/web-platform/meta/speculation-rules/prerender/restriction-media-device-info.https.html.ini
new file mode 100644
index 0000000000..b5627a8523
--- /dev/null
+++ b/testing/web-platform/meta/speculation-rules/prerender/restriction-media-device-info.https.html.ini
@@ -0,0 +1,10 @@
+[restriction-media-device-info.https.html]
+ expected:
+ if (os == "android") and fission: [ERROR, TIMEOUT]
+ ERROR
+
+[restriction-media-device-info.https.html?target_hint=_blank]
+ expected: ERROR
+
+[restriction-media-device-info.https.html?target_hint=_self]
+ expected: ERROR
diff --git a/testing/web-platform/meta/speculation-rules/prerender/restriction-media-microphone.https.html.ini b/testing/web-platform/meta/speculation-rules/prerender/restriction-media-microphone.https.html.ini
new file mode 100644
index 0000000000..1b1beb3bff
--- /dev/null
+++ b/testing/web-platform/meta/speculation-rules/prerender/restriction-media-microphone.https.html.ini
@@ -0,0 +1,10 @@
+[restriction-media-microphone.https.html]
+ expected:
+ if (os == "android") and fission: [ERROR, TIMEOUT]
+ ERROR
+
+[restriction-media-microphone.https.html?target_hint=_blank]
+ expected: ERROR
+
+[restriction-media-microphone.https.html?target_hint=_self]
+ expected: ERROR
diff --git a/testing/web-platform/meta/speculation-rules/prerender/restriction-media-play.html.ini b/testing/web-platform/meta/speculation-rules/prerender/restriction-media-play.html.ini
new file mode 100644
index 0000000000..8e2d74d159
--- /dev/null
+++ b/testing/web-platform/meta/speculation-rules/prerender/restriction-media-play.html.ini
@@ -0,0 +1,10 @@
+[restriction-media-play.html]
+ expected:
+ if (os == "android") and fission: [ERROR, TIMEOUT]
+ ERROR
+
+[restriction-media-play.html?target_hint=_self]
+ expected: ERROR
+
+[restriction-media-play.html?target_hint=_blank]
+ expected: ERROR
diff --git a/testing/web-platform/meta/speculation-rules/prerender/restriction-message-boxes.html.ini b/testing/web-platform/meta/speculation-rules/prerender/restriction-message-boxes.html.ini
new file mode 100644
index 0000000000..48384abd98
--- /dev/null
+++ b/testing/web-platform/meta/speculation-rules/prerender/restriction-message-boxes.html.ini
@@ -0,0 +1,4 @@
+[restriction-message-boxes.html]
+ expected:
+ if (os == "android") and fission: [TIMEOUT, ERROR]
+ ERROR
diff --git a/testing/web-platform/meta/speculation-rules/prerender/restriction-midi-sysex.https.html.ini b/testing/web-platform/meta/speculation-rules/prerender/restriction-midi-sysex.https.html.ini
new file mode 100644
index 0000000000..f9bdb19bd1
--- /dev/null
+++ b/testing/web-platform/meta/speculation-rules/prerender/restriction-midi-sysex.https.html.ini
@@ -0,0 +1,4 @@
+[restriction-midi-sysex.https.html]
+ expected:
+ if (os == "android") and fission: [ERROR, TIMEOUT]
+ ERROR
diff --git a/testing/web-platform/meta/speculation-rules/prerender/restriction-midi.https.html.ini b/testing/web-platform/meta/speculation-rules/prerender/restriction-midi.https.html.ini
new file mode 100644
index 0000000000..a525fecae3
--- /dev/null
+++ b/testing/web-platform/meta/speculation-rules/prerender/restriction-midi.https.html.ini
@@ -0,0 +1,4 @@
+[restriction-midi.https.html]
+ expected:
+ if (os == "android") and fission: [ERROR, TIMEOUT]
+ ERROR
diff --git a/testing/web-platform/meta/speculation-rules/prerender/restriction-notification.https.html.ini b/testing/web-platform/meta/speculation-rules/prerender/restriction-notification.https.html.ini
new file mode 100644
index 0000000000..99fcfc49be
--- /dev/null
+++ b/testing/web-platform/meta/speculation-rules/prerender/restriction-notification.https.html.ini
@@ -0,0 +1,4 @@
+[restriction-notification.https.html]
+ expected:
+ if (os == "android") and fission: [ERROR, TIMEOUT]
+ ERROR
diff --git a/testing/web-platform/meta/speculation-rules/prerender/restriction-presentation-request.https.html.ini b/testing/web-platform/meta/speculation-rules/prerender/restriction-presentation-request.https.html.ini
new file mode 100644
index 0000000000..4213e7bf16
--- /dev/null
+++ b/testing/web-platform/meta/speculation-rules/prerender/restriction-presentation-request.https.html.ini
@@ -0,0 +1,4 @@
+[restriction-presentation-request.https.html]
+ expected:
+ if (os == "android") and fission: [ERROR, TIMEOUT]
+ ERROR
diff --git a/testing/web-platform/meta/speculation-rules/prerender/restriction-prompt-by-before-unload.html.ini b/testing/web-platform/meta/speculation-rules/prerender/restriction-prompt-by-before-unload.html.ini
new file mode 100644
index 0000000000..b97e809b14
--- /dev/null
+++ b/testing/web-platform/meta/speculation-rules/prerender/restriction-prompt-by-before-unload.html.ini
@@ -0,0 +1,4 @@
+[restriction-prompt-by-before-unload.html]
+ expected:
+ if (os == "android") and fission: [TIMEOUT, ERROR]
+ ERROR
diff --git a/testing/web-platform/meta/speculation-rules/prerender/restriction-push.https.html.ini b/testing/web-platform/meta/speculation-rules/prerender/restriction-push.https.html.ini
new file mode 100644
index 0000000000..0afd8c371e
--- /dev/null
+++ b/testing/web-platform/meta/speculation-rules/prerender/restriction-push.https.html.ini
@@ -0,0 +1,4 @@
+[restriction-push.https.html]
+ expected:
+ if (os == "android") and fission: [ERROR, TIMEOUT]
+ ERROR
diff --git a/testing/web-platform/meta/speculation-rules/prerender/restriction-request-picture-in-picture.html.ini b/testing/web-platform/meta/speculation-rules/prerender/restriction-request-picture-in-picture.html.ini
new file mode 100644
index 0000000000..eae2172027
--- /dev/null
+++ b/testing/web-platform/meta/speculation-rules/prerender/restriction-request-picture-in-picture.html.ini
@@ -0,0 +1,4 @@
+[restriction-request-picture-in-picture.html]
+ expected:
+ if (os == "android") and fission: [ERROR, TIMEOUT]
+ ERROR
diff --git a/testing/web-platform/meta/speculation-rules/prerender/restriction-screen-capture.https.html.ini b/testing/web-platform/meta/speculation-rules/prerender/restriction-screen-capture.https.html.ini
new file mode 100644
index 0000000000..172b388bec
--- /dev/null
+++ b/testing/web-platform/meta/speculation-rules/prerender/restriction-screen-capture.https.html.ini
@@ -0,0 +1,10 @@
+[restriction-screen-capture.https.html]
+ expected:
+ if (os == "android") and fission: [ERROR, TIMEOUT]
+ ERROR
+
+[restriction-screen-capture.https.html?target_hint=_blank]
+ expected: ERROR
+
+[restriction-screen-capture.https.html?target_hint=_self]
+ expected: ERROR
diff --git a/testing/web-platform/meta/speculation-rules/prerender/restriction-screen-orientation-lock.https.html.ini b/testing/web-platform/meta/speculation-rules/prerender/restriction-screen-orientation-lock.https.html.ini
new file mode 100644
index 0000000000..f9587de092
--- /dev/null
+++ b/testing/web-platform/meta/speculation-rules/prerender/restriction-screen-orientation-lock.https.html.ini
@@ -0,0 +1,4 @@
+[restriction-screen-orientation-lock.https.html]
+ expected:
+ if (os == "android") and fission: [ERROR, TIMEOUT]
+ ERROR
diff --git a/testing/web-platform/meta/speculation-rules/prerender/restriction-sensor-accelerometer.https.html.ini b/testing/web-platform/meta/speculation-rules/prerender/restriction-sensor-accelerometer.https.html.ini
new file mode 100644
index 0000000000..e20e359b66
--- /dev/null
+++ b/testing/web-platform/meta/speculation-rules/prerender/restriction-sensor-accelerometer.https.html.ini
@@ -0,0 +1,10 @@
+[restriction-sensor-accelerometer.https.html]
+ expected:
+ if (os == "android") and fission: [ERROR, TIMEOUT]
+ ERROR
+
+[restriction-sensor-accelerometer.https.html?target_hint=_blank]
+ expected: ERROR
+
+[restriction-sensor-accelerometer.https.html?target_hint=_self]
+ expected: ERROR
diff --git a/testing/web-platform/meta/speculation-rules/prerender/restriction-sensor-ambient-light-sensor.https.html.ini b/testing/web-platform/meta/speculation-rules/prerender/restriction-sensor-ambient-light-sensor.https.html.ini
new file mode 100644
index 0000000000..113f4582e7
--- /dev/null
+++ b/testing/web-platform/meta/speculation-rules/prerender/restriction-sensor-ambient-light-sensor.https.html.ini
@@ -0,0 +1,10 @@
+[restriction-sensor-ambient-light-sensor.https.html]
+ expected:
+ if (os == "android") and fission: [ERROR, TIMEOUT]
+ ERROR
+
+[restriction-sensor-ambient-light-sensor.https.html?target_hint=_blank]
+ expected: ERROR
+
+[restriction-sensor-ambient-light-sensor.https.html?target_hint=_self]
+ expected: ERROR
diff --git a/testing/web-platform/meta/speculation-rules/prerender/restriction-sensor-gyroscope.https.html.ini b/testing/web-platform/meta/speculation-rules/prerender/restriction-sensor-gyroscope.https.html.ini
new file mode 100644
index 0000000000..b17984b686
--- /dev/null
+++ b/testing/web-platform/meta/speculation-rules/prerender/restriction-sensor-gyroscope.https.html.ini
@@ -0,0 +1,10 @@
+[restriction-sensor-gyroscope.https.html]
+ expected:
+ if (os == "android") and fission: [ERROR, TIMEOUT]
+ ERROR
+
+[restriction-sensor-gyroscope.https.html?target_hint=_self]
+ expected: ERROR
+
+[restriction-sensor-gyroscope.https.html?target_hint=_blank]
+ expected: ERROR
diff --git a/testing/web-platform/meta/speculation-rules/prerender/restriction-sensor-magnetometer.https.html.ini b/testing/web-platform/meta/speculation-rules/prerender/restriction-sensor-magnetometer.https.html.ini
new file mode 100644
index 0000000000..3d54666241
--- /dev/null
+++ b/testing/web-platform/meta/speculation-rules/prerender/restriction-sensor-magnetometer.https.html.ini
@@ -0,0 +1,10 @@
+[restriction-sensor-magnetometer.https.html]
+ expected:
+ if (os == "android") and fission: [ERROR, TIMEOUT]
+ ERROR
+
+[restriction-sensor-magnetometer.https.html?target_hint=_self]
+ expected: ERROR
+
+[restriction-sensor-magnetometer.https.html?target_hint=_blank]
+ expected: ERROR
diff --git a/testing/web-platform/meta/speculation-rules/prerender/restriction-service-worker-postmessage.https.html.ini b/testing/web-platform/meta/speculation-rules/prerender/restriction-service-worker-postmessage.https.html.ini
new file mode 100644
index 0000000000..35f77e4bd8
--- /dev/null
+++ b/testing/web-platform/meta/speculation-rules/prerender/restriction-service-worker-postmessage.https.html.ini
@@ -0,0 +1,4 @@
+[restriction-service-worker-postmessage.https.html]
+ expected:
+ if (os == "android") and fission: [ERROR, TIMEOUT]
+ ERROR
diff --git a/testing/web-platform/meta/speculation-rules/prerender/restriction-service-worker-unregister.https.html.ini b/testing/web-platform/meta/speculation-rules/prerender/restriction-service-worker-unregister.https.html.ini
new file mode 100644
index 0000000000..e85efc87d3
--- /dev/null
+++ b/testing/web-platform/meta/speculation-rules/prerender/restriction-service-worker-unregister.https.html.ini
@@ -0,0 +1,4 @@
+[restriction-service-worker-unregister.https.html]
+ expected:
+ if (os == "android") and fission: [ERROR, TIMEOUT]
+ ERROR
diff --git a/testing/web-platform/meta/speculation-rules/prerender/restriction-service-worker-update.https.html.ini b/testing/web-platform/meta/speculation-rules/prerender/restriction-service-worker-update.https.html.ini
new file mode 100644
index 0000000000..bf005b31d7
--- /dev/null
+++ b/testing/web-platform/meta/speculation-rules/prerender/restriction-service-worker-update.https.html.ini
@@ -0,0 +1,4 @@
+[restriction-service-worker-update.https.html]
+ expected:
+ if (os == "android") and fission: [TIMEOUT, ERROR]
+ ERROR
diff --git a/testing/web-platform/meta/speculation-rules/prerender/restriction-speech-synthesis.html.ini b/testing/web-platform/meta/speculation-rules/prerender/restriction-speech-synthesis.html.ini
new file mode 100644
index 0000000000..d51d971231
--- /dev/null
+++ b/testing/web-platform/meta/speculation-rules/prerender/restriction-speech-synthesis.html.ini
@@ -0,0 +1,4 @@
+[restriction-speech-synthesis.html]
+ expected:
+ if (os == "android") and fission: [ERROR, TIMEOUT]
+ ERROR
diff --git a/testing/web-platform/meta/speculation-rules/prerender/restriction-storage-persist.https.html.ini b/testing/web-platform/meta/speculation-rules/prerender/restriction-storage-persist.https.html.ini
new file mode 100644
index 0000000000..6cc9d66d4a
--- /dev/null
+++ b/testing/web-platform/meta/speculation-rules/prerender/restriction-storage-persist.https.html.ini
@@ -0,0 +1,4 @@
+[restriction-storage-persist.https.html]
+ expected:
+ if (os == "android") and fission: [ERROR, TIMEOUT]
+ ERROR
diff --git a/testing/web-platform/meta/speculation-rules/prerender/restriction-wake-lock.https.html.ini b/testing/web-platform/meta/speculation-rules/prerender/restriction-wake-lock.https.html.ini
new file mode 100644
index 0000000000..913dada939
--- /dev/null
+++ b/testing/web-platform/meta/speculation-rules/prerender/restriction-wake-lock.https.html.ini
@@ -0,0 +1,4 @@
+[restriction-wake-lock.https.html]
+ expected:
+ if (os == "android") and fission: [ERROR, TIMEOUT]
+ ERROR
diff --git a/testing/web-platform/meta/speculation-rules/prerender/restriction-web-hid.https.html.ini b/testing/web-platform/meta/speculation-rules/prerender/restriction-web-hid.https.html.ini
new file mode 100644
index 0000000000..059b5f8b31
--- /dev/null
+++ b/testing/web-platform/meta/speculation-rules/prerender/restriction-web-hid.https.html.ini
@@ -0,0 +1,4 @@
+[restriction-web-hid.https.html]
+ expected:
+ if (os == "android") and fission: [ERROR, TIMEOUT]
+ ERROR
diff --git a/testing/web-platform/meta/speculation-rules/prerender/restriction-web-locks.https.html.ini b/testing/web-platform/meta/speculation-rules/prerender/restriction-web-locks.https.html.ini
new file mode 100644
index 0000000000..3a7ed451b0
--- /dev/null
+++ b/testing/web-platform/meta/speculation-rules/prerender/restriction-web-locks.https.html.ini
@@ -0,0 +1,4 @@
+[restriction-web-locks.https.html]
+ expected:
+ if (os == "android") and fission: [ERROR, TIMEOUT]
+ ERROR
diff --git a/testing/web-platform/meta/speculation-rules/prerender/restriction-web-nfc.https.html.ini b/testing/web-platform/meta/speculation-rules/prerender/restriction-web-nfc.https.html.ini
new file mode 100644
index 0000000000..546f5ac083
--- /dev/null
+++ b/testing/web-platform/meta/speculation-rules/prerender/restriction-web-nfc.https.html.ini
@@ -0,0 +1,4 @@
+[restriction-web-nfc.https.html]
+ expected:
+ if (os == "android") and fission: [TIMEOUT, ERROR]
+ ERROR
diff --git a/testing/web-platform/meta/speculation-rules/prerender/restriction-web-serial.tentative.https.html.ini b/testing/web-platform/meta/speculation-rules/prerender/restriction-web-serial.tentative.https.html.ini
new file mode 100644
index 0000000000..8adf62554e
--- /dev/null
+++ b/testing/web-platform/meta/speculation-rules/prerender/restriction-web-serial.tentative.https.html.ini
@@ -0,0 +1,4 @@
+[restriction-web-serial.tentative.https.html]
+ expected:
+ if (os == "android") and fission: [ERROR, TIMEOUT]
+ ERROR
diff --git a/testing/web-platform/meta/speculation-rules/prerender/restriction-web-share.https.html.ini b/testing/web-platform/meta/speculation-rules/prerender/restriction-web-share.https.html.ini
new file mode 100644
index 0000000000..744bc505ec
--- /dev/null
+++ b/testing/web-platform/meta/speculation-rules/prerender/restriction-web-share.https.html.ini
@@ -0,0 +1,4 @@
+[restriction-web-share.https.html]
+ expected:
+ if (os == "android") and fission: [ERROR, TIMEOUT]
+ ERROR
diff --git a/testing/web-platform/meta/speculation-rules/prerender/restriction-web-usb.https.html.ini b/testing/web-platform/meta/speculation-rules/prerender/restriction-web-usb.https.html.ini
new file mode 100644
index 0000000000..47068c3b1e
--- /dev/null
+++ b/testing/web-platform/meta/speculation-rules/prerender/restriction-web-usb.https.html.ini
@@ -0,0 +1,4 @@
+[restriction-web-usb.https.html]
+ expected:
+ if (os == "android") and fission: [ERROR, TIMEOUT]
+ ERROR
diff --git a/testing/web-platform/meta/speculation-rules/prerender/restriction-web-xr-immersive-vr-session.https.html.ini b/testing/web-platform/meta/speculation-rules/prerender/restriction-web-xr-immersive-vr-session.https.html.ini
new file mode 100644
index 0000000000..10896c9f0c
--- /dev/null
+++ b/testing/web-platform/meta/speculation-rules/prerender/restriction-web-xr-immersive-vr-session.https.html.ini
@@ -0,0 +1,10 @@
+[restriction-web-xr-immersive-vr-session.https.html]
+ expected:
+ if (os == "android") and fission: [ERROR, TIMEOUT]
+ ERROR
+
+[restriction-web-xr-immersive-vr-session.https.html?target_hint=_blank]
+ expected: ERROR
+
+[restriction-web-xr-immersive-vr-session.https.html?target_hint=_self]
+ expected: ERROR
diff --git a/testing/web-platform/meta/speculation-rules/prerender/restriction-web-xr-inline-session.https.html.ini b/testing/web-platform/meta/speculation-rules/prerender/restriction-web-xr-inline-session.https.html.ini
new file mode 100644
index 0000000000..a150762121
--- /dev/null
+++ b/testing/web-platform/meta/speculation-rules/prerender/restriction-web-xr-inline-session.https.html.ini
@@ -0,0 +1,10 @@
+[restriction-web-xr-inline-session.https.html]
+ expected:
+ if (os == "android") and fission: [ERROR, TIMEOUT]
+ ERROR
+
+[restriction-web-xr-inline-session.https.html?target_hint=_blank]
+ expected: ERROR
+
+[restriction-web-xr-inline-session.https.html?target_hint=_self]
+ expected: ERROR
diff --git a/testing/web-platform/meta/speculation-rules/prerender/restriction-window-move.html.ini b/testing/web-platform/meta/speculation-rules/prerender/restriction-window-move.html.ini
new file mode 100644
index 0000000000..ef8ee5cbde
--- /dev/null
+++ b/testing/web-platform/meta/speculation-rules/prerender/restriction-window-move.html.ini
@@ -0,0 +1,5 @@
+[restriction-window-move.html]
+ max-asserts: 5
+ expected:
+ if (os == "android") and fission: [TIMEOUT, ERROR]
+ ERROR
diff --git a/testing/web-platform/meta/speculation-rules/prerender/restriction-window-open.html.ini b/testing/web-platform/meta/speculation-rules/prerender/restriction-window-open.html.ini
new file mode 100644
index 0000000000..cefe787266
--- /dev/null
+++ b/testing/web-platform/meta/speculation-rules/prerender/restriction-window-open.html.ini
@@ -0,0 +1,4 @@
+[restriction-window-open.html]
+ expected:
+ if (os == "android") and fission: [ERROR, TIMEOUT]
+ ERROR
diff --git a/testing/web-platform/meta/speculation-rules/prerender/restriction-window-resize.html.ini b/testing/web-platform/meta/speculation-rules/prerender/restriction-window-resize.html.ini
new file mode 100644
index 0000000000..cede529111
--- /dev/null
+++ b/testing/web-platform/meta/speculation-rules/prerender/restriction-window-resize.html.ini
@@ -0,0 +1,5 @@
+[restriction-window-resize.html]
+ max-asserts: 5
+ expected:
+ if (os == "android") and fission: [ERROR, TIMEOUT]
+ ERROR
diff --git a/testing/web-platform/meta/speculation-rules/prerender/restrictions.html.ini b/testing/web-platform/meta/speculation-rules/prerender/restrictions.html.ini
new file mode 100644
index 0000000000..b76c2a0205
--- /dev/null
+++ b/testing/web-platform/meta/speculation-rules/prerender/restrictions.html.ini
@@ -0,0 +1,4 @@
+[restrictions.html]
+ expected:
+ if (os == "android") and fission: [ERROR, TIMEOUT]
+ ERROR
diff --git a/testing/web-platform/meta/speculation-rules/prerender/sandbox-iframe.html.ini b/testing/web-platform/meta/speculation-rules/prerender/sandbox-iframe.html.ini
new file mode 100644
index 0000000000..e4f2132574
--- /dev/null
+++ b/testing/web-platform/meta/speculation-rules/prerender/sandbox-iframe.html.ini
@@ -0,0 +1,4 @@
+[sandbox-iframe.html]
+ expected:
+ if (os == "android") and fission: [ERROR, TIMEOUT]
+ ERROR
diff --git a/testing/web-platform/meta/speculation-rules/prerender/script-supports-speculationrules.html.ini b/testing/web-platform/meta/speculation-rules/prerender/script-supports-speculationrules.html.ini
new file mode 100644
index 0000000000..112b1993e0
--- /dev/null
+++ b/testing/web-platform/meta/speculation-rules/prerender/script-supports-speculationrules.html.ini
@@ -0,0 +1,5 @@
+[script-supports-speculationrules.html]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
+ [HTMLScriptElement.supports returns true for 'speculationrules']
+ expected: FAIL
diff --git a/testing/web-platform/meta/speculation-rules/prerender/service-workers.https.html.ini b/testing/web-platform/meta/speculation-rules/prerender/service-workers.https.html.ini
new file mode 100644
index 0000000000..a6e987524a
--- /dev/null
+++ b/testing/web-platform/meta/speculation-rules/prerender/service-workers.https.html.ini
@@ -0,0 +1,4 @@
+[service-workers.https.html]
+ expected:
+ if (os == "android") and fission: [TIMEOUT, ERROR]
+ ERROR
diff --git a/testing/web-platform/meta/speculation-rules/prerender/session-history-activation.https.html.ini b/testing/web-platform/meta/speculation-rules/prerender/session-history-activation.https.html.ini
new file mode 100644
index 0000000000..3e5ef328db
--- /dev/null
+++ b/testing/web-platform/meta/speculation-rules/prerender/session-history-activation.https.html.ini
@@ -0,0 +1,4 @@
+[session-history-activation.https.html]
+ expected:
+ if (os == "android") and fission: [ERROR, TIMEOUT]
+ ERROR
diff --git a/testing/web-platform/meta/speculation-rules/prerender/session-history-location.https.html.ini b/testing/web-platform/meta/speculation-rules/prerender/session-history-location.https.html.ini
new file mode 100644
index 0000000000..e832e8344d
--- /dev/null
+++ b/testing/web-platform/meta/speculation-rules/prerender/session-history-location.https.html.ini
@@ -0,0 +1,4 @@
+[session-history-location.https.html]
+ expected:
+ if (os == "android") and fission: [ERROR, TIMEOUT]
+ ERROR
diff --git a/testing/web-platform/meta/speculation-rules/prerender/session-history-navigation.https.html.ini b/testing/web-platform/meta/speculation-rules/prerender/session-history-navigation.https.html.ini
new file mode 100644
index 0000000000..09f56bf6d5
--- /dev/null
+++ b/testing/web-platform/meta/speculation-rules/prerender/session-history-navigation.https.html.ini
@@ -0,0 +1,4 @@
+[session-history-navigation.https.html]
+ expected:
+ if (os == "android") and fission: [ERROR, TIMEOUT]
+ ERROR
diff --git a/testing/web-platform/meta/speculation-rules/prerender/session-history-pushstate.https.html.ini b/testing/web-platform/meta/speculation-rules/prerender/session-history-pushstate.https.html.ini
new file mode 100644
index 0000000000..97a4d92b15
--- /dev/null
+++ b/testing/web-platform/meta/speculation-rules/prerender/session-history-pushstate.https.html.ini
@@ -0,0 +1,4 @@
+[session-history-pushstate.https.html]
+ expected:
+ if (os == "android") and fission: [ERROR, TIMEOUT]
+ ERROR
diff --git a/testing/web-platform/meta/speculation-rules/prerender/session-history-subframe-navigation.https.html.ini b/testing/web-platform/meta/speculation-rules/prerender/session-history-subframe-navigation.https.html.ini
new file mode 100644
index 0000000000..beceb50576
--- /dev/null
+++ b/testing/web-platform/meta/speculation-rules/prerender/session-history-subframe-navigation.https.html.ini
@@ -0,0 +1,4 @@
+[session-history-subframe-navigation.https.html]
+ expected:
+ if (os == "android") and fission: [ERROR, TIMEOUT]
+ ERROR
diff --git a/testing/web-platform/meta/speculation-rules/prerender/session-history-subframe-reload.https.html.ini b/testing/web-platform/meta/speculation-rules/prerender/session-history-subframe-reload.https.html.ini
new file mode 100644
index 0000000000..0e07621e05
--- /dev/null
+++ b/testing/web-platform/meta/speculation-rules/prerender/session-history-subframe-reload.https.html.ini
@@ -0,0 +1,4 @@
+[session-history-subframe-reload.https.html]
+ expected:
+ if (os == "android") and fission: [TIMEOUT, ERROR]
+ ERROR
diff --git a/testing/web-platform/meta/speculation-rules/prerender/state-and-event.html.ini b/testing/web-platform/meta/speculation-rules/prerender/state-and-event.html.ini
new file mode 100644
index 0000000000..87ad77ec3c
--- /dev/null
+++ b/testing/web-platform/meta/speculation-rules/prerender/state-and-event.html.ini
@@ -0,0 +1,4 @@
+[state-and-event.html]
+ expected:
+ if (os == "android") and fission: [ERROR, TIMEOUT]
+ ERROR
diff --git a/testing/web-platform/meta/speculation-rules/prerender/visibility-state.html.ini b/testing/web-platform/meta/speculation-rules/prerender/visibility-state.html.ini
new file mode 100644
index 0000000000..4532abf398
--- /dev/null
+++ b/testing/web-platform/meta/speculation-rules/prerender/visibility-state.html.ini
@@ -0,0 +1,4 @@
+[visibility-state.html]
+ expected:
+ if (os == "android") and fission: [ERROR, TIMEOUT]
+ ERROR
diff --git a/testing/web-platform/meta/speculation-rules/prerender/windowclient-navigate-to-cross-origin-url-on-iframe.https.html.ini b/testing/web-platform/meta/speculation-rules/prerender/windowclient-navigate-to-cross-origin-url-on-iframe.https.html.ini
new file mode 100644
index 0000000000..cfc7564ce4
--- /dev/null
+++ b/testing/web-platform/meta/speculation-rules/prerender/windowclient-navigate-to-cross-origin-url-on-iframe.https.html.ini
@@ -0,0 +1,4 @@
+[windowclient-navigate-to-cross-origin-url-on-iframe.https.html]
+ expected:
+ if (os == "android") and fission: [ERROR, TIMEOUT]
+ ERROR
diff --git a/testing/web-platform/meta/speculation-rules/prerender/windowclient-navigate-to-same-origin-url-on-iframe.https.html.ini b/testing/web-platform/meta/speculation-rules/prerender/windowclient-navigate-to-same-origin-url-on-iframe.https.html.ini
new file mode 100644
index 0000000000..eae69950d5
--- /dev/null
+++ b/testing/web-platform/meta/speculation-rules/prerender/windowclient-navigate-to-same-origin-url-on-iframe.https.html.ini
@@ -0,0 +1,4 @@
+[windowclient-navigate-to-same-origin-url-on-iframe.https.html]
+ expected:
+ if (os == "android") and fission: [ERROR, TIMEOUT]
+ ERROR
diff --git a/testing/web-platform/meta/speculation-rules/prerender/windowclient-navigate.https.html.ini b/testing/web-platform/meta/speculation-rules/prerender/windowclient-navigate.https.html.ini
new file mode 100644
index 0000000000..98fb68e8f5
--- /dev/null
+++ b/testing/web-platform/meta/speculation-rules/prerender/windowclient-navigate.https.html.ini
@@ -0,0 +1,4 @@
+[windowclient-navigate.https.html]
+ expected:
+ if (os == "android") and fission: [TIMEOUT, ERROR]
+ ERROR
diff --git a/testing/web-platform/meta/speculation-rules/prerender/workers-in-cross-origin-iframe.html.ini b/testing/web-platform/meta/speculation-rules/prerender/workers-in-cross-origin-iframe.html.ini
new file mode 100644
index 0000000000..bab5fc631f
--- /dev/null
+++ b/testing/web-platform/meta/speculation-rules/prerender/workers-in-cross-origin-iframe.html.ini
@@ -0,0 +1,2 @@
+[workers-in-cross-origin-iframe.html]
+ expected: ERROR
diff --git a/testing/web-platform/meta/speculation-rules/prerender/workers.html.ini b/testing/web-platform/meta/speculation-rules/prerender/workers.html.ini
new file mode 100644
index 0000000000..ebc82b1899
--- /dev/null
+++ b/testing/web-platform/meta/speculation-rules/prerender/workers.html.ini
@@ -0,0 +1,4 @@
+[workers.html]
+ expected:
+ if (os == "android") and fission: [ERROR, TIMEOUT]
+ ERROR