summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/html/dom/render-blocking
diff options
context:
space:
mode:
Diffstat (limited to 'testing/web-platform/tests/html/dom/render-blocking')
-rw-r--r--testing/web-platform/tests/html/dom/render-blocking/element-render-blocking-001.html (renamed from testing/web-platform/tests/html/dom/render-blocking/element-render-blocking-001.tentative.html)0
-rw-r--r--testing/web-platform/tests/html/dom/render-blocking/element-render-blocking-002.html (renamed from testing/web-platform/tests/html/dom/render-blocking/element-render-blocking-002.tentative.html)0
-rw-r--r--testing/web-platform/tests/html/dom/render-blocking/element-render-blocking-003.html (renamed from testing/web-platform/tests/html/dom/render-blocking/element-render-blocking-003.tentative.html)0
-rw-r--r--testing/web-platform/tests/html/dom/render-blocking/element-render-blocking-004.html (renamed from testing/web-platform/tests/html/dom/render-blocking/element-render-blocking-004.tentative.html)0
-rw-r--r--testing/web-platform/tests/html/dom/render-blocking/element-render-blocking-005.html (renamed from testing/web-platform/tests/html/dom/render-blocking/element-render-blocking-005.tentative.html)0
-rw-r--r--testing/web-platform/tests/html/dom/render-blocking/element-render-blocking-006.html (renamed from testing/web-platform/tests/html/dom/render-blocking/element-render-blocking-006.tentative.html)0
-rw-r--r--testing/web-platform/tests/html/dom/render-blocking/element-render-blocking-007.html (renamed from testing/web-platform/tests/html/dom/render-blocking/element-render-blocking-007.tentative.html)0
-rw-r--r--testing/web-platform/tests/html/dom/render-blocking/element-render-blocking-008.html (renamed from testing/web-platform/tests/html/dom/render-blocking/element-render-blocking-008.tentative.html)0
-rw-r--r--testing/web-platform/tests/html/dom/render-blocking/element-render-blocking-009.html (renamed from testing/web-platform/tests/html/dom/render-blocking/element-render-blocking-009.tentative.html)0
-rw-r--r--testing/web-platform/tests/html/dom/render-blocking/element-render-blocking-010.html (renamed from testing/web-platform/tests/html/dom/render-blocking/element-render-blocking-010.tentative.html)0
-rw-r--r--testing/web-platform/tests/html/dom/render-blocking/element-render-blocking-011.html (renamed from testing/web-platform/tests/html/dom/render-blocking/element-render-blocking-011.tentative.html)0
-rw-r--r--testing/web-platform/tests/html/dom/render-blocking/element-render-blocking-012.html (renamed from testing/web-platform/tests/html/dom/render-blocking/element-render-blocking-012.tentative.html)0
-rw-r--r--testing/web-platform/tests/html/dom/render-blocking/element-render-blocking-013.html (renamed from testing/web-platform/tests/html/dom/render-blocking/element-render-blocking-013.tentative.html)0
-rw-r--r--testing/web-platform/tests/html/dom/render-blocking/element-render-blocking-014.html (renamed from testing/web-platform/tests/html/dom/render-blocking/element-render-blocking-014.tentative.html)0
-rw-r--r--testing/web-platform/tests/html/dom/render-blocking/element-render-blocking-015.html (renamed from testing/web-platform/tests/html/dom/render-blocking/element-render-blocking-015.tentative.html)0
-rw-r--r--testing/web-platform/tests/html/dom/render-blocking/element-render-blocking-016.html (renamed from testing/web-platform/tests/html/dom/render-blocking/element-render-blocking-016.tentative.html)0
-rw-r--r--testing/web-platform/tests/html/dom/render-blocking/element-render-blocking-017.html (renamed from testing/web-platform/tests/html/dom/render-blocking/element-render-blocking-017.tentative.html)0
-rw-r--r--testing/web-platform/tests/html/dom/render-blocking/element-render-blocking-018.html (renamed from testing/web-platform/tests/html/dom/render-blocking/element-render-blocking-018.tentative.html)0
-rw-r--r--testing/web-platform/tests/html/dom/render-blocking/element-render-blocking-019.html (renamed from testing/web-platform/tests/html/dom/render-blocking/element-render-blocking-019.tentative.html)0
-rw-r--r--testing/web-platform/tests/html/dom/render-blocking/element-render-blocking-020.html (renamed from testing/web-platform/tests/html/dom/render-blocking/element-render-blocking-020.tentative.html)0
-rw-r--r--testing/web-platform/tests/html/dom/render-blocking/element-render-blocking-021.html (renamed from testing/web-platform/tests/html/dom/render-blocking/element-render-blocking-021.tentative.html)0
-rw-r--r--testing/web-platform/tests/html/dom/render-blocking/element-render-blocking-022.html (renamed from testing/web-platform/tests/html/dom/render-blocking/element-render-blocking-022.tentative.html)0
-rw-r--r--testing/web-platform/tests/html/dom/render-blocking/element-render-blocking-023.html (renamed from testing/web-platform/tests/html/dom/render-blocking/element-render-blocking-023.tentative.html)0
-rw-r--r--testing/web-platform/tests/html/dom/render-blocking/element-render-blocking-024.html (renamed from testing/web-platform/tests/html/dom/render-blocking/element-render-blocking-024.tentative.html)0
-rw-r--r--testing/web-platform/tests/html/dom/render-blocking/element-render-blocking-025.html (renamed from testing/web-platform/tests/html/dom/render-blocking/element-render-blocking-025.tentative.html)0
-rw-r--r--testing/web-platform/tests/html/dom/render-blocking/element-render-blocking-026.html (renamed from testing/web-platform/tests/html/dom/render-blocking/element-render-blocking-026.tentative.html)0
-rw-r--r--testing/web-platform/tests/html/dom/render-blocking/element-render-blocking-027.html (renamed from testing/web-platform/tests/html/dom/render-blocking/element-render-blocking-027.tentative.html)0
-rw-r--r--testing/web-platform/tests/html/dom/render-blocking/element-render-blocking-028.html (renamed from testing/web-platform/tests/html/dom/render-blocking/element-render-blocking-028.tentative.html)0
-rw-r--r--testing/web-platform/tests/html/dom/render-blocking/element-render-blocking-029.html29
-rw-r--r--testing/web-platform/tests/html/dom/render-blocking/element-render-blocking-030.html34
-rw-r--r--testing/web-platform/tests/html/dom/render-blocking/element-render-blocking-031.html32
-rw-r--r--testing/web-platform/tests/html/dom/render-blocking/element-render-blocking-032.html34
-rw-r--r--testing/web-platform/tests/html/dom/render-blocking/element-render-blocking-033.html30
-rw-r--r--testing/web-platform/tests/html/dom/render-blocking/element-render-blocking-034.html30
-rw-r--r--testing/web-platform/tests/html/dom/render-blocking/element-render-blocking-035.html31
-rw-r--r--testing/web-platform/tests/html/dom/render-blocking/element-render-blocking-036.html31
-rw-r--r--testing/web-platform/tests/html/dom/render-blocking/element-render-blocking-037.html31
-rw-r--r--testing/web-platform/tests/html/dom/render-blocking/element-render-blocking-038.html35
38 files changed, 317 insertions, 0 deletions
diff --git a/testing/web-platform/tests/html/dom/render-blocking/element-render-blocking-001.tentative.html b/testing/web-platform/tests/html/dom/render-blocking/element-render-blocking-001.html
index 36567f9d54..36567f9d54 100644
--- a/testing/web-platform/tests/html/dom/render-blocking/element-render-blocking-001.tentative.html
+++ b/testing/web-platform/tests/html/dom/render-blocking/element-render-blocking-001.html
diff --git a/testing/web-platform/tests/html/dom/render-blocking/element-render-blocking-002.tentative.html b/testing/web-platform/tests/html/dom/render-blocking/element-render-blocking-002.html
index 3c907597f7..3c907597f7 100644
--- a/testing/web-platform/tests/html/dom/render-blocking/element-render-blocking-002.tentative.html
+++ b/testing/web-platform/tests/html/dom/render-blocking/element-render-blocking-002.html
diff --git a/testing/web-platform/tests/html/dom/render-blocking/element-render-blocking-003.tentative.html b/testing/web-platform/tests/html/dom/render-blocking/element-render-blocking-003.html
index 2858798a35..2858798a35 100644
--- a/testing/web-platform/tests/html/dom/render-blocking/element-render-blocking-003.tentative.html
+++ b/testing/web-platform/tests/html/dom/render-blocking/element-render-blocking-003.html
diff --git a/testing/web-platform/tests/html/dom/render-blocking/element-render-blocking-004.tentative.html b/testing/web-platform/tests/html/dom/render-blocking/element-render-blocking-004.html
index f45f558720..f45f558720 100644
--- a/testing/web-platform/tests/html/dom/render-blocking/element-render-blocking-004.tentative.html
+++ b/testing/web-platform/tests/html/dom/render-blocking/element-render-blocking-004.html
diff --git a/testing/web-platform/tests/html/dom/render-blocking/element-render-blocking-005.tentative.html b/testing/web-platform/tests/html/dom/render-blocking/element-render-blocking-005.html
index 098a3c5767..098a3c5767 100644
--- a/testing/web-platform/tests/html/dom/render-blocking/element-render-blocking-005.tentative.html
+++ b/testing/web-platform/tests/html/dom/render-blocking/element-render-blocking-005.html
diff --git a/testing/web-platform/tests/html/dom/render-blocking/element-render-blocking-006.tentative.html b/testing/web-platform/tests/html/dom/render-blocking/element-render-blocking-006.html
index 223e42109e..223e42109e 100644
--- a/testing/web-platform/tests/html/dom/render-blocking/element-render-blocking-006.tentative.html
+++ b/testing/web-platform/tests/html/dom/render-blocking/element-render-blocking-006.html
diff --git a/testing/web-platform/tests/html/dom/render-blocking/element-render-blocking-007.tentative.html b/testing/web-platform/tests/html/dom/render-blocking/element-render-blocking-007.html
index 9aa0aeea79..9aa0aeea79 100644
--- a/testing/web-platform/tests/html/dom/render-blocking/element-render-blocking-007.tentative.html
+++ b/testing/web-platform/tests/html/dom/render-blocking/element-render-blocking-007.html
diff --git a/testing/web-platform/tests/html/dom/render-blocking/element-render-blocking-008.tentative.html b/testing/web-platform/tests/html/dom/render-blocking/element-render-blocking-008.html
index e671dda19c..e671dda19c 100644
--- a/testing/web-platform/tests/html/dom/render-blocking/element-render-blocking-008.tentative.html
+++ b/testing/web-platform/tests/html/dom/render-blocking/element-render-blocking-008.html
diff --git a/testing/web-platform/tests/html/dom/render-blocking/element-render-blocking-009.tentative.html b/testing/web-platform/tests/html/dom/render-blocking/element-render-blocking-009.html
index 8498816ea5..8498816ea5 100644
--- a/testing/web-platform/tests/html/dom/render-blocking/element-render-blocking-009.tentative.html
+++ b/testing/web-platform/tests/html/dom/render-blocking/element-render-blocking-009.html
diff --git a/testing/web-platform/tests/html/dom/render-blocking/element-render-blocking-010.tentative.html b/testing/web-platform/tests/html/dom/render-blocking/element-render-blocking-010.html
index ef6f709012..ef6f709012 100644
--- a/testing/web-platform/tests/html/dom/render-blocking/element-render-blocking-010.tentative.html
+++ b/testing/web-platform/tests/html/dom/render-blocking/element-render-blocking-010.html
diff --git a/testing/web-platform/tests/html/dom/render-blocking/element-render-blocking-011.tentative.html b/testing/web-platform/tests/html/dom/render-blocking/element-render-blocking-011.html
index dee82d8c59..dee82d8c59 100644
--- a/testing/web-platform/tests/html/dom/render-blocking/element-render-blocking-011.tentative.html
+++ b/testing/web-platform/tests/html/dom/render-blocking/element-render-blocking-011.html
diff --git a/testing/web-platform/tests/html/dom/render-blocking/element-render-blocking-012.tentative.html b/testing/web-platform/tests/html/dom/render-blocking/element-render-blocking-012.html
index 4110e54c5f..4110e54c5f 100644
--- a/testing/web-platform/tests/html/dom/render-blocking/element-render-blocking-012.tentative.html
+++ b/testing/web-platform/tests/html/dom/render-blocking/element-render-blocking-012.html
diff --git a/testing/web-platform/tests/html/dom/render-blocking/element-render-blocking-013.tentative.html b/testing/web-platform/tests/html/dom/render-blocking/element-render-blocking-013.html
index ecd97be86a..ecd97be86a 100644
--- a/testing/web-platform/tests/html/dom/render-blocking/element-render-blocking-013.tentative.html
+++ b/testing/web-platform/tests/html/dom/render-blocking/element-render-blocking-013.html
diff --git a/testing/web-platform/tests/html/dom/render-blocking/element-render-blocking-014.tentative.html b/testing/web-platform/tests/html/dom/render-blocking/element-render-blocking-014.html
index ea8948de42..ea8948de42 100644
--- a/testing/web-platform/tests/html/dom/render-blocking/element-render-blocking-014.tentative.html
+++ b/testing/web-platform/tests/html/dom/render-blocking/element-render-blocking-014.html
diff --git a/testing/web-platform/tests/html/dom/render-blocking/element-render-blocking-015.tentative.html b/testing/web-platform/tests/html/dom/render-blocking/element-render-blocking-015.html
index a775ee4174..a775ee4174 100644
--- a/testing/web-platform/tests/html/dom/render-blocking/element-render-blocking-015.tentative.html
+++ b/testing/web-platform/tests/html/dom/render-blocking/element-render-blocking-015.html
diff --git a/testing/web-platform/tests/html/dom/render-blocking/element-render-blocking-016.tentative.html b/testing/web-platform/tests/html/dom/render-blocking/element-render-blocking-016.html
index 8968c5dacd..8968c5dacd 100644
--- a/testing/web-platform/tests/html/dom/render-blocking/element-render-blocking-016.tentative.html
+++ b/testing/web-platform/tests/html/dom/render-blocking/element-render-blocking-016.html
diff --git a/testing/web-platform/tests/html/dom/render-blocking/element-render-blocking-017.tentative.html b/testing/web-platform/tests/html/dom/render-blocking/element-render-blocking-017.html
index 2d3b574721..2d3b574721 100644
--- a/testing/web-platform/tests/html/dom/render-blocking/element-render-blocking-017.tentative.html
+++ b/testing/web-platform/tests/html/dom/render-blocking/element-render-blocking-017.html
diff --git a/testing/web-platform/tests/html/dom/render-blocking/element-render-blocking-018.tentative.html b/testing/web-platform/tests/html/dom/render-blocking/element-render-blocking-018.html
index 76e6394b5b..76e6394b5b 100644
--- a/testing/web-platform/tests/html/dom/render-blocking/element-render-blocking-018.tentative.html
+++ b/testing/web-platform/tests/html/dom/render-blocking/element-render-blocking-018.html
diff --git a/testing/web-platform/tests/html/dom/render-blocking/element-render-blocking-019.tentative.html b/testing/web-platform/tests/html/dom/render-blocking/element-render-blocking-019.html
index 80a7019edc..80a7019edc 100644
--- a/testing/web-platform/tests/html/dom/render-blocking/element-render-blocking-019.tentative.html
+++ b/testing/web-platform/tests/html/dom/render-blocking/element-render-blocking-019.html
diff --git a/testing/web-platform/tests/html/dom/render-blocking/element-render-blocking-020.tentative.html b/testing/web-platform/tests/html/dom/render-blocking/element-render-blocking-020.html
index 10019c943f..10019c943f 100644
--- a/testing/web-platform/tests/html/dom/render-blocking/element-render-blocking-020.tentative.html
+++ b/testing/web-platform/tests/html/dom/render-blocking/element-render-blocking-020.html
diff --git a/testing/web-platform/tests/html/dom/render-blocking/element-render-blocking-021.tentative.html b/testing/web-platform/tests/html/dom/render-blocking/element-render-blocking-021.html
index 1ca2114689..1ca2114689 100644
--- a/testing/web-platform/tests/html/dom/render-blocking/element-render-blocking-021.tentative.html
+++ b/testing/web-platform/tests/html/dom/render-blocking/element-render-blocking-021.html
diff --git a/testing/web-platform/tests/html/dom/render-blocking/element-render-blocking-022.tentative.html b/testing/web-platform/tests/html/dom/render-blocking/element-render-blocking-022.html
index 5dfbcac30a..5dfbcac30a 100644
--- a/testing/web-platform/tests/html/dom/render-blocking/element-render-blocking-022.tentative.html
+++ b/testing/web-platform/tests/html/dom/render-blocking/element-render-blocking-022.html
diff --git a/testing/web-platform/tests/html/dom/render-blocking/element-render-blocking-023.tentative.html b/testing/web-platform/tests/html/dom/render-blocking/element-render-blocking-023.html
index 8fe8b6a8c8..8fe8b6a8c8 100644
--- a/testing/web-platform/tests/html/dom/render-blocking/element-render-blocking-023.tentative.html
+++ b/testing/web-platform/tests/html/dom/render-blocking/element-render-blocking-023.html
diff --git a/testing/web-platform/tests/html/dom/render-blocking/element-render-blocking-024.tentative.html b/testing/web-platform/tests/html/dom/render-blocking/element-render-blocking-024.html
index 19e4020fb7..19e4020fb7 100644
--- a/testing/web-platform/tests/html/dom/render-blocking/element-render-blocking-024.tentative.html
+++ b/testing/web-platform/tests/html/dom/render-blocking/element-render-blocking-024.html
diff --git a/testing/web-platform/tests/html/dom/render-blocking/element-render-blocking-025.tentative.html b/testing/web-platform/tests/html/dom/render-blocking/element-render-blocking-025.html
index 689ae69f45..689ae69f45 100644
--- a/testing/web-platform/tests/html/dom/render-blocking/element-render-blocking-025.tentative.html
+++ b/testing/web-platform/tests/html/dom/render-blocking/element-render-blocking-025.html
diff --git a/testing/web-platform/tests/html/dom/render-blocking/element-render-blocking-026.tentative.html b/testing/web-platform/tests/html/dom/render-blocking/element-render-blocking-026.html
index 6abfc43b8b..6abfc43b8b 100644
--- a/testing/web-platform/tests/html/dom/render-blocking/element-render-blocking-026.tentative.html
+++ b/testing/web-platform/tests/html/dom/render-blocking/element-render-blocking-026.html
diff --git a/testing/web-platform/tests/html/dom/render-blocking/element-render-blocking-027.tentative.html b/testing/web-platform/tests/html/dom/render-blocking/element-render-blocking-027.html
index 56f88e0fc2..56f88e0fc2 100644
--- a/testing/web-platform/tests/html/dom/render-blocking/element-render-blocking-027.tentative.html
+++ b/testing/web-platform/tests/html/dom/render-blocking/element-render-blocking-027.html
diff --git a/testing/web-platform/tests/html/dom/render-blocking/element-render-blocking-028.tentative.html b/testing/web-platform/tests/html/dom/render-blocking/element-render-blocking-028.html
index a64d542c4a..a64d542c4a 100644
--- a/testing/web-platform/tests/html/dom/render-blocking/element-render-blocking-028.tentative.html
+++ b/testing/web-platform/tests/html/dom/render-blocking/element-render-blocking-028.html
diff --git a/testing/web-platform/tests/html/dom/render-blocking/element-render-blocking-029.html b/testing/web-platform/tests/html/dom/render-blocking/element-render-blocking-029.html
new file mode 100644
index 0000000000..44dff3cb84
--- /dev/null
+++ b/testing/web-platform/tests/html/dom/render-blocking/element-render-blocking-029.html
@@ -0,0 +1,29 @@
+<!DOCTYPE html>
+<head>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="support/utils.js"></script>
+<title>`link rel=expect` supports &lt;a name&gt;</title>
+
+<link rel=expect href="#second" blocking="render">
+<script>
+async_test((t) => {
+ requestAnimationFrame(() => {
+ t.step(() => assert_true(!!document.getElementsByName("second")), "the second element should unblock rendering");
+ t.step(() => assert_false(!!document.getElementById("last")));
+ t.done();
+ });
+}, "blocking defers frames until full parsing");
+</script>
+</head>
+<body>
+ <div id="first"></div>
+ <script>
+ generateParserDelay();
+ </script>
+ <a name="second"></a>
+ <script>
+ generateParserDelay();
+ </script>
+ <div id="last"></div>
+</body>
diff --git a/testing/web-platform/tests/html/dom/render-blocking/element-render-blocking-030.html b/testing/web-platform/tests/html/dom/render-blocking/element-render-blocking-030.html
new file mode 100644
index 0000000000..307c2d303d
--- /dev/null
+++ b/testing/web-platform/tests/html/dom/render-blocking/element-render-blocking-030.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<head>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="support/utils.js"></script>
+<title>&lt;a name&gt; should only unblock when finished parsing children</title>
+
+<link rel=expect href="#fold" blocking="render">
+<script>
+async_test((t) => {
+ requestAnimationFrame(() => {
+ t.step(() => assert_true(!!document.getElementsByName("second")));
+ t.step(() => assert_false(!!document.getElementById("last")), "the second element should already unblock rendering");
+ t.done();
+ });
+}, "blocking defers frames until full parsing");
+</script>
+</head>
+<body>
+ <div id="first"></div>
+ <script>
+ generateParserDelay();
+ </script>
+ <a name="fold">
+ <script>
+ generateParserDelay();
+ </script>
+ <div id="second"></div>
+ </a>
+ <script>
+ generateParserDelay();
+ </script>
+ <div id="last"></div>
+</body>
diff --git a/testing/web-platform/tests/html/dom/render-blocking/element-render-blocking-031.html b/testing/web-platform/tests/html/dom/render-blocking/element-render-blocking-031.html
new file mode 100644
index 0000000000..2098483a06
--- /dev/null
+++ b/testing/web-platform/tests/html/dom/render-blocking/element-render-blocking-031.html
@@ -0,0 +1,32 @@
+<!DOCTYPE html>
+<head>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="support/utils.js"></script>
+<title>`link rel=expect` supports dynamically changed &lt;a name&gt;</title>
+
+<link rel=expect href="#second" blocking="render">
+<script>
+async_test((t) => {
+ requestAnimationFrame(() => {
+ t.step(() => assert_true(!!document.getElementsByName("second")));
+ t.step(() => assert_false(!!document.getElementById("last")), "the second element should already unblock rendering");
+ t.done();
+ });
+}, "blocking defers frames until full parsing");
+</script>
+</head>
+<body>
+ <div id="first"></div>
+ <script>
+ generateParserDelay();
+ </script>
+ <a id="fold"></a>
+ <script>
+ document.getElementById("fold").setAttribute("name", "second");
+ </script>
+ <script>
+ generateParserDelay();
+ </script>
+ <div id="last"></div>
+</body>
diff --git a/testing/web-platform/tests/html/dom/render-blocking/element-render-blocking-032.html b/testing/web-platform/tests/html/dom/render-blocking/element-render-blocking-032.html
new file mode 100644
index 0000000000..307c2d303d
--- /dev/null
+++ b/testing/web-platform/tests/html/dom/render-blocking/element-render-blocking-032.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html>
+<head>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="support/utils.js"></script>
+<title>&lt;a name&gt; should only unblock when finished parsing children</title>
+
+<link rel=expect href="#fold" blocking="render">
+<script>
+async_test((t) => {
+ requestAnimationFrame(() => {
+ t.step(() => assert_true(!!document.getElementsByName("second")));
+ t.step(() => assert_false(!!document.getElementById("last")), "the second element should already unblock rendering");
+ t.done();
+ });
+}, "blocking defers frames until full parsing");
+</script>
+</head>
+<body>
+ <div id="first"></div>
+ <script>
+ generateParserDelay();
+ </script>
+ <a name="fold">
+ <script>
+ generateParserDelay();
+ </script>
+ <div id="second"></div>
+ </a>
+ <script>
+ generateParserDelay();
+ </script>
+ <div id="last"></div>
+</body>
diff --git a/testing/web-platform/tests/html/dom/render-blocking/element-render-blocking-033.html b/testing/web-platform/tests/html/dom/render-blocking/element-render-blocking-033.html
new file mode 100644
index 0000000000..59d41c08c0
--- /dev/null
+++ b/testing/web-platform/tests/html/dom/render-blocking/element-render-blocking-033.html
@@ -0,0 +1,30 @@
+<!DOCTYPE html>
+<head>
+<meta charset="utf8">
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="support/utils.js"></script>
+<title>link rel=expect should support percent encoding</title>
+
+<link rel=expect href="#se%F0%9F%98%8Fcond" blocking="render">
+<script>
+async_test((t) => {
+ requestAnimationFrame(() => {
+ t.step(() => assert_true(!!document.getElementById("se😏cond")));
+ t.step(() => assert_false(!!document.getElementById("last")), "the second element should already unblock rendering");
+ t.done();
+ });
+}, "blocking defers frames until full parsing");
+</script>
+</head>
+<body>
+ <div id="first"></div>
+ <script>
+ generateParserDelay();
+ </script>
+ <div id="se😏cond"></div>
+ <script>
+ generateParserDelay();
+ </script>
+ <div id="last"></div>
+</body>
diff --git a/testing/web-platform/tests/html/dom/render-blocking/element-render-blocking-034.html b/testing/web-platform/tests/html/dom/render-blocking/element-render-blocking-034.html
new file mode 100644
index 0000000000..a505de4875
--- /dev/null
+++ b/testing/web-platform/tests/html/dom/render-blocking/element-render-blocking-034.html
@@ -0,0 +1,30 @@
+<!DOCTYPE html>
+<head>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="support/utils.js"></script>
+<title>link rel=expect should allow relative URLs</title>
+
+<link rel=expect href="../render-blocking/element-render-blocking-034.html#second" blocking="render">
+<script>
+async_test((t) => {
+ requestAnimationFrame(() => {
+ t.step(() => assert_true(!!document.getElementById("second")));
+ t.step(() => assert_false(!!document.getElementById("last")), "the second element should already unblock rendering");
+ t.done();
+ });
+}, "relative URLs that match this document are OK");
+</script>
+</head>
+<body>
+ <div id="first"></div>
+ <script>
+ generateParserDelay();
+ </script>
+ <div id="second">
+ </div>
+ <script>
+ generateParserDelay();
+ </script>
+ <div id="last"></div>
+</body>
diff --git a/testing/web-platform/tests/html/dom/render-blocking/element-render-blocking-035.html b/testing/web-platform/tests/html/dom/render-blocking/element-render-blocking-035.html
new file mode 100644
index 0000000000..050244c7a6
--- /dev/null
+++ b/testing/web-platform/tests/html/dom/render-blocking/element-render-blocking-035.html
@@ -0,0 +1,31 @@
+<!DOCTYPE html>
+<head>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="support/utils.js"></script>
+<title>link rel=expect: base URL should be OK with relative URLs</title>
+
+<base href="dummy.html">
+<link rel=expect href="../render-blocking/element-render-blocking-035.html#second" blocking="render">
+<script>
+async_test((t) => {
+ requestAnimationFrame(() => {
+ t.step(() => assert_true(!!document.getElementById("second")));
+ t.step(() => assert_false(!!document.getElementById("last")), "the second element should already unblock rendering");
+ t.done();
+ });
+}, "relative URLs that match this document are OK, regarless of <base>");
+</script>
+</head>
+<body>
+ <div id="first"></div>
+ <script>
+ generateParserDelay();
+ </script>
+ <div id="second">
+ </div>
+ <script>
+ generateParserDelay();
+ </script>
+ <div id="last"></div>
+</body>
diff --git a/testing/web-platform/tests/html/dom/render-blocking/element-render-blocking-036.html b/testing/web-platform/tests/html/dom/render-blocking/element-render-blocking-036.html
new file mode 100644
index 0000000000..83637b3a08
--- /dev/null
+++ b/testing/web-platform/tests/html/dom/render-blocking/element-render-blocking-036.html
@@ -0,0 +1,31 @@
+<!DOCTYPE html>
+<head>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="support/utils.js"></script>
+<title>link rel=expect: base URL mismatch causes link to not block</title>
+
+<base href="dummy.html">
+<link rel=expect href="#second" blocking="render">
+<script>
+async_test((t) => {
+ requestAnimationFrame(() => {
+ t.step(() => assert_true(!!document.getElementById("first")));
+ t.step(() => assert_false(!!document.getElementById("second")), "the first element should already unblock rendering");
+ t.done();
+ });
+}, "link URLs are relative to base URL, not to document URL");
+</script>
+</head>
+<body>
+ <div id="first"></div>
+ <script>
+ generateParserDelay();
+ </script>
+ <div id="second">
+ </div>
+ <script>
+ generateParserDelay();
+ </script>
+ <div id="last"></div>
+</body>
diff --git a/testing/web-platform/tests/html/dom/render-blocking/element-render-blocking-037.html b/testing/web-platform/tests/html/dom/render-blocking/element-render-blocking-037.html
new file mode 100644
index 0000000000..5fe469a2fd
--- /dev/null
+++ b/testing/web-platform/tests/html/dom/render-blocking/element-render-blocking-037.html
@@ -0,0 +1,31 @@
+<!DOCTYPE html>
+<head>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="support/utils.js"></script>
+<title>link rel=expect: base URL should be OK with relative URLs</title>
+
+<base href="dummy.html">
+<link rel=expect href="../render-blocking/element-render-blocking-037.html#second" blocking="render">
+<script>
+async_test((t) => {
+ requestAnimationFrame(() => {
+ t.step(() => assert_true(!!document.getElementById("second")));
+ t.step(() => assert_false(!!document.getElementById("last")), "the second element should already unblock rendering");
+ t.done();
+ });
+}, "relative URLs that match this document are OK, regarless of <base>");
+</script>
+</head>
+<body>
+ <div id="first"></div>
+ <script>
+ generateParserDelay();
+ </script>
+ <div id="second">
+ </div>
+ <script>
+ generateParserDelay();
+ </script>
+ <div id="last"></div>
+</body>
diff --git a/testing/web-platform/tests/html/dom/render-blocking/element-render-blocking-038.html b/testing/web-platform/tests/html/dom/render-blocking/element-render-blocking-038.html
new file mode 100644
index 0000000000..c7fabe7f32
--- /dev/null
+++ b/testing/web-platform/tests/html/dom/render-blocking/element-render-blocking-038.html
@@ -0,0 +1,35 @@
+<!DOCTYPE html>
+<head>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<script src="support/utils.js"></script>
+<title>link rel=expect: only connected elements are eligible</title>
+
+<link rel=expect href="#second" blocking="render">
+<script>
+async_test((t) => {
+ requestAnimationFrame(() => {
+ t.step(() => assert_true(!!document.getElementById("second"), "The second element should be there"));
+ t.step(() => assert_false(!!document.getElementById("last"), "The last element should not be there yet, even though it's created (in a shadow root)"));
+ t.done();
+ });
+}, "");
+</script>
+</head>
+<body>
+ <div id="first"></div>
+ <script>
+ generateParserDelay();
+ </script>
+ <div id="second">
+ <custom-element>
+ <template shadowrootmode="open">
+ <div id="last"></div>
+ </template>
+ </custom-element>
+ </div>
+ <script>
+ generateParserDelay();
+ </script>
+ <div id="last"></div>
+</body>