summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/meta/speculation-rules/prefetch
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-07 19:33:14 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-07 19:33:14 +0000
commit36d22d82aa202bb199967e9512281e9a53db42c9 (patch)
tree105e8c98ddea1c1e4784a60a5a6410fa416be2de /testing/web-platform/meta/speculation-rules/prefetch
parentInitial commit. (diff)
downloadfirefox-esr-36d22d82aa202bb199967e9512281e9a53db42c9.tar.xz
firefox-esr-36d22d82aa202bb199967e9512281e9a53db42c9.zip
Adding upstream version 115.7.0esr.upstream/115.7.0esr
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'testing/web-platform/meta/speculation-rules/prefetch')
-rw-r--r--testing/web-platform/meta/speculation-rules/prefetch/anonymous-client.https.html.ini3
-rw-r--r--testing/web-platform/meta/speculation-rules/prefetch/cross-origin-cookies.https.html.ini3
-rw-r--r--testing/web-platform/meta/speculation-rules/prefetch/different-initiators-2.https.html.ini3
-rw-r--r--testing/web-platform/meta/speculation-rules/prefetch/different-initiators.sub.https.html.ini13
-rw-r--r--testing/web-platform/meta/speculation-rules/prefetch/document-rules.https.html.ini78
-rw-r--r--testing/web-platform/meta/speculation-rules/prefetch/duplicate-urls.https.html.ini5
-rw-r--r--testing/web-platform/meta/speculation-rules/prefetch/initiators-a-element.sub.https.html.ini14
-rw-r--r--testing/web-platform/meta/speculation-rules/prefetch/initiators-iframe-location-href.sub.https.html.ini8
-rw-r--r--testing/web-platform/meta/speculation-rules/prefetch/initiators-window-open.sub.https.html.ini14
-rw-r--r--testing/web-platform/meta/speculation-rules/prefetch/invalid-rules.https.html.ini5
-rw-r--r--testing/web-platform/meta/speculation-rules/prefetch/multiple-url.https.html.ini5
-rw-r--r--testing/web-platform/meta/speculation-rules/prefetch/navigation-timing-delivery-type.tentative.https.html.ini26
-rw-r--r--testing/web-platform/meta/speculation-rules/prefetch/navigation-timing-requestStart-responseStart.https.html.ini12
-rw-r--r--testing/web-platform/meta/speculation-rules/prefetch/navigation-timing-sizes.https.html.ini26
-rw-r--r--testing/web-platform/meta/speculation-rules/prefetch/no-vary-search/prefetch-single-with-hint.https.html.ini123
-rw-r--r--testing/web-platform/meta/speculation-rules/prefetch/no-vary-search/prefetch-single.https.html.ini155
-rw-r--r--testing/web-platform/meta/speculation-rules/prefetch/out-of-document-rule-set.https.html.ini96
-rw-r--r--testing/web-platform/meta/speculation-rules/prefetch/prefetch-single.https.html.ini26
-rw-r--r--testing/web-platform/meta/speculation-rules/prefetch/prefetch-status.https.html.ini33
-rw-r--r--testing/web-platform/meta/speculation-rules/prefetch/prefetch-traverse-reload.sub.html.ini9
-rw-r--r--testing/web-platform/meta/speculation-rules/prefetch/redirect-url.https.html.ini5
-rw-r--r--testing/web-platform/meta/speculation-rules/prefetch/referrer-policy-from-rules.https.html.ini62
-rw-r--r--testing/web-platform/meta/speculation-rules/prefetch/referrer-policy-not-accepted.https.html.ini19
-rw-r--r--testing/web-platform/meta/speculation-rules/prefetch/referrer-policy.https.html.ini46
-rw-r--r--testing/web-platform/meta/speculation-rules/prefetch/same-origin-cookies.https.html.ini5
-rw-r--r--testing/web-platform/meta/speculation-rules/prefetch/user-pass.https.html.ini12
26 files changed, 806 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..34f5153742
--- /dev/null
+++ b/testing/web-platform/meta/speculation-rules/prefetch/anonymous-client.https.html.ini
@@ -0,0 +1,3 @@
+[anonymous-client.https.html]
+ [test anonymous-client url prefetch for cross origin pages]
+ expected: FAIL
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..b8c8e768b9
--- /dev/null
+++ b/testing/web-platform/meta/speculation-rules/prefetch/cross-origin-cookies.https.html.ini
@@ -0,0 +1,3 @@
+[cross-origin-cookies.https.html]
+ [speculation rules based prefetch should not use cookies for cross origin urls.]
+ expected: FAIL
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..be61020803
--- /dev/null
+++ b/testing/web-platform/meta/speculation-rules/prefetch/different-initiators-2.https.html.ini
@@ -0,0 +1,3 @@
+[different-initiators-2.https.html]
+ [Prefetches from different initiator Documents with same RenderFrameHost]
+ expected: FAIL
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..0677a7369b
--- /dev/null
+++ b/testing/web-platform/meta/speculation-rules/prefetch/different-initiators.sub.https.html.ini
@@ -0,0 +1,13 @@
+[different-initiators.sub.https.html?cross-site-1]
+ [Cross-initiator prefetches using ServiceWorker tricks]
+ expected: FAIL
+
+
+[different-initiators.sub.https.html?same-site]
+ [Cross-initiator prefetches using ServiceWorker tricks]
+ expected: FAIL
+
+
+[different-initiators.sub.https.html?cross-site-2]
+ [Cross-initiator prefetches using ServiceWorker tricks]
+ expected: FAIL
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..a5316801eb
--- /dev/null
+++ b/testing/web-platform/meta/speculation-rules/prefetch/document-rules.https.html.ini
@@ -0,0 +1,78 @@
+[document-rules.https.html?include=invalidPredicate]
+ [invalid predicate should not throw error or start prefetch]
+ expected: FAIL
+
+
+[document-rules.https.html?include=linkInShadowTree]
+ [test that matching link in a shadow tree is prefetched]
+ expected: FAIL
+
+
+[document-rules.https.html?include=defaultPredicate]
+ [test document rule with no predicate]
+ expected: FAIL
+
+
+[document-rules.https.html?include=hrefMatches]
+ [test href_matches document rule]
+ expected: FAIL
+
+
+[document-rules.https.html?include=not]
+ [test document rule with negation predicate]
+ expected: FAIL
+
+
+[document-rules.https.html?include=or]
+ [test document rule with disjunction predicate]
+ expected: FAIL
+
+
+[document-rules.https.html?include=and]
+ [test document rule with conjunction predicate]
+ expected: FAIL
+
+
+[document-rules.https.html?include=linkHrefChanged]
+ [test that changing the href of an invalid link to a matching value triggers a prefetch]
+ expected: FAIL
+
+
+[document-rules.https.html?include=newRuleSetAdded]
+ [test that adding a second rule set triggers prefetch]
+ expected: FAIL
+
+
+[document-rules.https.html?include=selectorMatchesDisplayLocked]
+ [test selector_matches with link inside display locked container]
+ expected: FAIL
+
+
+[document-rules.https.html?include=unslottedLink]
+ [test that unslotted link never matches document rule]
+ expected: FAIL
+
+
+[document-rules.https.html?include=selectorMatches]
+ [test selector_matches document rule]
+ expected: FAIL
+
+
+[document-rules.https.html?include=selectorMatchesDisplayNone]
+ [test selector_matches with link inside display:none container]
+ expected: FAIL
+
+
+[document-rules.https.html?include=selectorMatchesInShadowTree]
+ [test selector_matches with link inside shadow tree]
+ expected: FAIL
+
+
+[document-rules.https.html?include=selectorMatchesScopingRoot]
+ [test selector_matches with :root]
+ expected: FAIL
+
+
+[document-rules.https.html?include=immediateMutation]
+ [test that selector_matches predicates respect changes immediately]
+ expected: FAIL
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..b5e424c5cc
--- /dev/null
+++ b/testing/web-platform/meta/speculation-rules/prefetch/duplicate-urls.https.html.ini
@@ -0,0 +1,5 @@
+[duplicate-urls.https.html]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
+ [browser should remove duplicate urls from prefetch buffer.]
+ expected: FAIL
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..547f776bd1
--- /dev/null
+++ b/testing/web-platform/meta/speculation-rules/prefetch/initiators-a-element.sub.https.html.ini
@@ -0,0 +1,14 @@
+[initiators-a-element.sub.https.html?same-site]
+ [<a>]
+ expected: FAIL
+
+ [<a target="blank">]
+ expected: FAIL
+
+
+[initiators-a-element.sub.https.html?cross-site]
+ [<a>]
+ expected: FAIL
+
+ [<a target="blank">]
+ expected: FAIL
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..e182b10907
--- /dev/null
+++ b/testing/web-platform/meta/speculation-rules/prefetch/initiators-iframe-location-href.sub.https.html.ini
@@ -0,0 +1,8 @@
+[initiators-iframe-location-href.sub.https.html?cross-site]
+ [location.href across iframe]
+ expected: FAIL
+
+
+[initiators-iframe-location-href.sub.https.html?same-site]
+ [location.href across iframe]
+ expected: FAIL
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..7fa1b48a6c
--- /dev/null
+++ b/testing/web-platform/meta/speculation-rules/prefetch/initiators-window-open.sub.https.html.ini
@@ -0,0 +1,14 @@
+[initiators-window-open.sub.https.html?same-site]
+ [window.open()]
+ expected: FAIL
+
+ [window.open(noopener)]
+ expected: FAIL
+
+
+[initiators-window-open.sub.https.html?cross-site]
+ [window.open()]
+ expected: FAIL
+
+ [window.open(noopener)]
+ expected: FAIL
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..07a022b2bc
--- /dev/null
+++ b/testing/web-platform/meta/speculation-rules/prefetch/invalid-rules.https.html.ini
@@ -0,0 +1,5 @@
+[invalid-rules.https.html]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
+ [an unrecognized key in a prefetch rule should prevent it from being fetched]
+ expected: FAIL
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..04f65a30cf
--- /dev/null
+++ b/testing/web-platform/meta/speculation-rules/prefetch/multiple-url.https.html.ini
@@ -0,0 +1,5 @@
+[multiple-url.https.html]
+ expected:
+ if (os == "android") and fission: [TIMEOUT, OK]
+ [browser should be able to prefetch multiple urls]
+ expected: FAIL
diff --git a/testing/web-platform/meta/speculation-rules/prefetch/navigation-timing-delivery-type.tentative.https.html.ini b/testing/web-platform/meta/speculation-rules/prefetch/navigation-timing-delivery-type.tentative.https.html.ini
new file mode 100644
index 0000000000..59623fce43
--- /dev/null
+++ b/testing/web-platform/meta/speculation-rules/prefetch/navigation-timing-delivery-type.tentative.https.html.ini
@@ -0,0 +1,26 @@
+[navigation-timing-delivery-type.tentative.https.html?prefetch=false&bypass_cache=false]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
+ [PerformanceNavigationTiming.deliveryType test, same origin prefetch.]
+ expected: FAIL
+
+
+[navigation-timing-delivery-type.tentative.https.html?prefetch=false&bypass_cache=true]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
+ [PerformanceNavigationTiming.deliveryType test, same origin prefetch.]
+ expected: FAIL
+
+
+[navigation-timing-delivery-type.tentative.https.html?prefetch=true&bypass_cache=false]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
+ [PerformanceNavigationTiming.deliveryType test, same origin prefetch.]
+ expected: FAIL
+
+
+[navigation-timing-delivery-type.tentative.https.html?prefetch=true&bypass_cache=true]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
+ [PerformanceNavigationTiming.deliveryType test, same origin prefetch.]
+ expected: FAIL
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..c8616d3f4d
--- /dev/null
+++ b/testing/web-platform/meta/speculation-rules/prefetch/navigation-timing-requestStart-responseStart.https.html.ini
@@ -0,0 +1,12 @@
+[navigation-timing-requestStart-responseStart.https.html?prefetch=true]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
+ [PerformanceNavigationTiming.requestStart/responseStart test, same origin prefetch.]
+ expected: FAIL
+
+
+[navigation-timing-requestStart-responseStart.https.html]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
+ [PerformanceNavigationTiming.requestStart/responseStart test, same origin prefetch.]
+ expected: FAIL
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..227bdb3b9c
--- /dev/null
+++ b/testing/web-platform/meta/speculation-rules/prefetch/navigation-timing-sizes.https.html.ini
@@ -0,0 +1,26 @@
+[navigation-timing-sizes.https.html?bypass_cache=true]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
+ [PerformanceNavigationTiming.transferSize/encodedBodySize/decodedBodySize test, same origin prefetch.]
+ expected: FAIL
+
+
+[navigation-timing-sizes.https.html?prefetch=true&bypass_cache=true]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
+ [PerformanceNavigationTiming.transferSize/encodedBodySize/decodedBodySize test, same origin prefetch.]
+ expected: FAIL
+
+
+[navigation-timing-sizes.https.html]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
+ [PerformanceNavigationTiming.transferSize/encodedBodySize/decodedBodySize test, same origin prefetch.]
+ expected: FAIL
+
+
+[navigation-timing-sizes.https.html?prefetch=true]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
+ [PerformanceNavigationTiming.transferSize/encodedBodySize/decodedBodySize test, same origin prefetch.]
+ expected: FAIL
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..c9448724f0
--- /dev/null
+++ b/testing/web-platform/meta/speculation-rules/prefetch/no-vary-search/prefetch-single-with-hint.https.html.ini
@@ -0,0 +1,123 @@
+[prefetch-single-with-hint.https.html?14-14]
+ [Use in-flight prefetch as all query parameters except c can be ignored. Allow extension via parameters.]
+ expected: FAIL
+
+
+[prefetch-single-with-hint.https.html?1-1]
+ [Use in-flight prefetch as query parameter b has the same value.]
+ expected: FAIL
+
+
+[prefetch-single-with-hint.https.html?17-17]
+ [Use in-flight prefetch as the URLs do not vary on any query parameters. Allow extension via parameters.]
+ expected: FAIL
+
+
+[prefetch-single-with-hint.https.html?11-11]
+ [Don't use in-flight prefetch as even though all query parameters except c can be ignored, c has different value.]
+ expected: FAIL
+
+
+[prefetch-single-with-hint.https.html?6-6]
+ [Use in-flight prefetch as the URLs have the same values for all keys, only differing by order.]
+ expected: FAIL
+
+
+[prefetch-single-with-hint.https.html?18-18]
+ [Use in-flight prefetch as all query parameters except c can be ignored. Allow extension via parameters.]
+ expected: FAIL
+
+
+[prefetch-single-with-hint.https.html?20-20]
+ [Use the in-flight prefetch. Empty No-Vary-Search means default URL variance. The prefetched and the navigated URLs have to be the same.]
+ expected: FAIL
+
+
+[prefetch-single-with-hint.https.html?9-9]
+ [Use in-flight prefetch as all query parameters except c can be ignored.]
+ expected: FAIL
+
+
+[prefetch-single-with-hint.https.html?8-8]
+ [Don't use in-flight prefetch as key-order is set to false and the URLs are not identical.]
+ expected: FAIL
+
+
+[prefetch-single-with-hint.https.html?2-2]
+ [Don't use in-flight prefetch as there is no No-Vary-Search hint.]
+ expected: FAIL
+
+
+[prefetch-single-with-hint.https.html?22-22]
+ [Use the in-flight prefetch. Non-ASCII key - 2 UTF-8 code units. Don't vary the response on the non-ASCII key.]
+ expected: FAIL
+
+
+[prefetch-single-with-hint.https.html?3-3]
+ [Don't use in-flight prefetch as the prefetched URL has the extra "a" query parameter.]
+ expected: FAIL
+
+
+[prefetch-single-with-hint.https.html?24-24]
+ [Don't use the in-flight prefetch. Non-ASCII key - 2 UTF-8 code units. Vary the response on the non-ASCII key.]
+ expected: FAIL
+
+
+[prefetch-single-with-hint.https.html?10-10]
+ [Use in-flight prefetch as all query parameters except c can be ignored. Only the last except matters.]
+ expected: FAIL
+
+
+[prefetch-single-with-hint.https.html?15-15]
+ [Use in-flight prefetch as query parameter c can be ignored. Allow extension via parameters.]
+ expected: FAIL
+
+
+[prefetch-single-with-hint.https.html?19-19]
+ [Don't use the in-flight 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-with-hint.https.html?16-16]
+ [Use in-flight prefetch as the URLs have the values in different order for a. Allow extension via parameters.]
+ expected: FAIL
+
+
+[prefetch-single-with-hint.https.html?21-21]
+ [Use the in-flight prefetch. Empty No-Vary-Search means default URL variance. The prefetched and the navigated URLs have to be the same.]
+ expected: FAIL
+
+
+[prefetch-single-with-hint.https.html?12-12]
+ [Use in-flight prefetch as even though all query parameters except c and d can be ignored, c value matches and d value matches.]
+ expected: FAIL
+
+
+[prefetch-single-with-hint.https.html?5-5]
+ [Do not use in-flight prefetch as the navigation URL has a different value for the "b" query parameter.]
+ expected: FAIL
+
+
+[prefetch-single-with-hint.https.html?13-13]
+ [Use in-flight prefetch as even though all query parameters except c and d can be ignored, c value matches and d value matches. Some query parameters to be ignored appear multiple times in the query.]
+ expected: FAIL
+
+
+[prefetch-single-with-hint.https.html?23-23]
+ [Use the in-flight prefetch. Non-ASCII key - 2 UTF-8 code units. Don't vary the response on the non-ASCII key.]
+ expected: FAIL
+
+
+[prefetch-single-with-hint.https.html?4-4]
+ [Use in-flight prefetch as the URLs do not vary by a and b.]
+ expected: FAIL
+
+
+[prefetch-single-with-hint.https.html?25-last]
+ [Use the in-flight prefetch. Non-ASCII key - 2 UTF-8 code units. Vary the response on the non-ASCII key.]
+ expected: FAIL
+
+
+[prefetch-single-with-hint.https.html?7-7]
+ [Use in-flight prefetch as the URLs have the same values for all keys, only differing by order and using ?1 for specifying a true value.]
+ expected: FAIL
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..f0cf12a3fa
--- /dev/null
+++ b/testing/web-platform/meta/speculation-rules/prefetch/no-vary-search/prefetch-single.https.html.ini
@@ -0,0 +1,155 @@
+[prefetch-single.https.html?19-19]
+ [Use prefetched response as all query parameters except c can be ignored. Allow extension via parameters.]
+ expected: FAIL
+
+
+[prefetch-single.https.html?6-6]
+ [Don't use prefetched response as the URLs have different value for c.]
+ expected: FAIL
+
+
+[prefetch-single.https.html?12-12]
+ [Use prefetched response as query parameter a can be ignored.]
+ expected: FAIL
+
+
+[prefetch-single.https.html?5-5]
+ [Use prefetched response as the URLs do not vary on any query parameters.]
+ expected: FAIL
+
+
+[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]
+ [Don't use prefetched response as query parameter b has different value.]
+ expected: FAIL
+
+
+[prefetch-single.https.html?4-4]
+ [Use prefetched response as the URLs do not vary on any query parameters.]
+ expected: FAIL
+
+
+[prefetch-single.https.html?14-14]
+ [Use prefetched response as all query parameters except c can be ignored.]
+ expected: FAIL
+
+
+[prefetch-single.https.html?11-11]
+ [Use prefetched response as query parameter c can be ignored.]
+ expected: FAIL
+
+
+[prefetch-single.https.html?8-8]
+ [Use prefetched response as the URLs have the same values for a.]
+ expected: FAIL
+
+
+[prefetch-single.https.html?9-9]
+ [Use prefetched response as the URLs have the same values for a.]
+ expected: FAIL
+
+
+[prefetch-single.https.html?10-10]
+ [Don't use prefetched response as key-order is set to false and the URLs are not identical.]
+ expected: FAIL
+
+
+[prefetch-single.https.html?20-20]
+ [Use prefetched response as query parameter c can be ignored. Allow extension via parameters.]
+ expected: FAIL
+
+
+[prefetch-single.https.html?3-3]
+ [Use prefetched response as the URLs do not vary by a and b.]
+ expected: FAIL
+
+
+[prefetch-single.https.html?13-13]
+ [Use prefetched response as query parameter a can be ignored.]
+ expected: FAIL
+
+
+[prefetch-single.https.html?7-7]
+ [Don't use prefetched response as the URLs have the values in different order for a.]
+ expected: FAIL
+
+
+[prefetch-single.https.html?23-23]
+ [Use prefetched response as all query parameters except c can be ignored. Allow extension via parameters.]
+ expected: FAIL
+
+
+[prefetch-single.https.html?22-22]
+ [Use prefetched response as the URLs do not vary on any query parameters. Allow extension via parameters.]
+ expected: FAIL
+
+
+[prefetch-single.https.html?1-1]
+ [Use prefetched response as query parameter b has the same value.]
+ expected: FAIL
+
+
+[prefetch-single.https.html?25-25]
+ [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?18-18]
+ [Use prefetched response as even though all query parameters except c and d can be ignored, c value matches and d value matches. Some query parameters to be ignored appear multiple times in the query.]
+ expected: FAIL
+
+
+[prefetch-single.https.html?17-17]
+ [Use prefetched response as even though all query parameters except c and d can be ignored, c value matches and d value matches.]
+ expected: FAIL
+
+
+[prefetch-single.https.html?15-15]
+ [Use prefetched response as all query parameters except c can be ignored. Only the last except matters.]
+ expected: FAIL
+
+
+[prefetch-single.https.html?21-21]
+ [Use prefetched response as the URLs have the values in different order for a. Allow extension via parameters.]
+ expected: FAIL
+
+
+[prefetch-single.https.html?24-24]
+ [Don't 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?16-16]
+ [Don't use prefetched response as even though all query parameters except c can be ignored, c has different value.]
+ expected: FAIL
+
+
+[prefetch-single.https.html?26-26]
+ [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?27-27]
+ [Use the prefetched URL. Non-ASCII key - 2 UTF-8 code units. Don't vary the response on the non-ASCII key.]
+ expected: FAIL
+
+
+[prefetch-single.https.html?29-29]
+ [Don't use the prefetched URL. Non-ASCII key - 2 UTF-8 code units. Vary the response on the non-ASCII key.]
+ expected: FAIL
+
+
+[prefetch-single.https.html?30-last]
+ [Use the prefetched URL. Non-ASCII key - 2 UTF-8 code units. Vary the response on the non-ASCII key.]
+ expected: FAIL
+
+
+[prefetch-single.https.html?28-28]
+ [Use the prefetched URL. Non-ASCII key - 2 UTF-8 code units. Don't vary the response on the non-ASCII key.]
+ expected: FAIL
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..bcb5ab990c
--- /dev/null
+++ b/testing/web-platform/meta/speculation-rules/prefetch/out-of-document-rule-set.https.html.ini
@@ -0,0 +1,96 @@
+[out-of-document-rule-set.https.html?include=RelativeUrlForSpeculationRulesSet]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
+ [It should fetch a speculation rules set using its relative URL.]
+ expected: FAIL
+
+
+[out-of-document-rule-set.https.html?include=RelativeUrlForCandidate]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
+ [It should resolve the relative candidate URLs in the speculation rules set based on the speculation rules set's URL]
+ expected: FAIL
+
+
+[out-of-document-rule-set.https.html?include=FailCORS]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
+ [It should reject the speculation rules set if CORS fails.]
+ expected: FAIL
+
+
+[out-of-document-rule-set.https.html?include=InvalidUrlForSpeculationRulesSet]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
+ [It should reject the speculation rules set with invalid URL.]
+ expected: FAIL
+
+
+[out-of-document-rule-set.https.html?include=EmptyRuleSet]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
+ [It should reject an empty speculation rules set.]
+ expected: FAIL
+
+
+[out-of-document-rule-set.https.html?include=StatusCode199]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
+ [It should reject the speculation rules set with unsuccessful status code.]
+ expected: FAIL
+
+
+[out-of-document-rule-set.https.html?include=FailToParseRuleSet]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
+ [It should reject the speculation rules set if it cannot parse it.]
+ expected: FAIL
+
+
+[out-of-document-rule-set.https.html?include=BaseCase]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
+ [Base case.]
+ expected: FAIL
+
+
+[out-of-document-rule-set.https.html?include=StatusCode404]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
+ [It should reject the speculation rules set with unsuccessful status code.]
+ expected: FAIL
+
+
+[out-of-document-rule-set.https.html?include=UseNonUTF8EncodingForSpeculationRulesSet]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
+ [The speculation rules set should always be encoded using UTF-8.]
+ expected: FAIL
+
+
+[out-of-document-rule-set.https.html?include=InvalidMimeType]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
+ [It should reject the speculation rules set with invalid MIME type.]
+ expected: FAIL
+
+
+[out-of-document-rule-set.https.html?include=FailToParseSpeculationRulesHeader]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
+ [It should reject the speculation rules set if it fails to parse the SpeculationRules header.]
+ expected: FAIL
+
+
+[out-of-document-rule-set.https.html?include=FollowRedirect]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
+ [It should follow redirects and fetch the speculation rules set.]
+ expected: FAIL
+
+
+[out-of-document-rule-set.https.html?include=InnerListInSpeculationRulesHeader]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
+ [It should reject the speculation rules passed as inner list in the SpeculationRules header.]
+ expected: FAIL
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..2dff4c0867
--- /dev/null
+++ b/testing/web-platform/meta/speculation-rules/prefetch/prefetch-single.https.html.ini
@@ -0,0 +1,26 @@
+[prefetch-single.https.html?from_protocol=https&to_protocol=https]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
+ [test single https url prefetch from a https url]
+ expected: FAIL
+
+
+[prefetch-single.https.html?from_protocol=http&to_protocol=http]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
+ [test single http url prefetch from a http url]
+ expected: FAIL
+
+
+[prefetch-single.https.html?from_protocol=http&to_protocol=https]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
+ [test single https url prefetch from a http url]
+ expected: FAIL
+
+
+[prefetch-single.https.html?from_protocol=https&to_protocol=http]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
+ [test single http url prefetch from a https url]
+ expected: FAIL
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..82245e35a8
--- /dev/null
+++ b/testing/web-platform/meta/speculation-rules/prefetch/prefetch-status.https.html.ini
@@ -0,0 +1,33 @@
+[prefetch-status.https.html?status=500&should_prefetch=false]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
+ [Check that only prefetched requests with status in 200-299 range are used.]
+ expected: FAIL
+
+
+[prefetch-status.https.html?status=400&should_prefetch=false]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
+ [Check that only prefetched requests with status in 200-299 range are used.]
+ expected: FAIL
+
+
+[prefetch-status.https.html?status=299&should_prefetch=true]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
+ [Check that only prefetched requests with status in 200-299 range are used.]
+ expected: FAIL
+
+
+[prefetch-status.https.html?status=250&should_prefetch=true]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
+ [Check that only prefetched requests with status in 200-299 range are used.]
+ expected: FAIL
+
+
+[prefetch-status.https.html?status=200&should_prefetch=true]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
+ [Check that only prefetched requests with status in 200-299 range are used.]
+ expected: FAIL
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..22b64c4d37
--- /dev/null
+++ b/testing/web-platform/meta/speculation-rules/prefetch/prefetch-traverse-reload.sub.html.ini
@@ -0,0 +1,9 @@
+[prefetch-traverse-reload.sub.html]
+ [prefetches can be used for traversal navigations]
+ expected: FAIL
+
+ [prefetches can be used for reload navigations]
+ expected: FAIL
+
+ [History's Document is used for traversal navigations]
+ expected: FAIL
diff --git a/testing/web-platform/meta/speculation-rules/prefetch/redirect-url.https.html.ini b/testing/web-platform/meta/speculation-rules/prefetch/redirect-url.https.html.ini
new file mode 100644
index 0000000000..fa59173f4d
--- /dev/null
+++ b/testing/web-platform/meta/speculation-rules/prefetch/redirect-url.https.html.ini
@@ -0,0 +1,5 @@
+[redirect-url.https.html]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
+ [browser should be able to prefetch redirected urls]
+ expected: FAIL
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..b92d00468c
--- /dev/null
+++ b/testing/web-platform/meta/speculation-rules/prefetch/referrer-policy-from-rules.https.html.ini
@@ -0,0 +1,62 @@
+[referrer-policy-from-rules.https.html?4-4]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
+ [unrecognized policies invalidate the rule]
+ expected: FAIL
+
+
+[referrer-policy-from-rules.https.html?1-1]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
+ [with "strict-origin" referrer policy in rule set overriding "strict-origin-when-cross-origin" of referring page]
+ expected: FAIL
+
+
+[referrer-policy-from-rules.https.html?3-3]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
+ [with "no-referrer" referrer policy in rule set overriding "unsafe-url" of cross-site referring page]
+ expected: FAIL
+
+
+[referrer-policy-from-rules.https.html?2-2]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
+ [with "strict-origin" referrer policy in rule set override "no-referrer" of link]
+ expected: FAIL
+
+
+[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:
+ if (os == "android") and fission: [OK, TIMEOUT]
+ [treat legacy referrer policy values as invalid]
+ expected: FAIL
+
+
+[referrer-policy-from-rules.https.html?7-last]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
+ [with empty string referrer policy in rule set defaulting to "strict-origin" of referring page]
+ expected: FAIL
+
+
+[referrer-policy-from-rules.https.html?6-6]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
+ [with "unsafe-url" referrer policy in rule set overriding "strict-origin" of cross-site referring page]
+ expected: FAIL
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..57f2772a10
--- /dev/null
+++ b/testing/web-platform/meta/speculation-rules/prefetch/referrer-policy-not-accepted.https.html.ini
@@ -0,0 +1,19 @@
+[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:
+ if (os == "android") and fission: [OK, TIMEOUT]
+ [with "unsafe-url" referrer policy on same-site referring page]
+ expected: FAIL
+
+
+[referrer-policy-not-accepted.https.html?2-last]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
+ [with "unsafe-url" referrer policy on cross-site referring page]
+ expected: FAIL
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..2aff945445
--- /dev/null
+++ b/testing/web-platform/meta/speculation-rules/prefetch/referrer-policy.https.html.ini
@@ -0,0 +1,46 @@
+[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:
+ if (os == "android") and fission: [OK, TIMEOUT]
+ [with "strict-origin" referrer policy]
+ expected: FAIL
+
+
+[referrer-policy.https.html?1-1]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
+ [with "strict-origin-when-cross-origin" referrer policy]
+ expected: FAIL
+
+
+[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:
+ if (os == "android") and fission: [OK, TIMEOUT]
+ [with "no-referrer" referrer policy]
+ expected: FAIL
+
+
+[referrer-policy.https.html?4-last]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
+ [with "strict-origin" link referrer policy overriding "no-referrer" of referring page]
+ expected: FAIL
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..48b913f035
--- /dev/null
+++ b/testing/web-platform/meta/speculation-rules/prefetch/same-origin-cookies.https.html.ini
@@ -0,0 +1,5 @@
+[same-origin-cookies.https.html]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
+ [speculation rules based prefetch should use cookies for same origin urls.]
+ expected: FAIL
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..38f1bf30dd
--- /dev/null
+++ b/testing/web-platform/meta/speculation-rules/prefetch/user-pass.https.html.ini
@@ -0,0 +1,12 @@
+[user-pass.https.html?cross-origin=true]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
+ [test www-authenticate basic does not forward credentials to cross-origin pages.]
+ expected: FAIL
+
+
+[user-pass.https.html?cross-origin=false]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
+ [test www-authenticate basic does not forward credentials to cross-origin pages.]
+ expected: FAIL