diff --git a/common/slow.py b/common/slow.py
index 5329a04ed2d7b8..9be8aadf3536c6 100644
--- a/common/slow.py
+++ b/common/slow.py
@@ -1,5 +1,6 @@
import time
def main(request, response):
- time.sleep(2)
+ delay = float(request.GET.first(b"delay", 2000)) / 1000
+ time.sleep(delay)
return 200, [], b''
diff --git a/html/syntax/speculative-parsing/generated/document-write/base-href-script-src.tentative.sub.html b/html/syntax/speculative-parsing/generated/document-write/base-href-script-src.tentative.sub.html
new file mode 100644
index 00000000000000..23d2777c63f016
--- /dev/null
+++ b/html/syntax/speculative-parsing/generated/document-write/base-href-script-src.tentative.sub.html
@@ -0,0 +1,25 @@
+
+
+
+
Speculative parsing, document.write(): base-href-script-src
+
+
+
+
+
diff --git a/html/syntax/speculative-parsing/generated/document-write/image-src.tentative.sub.html b/html/syntax/speculative-parsing/generated/document-write/image-src.tentative.sub.html
new file mode 100644
index 00000000000000..b026985011c1c7
--- /dev/null
+++ b/html/syntax/speculative-parsing/generated/document-write/image-src.tentative.sub.html
@@ -0,0 +1,25 @@
+
+
+
+Speculative parsing, document.write(): image-src
+
+
+
+
+
diff --git a/html/syntax/speculative-parsing/generated/document-write/img-data-src.tentative.sub.html b/html/syntax/speculative-parsing/generated/document-write/img-data-src.tentative.sub.html
new file mode 100644
index 00000000000000..21c14e382c7e78
--- /dev/null
+++ b/html/syntax/speculative-parsing/generated/document-write/img-data-src.tentative.sub.html
@@ -0,0 +1,25 @@
+
+
+
+Speculative parsing, document.write(): img-data-src
+
+
+
+
+
diff --git a/html/syntax/speculative-parsing/generated/document-write/img-src-crossorigin.tentative.sub.html b/html/syntax/speculative-parsing/generated/document-write/img-src-crossorigin.tentative.sub.html
new file mode 100644
index 00000000000000..8d038471c87103
--- /dev/null
+++ b/html/syntax/speculative-parsing/generated/document-write/img-src-crossorigin.tentative.sub.html
@@ -0,0 +1,25 @@
+
+
+
+Speculative parsing, document.write(): img-src-crossorigin
+
+
+
+
+
diff --git a/html/syntax/speculative-parsing/generated/document-write/img-src-loading-lazy.tentative.sub.html b/html/syntax/speculative-parsing/generated/document-write/img-src-loading-lazy.tentative.sub.html
new file mode 100644
index 00000000000000..a1b1c92af8748a
--- /dev/null
+++ b/html/syntax/speculative-parsing/generated/document-write/img-src-loading-lazy.tentative.sub.html
@@ -0,0 +1,25 @@
+
+
+
+Speculative parsing, document.write(): img-src-loading-lazy
+
+
+
+
+
diff --git a/html/syntax/speculative-parsing/generated/document-write/img-src-referrerpolicy-no-referrer.tentative.sub.html b/html/syntax/speculative-parsing/generated/document-write/img-src-referrerpolicy-no-referrer.tentative.sub.html
new file mode 100644
index 00000000000000..c26b933be87c9a
--- /dev/null
+++ b/html/syntax/speculative-parsing/generated/document-write/img-src-referrerpolicy-no-referrer.tentative.sub.html
@@ -0,0 +1,25 @@
+
+
+
+Speculative parsing, document.write(): img-src-referrerpolicy-no-referrer
+
+
+
+
+
diff --git a/html/syntax/speculative-parsing/generated/document-write/img-src.tentative.sub.html b/html/syntax/speculative-parsing/generated/document-write/img-src.tentative.sub.html
new file mode 100644
index 00000000000000..b4d16da8e94018
--- /dev/null
+++ b/html/syntax/speculative-parsing/generated/document-write/img-src.tentative.sub.html
@@ -0,0 +1,25 @@
+
+
+
+Speculative parsing, document.write(): img-src
+
+
+
+
+
diff --git a/html/syntax/speculative-parsing/generated/document-write/img-srcset.tentative.sub.html b/html/syntax/speculative-parsing/generated/document-write/img-srcset.tentative.sub.html
new file mode 100644
index 00000000000000..b08d597a820876
--- /dev/null
+++ b/html/syntax/speculative-parsing/generated/document-write/img-srcset.tentative.sub.html
@@ -0,0 +1,25 @@
+
+
+
+Speculative parsing, document.write(): img-srcset
+
+
+
+
+
diff --git a/html/syntax/speculative-parsing/generated/document-write/link-no-rel.tentative.sub.html b/html/syntax/speculative-parsing/generated/document-write/link-no-rel.tentative.sub.html
new file mode 100644
index 00000000000000..260f7a53a25126
--- /dev/null
+++ b/html/syntax/speculative-parsing/generated/document-write/link-no-rel.tentative.sub.html
@@ -0,0 +1,25 @@
+
+
+
+Speculative parsing, document.write(): link-no-rel
+
+
+
+
+
diff --git a/html/syntax/speculative-parsing/generated/document-write/link-rel-alternate-stylesheet.tentative.sub.html b/html/syntax/speculative-parsing/generated/document-write/link-rel-alternate-stylesheet.tentative.sub.html
new file mode 100644
index 00000000000000..0b82352e3b6030
--- /dev/null
+++ b/html/syntax/speculative-parsing/generated/document-write/link-rel-alternate-stylesheet.tentative.sub.html
@@ -0,0 +1,25 @@
+
+
+
+Speculative parsing, document.write(): link-rel-alternate-stylesheet
+
+
+
+
+
diff --git a/html/syntax/speculative-parsing/generated/document-write/link-rel-preload-as-font-crossorigin.tentative.sub.html b/html/syntax/speculative-parsing/generated/document-write/link-rel-preload-as-font-crossorigin.tentative.sub.html
new file mode 100644
index 00000000000000..2ae82c066d16d1
--- /dev/null
+++ b/html/syntax/speculative-parsing/generated/document-write/link-rel-preload-as-font-crossorigin.tentative.sub.html
@@ -0,0 +1,25 @@
+
+
+
+Speculative parsing, document.write(): link-rel-preload-as-font-crossorigin
+
+
+
+
+
diff --git a/html/syntax/speculative-parsing/generated/document-write/link-rel-preload-as-image.tentative.sub.html b/html/syntax/speculative-parsing/generated/document-write/link-rel-preload-as-image.tentative.sub.html
new file mode 100644
index 00000000000000..098e08f5d119cf
--- /dev/null
+++ b/html/syntax/speculative-parsing/generated/document-write/link-rel-preload-as-image.tentative.sub.html
@@ -0,0 +1,25 @@
+
+
+
+Speculative parsing, document.write(): link-rel-preload-as-image
+
+
+
+
+
diff --git a/html/syntax/speculative-parsing/generated/document-write/link-rel-preload-as-script.tentative.sub.html b/html/syntax/speculative-parsing/generated/document-write/link-rel-preload-as-script.tentative.sub.html
new file mode 100644
index 00000000000000..bfa48f0e799db0
--- /dev/null
+++ b/html/syntax/speculative-parsing/generated/document-write/link-rel-preload-as-script.tentative.sub.html
@@ -0,0 +1,25 @@
+
+
+
+Speculative parsing, document.write(): link-rel-preload-as-script
+
+
+
+
+
diff --git a/html/syntax/speculative-parsing/generated/document-write/link-rel-preload-as-style.tentative.sub.html b/html/syntax/speculative-parsing/generated/document-write/link-rel-preload-as-style.tentative.sub.html
new file mode 100644
index 00000000000000..75e5a9de6b26b6
--- /dev/null
+++ b/html/syntax/speculative-parsing/generated/document-write/link-rel-preload-as-style.tentative.sub.html
@@ -0,0 +1,25 @@
+
+
+
+Speculative parsing, document.write(): link-rel-preload-as-style
+
+
+
+
+
diff --git a/html/syntax/speculative-parsing/generated/document-write/link-rel-stylesheet-crossorigin.tentative.sub.html b/html/syntax/speculative-parsing/generated/document-write/link-rel-stylesheet-crossorigin.tentative.sub.html
new file mode 100644
index 00000000000000..66ac2e4e448e6c
--- /dev/null
+++ b/html/syntax/speculative-parsing/generated/document-write/link-rel-stylesheet-crossorigin.tentative.sub.html
@@ -0,0 +1,25 @@
+
+
+
+Speculative parsing, document.write(): link-rel-stylesheet-crossorigin
+
+
+
+
+
diff --git a/html/syntax/speculative-parsing/generated/document-write/link-rel-stylesheet-disabled.tentative.sub.html b/html/syntax/speculative-parsing/generated/document-write/link-rel-stylesheet-disabled.tentative.sub.html
new file mode 100644
index 00000000000000..58dbfe6aee6ac3
--- /dev/null
+++ b/html/syntax/speculative-parsing/generated/document-write/link-rel-stylesheet-disabled.tentative.sub.html
@@ -0,0 +1,25 @@
+
+
+
+Speculative parsing, document.write(): link-rel-stylesheet-disabled
+
+
+
+
+
diff --git a/html/syntax/speculative-parsing/generated/document-write/link-rel-stylesheet-integrity.tentative.sub.html b/html/syntax/speculative-parsing/generated/document-write/link-rel-stylesheet-integrity.tentative.sub.html
new file mode 100644
index 00000000000000..35369c3f53f1a4
--- /dev/null
+++ b/html/syntax/speculative-parsing/generated/document-write/link-rel-stylesheet-integrity.tentative.sub.html
@@ -0,0 +1,25 @@
+
+
+
+Speculative parsing, document.write(): link-rel-stylesheet-integrity
+
+
+
+
+
diff --git a/html/syntax/speculative-parsing/generated/document-write/link-rel-stylesheet-nomatch-media.tentative.sub.html b/html/syntax/speculative-parsing/generated/document-write/link-rel-stylesheet-nomatch-media.tentative.sub.html
new file mode 100644
index 00000000000000..74cf92bf1b8f7b
--- /dev/null
+++ b/html/syntax/speculative-parsing/generated/document-write/link-rel-stylesheet-nomatch-media.tentative.sub.html
@@ -0,0 +1,25 @@
+
+
+
+Speculative parsing, document.write(): link-rel-stylesheet-nomatch-media
+
+
+
+
+
diff --git a/html/syntax/speculative-parsing/generated/document-write/link-rel-stylesheet-referrerpolicy-no-referrer.tentative.sub.html b/html/syntax/speculative-parsing/generated/document-write/link-rel-stylesheet-referrerpolicy-no-referrer.tentative.sub.html
new file mode 100644
index 00000000000000..f25a60f7da1501
--- /dev/null
+++ b/html/syntax/speculative-parsing/generated/document-write/link-rel-stylesheet-referrerpolicy-no-referrer.tentative.sub.html
@@ -0,0 +1,25 @@
+
+
+
+Speculative parsing, document.write(): link-rel-stylesheet-referrerpolicy-no-referrer
+
+
+
+
+
diff --git a/html/syntax/speculative-parsing/generated/document-write/link-rel-stylesheet-type-text-css.tentative.sub.html b/html/syntax/speculative-parsing/generated/document-write/link-rel-stylesheet-type-text-css.tentative.sub.html
new file mode 100644
index 00000000000000..c5dcfc4a61127d
--- /dev/null
+++ b/html/syntax/speculative-parsing/generated/document-write/link-rel-stylesheet-type-text-css.tentative.sub.html
@@ -0,0 +1,25 @@
+
+
+
+Speculative parsing, document.write(): link-rel-stylesheet-type-text-css
+
+
+
+
+
diff --git a/html/syntax/speculative-parsing/generated/document-write/link-rel-stylesheet-unsupported-type.tentative.sub.html b/html/syntax/speculative-parsing/generated/document-write/link-rel-stylesheet-unsupported-type.tentative.sub.html
new file mode 100644
index 00000000000000..ed441e7eaeb26a
--- /dev/null
+++ b/html/syntax/speculative-parsing/generated/document-write/link-rel-stylesheet-unsupported-type.tentative.sub.html
@@ -0,0 +1,25 @@
+
+
+
+Speculative parsing, document.write(): link-rel-stylesheet-unsupported-type
+
+
+
+
+
diff --git a/html/syntax/speculative-parsing/generated/document-write/link-rel-stylesheet.tentative.sub.html b/html/syntax/speculative-parsing/generated/document-write/link-rel-stylesheet.tentative.sub.html
new file mode 100644
index 00000000000000..de6df7e4573ff8
--- /dev/null
+++ b/html/syntax/speculative-parsing/generated/document-write/link-rel-stylesheet.tentative.sub.html
@@ -0,0 +1,25 @@
+
+
+
+Speculative parsing, document.write(): link-rel-stylesheet
+
+
+
+
+
diff --git a/html/syntax/speculative-parsing/generated/document-write/math-font-face-script-src.tentative.sub.html b/html/syntax/speculative-parsing/generated/document-write/math-font-face-script-src.tentative.sub.html
new file mode 100644
index 00000000000000..62b5bffaa22dd8
--- /dev/null
+++ b/html/syntax/speculative-parsing/generated/document-write/math-font-face-script-src.tentative.sub.html
@@ -0,0 +1,25 @@
+
+
+
+Speculative parsing, document.write(): math-font-face-script-src
+
+
+
+
+
diff --git a/html/syntax/speculative-parsing/generated/document-write/math-font-script-src.tentative.sub.html b/html/syntax/speculative-parsing/generated/document-write/math-font-script-src.tentative.sub.html
new file mode 100644
index 00000000000000..4fd7ea8ff67c33
--- /dev/null
+++ b/html/syntax/speculative-parsing/generated/document-write/math-font-script-src.tentative.sub.html
@@ -0,0 +1,25 @@
+
+
+
+Speculative parsing, document.write(): math-font-script-src
+
+
+
+
+
diff --git a/html/syntax/speculative-parsing/generated/document-write/math-script-src.tentative.sub.html b/html/syntax/speculative-parsing/generated/document-write/math-script-src.tentative.sub.html
new file mode 100644
index 00000000000000..00876cae14a74a
--- /dev/null
+++ b/html/syntax/speculative-parsing/generated/document-write/math-script-src.tentative.sub.html
@@ -0,0 +1,25 @@
+
+
+
+Speculative parsing, document.write(): math-script-src
+
+
+
+
+
diff --git a/html/syntax/speculative-parsing/generated/document-write/meta-charset-script-src.tentative.sub.html b/html/syntax/speculative-parsing/generated/document-write/meta-charset-script-src.tentative.sub.html
new file mode 100644
index 00000000000000..8b5072a415a5e5
--- /dev/null
+++ b/html/syntax/speculative-parsing/generated/document-write/meta-charset-script-src.tentative.sub.html
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+Speculative parsing, document.write(): meta-charset-script-src
+
+
+
+
+
diff --git a/html/syntax/speculative-parsing/generated/document-write/meta-csp-img-src-asterisk.tentative.sub.html b/html/syntax/speculative-parsing/generated/document-write/meta-csp-img-src-asterisk.tentative.sub.html
new file mode 100644
index 00000000000000..2d9f8aeb1d2b34
--- /dev/null
+++ b/html/syntax/speculative-parsing/generated/document-write/meta-csp-img-src-asterisk.tentative.sub.html
@@ -0,0 +1,25 @@
+
+
+
+Speculative parsing, document.write(): meta-csp-img-src-asterisk
+
+
+
+
+
diff --git a/html/syntax/speculative-parsing/generated/document-write/meta-csp-img-src-none.tentative.sub.html b/html/syntax/speculative-parsing/generated/document-write/meta-csp-img-src-none.tentative.sub.html
new file mode 100644
index 00000000000000..0266ae72d5829f
--- /dev/null
+++ b/html/syntax/speculative-parsing/generated/document-write/meta-csp-img-src-none.tentative.sub.html
@@ -0,0 +1,25 @@
+
+
+
+Speculative parsing, document.write(): meta-csp-img-src-none
+
+
+
+
+
diff --git a/html/syntax/speculative-parsing/generated/document-write/meta-referrer-no-referrer-img-src.tentative.sub.html b/html/syntax/speculative-parsing/generated/document-write/meta-referrer-no-referrer-img-src.tentative.sub.html
new file mode 100644
index 00000000000000..b0d0b910e25706
--- /dev/null
+++ b/html/syntax/speculative-parsing/generated/document-write/meta-referrer-no-referrer-img-src.tentative.sub.html
@@ -0,0 +1,25 @@
+
+
+
+Speculative parsing, document.write(): meta-referrer-no-referrer-img-src
+
+
+
+
+
diff --git a/html/syntax/speculative-parsing/generated/document-write/meta-viewport-link-stylesheet-media.tentative.sub.html b/html/syntax/speculative-parsing/generated/document-write/meta-viewport-link-stylesheet-media.tentative.sub.html
new file mode 100644
index 00000000000000..b7ab5ff97ad36c
--- /dev/null
+++ b/html/syntax/speculative-parsing/generated/document-write/meta-viewport-link-stylesheet-media.tentative.sub.html
@@ -0,0 +1,25 @@
+
+
+
+Speculative parsing, document.write(): meta-viewport-link-stylesheet-media
+
+
+
+
+
diff --git a/html/syntax/speculative-parsing/generated/document-write/picture-source-br-img.tentative.sub.html b/html/syntax/speculative-parsing/generated/document-write/picture-source-br-img.tentative.sub.html
new file mode 100644
index 00000000000000..914dfb83c90a3e
--- /dev/null
+++ b/html/syntax/speculative-parsing/generated/document-write/picture-source-br-img.tentative.sub.html
@@ -0,0 +1,25 @@
+
+
+
+Speculative parsing, document.write(): picture-source-br-img
+
+
+
+
+
diff --git a/html/syntax/speculative-parsing/generated/document-write/picture-source-no-img.tentative.sub.html b/html/syntax/speculative-parsing/generated/document-write/picture-source-no-img.tentative.sub.html
new file mode 100644
index 00000000000000..6ca192edacb8dc
--- /dev/null
+++ b/html/syntax/speculative-parsing/generated/document-write/picture-source-no-img.tentative.sub.html
@@ -0,0 +1,25 @@
+
+
+
+Speculative parsing, document.write(): picture-source-no-img
+
+
+
+
+
diff --git a/html/syntax/speculative-parsing/generated/document-write/picture-source-nomatch-media.tentative.sub.html b/html/syntax/speculative-parsing/generated/document-write/picture-source-nomatch-media.tentative.sub.html
new file mode 100644
index 00000000000000..d48d3104f2a108
--- /dev/null
+++ b/html/syntax/speculative-parsing/generated/document-write/picture-source-nomatch-media.tentative.sub.html
@@ -0,0 +1,25 @@
+
+
+
+Speculative parsing, document.write(): picture-source-nomatch-media
+
+
+
+
+
diff --git a/html/syntax/speculative-parsing/generated/document-write/picture-source-unsupported-type.tentative.sub.html b/html/syntax/speculative-parsing/generated/document-write/picture-source-unsupported-type.tentative.sub.html
new file mode 100644
index 00000000000000..e387d51bab2a16
--- /dev/null
+++ b/html/syntax/speculative-parsing/generated/document-write/picture-source-unsupported-type.tentative.sub.html
@@ -0,0 +1,25 @@
+
+
+
+Speculative parsing, document.write(): picture-source-unsupported-type
+
+
+
+
+
diff --git a/html/syntax/speculative-parsing/generated/document-write/script-src-async.tentative.sub.html b/html/syntax/speculative-parsing/generated/document-write/script-src-async.tentative.sub.html
new file mode 100644
index 00000000000000..f4b42c484ec024
--- /dev/null
+++ b/html/syntax/speculative-parsing/generated/document-write/script-src-async.tentative.sub.html
@@ -0,0 +1,25 @@
+
+
+
+Speculative parsing, document.write(): script-src-async
+
+
+
+
+
diff --git a/html/syntax/speculative-parsing/generated/document-write/script-src-crossorigin.tentative.sub.html b/html/syntax/speculative-parsing/generated/document-write/script-src-crossorigin.tentative.sub.html
new file mode 100644
index 00000000000000..b95f5502ef5159
--- /dev/null
+++ b/html/syntax/speculative-parsing/generated/document-write/script-src-crossorigin.tentative.sub.html
@@ -0,0 +1,25 @@
+
+
+
+Speculative parsing, document.write(): script-src-crossorigin
+
+
+
+
+
diff --git a/html/syntax/speculative-parsing/generated/document-write/script-src-defer.tentative.sub.html b/html/syntax/speculative-parsing/generated/document-write/script-src-defer.tentative.sub.html
new file mode 100644
index 00000000000000..5cf8e15c67aa43
--- /dev/null
+++ b/html/syntax/speculative-parsing/generated/document-write/script-src-defer.tentative.sub.html
@@ -0,0 +1,25 @@
+
+
+
+Speculative parsing, document.write(): script-src-defer
+
+
+
+
+
diff --git a/html/syntax/speculative-parsing/generated/document-write/script-src-integrity.tentative.sub.html b/html/syntax/speculative-parsing/generated/document-write/script-src-integrity.tentative.sub.html
new file mode 100644
index 00000000000000..6f66636d767338
--- /dev/null
+++ b/html/syntax/speculative-parsing/generated/document-write/script-src-integrity.tentative.sub.html
@@ -0,0 +1,25 @@
+
+
+
+Speculative parsing, document.write(): script-src-integrity
+
+
+
+
+
diff --git a/html/syntax/speculative-parsing/generated/document-write/script-src-module.tentative.sub.html b/html/syntax/speculative-parsing/generated/document-write/script-src-module.tentative.sub.html
new file mode 100644
index 00000000000000..229b2b88c4ac6f
--- /dev/null
+++ b/html/syntax/speculative-parsing/generated/document-write/script-src-module.tentative.sub.html
@@ -0,0 +1,25 @@
+
+
+
+Speculative parsing, document.write(): script-src-module
+
+
+
+
+
diff --git a/html/syntax/speculative-parsing/generated/document-write/script-src-nomodule.tentative.sub.html b/html/syntax/speculative-parsing/generated/document-write/script-src-nomodule.tentative.sub.html
new file mode 100644
index 00000000000000..3f61dba8d41926
--- /dev/null
+++ b/html/syntax/speculative-parsing/generated/document-write/script-src-nomodule.tentative.sub.html
@@ -0,0 +1,25 @@
+
+
+
+Speculative parsing, document.write(): script-src-nomodule
+
+
+
+
+
diff --git a/html/syntax/speculative-parsing/generated/document-write/script-src-referrerpolicy-no-referrer.tentative.sub.html b/html/syntax/speculative-parsing/generated/document-write/script-src-referrerpolicy-no-referrer.tentative.sub.html
new file mode 100644
index 00000000000000..ea67a33a22744a
--- /dev/null
+++ b/html/syntax/speculative-parsing/generated/document-write/script-src-referrerpolicy-no-referrer.tentative.sub.html
@@ -0,0 +1,25 @@
+
+
+
+Speculative parsing, document.write(): script-src-referrerpolicy-no-referrer
+
+
+
+
+
diff --git a/html/syntax/speculative-parsing/generated/document-write/script-src-type-application-ecmascript.tentative.sub.html b/html/syntax/speculative-parsing/generated/document-write/script-src-type-application-ecmascript.tentative.sub.html
new file mode 100644
index 00000000000000..000843abaa62ae
--- /dev/null
+++ b/html/syntax/speculative-parsing/generated/document-write/script-src-type-application-ecmascript.tentative.sub.html
@@ -0,0 +1,25 @@
+
+
+
+Speculative parsing, document.write(): script-src-type-application-ecmascript
+
+
+
+
+
diff --git a/html/syntax/speculative-parsing/generated/document-write/script-src-unsupported-type.tentative.sub.html b/html/syntax/speculative-parsing/generated/document-write/script-src-unsupported-type.tentative.sub.html
new file mode 100644
index 00000000000000..1eaa56494dbe86
--- /dev/null
+++ b/html/syntax/speculative-parsing/generated/document-write/script-src-unsupported-type.tentative.sub.html
@@ -0,0 +1,25 @@
+
+
+
+Speculative parsing, document.write(): script-src-unsupported-type
+
+
+
+
+
diff --git a/html/syntax/speculative-parsing/generated/document-write/script-src.tentative.sub.html b/html/syntax/speculative-parsing/generated/document-write/script-src.tentative.sub.html
new file mode 100644
index 00000000000000..4339e82360de75
--- /dev/null
+++ b/html/syntax/speculative-parsing/generated/document-write/script-src.tentative.sub.html
@@ -0,0 +1,25 @@
+
+
+
+Speculative parsing, document.write(): script-src
+
+
+
+
+
diff --git a/html/syntax/speculative-parsing/generated/document-write/svg-image-href.tentative.sub.html b/html/syntax/speculative-parsing/generated/document-write/svg-image-href.tentative.sub.html
new file mode 100644
index 00000000000000..1f7974c0dd0327
--- /dev/null
+++ b/html/syntax/speculative-parsing/generated/document-write/svg-image-href.tentative.sub.html
@@ -0,0 +1,25 @@
+
+
+
+Speculative parsing, document.write(): svg-image-href
+
+
+
+
+
diff --git a/html/syntax/speculative-parsing/generated/document-write/svg-image-src.tentative.sub.html b/html/syntax/speculative-parsing/generated/document-write/svg-image-src.tentative.sub.html
new file mode 100644
index 00000000000000..50b6320b68dc0b
--- /dev/null
+++ b/html/syntax/speculative-parsing/generated/document-write/svg-image-src.tentative.sub.html
@@ -0,0 +1,25 @@
+
+
+
+Speculative parsing, document.write(): svg-image-src
+
+
+
+
+
diff --git a/html/syntax/speculative-parsing/generated/document-write/svg-image-xlinkhref.tentative.sub.html b/html/syntax/speculative-parsing/generated/document-write/svg-image-xlinkhref.tentative.sub.html
new file mode 100644
index 00000000000000..7d8a0f03570a14
--- /dev/null
+++ b/html/syntax/speculative-parsing/generated/document-write/svg-image-xlinkhref.tentative.sub.html
@@ -0,0 +1,25 @@
+
+
+
+Speculative parsing, document.write(): svg-image-xlinkhref
+
+
+
+
+
diff --git a/html/syntax/speculative-parsing/generated/document-write/svg-script-href.tentative.sub.html b/html/syntax/speculative-parsing/generated/document-write/svg-script-href.tentative.sub.html
new file mode 100644
index 00000000000000..13b6cda989e4d5
--- /dev/null
+++ b/html/syntax/speculative-parsing/generated/document-write/svg-script-href.tentative.sub.html
@@ -0,0 +1,25 @@
+
+
+
+Speculative parsing, document.write(): svg-script-href
+
+
+
+
+
diff --git a/html/syntax/speculative-parsing/generated/document-write/svg-script-src.tentative.sub.html b/html/syntax/speculative-parsing/generated/document-write/svg-script-src.tentative.sub.html
new file mode 100644
index 00000000000000..ea37cc74a435f6
--- /dev/null
+++ b/html/syntax/speculative-parsing/generated/document-write/svg-script-src.tentative.sub.html
@@ -0,0 +1,25 @@
+
+
+
+Speculative parsing, document.write(): svg-script-src
+
+
+
+
+
diff --git a/html/syntax/speculative-parsing/generated/document-write/svg-script-xlinkhref.tentative.sub.html b/html/syntax/speculative-parsing/generated/document-write/svg-script-xlinkhref.tentative.sub.html
new file mode 100644
index 00000000000000..df0f28ec47befa
--- /dev/null
+++ b/html/syntax/speculative-parsing/generated/document-write/svg-script-xlinkhref.tentative.sub.html
@@ -0,0 +1,25 @@
+
+
+
+Speculative parsing, document.write(): svg-script-xlinkhref
+
+
+
+
+
diff --git a/html/syntax/speculative-parsing/generated/document-write/template-script-src.tentative.sub.html b/html/syntax/speculative-parsing/generated/document-write/template-script-src.tentative.sub.html
new file mode 100644
index 00000000000000..b9e4177d8df423
--- /dev/null
+++ b/html/syntax/speculative-parsing/generated/document-write/template-script-src.tentative.sub.html
@@ -0,0 +1,25 @@
+
+
+
+Speculative parsing, document.write(): template-script-src
+
+
+
+
+
diff --git a/html/syntax/speculative-parsing/generated/document-write/video-poster.tentative.sub.html b/html/syntax/speculative-parsing/generated/document-write/video-poster.tentative.sub.html
new file mode 100644
index 00000000000000..e14bf19fc98340
--- /dev/null
+++ b/html/syntax/speculative-parsing/generated/document-write/video-poster.tentative.sub.html
@@ -0,0 +1,25 @@
+
+
+
+Speculative parsing, document.write(): video-poster
+
+
+
+
+
diff --git a/html/syntax/speculative-parsing/generated/document-write/xmp-script-src.tentative.sub.html b/html/syntax/speculative-parsing/generated/document-write/xmp-script-src.tentative.sub.html
new file mode 100644
index 00000000000000..89ecaf1981c51a
--- /dev/null
+++ b/html/syntax/speculative-parsing/generated/document-write/xmp-script-src.tentative.sub.html
@@ -0,0 +1,25 @@
+
+
+
+Speculative parsing, document.write(): xmp-script-src
+
+
+
+
+
diff --git a/html/syntax/speculative-parsing/generated/page-load/base-href-script-src.tentative.html b/html/syntax/speculative-parsing/generated/page-load/base-href-script-src.tentative.html
new file mode 100644
index 00000000000000..d37d68333d43e8
--- /dev/null
+++ b/html/syntax/speculative-parsing/generated/page-load/base-href-script-src.tentative.html
@@ -0,0 +1,21 @@
+
+
+
+Speculative parsing, page load: base-href-script-src
+
+
+
+
+
+
diff --git a/html/syntax/speculative-parsing/generated/page-load/image-src.tentative.html b/html/syntax/speculative-parsing/generated/page-load/image-src.tentative.html
new file mode 100644
index 00000000000000..40929371caff98
--- /dev/null
+++ b/html/syntax/speculative-parsing/generated/page-load/image-src.tentative.html
@@ -0,0 +1,21 @@
+
+
+
+Speculative parsing, page load: image-src
+
+
+
+
+
+
diff --git a/html/syntax/speculative-parsing/generated/page-load/img-data-src.tentative.html b/html/syntax/speculative-parsing/generated/page-load/img-data-src.tentative.html
new file mode 100644
index 00000000000000..54bed4582a157f
--- /dev/null
+++ b/html/syntax/speculative-parsing/generated/page-load/img-data-src.tentative.html
@@ -0,0 +1,21 @@
+
+
+
+Speculative parsing, page load: img-data-src
+
+
+
+
+
+
diff --git a/html/syntax/speculative-parsing/generated/page-load/img-src-crossorigin.tentative.html b/html/syntax/speculative-parsing/generated/page-load/img-src-crossorigin.tentative.html
new file mode 100644
index 00000000000000..3b4725214075ac
--- /dev/null
+++ b/html/syntax/speculative-parsing/generated/page-load/img-src-crossorigin.tentative.html
@@ -0,0 +1,21 @@
+
+
+
+Speculative parsing, page load: img-src-crossorigin
+
+
+
+
+
+
diff --git a/html/syntax/speculative-parsing/generated/page-load/img-src-loading-lazy.tentative.html b/html/syntax/speculative-parsing/generated/page-load/img-src-loading-lazy.tentative.html
new file mode 100644
index 00000000000000..7fd4a1207a4372
--- /dev/null
+++ b/html/syntax/speculative-parsing/generated/page-load/img-src-loading-lazy.tentative.html
@@ -0,0 +1,21 @@
+
+
+
+Speculative parsing, page load: img-src-loading-lazy
+
+
+
+
+
+
diff --git a/html/syntax/speculative-parsing/generated/page-load/img-src-referrerpolicy-no-referrer.tentative.html b/html/syntax/speculative-parsing/generated/page-load/img-src-referrerpolicy-no-referrer.tentative.html
new file mode 100644
index 00000000000000..e41d2c3ef1f830
--- /dev/null
+++ b/html/syntax/speculative-parsing/generated/page-load/img-src-referrerpolicy-no-referrer.tentative.html
@@ -0,0 +1,21 @@
+
+
+
+Speculative parsing, page load: img-src-referrerpolicy-no-referrer
+
+
+
+
+
+
diff --git a/html/syntax/speculative-parsing/generated/page-load/img-src.tentative.html b/html/syntax/speculative-parsing/generated/page-load/img-src.tentative.html
new file mode 100644
index 00000000000000..fda270a9f2c9a9
--- /dev/null
+++ b/html/syntax/speculative-parsing/generated/page-load/img-src.tentative.html
@@ -0,0 +1,21 @@
+
+
+
+Speculative parsing, page load: img-src
+
+
+
+
+
+
diff --git a/html/syntax/speculative-parsing/generated/page-load/img-srcset.tentative.html b/html/syntax/speculative-parsing/generated/page-load/img-srcset.tentative.html
new file mode 100644
index 00000000000000..5878e146005de6
--- /dev/null
+++ b/html/syntax/speculative-parsing/generated/page-load/img-srcset.tentative.html
@@ -0,0 +1,21 @@
+
+
+
+Speculative parsing, page load: img-srcset
+
+
+
+
+
+
diff --git a/html/syntax/speculative-parsing/generated/page-load/link-no-rel.tentative.html b/html/syntax/speculative-parsing/generated/page-load/link-no-rel.tentative.html
new file mode 100644
index 00000000000000..7b9255175bae70
--- /dev/null
+++ b/html/syntax/speculative-parsing/generated/page-load/link-no-rel.tentative.html
@@ -0,0 +1,21 @@
+
+
+
+Speculative parsing, page load: link-no-rel
+
+
+
+
+
+
diff --git a/html/syntax/speculative-parsing/generated/page-load/link-rel-alternate-stylesheet.tentative.html b/html/syntax/speculative-parsing/generated/page-load/link-rel-alternate-stylesheet.tentative.html
new file mode 100644
index 00000000000000..7a8eb2ac53d804
--- /dev/null
+++ b/html/syntax/speculative-parsing/generated/page-load/link-rel-alternate-stylesheet.tentative.html
@@ -0,0 +1,21 @@
+
+
+
+Speculative parsing, page load: link-rel-alternate-stylesheet
+
+
+
+
+
+
diff --git a/html/syntax/speculative-parsing/generated/page-load/link-rel-preload-as-font-crossorigin.tentative.html b/html/syntax/speculative-parsing/generated/page-load/link-rel-preload-as-font-crossorigin.tentative.html
new file mode 100644
index 00000000000000..f679c97c596a7d
--- /dev/null
+++ b/html/syntax/speculative-parsing/generated/page-load/link-rel-preload-as-font-crossorigin.tentative.html
@@ -0,0 +1,21 @@
+
+
+
+Speculative parsing, page load: link-rel-preload-as-font-crossorigin
+
+
+
+
+
+
diff --git a/html/syntax/speculative-parsing/generated/page-load/link-rel-preload-as-image.tentative.html b/html/syntax/speculative-parsing/generated/page-load/link-rel-preload-as-image.tentative.html
new file mode 100644
index 00000000000000..adc59b7e09ecbd
--- /dev/null
+++ b/html/syntax/speculative-parsing/generated/page-load/link-rel-preload-as-image.tentative.html
@@ -0,0 +1,21 @@
+
+
+
+Speculative parsing, page load: link-rel-preload-as-image
+
+
+
+
+
+
diff --git a/html/syntax/speculative-parsing/generated/page-load/link-rel-preload-as-script.tentative.html b/html/syntax/speculative-parsing/generated/page-load/link-rel-preload-as-script.tentative.html
new file mode 100644
index 00000000000000..705b56b9a9bac2
--- /dev/null
+++ b/html/syntax/speculative-parsing/generated/page-load/link-rel-preload-as-script.tentative.html
@@ -0,0 +1,21 @@
+
+
+
+Speculative parsing, page load: link-rel-preload-as-script
+
+
+
+
+
+
diff --git a/html/syntax/speculative-parsing/generated/page-load/link-rel-preload-as-style.tentative.html b/html/syntax/speculative-parsing/generated/page-load/link-rel-preload-as-style.tentative.html
new file mode 100644
index 00000000000000..ea0cd3945da325
--- /dev/null
+++ b/html/syntax/speculative-parsing/generated/page-load/link-rel-preload-as-style.tentative.html
@@ -0,0 +1,21 @@
+
+
+
+Speculative parsing, page load: link-rel-preload-as-style
+
+
+
+
+
+
diff --git a/html/syntax/speculative-parsing/generated/page-load/link-rel-stylesheet-crossorigin.tentative.html b/html/syntax/speculative-parsing/generated/page-load/link-rel-stylesheet-crossorigin.tentative.html
new file mode 100644
index 00000000000000..c22759372786ff
--- /dev/null
+++ b/html/syntax/speculative-parsing/generated/page-load/link-rel-stylesheet-crossorigin.tentative.html
@@ -0,0 +1,21 @@
+
+
+
+Speculative parsing, page load: link-rel-stylesheet-crossorigin
+
+
+
+
+
+
diff --git a/html/syntax/speculative-parsing/generated/page-load/link-rel-stylesheet-disabled.tentative.html b/html/syntax/speculative-parsing/generated/page-load/link-rel-stylesheet-disabled.tentative.html
new file mode 100644
index 00000000000000..5f232aa07a4c5c
--- /dev/null
+++ b/html/syntax/speculative-parsing/generated/page-load/link-rel-stylesheet-disabled.tentative.html
@@ -0,0 +1,21 @@
+
+
+
+Speculative parsing, page load: link-rel-stylesheet-disabled
+
+
+
+
+
+
diff --git a/html/syntax/speculative-parsing/generated/page-load/link-rel-stylesheet-integrity.tentative.html b/html/syntax/speculative-parsing/generated/page-load/link-rel-stylesheet-integrity.tentative.html
new file mode 100644
index 00000000000000..266fb5b7daf436
--- /dev/null
+++ b/html/syntax/speculative-parsing/generated/page-load/link-rel-stylesheet-integrity.tentative.html
@@ -0,0 +1,21 @@
+
+
+
+Speculative parsing, page load: link-rel-stylesheet-integrity
+
+
+
+
+
+
diff --git a/html/syntax/speculative-parsing/generated/page-load/link-rel-stylesheet-nomatch-media.tentative.html b/html/syntax/speculative-parsing/generated/page-load/link-rel-stylesheet-nomatch-media.tentative.html
new file mode 100644
index 00000000000000..49feea0bb05ed6
--- /dev/null
+++ b/html/syntax/speculative-parsing/generated/page-load/link-rel-stylesheet-nomatch-media.tentative.html
@@ -0,0 +1,21 @@
+
+
+
+Speculative parsing, page load: link-rel-stylesheet-nomatch-media
+
+
+
+
+
+
diff --git a/html/syntax/speculative-parsing/generated/page-load/link-rel-stylesheet-referrerpolicy-no-referrer.tentative.html b/html/syntax/speculative-parsing/generated/page-load/link-rel-stylesheet-referrerpolicy-no-referrer.tentative.html
new file mode 100644
index 00000000000000..635f23444f1f0c
--- /dev/null
+++ b/html/syntax/speculative-parsing/generated/page-load/link-rel-stylesheet-referrerpolicy-no-referrer.tentative.html
@@ -0,0 +1,21 @@
+
+
+
+Speculative parsing, page load: link-rel-stylesheet-referrerpolicy-no-referrer
+
+
+
+
+
+
diff --git a/html/syntax/speculative-parsing/generated/page-load/link-rel-stylesheet-type-text-css.tentative.html b/html/syntax/speculative-parsing/generated/page-load/link-rel-stylesheet-type-text-css.tentative.html
new file mode 100644
index 00000000000000..a2af61a95d1a45
--- /dev/null
+++ b/html/syntax/speculative-parsing/generated/page-load/link-rel-stylesheet-type-text-css.tentative.html
@@ -0,0 +1,21 @@
+
+
+
+Speculative parsing, page load: link-rel-stylesheet-type-text-css
+
+
+
+
+
+
diff --git a/html/syntax/speculative-parsing/generated/page-load/link-rel-stylesheet-unsupported-type.tentative.html b/html/syntax/speculative-parsing/generated/page-load/link-rel-stylesheet-unsupported-type.tentative.html
new file mode 100644
index 00000000000000..17fb1722f5be2f
--- /dev/null
+++ b/html/syntax/speculative-parsing/generated/page-load/link-rel-stylesheet-unsupported-type.tentative.html
@@ -0,0 +1,21 @@
+
+
+
+Speculative parsing, page load: link-rel-stylesheet-unsupported-type
+
+
+
+
+
+
diff --git a/html/syntax/speculative-parsing/generated/page-load/link-rel-stylesheet.tentative.html b/html/syntax/speculative-parsing/generated/page-load/link-rel-stylesheet.tentative.html
new file mode 100644
index 00000000000000..07e4152c83507d
--- /dev/null
+++ b/html/syntax/speculative-parsing/generated/page-load/link-rel-stylesheet.tentative.html
@@ -0,0 +1,21 @@
+
+
+
+Speculative parsing, page load: link-rel-stylesheet
+
+
+
+
+
+
diff --git a/html/syntax/speculative-parsing/generated/page-load/math-font-face-script-src.tentative.html b/html/syntax/speculative-parsing/generated/page-load/math-font-face-script-src.tentative.html
new file mode 100644
index 00000000000000..47516bab941337
--- /dev/null
+++ b/html/syntax/speculative-parsing/generated/page-load/math-font-face-script-src.tentative.html
@@ -0,0 +1,21 @@
+
+
+
+Speculative parsing, page load: math-font-face-script-src
+
+
+
+
+
+
diff --git a/html/syntax/speculative-parsing/generated/page-load/math-font-script-src.tentative.html b/html/syntax/speculative-parsing/generated/page-load/math-font-script-src.tentative.html
new file mode 100644
index 00000000000000..9a99c63df2ffed
--- /dev/null
+++ b/html/syntax/speculative-parsing/generated/page-load/math-font-script-src.tentative.html
@@ -0,0 +1,21 @@
+
+
+
+Speculative parsing, page load: math-font-script-src
+
+
+
+
+
+
diff --git a/html/syntax/speculative-parsing/generated/page-load/math-script-src.tentative.html b/html/syntax/speculative-parsing/generated/page-load/math-script-src.tentative.html
new file mode 100644
index 00000000000000..54e6d40f186974
--- /dev/null
+++ b/html/syntax/speculative-parsing/generated/page-load/math-script-src.tentative.html
@@ -0,0 +1,21 @@
+
+
+
+Speculative parsing, page load: math-script-src
+
+
+
+
+
+
diff --git a/html/syntax/speculative-parsing/generated/page-load/meta-charset-script-src.tentative.html b/html/syntax/speculative-parsing/generated/page-load/meta-charset-script-src.tentative.html
new file mode 100644
index 00000000000000..e8dfaaf614d49a
--- /dev/null
+++ b/html/syntax/speculative-parsing/generated/page-load/meta-charset-script-src.tentative.html
@@ -0,0 +1,31 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+Speculative parsing, page load: meta-charset-script-src
+
+
+
+
+
+
diff --git a/html/syntax/speculative-parsing/generated/page-load/meta-csp-img-src-asterisk.tentative.html b/html/syntax/speculative-parsing/generated/page-load/meta-csp-img-src-asterisk.tentative.html
new file mode 100644
index 00000000000000..35d7374f8ea7f7
--- /dev/null
+++ b/html/syntax/speculative-parsing/generated/page-load/meta-csp-img-src-asterisk.tentative.html
@@ -0,0 +1,21 @@
+
+
+
+Speculative parsing, page load: meta-csp-img-src-asterisk
+
+
+
+
+
+
diff --git a/html/syntax/speculative-parsing/generated/page-load/meta-csp-img-src-none.tentative.html b/html/syntax/speculative-parsing/generated/page-load/meta-csp-img-src-none.tentative.html
new file mode 100644
index 00000000000000..21984fd9e506d1
--- /dev/null
+++ b/html/syntax/speculative-parsing/generated/page-load/meta-csp-img-src-none.tentative.html
@@ -0,0 +1,21 @@
+
+
+
+Speculative parsing, page load: meta-csp-img-src-none
+
+
+
+
+
+
diff --git a/html/syntax/speculative-parsing/generated/page-load/meta-referrer-no-referrer-img-src.tentative.html b/html/syntax/speculative-parsing/generated/page-load/meta-referrer-no-referrer-img-src.tentative.html
new file mode 100644
index 00000000000000..7d03f49e6e6536
--- /dev/null
+++ b/html/syntax/speculative-parsing/generated/page-load/meta-referrer-no-referrer-img-src.tentative.html
@@ -0,0 +1,21 @@
+
+
+
+Speculative parsing, page load: meta-referrer-no-referrer-img-src
+
+
+
+
+
+
diff --git a/html/syntax/speculative-parsing/generated/page-load/meta-viewport-link-stylesheet-media.tentative.html b/html/syntax/speculative-parsing/generated/page-load/meta-viewport-link-stylesheet-media.tentative.html
new file mode 100644
index 00000000000000..0ba60c7c0449d4
--- /dev/null
+++ b/html/syntax/speculative-parsing/generated/page-load/meta-viewport-link-stylesheet-media.tentative.html
@@ -0,0 +1,21 @@
+
+
+
+Speculative parsing, page load: meta-viewport-link-stylesheet-media
+
+
+
+
+
+
diff --git a/html/syntax/speculative-parsing/generated/page-load/picture-source-br-img.tentative.html b/html/syntax/speculative-parsing/generated/page-load/picture-source-br-img.tentative.html
new file mode 100644
index 00000000000000..38acd4707e8327
--- /dev/null
+++ b/html/syntax/speculative-parsing/generated/page-load/picture-source-br-img.tentative.html
@@ -0,0 +1,21 @@
+
+
+
+Speculative parsing, page load: picture-source-br-img
+
+
+
+
+
+
diff --git a/html/syntax/speculative-parsing/generated/page-load/picture-source-no-img.tentative.html b/html/syntax/speculative-parsing/generated/page-load/picture-source-no-img.tentative.html
new file mode 100644
index 00000000000000..a7196c77409e72
--- /dev/null
+++ b/html/syntax/speculative-parsing/generated/page-load/picture-source-no-img.tentative.html
@@ -0,0 +1,21 @@
+
+
+
+Speculative parsing, page load: picture-source-no-img
+
+
+
+
+
+
diff --git a/html/syntax/speculative-parsing/generated/page-load/picture-source-nomatch-media.tentative.html b/html/syntax/speculative-parsing/generated/page-load/picture-source-nomatch-media.tentative.html
new file mode 100644
index 00000000000000..d1d5e2263c78da
--- /dev/null
+++ b/html/syntax/speculative-parsing/generated/page-load/picture-source-nomatch-media.tentative.html
@@ -0,0 +1,21 @@
+
+
+
+Speculative parsing, page load: picture-source-nomatch-media
+
+
+
+
+
+
diff --git a/html/syntax/speculative-parsing/generated/page-load/picture-source-unsupported-type.tentative.html b/html/syntax/speculative-parsing/generated/page-load/picture-source-unsupported-type.tentative.html
new file mode 100644
index 00000000000000..981805569de928
--- /dev/null
+++ b/html/syntax/speculative-parsing/generated/page-load/picture-source-unsupported-type.tentative.html
@@ -0,0 +1,21 @@
+
+
+
+Speculative parsing, page load: picture-source-unsupported-type
+
+
+
+
+
+
diff --git a/html/syntax/speculative-parsing/generated/page-load/resources/base-href-script-src-framed.sub.html b/html/syntax/speculative-parsing/generated/page-load/resources/base-href-script-src-framed.sub.html
new file mode 100644
index 00000000000000..c0913c261e01e1
--- /dev/null
+++ b/html/syntax/speculative-parsing/generated/page-load/resources/base-href-script-src-framed.sub.html
@@ -0,0 +1,12 @@
+
+
+
+Speculative parsing, page load (helper file): base-href-script-src
+
+
+
+
diff --git a/html/syntax/speculative-parsing/generated/page-load/resources/image-src-framed.sub.html b/html/syntax/speculative-parsing/generated/page-load/resources/image-src-framed.sub.html
new file mode 100644
index 00000000000000..4a335c7b81a4cc
--- /dev/null
+++ b/html/syntax/speculative-parsing/generated/page-load/resources/image-src-framed.sub.html
@@ -0,0 +1,12 @@
+
+
+
+Speculative parsing, page load (helper file): image-src
+
+
+
+
diff --git a/html/syntax/speculative-parsing/generated/page-load/resources/img-data-src-framed.sub.html b/html/syntax/speculative-parsing/generated/page-load/resources/img-data-src-framed.sub.html
new file mode 100644
index 00000000000000..20df9ba52922fa
--- /dev/null
+++ b/html/syntax/speculative-parsing/generated/page-load/resources/img-data-src-framed.sub.html
@@ -0,0 +1,12 @@
+
+
+
+Speculative parsing, page load (helper file): img-data-src
+
+
+
+
diff --git a/html/syntax/speculative-parsing/generated/page-load/resources/img-src-crossorigin-framed.sub.html b/html/syntax/speculative-parsing/generated/page-load/resources/img-src-crossorigin-framed.sub.html
new file mode 100644
index 00000000000000..9302abd3d56905
--- /dev/null
+++ b/html/syntax/speculative-parsing/generated/page-load/resources/img-src-crossorigin-framed.sub.html
@@ -0,0 +1,12 @@
+
+
+
+Speculative parsing, page load (helper file): img-src-crossorigin
+
+
+
+
diff --git a/html/syntax/speculative-parsing/generated/page-load/resources/img-src-framed.sub.html b/html/syntax/speculative-parsing/generated/page-load/resources/img-src-framed.sub.html
new file mode 100644
index 00000000000000..ba2607e46d212d
--- /dev/null
+++ b/html/syntax/speculative-parsing/generated/page-load/resources/img-src-framed.sub.html
@@ -0,0 +1,12 @@
+
+
+
+Speculative parsing, page load (helper file): img-src
+
+
+
+
diff --git a/html/syntax/speculative-parsing/generated/page-load/resources/img-src-loading-lazy-framed.sub.html b/html/syntax/speculative-parsing/generated/page-load/resources/img-src-loading-lazy-framed.sub.html
new file mode 100644
index 00000000000000..9cc49cf32473b6
--- /dev/null
+++ b/html/syntax/speculative-parsing/generated/page-load/resources/img-src-loading-lazy-framed.sub.html
@@ -0,0 +1,12 @@
+
+
+
+Speculative parsing, page load (helper file): img-src-loading-lazy
+
+
+
+
diff --git a/html/syntax/speculative-parsing/generated/page-load/resources/img-src-referrerpolicy-no-referrer-framed.sub.html b/html/syntax/speculative-parsing/generated/page-load/resources/img-src-referrerpolicy-no-referrer-framed.sub.html
new file mode 100644
index 00000000000000..7f466d11ba96a2
--- /dev/null
+++ b/html/syntax/speculative-parsing/generated/page-load/resources/img-src-referrerpolicy-no-referrer-framed.sub.html
@@ -0,0 +1,12 @@
+
+
+
+Speculative parsing, page load (helper file): img-src-referrerpolicy-no-referrer
+
+
+
+
diff --git a/html/syntax/speculative-parsing/generated/page-load/resources/img-srcset-framed.sub.html b/html/syntax/speculative-parsing/generated/page-load/resources/img-srcset-framed.sub.html
new file mode 100644
index 00000000000000..3c791bb8570d93
--- /dev/null
+++ b/html/syntax/speculative-parsing/generated/page-load/resources/img-srcset-framed.sub.html
@@ -0,0 +1,12 @@
+
+
+
+Speculative parsing, page load (helper file): img-srcset
+
+
+
+
diff --git a/html/syntax/speculative-parsing/generated/page-load/resources/link-no-rel-framed.sub.html b/html/syntax/speculative-parsing/generated/page-load/resources/link-no-rel-framed.sub.html
new file mode 100644
index 00000000000000..12e79cda04e356
--- /dev/null
+++ b/html/syntax/speculative-parsing/generated/page-load/resources/link-no-rel-framed.sub.html
@@ -0,0 +1,12 @@
+
+
+
+Speculative parsing, page load (helper file): link-no-rel
+
+
+
+
diff --git a/html/syntax/speculative-parsing/generated/page-load/resources/link-rel-alternate-stylesheet-framed.sub.html b/html/syntax/speculative-parsing/generated/page-load/resources/link-rel-alternate-stylesheet-framed.sub.html
new file mode 100644
index 00000000000000..2d4dc3db12f2e8
--- /dev/null
+++ b/html/syntax/speculative-parsing/generated/page-load/resources/link-rel-alternate-stylesheet-framed.sub.html
@@ -0,0 +1,12 @@
+
+
+
+Speculative parsing, page load (helper file): link-rel-alternate-stylesheet
+
+
+
+
diff --git a/html/syntax/speculative-parsing/generated/page-load/resources/link-rel-preload-as-font-crossorigin-framed.sub.html b/html/syntax/speculative-parsing/generated/page-load/resources/link-rel-preload-as-font-crossorigin-framed.sub.html
new file mode 100644
index 00000000000000..e1ac7d53959dde
--- /dev/null
+++ b/html/syntax/speculative-parsing/generated/page-load/resources/link-rel-preload-as-font-crossorigin-framed.sub.html
@@ -0,0 +1,12 @@
+
+
+
+Speculative parsing, page load (helper file): link-rel-preload-as-font-crossorigin
+
+
+
+
diff --git a/html/syntax/speculative-parsing/generated/page-load/resources/link-rel-preload-as-image-framed.sub.html b/html/syntax/speculative-parsing/generated/page-load/resources/link-rel-preload-as-image-framed.sub.html
new file mode 100644
index 00000000000000..6cc48035d713a9
--- /dev/null
+++ b/html/syntax/speculative-parsing/generated/page-load/resources/link-rel-preload-as-image-framed.sub.html
@@ -0,0 +1,12 @@
+
+
+
+Speculative parsing, page load (helper file): link-rel-preload-as-image
+
+
+
+
diff --git a/html/syntax/speculative-parsing/generated/page-load/resources/link-rel-preload-as-script-framed.sub.html b/html/syntax/speculative-parsing/generated/page-load/resources/link-rel-preload-as-script-framed.sub.html
new file mode 100644
index 00000000000000..10d1092ab194bc
--- /dev/null
+++ b/html/syntax/speculative-parsing/generated/page-load/resources/link-rel-preload-as-script-framed.sub.html
@@ -0,0 +1,12 @@
+
+
+
+Speculative parsing, page load (helper file): link-rel-preload-as-script
+
+
+
+
diff --git a/html/syntax/speculative-parsing/generated/page-load/resources/link-rel-preload-as-style-framed.sub.html b/html/syntax/speculative-parsing/generated/page-load/resources/link-rel-preload-as-style-framed.sub.html
new file mode 100644
index 00000000000000..e77d4da77bfbf6
--- /dev/null
+++ b/html/syntax/speculative-parsing/generated/page-load/resources/link-rel-preload-as-style-framed.sub.html
@@ -0,0 +1,12 @@
+
+
+
+Speculative parsing, page load (helper file): link-rel-preload-as-style
+
+
+
+
diff --git a/html/syntax/speculative-parsing/generated/page-load/resources/link-rel-stylesheet-crossorigin-framed.sub.html b/html/syntax/speculative-parsing/generated/page-load/resources/link-rel-stylesheet-crossorigin-framed.sub.html
new file mode 100644
index 00000000000000..4dc7917f4b937e
--- /dev/null
+++ b/html/syntax/speculative-parsing/generated/page-load/resources/link-rel-stylesheet-crossorigin-framed.sub.html
@@ -0,0 +1,12 @@
+
+
+
+Speculative parsing, page load (helper file): link-rel-stylesheet-crossorigin
+
+
+
+
diff --git a/html/syntax/speculative-parsing/generated/page-load/resources/link-rel-stylesheet-disabled-framed.sub.html b/html/syntax/speculative-parsing/generated/page-load/resources/link-rel-stylesheet-disabled-framed.sub.html
new file mode 100644
index 00000000000000..ec535addfd330c
--- /dev/null
+++ b/html/syntax/speculative-parsing/generated/page-load/resources/link-rel-stylesheet-disabled-framed.sub.html
@@ -0,0 +1,12 @@
+
+
+
+Speculative parsing, page load (helper file): link-rel-stylesheet-disabled
+
+
+
+
diff --git a/html/syntax/speculative-parsing/generated/page-load/resources/link-rel-stylesheet-framed.sub.html b/html/syntax/speculative-parsing/generated/page-load/resources/link-rel-stylesheet-framed.sub.html
new file mode 100644
index 00000000000000..7b3bf61019dbd4
--- /dev/null
+++ b/html/syntax/speculative-parsing/generated/page-load/resources/link-rel-stylesheet-framed.sub.html
@@ -0,0 +1,12 @@
+
+
+
+Speculative parsing, page load (helper file): link-rel-stylesheet
+
+
+
+
diff --git a/html/syntax/speculative-parsing/generated/page-load/resources/link-rel-stylesheet-integrity-framed.sub.html b/html/syntax/speculative-parsing/generated/page-load/resources/link-rel-stylesheet-integrity-framed.sub.html
new file mode 100644
index 00000000000000..752077d674d724
--- /dev/null
+++ b/html/syntax/speculative-parsing/generated/page-load/resources/link-rel-stylesheet-integrity-framed.sub.html
@@ -0,0 +1,12 @@
+
+
+
+Speculative parsing, page load (helper file): link-rel-stylesheet-integrity
+
+
+
+
diff --git a/html/syntax/speculative-parsing/generated/page-load/resources/link-rel-stylesheet-nomatch-media-framed.sub.html b/html/syntax/speculative-parsing/generated/page-load/resources/link-rel-stylesheet-nomatch-media-framed.sub.html
new file mode 100644
index 00000000000000..8ddb717c60eead
--- /dev/null
+++ b/html/syntax/speculative-parsing/generated/page-load/resources/link-rel-stylesheet-nomatch-media-framed.sub.html
@@ -0,0 +1,12 @@
+
+
+
+Speculative parsing, page load (helper file): link-rel-stylesheet-nomatch-media
+
+
+
+
diff --git a/html/syntax/speculative-parsing/generated/page-load/resources/link-rel-stylesheet-referrerpolicy-no-referrer-framed.sub.html b/html/syntax/speculative-parsing/generated/page-load/resources/link-rel-stylesheet-referrerpolicy-no-referrer-framed.sub.html
new file mode 100644
index 00000000000000..2f149ef438c2e2
--- /dev/null
+++ b/html/syntax/speculative-parsing/generated/page-load/resources/link-rel-stylesheet-referrerpolicy-no-referrer-framed.sub.html
@@ -0,0 +1,12 @@
+
+
+
+Speculative parsing, page load (helper file): link-rel-stylesheet-referrerpolicy-no-referrer
+
+
+
+
diff --git a/html/syntax/speculative-parsing/generated/page-load/resources/link-rel-stylesheet-type-text-css-framed.sub.html b/html/syntax/speculative-parsing/generated/page-load/resources/link-rel-stylesheet-type-text-css-framed.sub.html
new file mode 100644
index 00000000000000..c4024228680bf3
--- /dev/null
+++ b/html/syntax/speculative-parsing/generated/page-load/resources/link-rel-stylesheet-type-text-css-framed.sub.html
@@ -0,0 +1,12 @@
+
+
+
+Speculative parsing, page load (helper file): link-rel-stylesheet-type-text-css
+
+
+
+
diff --git a/html/syntax/speculative-parsing/generated/page-load/resources/link-rel-stylesheet-unsupported-type-framed.sub.html b/html/syntax/speculative-parsing/generated/page-load/resources/link-rel-stylesheet-unsupported-type-framed.sub.html
new file mode 100644
index 00000000000000..f0c5016081ca26
--- /dev/null
+++ b/html/syntax/speculative-parsing/generated/page-load/resources/link-rel-stylesheet-unsupported-type-framed.sub.html
@@ -0,0 +1,12 @@
+
+
+
+Speculative parsing, page load (helper file): link-rel-stylesheet-unsupported-type
+
+
+
+
diff --git a/html/syntax/speculative-parsing/generated/page-load/resources/math-font-face-script-src-framed.sub.html b/html/syntax/speculative-parsing/generated/page-load/resources/math-font-face-script-src-framed.sub.html
new file mode 100644
index 00000000000000..90e99fb0d918d7
--- /dev/null
+++ b/html/syntax/speculative-parsing/generated/page-load/resources/math-font-face-script-src-framed.sub.html
@@ -0,0 +1,12 @@
+
+
+
+Speculative parsing, page load (helper file): math-font-face-script-src
+
+
+
+
diff --git a/html/syntax/speculative-parsing/generated/page-load/resources/math-font-script-src-framed.sub.html b/html/syntax/speculative-parsing/generated/page-load/resources/math-font-script-src-framed.sub.html
new file mode 100644
index 00000000000000..fc359406ffc156
--- /dev/null
+++ b/html/syntax/speculative-parsing/generated/page-load/resources/math-font-script-src-framed.sub.html
@@ -0,0 +1,12 @@
+
+
+
+Speculative parsing, page load (helper file): math-font-script-src
+
+
+
+
diff --git a/html/syntax/speculative-parsing/generated/page-load/resources/math-script-src-framed.sub.html b/html/syntax/speculative-parsing/generated/page-load/resources/math-script-src-framed.sub.html
new file mode 100644
index 00000000000000..71697e67662a00
--- /dev/null
+++ b/html/syntax/speculative-parsing/generated/page-load/resources/math-script-src-framed.sub.html
@@ -0,0 +1,12 @@
+
+
+
+Speculative parsing, page load (helper file): math-script-src
+
+
+
+
diff --git a/html/syntax/speculative-parsing/generated/page-load/resources/meta-charset-script-src-framed.sub.html b/html/syntax/speculative-parsing/generated/page-load/resources/meta-charset-script-src-framed.sub.html
new file mode 100644
index 00000000000000..001c0c2eeace2a
--- /dev/null
+++ b/html/syntax/speculative-parsing/generated/page-load/resources/meta-charset-script-src-framed.sub.html
@@ -0,0 +1,22 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+Speculative parsing, page load (helper file): meta-charset-script-src
+
+
+
+
diff --git a/html/syntax/speculative-parsing/generated/page-load/resources/meta-csp-img-src-asterisk-framed.sub.html b/html/syntax/speculative-parsing/generated/page-load/resources/meta-csp-img-src-asterisk-framed.sub.html
new file mode 100644
index 00000000000000..3ac046dd672f46
--- /dev/null
+++ b/html/syntax/speculative-parsing/generated/page-load/resources/meta-csp-img-src-asterisk-framed.sub.html
@@ -0,0 +1,12 @@
+
+
+
+Speculative parsing, page load (helper file): meta-csp-img-src-asterisk
+
+
+
+
diff --git a/html/syntax/speculative-parsing/generated/page-load/resources/meta-csp-img-src-none-framed.sub.html b/html/syntax/speculative-parsing/generated/page-load/resources/meta-csp-img-src-none-framed.sub.html
new file mode 100644
index 00000000000000..08929d860b4438
--- /dev/null
+++ b/html/syntax/speculative-parsing/generated/page-load/resources/meta-csp-img-src-none-framed.sub.html
@@ -0,0 +1,12 @@
+
+
+
+Speculative parsing, page load (helper file): meta-csp-img-src-none
+
+
+
+
diff --git a/html/syntax/speculative-parsing/generated/page-load/resources/meta-referrer-no-referrer-img-src-framed.sub.html b/html/syntax/speculative-parsing/generated/page-load/resources/meta-referrer-no-referrer-img-src-framed.sub.html
new file mode 100644
index 00000000000000..a8a344909e49a5
--- /dev/null
+++ b/html/syntax/speculative-parsing/generated/page-load/resources/meta-referrer-no-referrer-img-src-framed.sub.html
@@ -0,0 +1,12 @@
+
+
+
+Speculative parsing, page load (helper file): meta-referrer-no-referrer-img-src
+
+
+
+
diff --git a/html/syntax/speculative-parsing/generated/page-load/resources/meta-viewport-link-stylesheet-media-framed.sub.html b/html/syntax/speculative-parsing/generated/page-load/resources/meta-viewport-link-stylesheet-media-framed.sub.html
new file mode 100644
index 00000000000000..8e294e8c464dd4
--- /dev/null
+++ b/html/syntax/speculative-parsing/generated/page-load/resources/meta-viewport-link-stylesheet-media-framed.sub.html
@@ -0,0 +1,12 @@
+
+
+
+Speculative parsing, page load (helper file): meta-viewport-link-stylesheet-media
+
+
+
+
diff --git a/html/syntax/speculative-parsing/generated/page-load/resources/picture-source-br-img-framed.sub.html b/html/syntax/speculative-parsing/generated/page-load/resources/picture-source-br-img-framed.sub.html
new file mode 100644
index 00000000000000..aea18d1e042bb0
--- /dev/null
+++ b/html/syntax/speculative-parsing/generated/page-load/resources/picture-source-br-img-framed.sub.html
@@ -0,0 +1,12 @@
+
+
+
+Speculative parsing, page load (helper file): picture-source-br-img
+
+
+
+
diff --git a/html/syntax/speculative-parsing/generated/page-load/resources/picture-source-no-img-framed.sub.html b/html/syntax/speculative-parsing/generated/page-load/resources/picture-source-no-img-framed.sub.html
new file mode 100644
index 00000000000000..5367cd4085f8f6
--- /dev/null
+++ b/html/syntax/speculative-parsing/generated/page-load/resources/picture-source-no-img-framed.sub.html
@@ -0,0 +1,12 @@
+
+
+
+Speculative parsing, page load (helper file): picture-source-no-img
+
+
+
+
diff --git a/html/syntax/speculative-parsing/generated/page-load/resources/picture-source-nomatch-media-framed.sub.html b/html/syntax/speculative-parsing/generated/page-load/resources/picture-source-nomatch-media-framed.sub.html
new file mode 100644
index 00000000000000..a8e696f901eb55
--- /dev/null
+++ b/html/syntax/speculative-parsing/generated/page-load/resources/picture-source-nomatch-media-framed.sub.html
@@ -0,0 +1,12 @@
+
+
+
+Speculative parsing, page load (helper file): picture-source-nomatch-media
+
+
+
+
diff --git a/html/syntax/speculative-parsing/generated/page-load/resources/picture-source-unsupported-type-framed.sub.html b/html/syntax/speculative-parsing/generated/page-load/resources/picture-source-unsupported-type-framed.sub.html
new file mode 100644
index 00000000000000..0ed95368c04a86
--- /dev/null
+++ b/html/syntax/speculative-parsing/generated/page-load/resources/picture-source-unsupported-type-framed.sub.html
@@ -0,0 +1,12 @@
+
+
+
+Speculative parsing, page load (helper file): picture-source-unsupported-type
+
+
+
+
diff --git a/html/syntax/speculative-parsing/generated/page-load/resources/script-src-async-framed.sub.html b/html/syntax/speculative-parsing/generated/page-load/resources/script-src-async-framed.sub.html
new file mode 100644
index 00000000000000..5e6cbff21dce82
--- /dev/null
+++ b/html/syntax/speculative-parsing/generated/page-load/resources/script-src-async-framed.sub.html
@@ -0,0 +1,12 @@
+
+
+
+Speculative parsing, page load (helper file): script-src-async
+
+
+
+
diff --git a/html/syntax/speculative-parsing/generated/page-load/resources/script-src-crossorigin-framed.sub.html b/html/syntax/speculative-parsing/generated/page-load/resources/script-src-crossorigin-framed.sub.html
new file mode 100644
index 00000000000000..098d07c5e35ae8
--- /dev/null
+++ b/html/syntax/speculative-parsing/generated/page-load/resources/script-src-crossorigin-framed.sub.html
@@ -0,0 +1,12 @@
+
+
+
+Speculative parsing, page load (helper file): script-src-crossorigin
+
+
+
+
diff --git a/html/syntax/speculative-parsing/generated/page-load/resources/script-src-defer-framed.sub.html b/html/syntax/speculative-parsing/generated/page-load/resources/script-src-defer-framed.sub.html
new file mode 100644
index 00000000000000..7decc7bc6035e6
--- /dev/null
+++ b/html/syntax/speculative-parsing/generated/page-load/resources/script-src-defer-framed.sub.html
@@ -0,0 +1,12 @@
+
+
+
+Speculative parsing, page load (helper file): script-src-defer
+
+
+
+
diff --git a/html/syntax/speculative-parsing/generated/page-load/resources/script-src-framed.sub.html b/html/syntax/speculative-parsing/generated/page-load/resources/script-src-framed.sub.html
new file mode 100644
index 00000000000000..baab0107502260
--- /dev/null
+++ b/html/syntax/speculative-parsing/generated/page-load/resources/script-src-framed.sub.html
@@ -0,0 +1,12 @@
+
+
+
+Speculative parsing, page load (helper file): script-src
+
+
+
+
diff --git a/html/syntax/speculative-parsing/generated/page-load/resources/script-src-integrity-framed.sub.html b/html/syntax/speculative-parsing/generated/page-load/resources/script-src-integrity-framed.sub.html
new file mode 100644
index 00000000000000..7c0ca5e59f5ee1
--- /dev/null
+++ b/html/syntax/speculative-parsing/generated/page-load/resources/script-src-integrity-framed.sub.html
@@ -0,0 +1,12 @@
+
+
+
+Speculative parsing, page load (helper file): script-src-integrity
+
+
+
+
diff --git a/html/syntax/speculative-parsing/generated/page-load/resources/script-src-module-framed.sub.html b/html/syntax/speculative-parsing/generated/page-load/resources/script-src-module-framed.sub.html
new file mode 100644
index 00000000000000..5c365229df1f3c
--- /dev/null
+++ b/html/syntax/speculative-parsing/generated/page-load/resources/script-src-module-framed.sub.html
@@ -0,0 +1,12 @@
+
+
+
+Speculative parsing, page load (helper file): script-src-module
+
+
+
+
diff --git a/html/syntax/speculative-parsing/generated/page-load/resources/script-src-nomodule-framed.sub.html b/html/syntax/speculative-parsing/generated/page-load/resources/script-src-nomodule-framed.sub.html
new file mode 100644
index 00000000000000..46af7c87e276ec
--- /dev/null
+++ b/html/syntax/speculative-parsing/generated/page-load/resources/script-src-nomodule-framed.sub.html
@@ -0,0 +1,12 @@
+
+
+
+Speculative parsing, page load (helper file): script-src-nomodule
+
+
+
+
diff --git a/html/syntax/speculative-parsing/generated/page-load/resources/script-src-referrerpolicy-no-referrer-framed.sub.html b/html/syntax/speculative-parsing/generated/page-load/resources/script-src-referrerpolicy-no-referrer-framed.sub.html
new file mode 100644
index 00000000000000..566d2f67e01bab
--- /dev/null
+++ b/html/syntax/speculative-parsing/generated/page-load/resources/script-src-referrerpolicy-no-referrer-framed.sub.html
@@ -0,0 +1,12 @@
+
+
+
+Speculative parsing, page load (helper file): script-src-referrerpolicy-no-referrer
+
+
+
+
diff --git a/html/syntax/speculative-parsing/generated/page-load/resources/script-src-type-application-ecmascript-framed.sub.html b/html/syntax/speculative-parsing/generated/page-load/resources/script-src-type-application-ecmascript-framed.sub.html
new file mode 100644
index 00000000000000..08609b1c12a0c7
--- /dev/null
+++ b/html/syntax/speculative-parsing/generated/page-load/resources/script-src-type-application-ecmascript-framed.sub.html
@@ -0,0 +1,12 @@
+
+
+
+Speculative parsing, page load (helper file): script-src-type-application-ecmascript
+
+
+
+
diff --git a/html/syntax/speculative-parsing/generated/page-load/resources/script-src-unsupported-type-framed.sub.html b/html/syntax/speculative-parsing/generated/page-load/resources/script-src-unsupported-type-framed.sub.html
new file mode 100644
index 00000000000000..1f38560ee152a6
--- /dev/null
+++ b/html/syntax/speculative-parsing/generated/page-load/resources/script-src-unsupported-type-framed.sub.html
@@ -0,0 +1,12 @@
+
+
+
+Speculative parsing, page load (helper file): script-src-unsupported-type
+
+
+
+
diff --git a/html/syntax/speculative-parsing/generated/page-load/resources/svg-image-href-framed.sub.html b/html/syntax/speculative-parsing/generated/page-load/resources/svg-image-href-framed.sub.html
new file mode 100644
index 00000000000000..fc4e531849578f
--- /dev/null
+++ b/html/syntax/speculative-parsing/generated/page-load/resources/svg-image-href-framed.sub.html
@@ -0,0 +1,12 @@
+
+
+
+Speculative parsing, page load (helper file): svg-image-href
+
+
+
+
diff --git a/html/syntax/speculative-parsing/generated/page-load/resources/svg-image-src-framed.sub.html b/html/syntax/speculative-parsing/generated/page-load/resources/svg-image-src-framed.sub.html
new file mode 100644
index 00000000000000..16d97e00eb5afe
--- /dev/null
+++ b/html/syntax/speculative-parsing/generated/page-load/resources/svg-image-src-framed.sub.html
@@ -0,0 +1,12 @@
+
+
+
+Speculative parsing, page load (helper file): svg-image-src
+
+
+
+
diff --git a/html/syntax/speculative-parsing/generated/page-load/resources/svg-image-xlinkhref-framed.sub.html b/html/syntax/speculative-parsing/generated/page-load/resources/svg-image-xlinkhref-framed.sub.html
new file mode 100644
index 00000000000000..8e5dd1e8dc9b64
--- /dev/null
+++ b/html/syntax/speculative-parsing/generated/page-load/resources/svg-image-xlinkhref-framed.sub.html
@@ -0,0 +1,12 @@
+
+
+
+Speculative parsing, page load (helper file): svg-image-xlinkhref
+
+
+
+
diff --git a/html/syntax/speculative-parsing/generated/page-load/resources/svg-script-href-framed.sub.html b/html/syntax/speculative-parsing/generated/page-load/resources/svg-script-href-framed.sub.html
new file mode 100644
index 00000000000000..6a208cbc4ffcaa
--- /dev/null
+++ b/html/syntax/speculative-parsing/generated/page-load/resources/svg-script-href-framed.sub.html
@@ -0,0 +1,12 @@
+
+
+
+Speculative parsing, page load (helper file): svg-script-href
+
+
+
+
diff --git a/html/syntax/speculative-parsing/generated/page-load/resources/svg-script-src-framed.sub.html b/html/syntax/speculative-parsing/generated/page-load/resources/svg-script-src-framed.sub.html
new file mode 100644
index 00000000000000..e8c1784c60d470
--- /dev/null
+++ b/html/syntax/speculative-parsing/generated/page-load/resources/svg-script-src-framed.sub.html
@@ -0,0 +1,12 @@
+
+
+
+Speculative parsing, page load (helper file): svg-script-src
+
+
+
+
diff --git a/html/syntax/speculative-parsing/generated/page-load/resources/svg-script-xlinkhref-framed.sub.html b/html/syntax/speculative-parsing/generated/page-load/resources/svg-script-xlinkhref-framed.sub.html
new file mode 100644
index 00000000000000..e634000d0166d5
--- /dev/null
+++ b/html/syntax/speculative-parsing/generated/page-load/resources/svg-script-xlinkhref-framed.sub.html
@@ -0,0 +1,12 @@
+
+
+
+Speculative parsing, page load (helper file): svg-script-xlinkhref
+
+
+
+
diff --git a/html/syntax/speculative-parsing/generated/page-load/resources/template-script-src-framed.sub.html b/html/syntax/speculative-parsing/generated/page-load/resources/template-script-src-framed.sub.html
new file mode 100644
index 00000000000000..8582d10ece3d5a
--- /dev/null
+++ b/html/syntax/speculative-parsing/generated/page-load/resources/template-script-src-framed.sub.html
@@ -0,0 +1,12 @@
+
+
+
+Speculative parsing, page load (helper file): template-script-src
+
+
+
+
diff --git a/html/syntax/speculative-parsing/generated/page-load/resources/video-poster-framed.sub.html b/html/syntax/speculative-parsing/generated/page-load/resources/video-poster-framed.sub.html
new file mode 100644
index 00000000000000..ad2c7cef95d9f0
--- /dev/null
+++ b/html/syntax/speculative-parsing/generated/page-load/resources/video-poster-framed.sub.html
@@ -0,0 +1,12 @@
+
+
+
+Speculative parsing, page load (helper file): video-poster
+
+
+
+
diff --git a/html/syntax/speculative-parsing/generated/page-load/resources/xmp-script-src-framed.sub.html b/html/syntax/speculative-parsing/generated/page-load/resources/xmp-script-src-framed.sub.html
new file mode 100644
index 00000000000000..3c5ea9252e9f70
--- /dev/null
+++ b/html/syntax/speculative-parsing/generated/page-load/resources/xmp-script-src-framed.sub.html
@@ -0,0 +1,12 @@
+
+
+
+Speculative parsing, page load (helper file): xmp-script-src
+
+
+
+
diff --git a/html/syntax/speculative-parsing/generated/page-load/script-src-async.tentative.html b/html/syntax/speculative-parsing/generated/page-load/script-src-async.tentative.html
new file mode 100644
index 00000000000000..d462508a7e020b
--- /dev/null
+++ b/html/syntax/speculative-parsing/generated/page-load/script-src-async.tentative.html
@@ -0,0 +1,21 @@
+
+
+
+Speculative parsing, page load: script-src-async
+
+
+
+
+
+
diff --git a/html/syntax/speculative-parsing/generated/page-load/script-src-crossorigin.tentative.html b/html/syntax/speculative-parsing/generated/page-load/script-src-crossorigin.tentative.html
new file mode 100644
index 00000000000000..59d3d9e07ea3fa
--- /dev/null
+++ b/html/syntax/speculative-parsing/generated/page-load/script-src-crossorigin.tentative.html
@@ -0,0 +1,21 @@
+
+
+
+Speculative parsing, page load: script-src-crossorigin
+
+
+
+
+
+
diff --git a/html/syntax/speculative-parsing/generated/page-load/script-src-defer.tentative.html b/html/syntax/speculative-parsing/generated/page-load/script-src-defer.tentative.html
new file mode 100644
index 00000000000000..b8bf4898901859
--- /dev/null
+++ b/html/syntax/speculative-parsing/generated/page-load/script-src-defer.tentative.html
@@ -0,0 +1,21 @@
+
+
+
+Speculative parsing, page load: script-src-defer
+
+
+
+
+
+
diff --git a/html/syntax/speculative-parsing/generated/page-load/script-src-integrity.tentative.html b/html/syntax/speculative-parsing/generated/page-load/script-src-integrity.tentative.html
new file mode 100644
index 00000000000000..42719e994a4774
--- /dev/null
+++ b/html/syntax/speculative-parsing/generated/page-load/script-src-integrity.tentative.html
@@ -0,0 +1,21 @@
+
+
+
+Speculative parsing, page load: script-src-integrity
+
+
+
+
+
+
diff --git a/html/syntax/speculative-parsing/generated/page-load/script-src-module.tentative.html b/html/syntax/speculative-parsing/generated/page-load/script-src-module.tentative.html
new file mode 100644
index 00000000000000..606a1ff46948d7
--- /dev/null
+++ b/html/syntax/speculative-parsing/generated/page-load/script-src-module.tentative.html
@@ -0,0 +1,21 @@
+
+
+
+Speculative parsing, page load: script-src-module
+
+
+
+
+
+
diff --git a/html/syntax/speculative-parsing/generated/page-load/script-src-nomodule.tentative.html b/html/syntax/speculative-parsing/generated/page-load/script-src-nomodule.tentative.html
new file mode 100644
index 00000000000000..20ca80222eb0c6
--- /dev/null
+++ b/html/syntax/speculative-parsing/generated/page-load/script-src-nomodule.tentative.html
@@ -0,0 +1,21 @@
+
+
+
+Speculative parsing, page load: script-src-nomodule
+
+
+
+
+
+
diff --git a/html/syntax/speculative-parsing/generated/page-load/script-src-referrerpolicy-no-referrer.tentative.html b/html/syntax/speculative-parsing/generated/page-load/script-src-referrerpolicy-no-referrer.tentative.html
new file mode 100644
index 00000000000000..cf35f5262beaf3
--- /dev/null
+++ b/html/syntax/speculative-parsing/generated/page-load/script-src-referrerpolicy-no-referrer.tentative.html
@@ -0,0 +1,21 @@
+
+
+
+Speculative parsing, page load: script-src-referrerpolicy-no-referrer
+
+
+
+
+
+
diff --git a/html/syntax/speculative-parsing/generated/page-load/script-src-type-application-ecmascript.tentative.html b/html/syntax/speculative-parsing/generated/page-load/script-src-type-application-ecmascript.tentative.html
new file mode 100644
index 00000000000000..611afc70859de9
--- /dev/null
+++ b/html/syntax/speculative-parsing/generated/page-load/script-src-type-application-ecmascript.tentative.html
@@ -0,0 +1,21 @@
+
+
+
+Speculative parsing, page load: script-src-type-application-ecmascript
+
+
+
+
+
+
diff --git a/html/syntax/speculative-parsing/generated/page-load/script-src-unsupported-type.tentative.html b/html/syntax/speculative-parsing/generated/page-load/script-src-unsupported-type.tentative.html
new file mode 100644
index 00000000000000..c7c5b483a4eba8
--- /dev/null
+++ b/html/syntax/speculative-parsing/generated/page-load/script-src-unsupported-type.tentative.html
@@ -0,0 +1,21 @@
+
+
+
+Speculative parsing, page load: script-src-unsupported-type
+
+
+
+
+
+
diff --git a/html/syntax/speculative-parsing/generated/page-load/script-src.tentative.html b/html/syntax/speculative-parsing/generated/page-load/script-src.tentative.html
new file mode 100644
index 00000000000000..1d545ff0e16df2
--- /dev/null
+++ b/html/syntax/speculative-parsing/generated/page-load/script-src.tentative.html
@@ -0,0 +1,21 @@
+
+
+
+Speculative parsing, page load: script-src
+
+
+
+
+
+
diff --git a/html/syntax/speculative-parsing/generated/page-load/svg-image-href.tentative.html b/html/syntax/speculative-parsing/generated/page-load/svg-image-href.tentative.html
new file mode 100644
index 00000000000000..b5e22c1de9d049
--- /dev/null
+++ b/html/syntax/speculative-parsing/generated/page-load/svg-image-href.tentative.html
@@ -0,0 +1,21 @@
+
+
+
+Speculative parsing, page load: svg-image-href
+
+
+
+
+
+
diff --git a/html/syntax/speculative-parsing/generated/page-load/svg-image-src.tentative.html b/html/syntax/speculative-parsing/generated/page-load/svg-image-src.tentative.html
new file mode 100644
index 00000000000000..63232fa4927a5f
--- /dev/null
+++ b/html/syntax/speculative-parsing/generated/page-load/svg-image-src.tentative.html
@@ -0,0 +1,21 @@
+
+
+
+Speculative parsing, page load: svg-image-src
+
+
+
+
+
+
diff --git a/html/syntax/speculative-parsing/generated/page-load/svg-image-xlinkhref.tentative.html b/html/syntax/speculative-parsing/generated/page-load/svg-image-xlinkhref.tentative.html
new file mode 100644
index 00000000000000..9887004bc4d33d
--- /dev/null
+++ b/html/syntax/speculative-parsing/generated/page-load/svg-image-xlinkhref.tentative.html
@@ -0,0 +1,21 @@
+
+
+
+Speculative parsing, page load: svg-image-xlinkhref
+
+
+
+
+
+
diff --git a/html/syntax/speculative-parsing/generated/page-load/svg-script-href.tentative.html b/html/syntax/speculative-parsing/generated/page-load/svg-script-href.tentative.html
new file mode 100644
index 00000000000000..54d4e313f9b6da
--- /dev/null
+++ b/html/syntax/speculative-parsing/generated/page-load/svg-script-href.tentative.html
@@ -0,0 +1,21 @@
+
+
+
+Speculative parsing, page load: svg-script-href
+
+
+
+
+
+
diff --git a/html/syntax/speculative-parsing/generated/page-load/svg-script-src.tentative.html b/html/syntax/speculative-parsing/generated/page-load/svg-script-src.tentative.html
new file mode 100644
index 00000000000000..8b2397e0711abb
--- /dev/null
+++ b/html/syntax/speculative-parsing/generated/page-load/svg-script-src.tentative.html
@@ -0,0 +1,21 @@
+
+
+
+Speculative parsing, page load: svg-script-src
+
+
+
+
+
+
diff --git a/html/syntax/speculative-parsing/generated/page-load/svg-script-xlinkhref.tentative.html b/html/syntax/speculative-parsing/generated/page-load/svg-script-xlinkhref.tentative.html
new file mode 100644
index 00000000000000..08b4efc3eee5d8
--- /dev/null
+++ b/html/syntax/speculative-parsing/generated/page-load/svg-script-xlinkhref.tentative.html
@@ -0,0 +1,21 @@
+
+
+
+Speculative parsing, page load: svg-script-xlinkhref
+
+
+
+
+
+
diff --git a/html/syntax/speculative-parsing/generated/page-load/template-script-src.tentative.html b/html/syntax/speculative-parsing/generated/page-load/template-script-src.tentative.html
new file mode 100644
index 00000000000000..f5c23dddb2ddf1
--- /dev/null
+++ b/html/syntax/speculative-parsing/generated/page-load/template-script-src.tentative.html
@@ -0,0 +1,21 @@
+
+
+
+Speculative parsing, page load: template-script-src
+
+
+
+
+
+
diff --git a/html/syntax/speculative-parsing/generated/page-load/video-poster.tentative.html b/html/syntax/speculative-parsing/generated/page-load/video-poster.tentative.html
new file mode 100644
index 00000000000000..73b9cb50dea8ab
--- /dev/null
+++ b/html/syntax/speculative-parsing/generated/page-load/video-poster.tentative.html
@@ -0,0 +1,21 @@
+
+
+
+Speculative parsing, page load: video-poster
+
+
+
+
+
+
diff --git a/html/syntax/speculative-parsing/generated/page-load/xmp-script-src.tentative.html b/html/syntax/speculative-parsing/generated/page-load/xmp-script-src.tentative.html
new file mode 100644
index 00000000000000..cee708ff728adb
--- /dev/null
+++ b/html/syntax/speculative-parsing/generated/page-load/xmp-script-src.tentative.html
@@ -0,0 +1,21 @@
+
+
+
+Speculative parsing, page load: xmp-script-src
+
+
+
+
+
+
diff --git a/html/syntax/speculative-parsing/generated/resources/base-href-script-src-nonspeculative.sub.html b/html/syntax/speculative-parsing/generated/resources/base-href-script-src-nonspeculative.sub.html
new file mode 100644
index 00000000000000..e860f0e93df86c
--- /dev/null
+++ b/html/syntax/speculative-parsing/generated/resources/base-href-script-src-nonspeculative.sub.html
@@ -0,0 +1,10 @@
+
+
+
+Speculative parsing, non-speculative (helper file): base-href-script-src
+
+
+
+
diff --git a/html/syntax/speculative-parsing/generated/resources/image-src-nonspeculative.sub.html b/html/syntax/speculative-parsing/generated/resources/image-src-nonspeculative.sub.html
new file mode 100644
index 00000000000000..3d0ec708559ea5
--- /dev/null
+++ b/html/syntax/speculative-parsing/generated/resources/image-src-nonspeculative.sub.html
@@ -0,0 +1,10 @@
+
+
+
+Speculative parsing, non-speculative (helper file): image-src
+
+
+
+
diff --git a/html/syntax/speculative-parsing/generated/resources/img-data-src-nonspeculative.sub.html b/html/syntax/speculative-parsing/generated/resources/img-data-src-nonspeculative.sub.html
new file mode 100644
index 00000000000000..f739f590709c18
--- /dev/null
+++ b/html/syntax/speculative-parsing/generated/resources/img-data-src-nonspeculative.sub.html
@@ -0,0 +1,10 @@
+
+
+
+Speculative parsing, non-speculative (helper file): img-data-src
+
+
+
+
diff --git a/html/syntax/speculative-parsing/generated/resources/img-src-crossorigin-nonspeculative.sub.html b/html/syntax/speculative-parsing/generated/resources/img-src-crossorigin-nonspeculative.sub.html
new file mode 100644
index 00000000000000..bb7c7d2c84cb53
--- /dev/null
+++ b/html/syntax/speculative-parsing/generated/resources/img-src-crossorigin-nonspeculative.sub.html
@@ -0,0 +1,10 @@
+
+
+
+Speculative parsing, non-speculative (helper file): img-src-crossorigin
+
+
+
+
diff --git a/html/syntax/speculative-parsing/generated/resources/img-src-nonspeculative.sub.html b/html/syntax/speculative-parsing/generated/resources/img-src-nonspeculative.sub.html
new file mode 100644
index 00000000000000..dc27cf837c720e
--- /dev/null
+++ b/html/syntax/speculative-parsing/generated/resources/img-src-nonspeculative.sub.html
@@ -0,0 +1,10 @@
+
+
+
+Speculative parsing, non-speculative (helper file): img-src
+
+
+
+
diff --git a/html/syntax/speculative-parsing/generated/resources/img-src-referrerpolicy-no-referrer-nonspeculative.sub.html b/html/syntax/speculative-parsing/generated/resources/img-src-referrerpolicy-no-referrer-nonspeculative.sub.html
new file mode 100644
index 00000000000000..6fd38fdc0c6fd3
--- /dev/null
+++ b/html/syntax/speculative-parsing/generated/resources/img-src-referrerpolicy-no-referrer-nonspeculative.sub.html
@@ -0,0 +1,10 @@
+
+
+
+Speculative parsing, non-speculative (helper file): img-src-referrerpolicy-no-referrer
+
+
+
+
diff --git a/html/syntax/speculative-parsing/generated/resources/img-srcset-nonspeculative.sub.html b/html/syntax/speculative-parsing/generated/resources/img-srcset-nonspeculative.sub.html
new file mode 100644
index 00000000000000..3adcae9dce852f
--- /dev/null
+++ b/html/syntax/speculative-parsing/generated/resources/img-srcset-nonspeculative.sub.html
@@ -0,0 +1,10 @@
+
+
+
+Speculative parsing, non-speculative (helper file): img-srcset
+
+
+
+
diff --git a/html/syntax/speculative-parsing/generated/resources/link-no-rel-nonspeculative.sub.html b/html/syntax/speculative-parsing/generated/resources/link-no-rel-nonspeculative.sub.html
new file mode 100644
index 00000000000000..50fee5964c458e
--- /dev/null
+++ b/html/syntax/speculative-parsing/generated/resources/link-no-rel-nonspeculative.sub.html
@@ -0,0 +1,10 @@
+
+
+
+Speculative parsing, non-speculative (helper file): link-no-rel
+
+
+
+
diff --git a/html/syntax/speculative-parsing/generated/resources/link-rel-alternate-stylesheet-nonspeculative.sub.html b/html/syntax/speculative-parsing/generated/resources/link-rel-alternate-stylesheet-nonspeculative.sub.html
new file mode 100644
index 00000000000000..cdd3a0cfaae804
--- /dev/null
+++ b/html/syntax/speculative-parsing/generated/resources/link-rel-alternate-stylesheet-nonspeculative.sub.html
@@ -0,0 +1,10 @@
+
+
+
+Speculative parsing, non-speculative (helper file): link-rel-alternate-stylesheet
+
+
+
+
diff --git a/html/syntax/speculative-parsing/generated/resources/link-rel-preload-as-font-crossorigin-nonspeculative.sub.html b/html/syntax/speculative-parsing/generated/resources/link-rel-preload-as-font-crossorigin-nonspeculative.sub.html
new file mode 100644
index 00000000000000..6329cd0fcbaf0d
--- /dev/null
+++ b/html/syntax/speculative-parsing/generated/resources/link-rel-preload-as-font-crossorigin-nonspeculative.sub.html
@@ -0,0 +1,10 @@
+
+
+
+Speculative parsing, non-speculative (helper file): link-rel-preload-as-font-crossorigin
+
+
+
+
diff --git a/html/syntax/speculative-parsing/generated/resources/link-rel-preload-as-image-nonspeculative.sub.html b/html/syntax/speculative-parsing/generated/resources/link-rel-preload-as-image-nonspeculative.sub.html
new file mode 100644
index 00000000000000..80258dfa63f42c
--- /dev/null
+++ b/html/syntax/speculative-parsing/generated/resources/link-rel-preload-as-image-nonspeculative.sub.html
@@ -0,0 +1,10 @@
+
+
+
+Speculative parsing, non-speculative (helper file): link-rel-preload-as-image
+
+
+
+
diff --git a/html/syntax/speculative-parsing/generated/resources/link-rel-preload-as-script-nonspeculative.sub.html b/html/syntax/speculative-parsing/generated/resources/link-rel-preload-as-script-nonspeculative.sub.html
new file mode 100644
index 00000000000000..04fe1b1dc006da
--- /dev/null
+++ b/html/syntax/speculative-parsing/generated/resources/link-rel-preload-as-script-nonspeculative.sub.html
@@ -0,0 +1,10 @@
+
+
+
+Speculative parsing, non-speculative (helper file): link-rel-preload-as-script
+
+
+
+
diff --git a/html/syntax/speculative-parsing/generated/resources/link-rel-preload-as-style-nonspeculative.sub.html b/html/syntax/speculative-parsing/generated/resources/link-rel-preload-as-style-nonspeculative.sub.html
new file mode 100644
index 00000000000000..4cc7ef40bcb7bf
--- /dev/null
+++ b/html/syntax/speculative-parsing/generated/resources/link-rel-preload-as-style-nonspeculative.sub.html
@@ -0,0 +1,10 @@
+
+
+
+Speculative parsing, non-speculative (helper file): link-rel-preload-as-style
+
+
+
+
diff --git a/html/syntax/speculative-parsing/generated/resources/link-rel-stylesheet-crossorigin-nonspeculative.sub.html b/html/syntax/speculative-parsing/generated/resources/link-rel-stylesheet-crossorigin-nonspeculative.sub.html
new file mode 100644
index 00000000000000..81a28c07a3a9f6
--- /dev/null
+++ b/html/syntax/speculative-parsing/generated/resources/link-rel-stylesheet-crossorigin-nonspeculative.sub.html
@@ -0,0 +1,10 @@
+
+
+
+Speculative parsing, non-speculative (helper file): link-rel-stylesheet-crossorigin
+
+
+
+
diff --git a/html/syntax/speculative-parsing/generated/resources/link-rel-stylesheet-disabled-nonspeculative.sub.html b/html/syntax/speculative-parsing/generated/resources/link-rel-stylesheet-disabled-nonspeculative.sub.html
new file mode 100644
index 00000000000000..5584e7d4fc0ef7
--- /dev/null
+++ b/html/syntax/speculative-parsing/generated/resources/link-rel-stylesheet-disabled-nonspeculative.sub.html
@@ -0,0 +1,10 @@
+
+
+
+Speculative parsing, non-speculative (helper file): link-rel-stylesheet-disabled
+
+
+
+
diff --git a/html/syntax/speculative-parsing/generated/resources/link-rel-stylesheet-integrity-nonspeculative.sub.html b/html/syntax/speculative-parsing/generated/resources/link-rel-stylesheet-integrity-nonspeculative.sub.html
new file mode 100644
index 00000000000000..9e9ae176a54366
--- /dev/null
+++ b/html/syntax/speculative-parsing/generated/resources/link-rel-stylesheet-integrity-nonspeculative.sub.html
@@ -0,0 +1,10 @@
+
+
+
+Speculative parsing, non-speculative (helper file): link-rel-stylesheet-integrity
+
+
+
+
diff --git a/html/syntax/speculative-parsing/generated/resources/link-rel-stylesheet-nomatch-media-nonspeculative.sub.html b/html/syntax/speculative-parsing/generated/resources/link-rel-stylesheet-nomatch-media-nonspeculative.sub.html
new file mode 100644
index 00000000000000..b10375c2c98a07
--- /dev/null
+++ b/html/syntax/speculative-parsing/generated/resources/link-rel-stylesheet-nomatch-media-nonspeculative.sub.html
@@ -0,0 +1,10 @@
+
+
+
+Speculative parsing, non-speculative (helper file): link-rel-stylesheet-nomatch-media
+
+
+
+
diff --git a/html/syntax/speculative-parsing/generated/resources/link-rel-stylesheet-nonspeculative.sub.html b/html/syntax/speculative-parsing/generated/resources/link-rel-stylesheet-nonspeculative.sub.html
new file mode 100644
index 00000000000000..4aeb803ca373da
--- /dev/null
+++ b/html/syntax/speculative-parsing/generated/resources/link-rel-stylesheet-nonspeculative.sub.html
@@ -0,0 +1,10 @@
+
+
+
+Speculative parsing, non-speculative (helper file): link-rel-stylesheet
+
+
+
+
diff --git a/html/syntax/speculative-parsing/generated/resources/link-rel-stylesheet-referrerpolicy-no-referrer-nonspeculative.sub.html b/html/syntax/speculative-parsing/generated/resources/link-rel-stylesheet-referrerpolicy-no-referrer-nonspeculative.sub.html
new file mode 100644
index 00000000000000..0c79457bdd40cc
--- /dev/null
+++ b/html/syntax/speculative-parsing/generated/resources/link-rel-stylesheet-referrerpolicy-no-referrer-nonspeculative.sub.html
@@ -0,0 +1,10 @@
+
+
+
+Speculative parsing, non-speculative (helper file): link-rel-stylesheet-referrerpolicy-no-referrer
+
+
+
+
diff --git a/html/syntax/speculative-parsing/generated/resources/link-rel-stylesheet-type-text-css-nonspeculative.sub.html b/html/syntax/speculative-parsing/generated/resources/link-rel-stylesheet-type-text-css-nonspeculative.sub.html
new file mode 100644
index 00000000000000..c851eee104a6c8
--- /dev/null
+++ b/html/syntax/speculative-parsing/generated/resources/link-rel-stylesheet-type-text-css-nonspeculative.sub.html
@@ -0,0 +1,10 @@
+
+
+
+Speculative parsing, non-speculative (helper file): link-rel-stylesheet-type-text-css
+
+
+
+
diff --git a/html/syntax/speculative-parsing/generated/resources/link-rel-stylesheet-unsupported-type-nonspeculative.sub.html b/html/syntax/speculative-parsing/generated/resources/link-rel-stylesheet-unsupported-type-nonspeculative.sub.html
new file mode 100644
index 00000000000000..7db5b49cd76d30
--- /dev/null
+++ b/html/syntax/speculative-parsing/generated/resources/link-rel-stylesheet-unsupported-type-nonspeculative.sub.html
@@ -0,0 +1,10 @@
+
+
+
+Speculative parsing, non-speculative (helper file): link-rel-stylesheet-unsupported-type
+
+
+
+
diff --git a/html/syntax/speculative-parsing/generated/resources/math-font-face-script-src-nonspeculative.sub.html b/html/syntax/speculative-parsing/generated/resources/math-font-face-script-src-nonspeculative.sub.html
new file mode 100644
index 00000000000000..1ea61d5a284cac
--- /dev/null
+++ b/html/syntax/speculative-parsing/generated/resources/math-font-face-script-src-nonspeculative.sub.html
@@ -0,0 +1,10 @@
+
+
+
+Speculative parsing, non-speculative (helper file): math-font-face-script-src
+
+
+
+
diff --git a/html/syntax/speculative-parsing/generated/resources/math-font-script-src-nonspeculative.sub.html b/html/syntax/speculative-parsing/generated/resources/math-font-script-src-nonspeculative.sub.html
new file mode 100644
index 00000000000000..d3d6567a4224ce
--- /dev/null
+++ b/html/syntax/speculative-parsing/generated/resources/math-font-script-src-nonspeculative.sub.html
@@ -0,0 +1,10 @@
+
+
+
+Speculative parsing, non-speculative (helper file): math-font-script-src
+
+
+
+
diff --git a/html/syntax/speculative-parsing/generated/resources/math-script-src-nonspeculative.sub.html b/html/syntax/speculative-parsing/generated/resources/math-script-src-nonspeculative.sub.html
new file mode 100644
index 00000000000000..7e27036e46e8fc
--- /dev/null
+++ b/html/syntax/speculative-parsing/generated/resources/math-script-src-nonspeculative.sub.html
@@ -0,0 +1,10 @@
+
+
+
+Speculative parsing, non-speculative (helper file): math-script-src
+
+
+
+
diff --git a/html/syntax/speculative-parsing/generated/resources/meta-charset-script-src-nonspeculative.sub.html b/html/syntax/speculative-parsing/generated/resources/meta-charset-script-src-nonspeculative.sub.html
new file mode 100644
index 00000000000000..2a47f520ae3a4e
--- /dev/null
+++ b/html/syntax/speculative-parsing/generated/resources/meta-charset-script-src-nonspeculative.sub.html
@@ -0,0 +1,20 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+Speculative parsing, non-speculative (helper file): meta-charset-script-src
+
+
+
+
diff --git a/html/syntax/speculative-parsing/generated/resources/meta-csp-img-src-asterisk-nonspeculative.sub.html b/html/syntax/speculative-parsing/generated/resources/meta-csp-img-src-asterisk-nonspeculative.sub.html
new file mode 100644
index 00000000000000..50954c86c3d119
--- /dev/null
+++ b/html/syntax/speculative-parsing/generated/resources/meta-csp-img-src-asterisk-nonspeculative.sub.html
@@ -0,0 +1,10 @@
+
+
+
+Speculative parsing, non-speculative (helper file): meta-csp-img-src-asterisk
+
+
+
+
diff --git a/html/syntax/speculative-parsing/generated/resources/meta-csp-img-src-none-nonspeculative.sub.html b/html/syntax/speculative-parsing/generated/resources/meta-csp-img-src-none-nonspeculative.sub.html
new file mode 100644
index 00000000000000..fe651e834e49b7
--- /dev/null
+++ b/html/syntax/speculative-parsing/generated/resources/meta-csp-img-src-none-nonspeculative.sub.html
@@ -0,0 +1,10 @@
+
+
+
+Speculative parsing, non-speculative (helper file): meta-csp-img-src-none
+
+
+
+
diff --git a/html/syntax/speculative-parsing/generated/resources/meta-referrer-no-referrer-img-src-nonspeculative.sub.html b/html/syntax/speculative-parsing/generated/resources/meta-referrer-no-referrer-img-src-nonspeculative.sub.html
new file mode 100644
index 00000000000000..0e7a13ee3298fc
--- /dev/null
+++ b/html/syntax/speculative-parsing/generated/resources/meta-referrer-no-referrer-img-src-nonspeculative.sub.html
@@ -0,0 +1,10 @@
+
+
+
+Speculative parsing, non-speculative (helper file): meta-referrer-no-referrer-img-src
+
+
+
+
diff --git a/html/syntax/speculative-parsing/generated/resources/meta-viewport-link-stylesheet-media-nonspeculative.sub.html b/html/syntax/speculative-parsing/generated/resources/meta-viewport-link-stylesheet-media-nonspeculative.sub.html
new file mode 100644
index 00000000000000..cb0f992adb4246
--- /dev/null
+++ b/html/syntax/speculative-parsing/generated/resources/meta-viewport-link-stylesheet-media-nonspeculative.sub.html
@@ -0,0 +1,10 @@
+
+
+
+Speculative parsing, non-speculative (helper file): meta-viewport-link-stylesheet-media
+
+
+
+
diff --git a/html/syntax/speculative-parsing/generated/resources/picture-source-br-img-nonspeculative.sub.html b/html/syntax/speculative-parsing/generated/resources/picture-source-br-img-nonspeculative.sub.html
new file mode 100644
index 00000000000000..371600284d07de
--- /dev/null
+++ b/html/syntax/speculative-parsing/generated/resources/picture-source-br-img-nonspeculative.sub.html
@@ -0,0 +1,10 @@
+
+
+
+Speculative parsing, non-speculative (helper file): picture-source-br-img
+
+
+
+
diff --git a/html/syntax/speculative-parsing/generated/resources/picture-source-no-img-nonspeculative.sub.html b/html/syntax/speculative-parsing/generated/resources/picture-source-no-img-nonspeculative.sub.html
new file mode 100644
index 00000000000000..858485acef5fb3
--- /dev/null
+++ b/html/syntax/speculative-parsing/generated/resources/picture-source-no-img-nonspeculative.sub.html
@@ -0,0 +1,10 @@
+
+
+
+Speculative parsing, non-speculative (helper file): picture-source-no-img
+
+
+
+
diff --git a/html/syntax/speculative-parsing/generated/resources/picture-source-nomatch-media-nonspeculative.sub.html b/html/syntax/speculative-parsing/generated/resources/picture-source-nomatch-media-nonspeculative.sub.html
new file mode 100644
index 00000000000000..e4dc1444cee966
--- /dev/null
+++ b/html/syntax/speculative-parsing/generated/resources/picture-source-nomatch-media-nonspeculative.sub.html
@@ -0,0 +1,10 @@
+
+
+
+Speculative parsing, non-speculative (helper file): picture-source-nomatch-media
+
+
+
+
diff --git a/html/syntax/speculative-parsing/generated/resources/picture-source-unsupported-type-nonspeculative.sub.html b/html/syntax/speculative-parsing/generated/resources/picture-source-unsupported-type-nonspeculative.sub.html
new file mode 100644
index 00000000000000..2c7372f1f92f70
--- /dev/null
+++ b/html/syntax/speculative-parsing/generated/resources/picture-source-unsupported-type-nonspeculative.sub.html
@@ -0,0 +1,10 @@
+
+
+
+Speculative parsing, non-speculative (helper file): picture-source-unsupported-type
+
+
+
+
diff --git a/html/syntax/speculative-parsing/generated/resources/script-src-async-nonspeculative.sub.html b/html/syntax/speculative-parsing/generated/resources/script-src-async-nonspeculative.sub.html
new file mode 100644
index 00000000000000..cf8acf5fe027e2
--- /dev/null
+++ b/html/syntax/speculative-parsing/generated/resources/script-src-async-nonspeculative.sub.html
@@ -0,0 +1,10 @@
+
+
+
+Speculative parsing, non-speculative (helper file): script-src-async
+
+
+
+
diff --git a/html/syntax/speculative-parsing/generated/resources/script-src-crossorigin-nonspeculative.sub.html b/html/syntax/speculative-parsing/generated/resources/script-src-crossorigin-nonspeculative.sub.html
new file mode 100644
index 00000000000000..c3e200c0aa4926
--- /dev/null
+++ b/html/syntax/speculative-parsing/generated/resources/script-src-crossorigin-nonspeculative.sub.html
@@ -0,0 +1,10 @@
+
+
+
+Speculative parsing, non-speculative (helper file): script-src-crossorigin
+
+
+
+
diff --git a/html/syntax/speculative-parsing/generated/resources/script-src-defer-nonspeculative.sub.html b/html/syntax/speculative-parsing/generated/resources/script-src-defer-nonspeculative.sub.html
new file mode 100644
index 00000000000000..2bda3229e39403
--- /dev/null
+++ b/html/syntax/speculative-parsing/generated/resources/script-src-defer-nonspeculative.sub.html
@@ -0,0 +1,10 @@
+
+
+
+Speculative parsing, non-speculative (helper file): script-src-defer
+
+
+
+
diff --git a/html/syntax/speculative-parsing/generated/resources/script-src-integrity-nonspeculative.sub.html b/html/syntax/speculative-parsing/generated/resources/script-src-integrity-nonspeculative.sub.html
new file mode 100644
index 00000000000000..a52d956e7bb92d
--- /dev/null
+++ b/html/syntax/speculative-parsing/generated/resources/script-src-integrity-nonspeculative.sub.html
@@ -0,0 +1,10 @@
+
+
+
+Speculative parsing, non-speculative (helper file): script-src-integrity
+
+
+
+
diff --git a/html/syntax/speculative-parsing/generated/resources/script-src-module-nonspeculative.sub.html b/html/syntax/speculative-parsing/generated/resources/script-src-module-nonspeculative.sub.html
new file mode 100644
index 00000000000000..7cb2839621a2d4
--- /dev/null
+++ b/html/syntax/speculative-parsing/generated/resources/script-src-module-nonspeculative.sub.html
@@ -0,0 +1,10 @@
+
+
+
+Speculative parsing, non-speculative (helper file): script-src-module
+
+
+
+
diff --git a/html/syntax/speculative-parsing/generated/resources/script-src-nomodule-nonspeculative.sub.html b/html/syntax/speculative-parsing/generated/resources/script-src-nomodule-nonspeculative.sub.html
new file mode 100644
index 00000000000000..1ffedbb55a55bb
--- /dev/null
+++ b/html/syntax/speculative-parsing/generated/resources/script-src-nomodule-nonspeculative.sub.html
@@ -0,0 +1,10 @@
+
+
+
+Speculative parsing, non-speculative (helper file): script-src-nomodule
+
+
+
+
diff --git a/html/syntax/speculative-parsing/generated/resources/script-src-nonspeculative.sub.html b/html/syntax/speculative-parsing/generated/resources/script-src-nonspeculative.sub.html
new file mode 100644
index 00000000000000..494f854d5e5f12
--- /dev/null
+++ b/html/syntax/speculative-parsing/generated/resources/script-src-nonspeculative.sub.html
@@ -0,0 +1,10 @@
+
+
+
+Speculative parsing, non-speculative (helper file): script-src
+
+
+
+
diff --git a/html/syntax/speculative-parsing/generated/resources/script-src-referrerpolicy-no-referrer-nonspeculative.sub.html b/html/syntax/speculative-parsing/generated/resources/script-src-referrerpolicy-no-referrer-nonspeculative.sub.html
new file mode 100644
index 00000000000000..4581eb03ad4549
--- /dev/null
+++ b/html/syntax/speculative-parsing/generated/resources/script-src-referrerpolicy-no-referrer-nonspeculative.sub.html
@@ -0,0 +1,10 @@
+
+
+
+Speculative parsing, non-speculative (helper file): script-src-referrerpolicy-no-referrer
+
+
+
+
diff --git a/html/syntax/speculative-parsing/generated/resources/script-src-type-application-ecmascript-nonspeculative.sub.html b/html/syntax/speculative-parsing/generated/resources/script-src-type-application-ecmascript-nonspeculative.sub.html
new file mode 100644
index 00000000000000..1746cd2e428a66
--- /dev/null
+++ b/html/syntax/speculative-parsing/generated/resources/script-src-type-application-ecmascript-nonspeculative.sub.html
@@ -0,0 +1,10 @@
+
+
+
+Speculative parsing, non-speculative (helper file): script-src-type-application-ecmascript
+
+
+
+
diff --git a/html/syntax/speculative-parsing/generated/resources/script-src-unsupported-type-nonspeculative.sub.html b/html/syntax/speculative-parsing/generated/resources/script-src-unsupported-type-nonspeculative.sub.html
new file mode 100644
index 00000000000000..94098b5c77539d
--- /dev/null
+++ b/html/syntax/speculative-parsing/generated/resources/script-src-unsupported-type-nonspeculative.sub.html
@@ -0,0 +1,10 @@
+
+
+
+Speculative parsing, non-speculative (helper file): script-src-unsupported-type
+
+
+
+
diff --git a/html/syntax/speculative-parsing/generated/resources/svg-image-href-nonspeculative.sub.html b/html/syntax/speculative-parsing/generated/resources/svg-image-href-nonspeculative.sub.html
new file mode 100644
index 00000000000000..6c61c3208adf41
--- /dev/null
+++ b/html/syntax/speculative-parsing/generated/resources/svg-image-href-nonspeculative.sub.html
@@ -0,0 +1,10 @@
+
+
+
+Speculative parsing, non-speculative (helper file): svg-image-href
+
+
+
+
diff --git a/html/syntax/speculative-parsing/generated/resources/svg-image-src-nonspeculative.sub.html b/html/syntax/speculative-parsing/generated/resources/svg-image-src-nonspeculative.sub.html
new file mode 100644
index 00000000000000..0aba339a168320
--- /dev/null
+++ b/html/syntax/speculative-parsing/generated/resources/svg-image-src-nonspeculative.sub.html
@@ -0,0 +1,10 @@
+
+
+
+Speculative parsing, non-speculative (helper file): svg-image-src
+
+
+
+
diff --git a/html/syntax/speculative-parsing/generated/resources/svg-image-xlinkhref-nonspeculative.sub.html b/html/syntax/speculative-parsing/generated/resources/svg-image-xlinkhref-nonspeculative.sub.html
new file mode 100644
index 00000000000000..c4e9e3f8b7f0df
--- /dev/null
+++ b/html/syntax/speculative-parsing/generated/resources/svg-image-xlinkhref-nonspeculative.sub.html
@@ -0,0 +1,10 @@
+
+
+
+Speculative parsing, non-speculative (helper file): svg-image-xlinkhref
+
+
+
+
diff --git a/html/syntax/speculative-parsing/generated/resources/svg-script-href-nonspeculative.sub.html b/html/syntax/speculative-parsing/generated/resources/svg-script-href-nonspeculative.sub.html
new file mode 100644
index 00000000000000..9a28a6cd12d65e
--- /dev/null
+++ b/html/syntax/speculative-parsing/generated/resources/svg-script-href-nonspeculative.sub.html
@@ -0,0 +1,10 @@
+
+
+
+Speculative parsing, non-speculative (helper file): svg-script-href
+
+
+
+
diff --git a/html/syntax/speculative-parsing/generated/resources/svg-script-src-nonspeculative.sub.html b/html/syntax/speculative-parsing/generated/resources/svg-script-src-nonspeculative.sub.html
new file mode 100644
index 00000000000000..c37091ce3ca9c0
--- /dev/null
+++ b/html/syntax/speculative-parsing/generated/resources/svg-script-src-nonspeculative.sub.html
@@ -0,0 +1,10 @@
+
+
+
+Speculative parsing, non-speculative (helper file): svg-script-src
+
+
+
+
diff --git a/html/syntax/speculative-parsing/generated/resources/svg-script-xlinkhref-nonspeculative.sub.html b/html/syntax/speculative-parsing/generated/resources/svg-script-xlinkhref-nonspeculative.sub.html
new file mode 100644
index 00000000000000..376fafdcf1b9bb
--- /dev/null
+++ b/html/syntax/speculative-parsing/generated/resources/svg-script-xlinkhref-nonspeculative.sub.html
@@ -0,0 +1,10 @@
+
+
+
+Speculative parsing, non-speculative (helper file): svg-script-xlinkhref
+
+
+
+
diff --git a/html/syntax/speculative-parsing/generated/resources/template-script-src-nonspeculative.sub.html b/html/syntax/speculative-parsing/generated/resources/template-script-src-nonspeculative.sub.html
new file mode 100644
index 00000000000000..0ec64a0163a084
--- /dev/null
+++ b/html/syntax/speculative-parsing/generated/resources/template-script-src-nonspeculative.sub.html
@@ -0,0 +1,10 @@
+
+
+
+Speculative parsing, non-speculative (helper file): template-script-src
+
+
+
+
diff --git a/html/syntax/speculative-parsing/generated/resources/video-poster-nonspeculative.sub.html b/html/syntax/speculative-parsing/generated/resources/video-poster-nonspeculative.sub.html
new file mode 100644
index 00000000000000..c233e899cbd45b
--- /dev/null
+++ b/html/syntax/speculative-parsing/generated/resources/video-poster-nonspeculative.sub.html
@@ -0,0 +1,10 @@
+
+
+
+Speculative parsing, non-speculative (helper file): video-poster
+
+
+
+
diff --git a/html/syntax/speculative-parsing/generated/resources/xmp-script-src-nonspeculative.sub.html b/html/syntax/speculative-parsing/generated/resources/xmp-script-src-nonspeculative.sub.html
new file mode 100644
index 00000000000000..e3a93d441db660
--- /dev/null
+++ b/html/syntax/speculative-parsing/generated/resources/xmp-script-src-nonspeculative.sub.html
@@ -0,0 +1,10 @@
+
+
+
+Speculative parsing, non-speculative (helper file): xmp-script-src
+
+
+
+
diff --git a/html/syntax/speculative-parsing/resources/speculative-parsing-util.js b/html/syntax/speculative-parsing/resources/speculative-parsing-util.js
new file mode 100644
index 00000000000000..b675665ca98639
--- /dev/null
+++ b/html/syntax/speculative-parsing/resources/speculative-parsing-util.js
@@ -0,0 +1,58 @@
+function expect_fetched_onload(uuid, expectation) {
+ return new Promise(resolve => {
+ addEventListener('load', resolve);
+ }).then(async () => {
+ const result = await get_result(uuid);
+ if (expectation) {
+ assert_not_equals(result, '', 'speculative case did not fetch');
+ } else {
+ assert_equals(result, '', 'speculative case incorrectly fetched');
+ }
+ return result;
+ });
+}
+
+function compare_with_nonspeculative(uuid, title, test_nonspeculative) {
+ return function(speculative_result) {
+ if (!test_nonspeculative) {
+ return Promise.resolve();
+ }
+ return new Promise(resolve => {
+ const iframe = document.createElement('iframe');
+ iframe.onload = resolve;
+ iframe.src = `../resources/${title}-nonspeculative.sub.html?uuid=${uuid}`;
+ document.body.appendChild(iframe);
+ }).then(async () => {
+ const result = await get_result(uuid);
+ if (speculative_result === '') {
+ assert_equals(result, '', 'non-speculative case incorrectly fetched')
+ } else {
+ assert_not_equals(result, '', 'non-speculative case did not fetch');
+ const speculative_headers = speculative_result.trim().split("\n");
+ const nonspeculative_headers = result.trim().split("\n");
+ assert_equals(speculative_headers.length, nonspeculative_headers.length, 'expected the same number of headers between speculative and non-speculative')
+ for (let i = 0; i < speculative_headers.length; ++i) {
+ let [s_header, s_value] = split_header(speculative_headers[i]);
+ let [ns_header, ns_value] = split_header(nonspeculative_headers[i]);
+ assert_equals(s_header, ns_header, 'expected the order of headers to match between speculative and non-speculative');
+ assert_equals(s_value, ns_value, `expected \`${s_header}\` values to match between speculative and non-speculative`);
+ }
+ }
+ });
+ }
+}
+
+function split_header(line) {
+ let [header, value] = line.split(': ');
+ header = header.toLowerCase();
+ value = value.trim();
+ if (header === 'referer') {
+ value = value.replace(/\/generated\/.+$/, '/generated/...');
+ }
+ return [header, value];
+}
+
+async function get_result(uuid) {
+ const response = await fetch(`/html/syntax/speculative-parsing/resources/stash.py?action=take&uuid=${uuid}`);
+ return await response.text();
+}
diff --git a/html/syntax/speculative-parsing/resources/stash.py b/html/syntax/speculative-parsing/resources/stash.py
new file mode 100755
index 00000000000000..2f33da9ffffd62
--- /dev/null
+++ b/html/syntax/speculative-parsing/resources/stash.py
@@ -0,0 +1,6 @@
+def main(request, response):
+ if request.GET[b"action"] == b"put":
+ encodingcheck = u"param-encodingcheck: " + request.url_parts.query.split(u"&encodingcheck=")[1] + u"\r\n"
+ request.server.stash.put(request.GET[b"uuid"], encodingcheck + str(request.raw_headers))
+ return u''
+ return request.server.stash.take(request.GET[b"uuid"])
diff --git a/html/syntax/speculative-parsing/tools/generate.py b/html/syntax/speculative-parsing/tools/generate.py
new file mode 100755
index 00000000000000..8a7377a28a72dc
--- /dev/null
+++ b/html/syntax/speculative-parsing/tools/generate.py
@@ -0,0 +1,640 @@
+#!/usr/bin/env python3
+
+# Usage: python3 generate.py
+#
+# This will remove all existing files in the generated directories and generate new tests.
+
+
+# Notes on potential confusion with the 3 string substitution features in different layers:
+#
+# - In Python strings when calling .format(): {something} or {}
+# To get a literal {} use {{}}.
+# The template_* variables are ones below are those that will use .format().
+# https://docs.python.org/3/library/string.html#formatstrings
+# - JS template literals: ${something}
+# https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals
+# - wptserve server-side substitution when generating a response: {{GET[something]}}
+# https://web-platform-tests.org/writing-tests/server-pipes.html#sub
+
+import os, shutil
+
+target_dir = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) + "/generated"
+
+delay = u'1500' # Lower value makes the test complete faster, but also higher risk of flaky results
+
+# Test data
+
+tentative_tests = [
+ # title,
+ # encoding,
+ # template_testcase_markup,
+ # template_nonspeculative_testcase_markup (if different from template_testcase_markup),
+ # expect_load,
+ # test_nonspeculative
+ (
+ u'script-src',
+ u'utf-8',
+ u'',
+ None,
+ u'true',
+ u'true'
+ ),
+ (
+ u'meta-charset-script-src',
+ None,
+ u'',
+ u'',
+ u'true',
+ u'true'
+ ),
+ (
+ # This test is only valid on "mobile" where meta viewport has an effect
+ u'meta-viewport-link-stylesheet-media',
+ u'utf-8',
+ u'',
+ None,
+ u'false',
+ u'true'
+ ),
+ (
+ u'meta-csp-img-src-none',
+ u'utf-8',
+ u'',
+ None,
+ u'false',
+ u'true'
+ ),
+ (
+ u'meta-csp-img-src-asterisk',
+ u'utf-8',
+ u'',
+ None,
+ u'true',
+ u'true'
+ ),
+ (
+ u'meta-referrer-no-referrer-img-src',
+ u'utf-8',
+ u'',
+ None,
+ u'true',
+ u'true'
+ ),
+ (
+ u'base-href-script-src',
+ u'utf-8',
+ u'',
+ None,
+ u'true',
+ u'true'
+ ),
+ (
+ u'script-src-unsupported-type',
+ u'utf-8',
+ u'',
+ None,
+ u'false',
+ u'true'
+ ),
+ (
+ u'script-src-type-application-ecmascript',
+ u'utf-8',
+ u'',
+ None,
+ u'true',
+ u'true'
+ ),
+ (
+ u'script-src-nomodule',
+ u'utf-8',
+ u'',
+ None,
+ u'false',
+ u'true'
+ ),
+ (
+ u'script-src-module',
+ u'utf-8',
+ u'',
+ None,
+ u'true',
+ u'true'
+ ),
+ (
+ u'script-src-async',
+ u'utf-8',
+ u'',
+ None,
+ u'true',
+ u'true'
+ ),
+ (
+ u'script-src-defer',
+ u'utf-8',
+ u'',
+ None,
+ u'true',
+ u'true'
+ ),
+ (
+ u'script-src-crossorigin',
+ u'utf-8',
+ u'',
+ None,
+ u'true',
+ u'true'
+ ),
+ (
+ u'script-src-integrity',
+ u'utf-8',
+ u'',
+ None,
+ u'true',
+ u'true'
+ ),
+ (
+ u'script-src-referrerpolicy-no-referrer',
+ u'utf-8',
+ u'',
+ None,
+ u'true',
+ u'true'
+ ),
+ (
+ u'template-script-src',
+ u'utf-8',
+ u'',
+ None,
+ u'false',
+ u'true'
+ ),
+ (
+ u'link-no-rel',
+ u'utf-8',
+ u'',
+ None,
+ u'false',
+ u'true'
+ ),
+ (
+ u'link-rel-stylesheet',
+ u'utf-8',
+ u'',
+ None,
+ u'true',
+ u'true'
+ ),
+ (
+ u'link-rel-alternate-stylesheet',
+ u'utf-8',
+ u'',
+ None,
+ u'false',
+ u'true'
+ ),
+ (
+ u'link-rel-stylesheet-disabled',
+ u'utf-8',
+ u'',
+ None,
+ u'false',
+ u'true'
+ ),
+ (
+ u'link-rel-stylesheet-nomatch-media',
+ u'utf-8',
+ u'',
+ None,
+ u'false',
+ u'true'
+ ),
+ (
+ u'link-rel-stylesheet-unsupported-type',
+ u'utf-8',
+ u'',
+ None,
+ u'false',
+ u'true'
+ ),
+ (
+ u'link-rel-stylesheet-type-text-css',
+ u'utf-8',
+ u'',
+ None,
+ u'true',
+ u'true'
+ ),
+ (
+ u'link-rel-stylesheet-crossorigin',
+ u'utf-8',
+ u'',
+ None,
+ u'true',
+ u'true'
+ ),
+ (
+ u'link-rel-stylesheet-integrity',
+ u'utf-8',
+ u'',
+ None,
+ u'true',
+ u'true'
+ ),
+ (
+ u'link-rel-stylesheet-referrerpolicy-no-referrer',
+ u'utf-8',
+ u'',
+ None,
+ u'true',
+ u'true'
+ ),
+ (
+ u'link-rel-preload-as-style',
+ u'utf-8',
+ u'',
+ None,
+ u'true',
+ u'true'
+ ),
+ (
+ u'link-rel-preload-as-font-crossorigin',
+ u'utf-8',
+ u'',
+ None,
+ u'true',
+ u'true'
+ ),
+ (
+ u'link-rel-preload-as-script',
+ u'utf-8',
+ u'',
+ None,
+ u'true',
+ u'true'
+ ),
+ (
+ u'link-rel-preload-as-image',
+ u'utf-8',
+ u'',
+ None,
+ u'true',
+ u'true'
+ ),
+ (
+ u'img-src',
+ u'utf-8',
+ u'',
+ None,
+ u'true',
+ u'true'
+ ),
+ (
+ u'img-data-src',
+ u'utf-8',
+ u'',
+ None,
+ u'false',
+ u'true'
+ ),
+ (
+ # is turned into in the tree builder
+ u'image-src',
+ u'utf-8',
+ u'',
+ None,
+ u'true',
+ u'true'
+ ),
+ (
+ u'img-srcset',
+ u'utf-8',
+ u'',
+ None,
+ u'true',
+ u'true'
+ ),
+ (
+ u'img-src-crossorigin',
+ u'utf-8',
+ u'',
+ None,
+ u'true',
+ u'true'
+ ),
+ (
+ u'img-src-referrerpolicy-no-referrer',
+ u'utf-8',
+ u'',
+ None,
+ u'true',
+ u'true'
+ ),
+ (
+ u'img-src-loading-lazy',
+ u'utf-8',
+ u'',
+ None,
+ u'false',
+ u'false'
+ ),
+ (
+ u'picture-source-unsupported-type',
+ u'utf-8',
+ u'',
+ None,
+ u'false',
+ u'true'
+ ),
+ (
+ u'picture-source-nomatch-media',
+ u'utf-8',
+ u'',
+ None,
+ u'false',
+ u'true'
+ ),
+ (
+ u'picture-source-no-img',
+ u'utf-8',
+ u'',
+ None,
+ u'false',
+ u'true'
+ ),
+ (
+ u'picture-source-br-img',
+ u'utf-8',
+ u'',
+ None,
+ u'true',
+ u'true'
+ ),
+ (
+ u'video-poster',
+ u'utf-8',
+ u'',
+ None,
+ u'true',
+ u'true'
+ ),
+ (
+ u'xmp-script-src',
+ u'utf-8',
+ u'',
+ None,
+ u'false',
+ u'true'
+ ),
+ (
+ # MathML doesn't have script
+ u'math-script-src',
+ u'utf-8',
+ u'',
+ None,
+ u'false',
+ u'true'
+ ),
+ (
+ u'math-font-script-src',
+ u'utf-8',
+ u'',
+ None,
+ u'false',
+ u'true'
+ ),
+ (
+ # This breaks out of foreign content, so the script is an HTML script
+ # https://html.spec.whatwg.org/multipage/#parsing-main-inforeign
+ u'math-font-face-script-src',
+ u'utf-8',
+ u'',
+ None,
+ u'true',
+ u'true'
+ ),
+ (
+ u'svg-script-href',
+ u'utf-8',
+ u'',
+ None,
+ u'true',
+ u'true'
+ ),
+ (
+ u'svg-script-xlinkhref',
+ u'utf-8',
+ u'',
+ None,
+ u'true',
+ u'true'
+ ),
+ (
+ # SVG script element doesn't have a src attribute
+ u'svg-script-src',
+ u'utf-8',
+ u'',
+ None,
+ u'false',
+ u'true'
+ ),
+ (
+ u'svg-image-href',
+ u'utf-8',
+ u'',
+ None,
+ u'true',
+ u'true'
+ ),
+ (
+ u'svg-image-xlinkhref',
+ u'utf-8',
+ u'',
+ None,
+ u'true',
+ u'true'
+ ),
+ (
+ # SVG image element doesn't have a src attribute
+ u'svg-image-src',
+ u'utf-8',
+ u'',
+ None,
+ u'false',
+ u'true'
+ ),
+]
+
+tests = [
+ # title,
+ # encoding,
+ # template_testcase_markup,
+ # expect_load,
+ # test_nonspeculative
+]
+
+# Templates
+
+preamble = u"""
+"""
+
+no_meta_charset = u"""
+
+
+
+
+
+
+
+
+
+"""
+
+# Notes on `encodingcheck` in the URL below
+#
+# - Ğ is the HTML character reference for U+011E LATIN CAPITAL LETTER G WITH BREVE
+# - In windows-1254, this character is encoded as 0xD0.
+# When used in the query part of a URL, it gets percent-encoded as %D0.
+# - In windows-1252 (usually the fallback encoding), that character can't be encoded, so is instead
+# represented as Ğ percent-encoded, so %26%23286%3B.
+# https://url.spec.whatwg.org/#query-state
+# https://url.spec.whatwg.org/#code-point-percent-encode-after-encoding
+# - In utf-8, it's percent-encoded as utf-8: %C4%9E
+# - stash.py will store this value as "param-encodingcheck"
+
+url_wptserve_sub = u"/html/syntax/speculative-parsing/resources/stash.py?action=put&uuid={{GET[uuid]}}&encodingcheck=Ğ"
+url_js_sub = u"/html/syntax/speculative-parsing/resources/stash.py?action=put&uuid=${uuid}&encodingcheck=Ğ"
+
+
+# Non-speculative (normal) case to compare results with
+
+template_nonspeculative = u"""{preamble}
+{encoding_decl}
+Speculative parsing, non-speculative (helper file): {title}
+
+{nonspeculative_testcase_markup}
+
+
+"""
+
+# Scenario: page load
+
+template_pageload_toplevel = u"""{preamble}
+{encoding_decl}
+Speculative parsing, page load: {title}
+
+
+
+
+
+
+"""
+
+template_pageload_framed = u"""{preamble}
+{encoding_decl}
+Speculative parsing, page load (helper file): {title}
+
+
+
+{testcase_markup}
+"""
+
+# Scenario: document.write()
+
+template_docwrite = u"""{preamble}
+{encoding_decl}
+Speculative parsing, document.write(): {title}
+
+
+
+
+
+"""
+
+# Scenario: - TODO(zcorpan)
+
+template_prerender_toplevel = u"""{preamble}
+{encoding_decl}
+Speculative parsing, prerender: {title}
+...
+"""
+
+template_prerender_linked = u"""{preamble}
+{encoding_decl}
+Speculative parsing, prerender (helper file): {title}
+...
+"""
+
+# Generate tests
+
+# wipe target_dir
+if os.path.isdir(target_dir):
+ shutil.rmtree(target_dir)
+
+def write_file(path, content):
+ path = os.path.join(target_dir, path)
+ os.makedirs(os.path.dirname(path), exist_ok=True)
+ file = open(os.path.join(target_dir, path), 'w')
+ file.write(content)
+ file.close()
+
+def generate_tests(testcase, tentative):
+ title, encoding, template_testcase_markup, template_nonspeculative_testcase_markup, expect_load, test_nonspeculative = testcase
+ if template_nonspeculative_testcase_markup == None:
+ template_nonspeculative_testcase_markup = template_testcase_markup
+ ext = u""
+ if tentative:
+ ext = u".tentative"
+
+ if encoding == None:
+ encoding_decl = no_meta_charset
+ else:
+ encoding_decl = f""
+
+ html_testcase_markup = template_testcase_markup.format(url_wptserve_sub)
+ html_nonspeculative_testcase_markup = template_nonspeculative_testcase_markup.format(url_wptserve_sub)
+ js_testcase_markup = template_testcase_markup.format(url_js_sub).replace(u"", u"<\/script>").replace(u"