diff --git a/testing/web-platform/tests/html/dom/render-blocking/remove-attr-script-keeps-blocking.tentative.html b/testing/web-platform/tests/html/dom/render-blocking/remove-attr-script-keeps-blocking.tentative.html new file mode 100644 index 0000000000000..451d2f3695ee8 --- /dev/null +++ b/testing/web-platform/tests/html/dom/render-blocking/remove-attr-script-keeps-blocking.tentative.html @@ -0,0 +1,25 @@ + +Synchronous script element still blocks rendering after removing `blocking=render` + + + + + + + diff --git a/testing/web-platform/tests/html/dom/render-blocking/remove-attr-style-keeps-blocking.tentative.html b/testing/web-platform/tests/html/dom/render-blocking/remove-attr-style-keeps-blocking.tentative.html new file mode 100644 index 0000000000000..31d4b56838d23 --- /dev/null +++ b/testing/web-platform/tests/html/dom/render-blocking/remove-attr-style-keeps-blocking.tentative.html @@ -0,0 +1,28 @@ + +Parser-inserted style element still blocks rendering after removing `blocking=render` + + + + + + + + +
Some text
diff --git a/testing/web-platform/tests/html/dom/render-blocking/remove-attr-stylesheet-link-keeps-blocking.tentative.html b/testing/web-platform/tests/html/dom/render-blocking/remove-attr-stylesheet-link-keeps-blocking.tentative.html new file mode 100644 index 0000000000000..1248b90b236ee --- /dev/null +++ b/testing/web-platform/tests/html/dom/render-blocking/remove-attr-stylesheet-link-keeps-blocking.tentative.html @@ -0,0 +1,27 @@ + +Parser-inserted stylesheet link still blocks rendering after removing `blocking=render` + + + + + + + + +
Some text
diff --git a/testing/web-platform/tests/html/dom/render-blocking/support/test-render-blocking.js b/testing/web-platform/tests/html/dom/render-blocking/support/test-render-blocking.js index 7fa2462046b02..71d0d68096612 100644 --- a/testing/web-platform/tests/html/dom/render-blocking/support/test-render-blocking.js +++ b/testing/web-platform/tests/html/dom/render-blocking/support/test-render-blocking.js @@ -30,6 +30,22 @@ class LoadObserver { } } +// Observes the insertion of a script/parser-blocking element into DOM via +// MutationObserver, so that we can access the element before it's loaded. +function nodeInserted(parentNode, predicate) { + return new Promise(resolve => { + function callback(mutationList) { + for (let mutation of mutationList) { + for (let node of mutation.addedNodes) { + if (predicate(node)) + resolve(node); + } + } + } + new MutationObserver(callback).observe(parentNode, {childList: true}); + }); +} + function createAutofocusTarget() { const autofocusTarget = document.createElement('textarea'); autofocusTarget.setAttribute('autofocus', '');