diff --git a/testing/web-platform/tests/html/syntax/speculative-parsing/expect-no-linked-resources/no-speculative-fetch.tentative.optional.html b/testing/web-platform/tests/html/syntax/speculative-parsing/expect-no-linked-resources/no-speculative-fetch.tentative.optional.html
new file mode 100644
index 000000000000..c35b4e7c8312
--- /dev/null
+++ b/testing/web-platform/tests/html/syntax/speculative-parsing/expect-no-linked-resources/no-speculative-fetch.tentative.optional.html
@@ -0,0 +1,331 @@
+<
+!
+DOCTYPE
+html
+>
+<
+meta
+charset
+=
+utf
+-
+8
+>
+<
+title
+>
+Speculative
+parsing
+expect
+-
+no
+-
+linked
+-
+resources
+Document
+-
+Policy
+<
+/
+title
+>
+<
+meta
+name
+=
+"
+timeout
+"
+content
+=
+"
+long
+"
+>
+<
+script
+src
+=
+/
+resources
+/
+testharness
+.
+js
+>
+<
+/
+script
+>
+<
+script
+src
+=
+/
+resources
+/
+testharnessreport
+.
+js
+>
+<
+/
+script
+>
+<
+script
+src
+=
+"
+/
+resources
+/
+testdriver
+.
+js
+"
+>
+<
+/
+script
+>
+<
+script
+src
+=
+"
+/
+resources
+/
+testdriver
+-
+vendor
+.
+js
+"
+>
+<
+/
+script
+>
+<
+script
+src
+=
+"
+/
+common
+/
+utils
+.
+js
+"
+>
+<
+/
+script
+>
+<
+script
+>
+async
+function
+get_results
+(
+uuid
+)
+{
+const
+response
+=
+await
+fetch
+(
+/
+html
+/
+syntax
+/
+speculative
+-
+parsing
+/
+expect
+-
+no
+-
+linked
+-
+resources
+/
+resources
+/
+stash
+.
+py
+?
+action
+=
+get
+&
+uuid
+=
+{
+uuid
+}
+)
+;
+return
+await
+response
+.
+text
+(
+)
+;
+}
+promise_test
+(
+async
+(
+)
+=
+>
+{
+const
+uuid
+=
+token
+(
+)
+;
+await
+test_driver
+.
+bless
+(
+'
+Open
+a
+URL
+with
+expect
+-
+no
+-
+linked
+-
+resources
+Document
+-
+Policy
+'
+)
+;
+const
+popup
+=
+window
+.
+open
+(
+/
+html
+/
+syntax
+/
+speculative
+-
+parsing
+/
+expect
+-
+no
+-
+linked
+-
+resources
+/
+resources
+/
+no
+-
+speculative
+-
+fetch
+.
+sub
+.
+html
+?
+pipe
+=
+sub
+&
+uuid
+=
+{
+uuid
+}
+'
+_blank
+'
+)
+;
+await
+new
+Promise
+(
+resolve
+=
+>
+popup
+.
+addEventListener
+(
+'
+load
+'
+resolve
+)
+)
+;
+const
+result
+=
+await
+get_results
+(
+uuid
+)
+;
+assert_equals
+(
+result
+'
+'
+'
+speculative
+case
+fetched
+'
+)
+;
+}
+expect
+-
+no
+-
+linked
+-
+resources
+hint
+was
+ignored
+)
+;
+<
+/
+script
+>
diff --git a/testing/web-platform/tests/html/syntax/speculative-parsing/expect-no-linked-resources/resources/no-speculative-fetch.sub.html b/testing/web-platform/tests/html/syntax/speculative-parsing/expect-no-linked-resources/resources/no-speculative-fetch.sub.html
new file mode 100644
index 000000000000..3c86f3040438
--- /dev/null
+++ b/testing/web-platform/tests/html/syntax/speculative-parsing/expect-no-linked-resources/resources/no-speculative-fetch.sub.html
@@ -0,0 +1,93 @@
+<
+!
+doctype
+html
+>
+<
+title
+>
+Navigating
+to
+a
+page
+with
+expect
+-
+no
+-
+linked
+-
+resources
+<
+/
+title
+>
+<
+body
+>
+<
+script
+>
+document
+.
+write
+(
+'
+<
+plaintext
+>
+'
+)
+;
+<
+/
+script
+>
+<
+img
+src
+=
+"
+/
+html
+/
+syntax
+/
+speculative
+-
+parsing
+/
+expect
+-
+no
+-
+linked
+-
+resources
+/
+resources
+/
+stash
+.
+py
+?
+action
+=
+put
+&
+uuid
+=
+{
+{
+GET
+[
+uuid
+]
+}
+}
+"
+>
+<
+/
+body
+>
diff --git a/testing/web-platform/tests/html/syntax/speculative-parsing/expect-no-linked-resources/resources/no-speculative-fetch.sub.html.headers b/testing/web-platform/tests/html/syntax/speculative-parsing/expect-no-linked-resources/resources/no-speculative-fetch.sub.html.headers
new file mode 100644
index 000000000000..c6d0e407813a
--- /dev/null
+++ b/testing/web-platform/tests/html/syntax/speculative-parsing/expect-no-linked-resources/resources/no-speculative-fetch.sub.html.headers
@@ -0,0 +1,11 @@
+Document
+-
+Policy
+:
+expect
+-
+no
+-
+linked
+-
+resources
diff --git a/testing/web-platform/tests/html/syntax/speculative-parsing/expect-no-linked-resources/resources/stash.py b/testing/web-platform/tests/html/syntax/speculative-parsing/expect-no-linked-resources/resources/stash.py
new file mode 100644
index 000000000000..1273feb48d0b
--- /dev/null
+++ b/testing/web-platform/tests/html/syntax/speculative-parsing/expect-no-linked-resources/resources/stash.py
@@ -0,0 +1,112 @@
+import
+time
+def
+main
+(
+request
+response
+)
+:
+
+if
+request
+.
+GET
+[
+b
+"
+action
+"
+]
+=
+=
+b
+"
+put
+"
+:
+
+request
+.
+server
+.
+stash
+.
+put
+(
+request
+.
+GET
+[
+b
+"
+uuid
+"
+]
+request
+.
+GET
+[
+b
+"
+uuid
+"
+]
+u
+'
+/
+expect
+-
+no
+-
+linked
+-
+resources
+/
+'
+)
+
+return
+u
+"
+ok
+"
+
+else
+:
+
+value
+=
+request
+.
+server
+.
+stash
+.
+take
+(
+request
+.
+GET
+[
+b
+"
+uuid
+"
+]
+u
+'
+/
+expect
+-
+no
+-
+linked
+-
+resources
+/
+'
+)
+
+return
+value