Closed Bug 1760385 Opened 2 years ago Closed 2 years ago

[wpt-sync] Sync PR 33195 - [renderblocking] Implement render-blocking on preload and modulepreload links

Categories

(Core :: DOM: Core & HTML, task, P4)

task

Tracking

()

RESOLVED FIXED
100 Branch
Tracking Status
firefox100 --- fixed

People

(Reporter: mozilla.org, Unassigned)

References

(Blocks 1 open bug, )

Details

(Whiteboard: [wptsync downstream])

Sync web-platform-tests PR 33195 into mozilla-central (this bug is closed when the sync is complete).

PR: https://github.com/web-platform-tests/wpt/pull/33195
Details from upstream follow.

Xiaocheng Hu <xiaochengh@chromium.org> wrote:

[renderblocking] Implement render-blocking on preload and modulepreload links

This patch blocks rendering on render-blocking preload and modulepreload
links, and also unifies that with the existing short render-blocking on
font preloads.

The previous attempt (crrev.com/c/3514642) uses Resource and
ResourceFinishObserver to listen to the loading progress of render-blocking
preloads. However, this approach does not extend to modulepreload links
as PreloadHelper::ModulePreloadIfNeeded() does not expose a
ScriptResource to callers.

This patch uses a different approach. It uses LinkLoaderClient to listen
to the loading progress, which works on both preload and modulepreload
links. This is also closer to the spec compared to the previous one.

Bug: 1271296
Change-Id: I4923e81362180aad3de8c3352241c228515e7ffe
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3527422
Reviewed-by: Mason Freed \<masonf@chromium.org>
Commit-Queue: Xiaocheng Hu \<xiaochengh@chromium.org>
Cr-Commit-Position: refs/heads/main@{#982964}

Component: web-platform-tests → DOM: Core & HTML
Product: Testing → Core

CI Results

Ran 12 Firefox configurations based on mozilla-central, and Firefox, Chrome, and Safari on GitHub CI

Total 3 tests and 2 subtests

Status Summary

Firefox

FAIL : 7
TIMEOUT: 5[Gecko-android-em-7.0-x86_64-lite-qr-debug-geckoview, Gecko-android-em-7.0-x86_64-lite-qr-opt-geckoview, Gecko-android-em-7.0-x86_64-qr-debug-geckoview, Gecko-android-em-7.0-x86_64-qr-opt-geckoview, Gecko-linux1804-64-domstreams-qr-debug, Gecko-linux1804-64-qr-debug, Gecko-linux1804-64-qr-opt, Gecko-windows10-32-2004-qr-debug, Gecko-windows10-32-2004-qr-opt, Gecko-windows10-64-2004-qr-debug, Gecko-windows10-64-2004-qr-opt, GitHub] 6[Gecko-linux1804-64-tsan-qr-opt]
ERROR : 1

Chrome

OK : 3
PASS : 3
FAIL : 7

Safari

FAIL : 7
TIMEOUT: 6

Links

Gecko CI (Treeherder)
GitHub PR Head
GitHub PR Base

Details

New Tests That Don't Pass

/html/dom/render-blocking/parser-inserted-modulepreload-link.tentative.html: TIMEOUT (Chrome: OK, Safari: TIMEOUT)
Rendering is blocked before render-blocking resources are loaded: FAIL (Chrome: FAIL, Safari: FAIL)
Parser-inserted render-blocking module script is preloaded and evaluated: TIMEOUT (Chrome: PASS, Safari: TIMEOUT)
/html/dom/render-blocking/render-blocked-apis-by-module-preload-link.tentative.html: ERROR [Gecko-android-em-7.0-x86_64-lite-qr-debug-geckoview, Gecko-android-em-7.0-x86_64-lite-qr-opt-geckoview, Gecko-android-em-7.0-x86_64-qr-debug-geckoview, Gecko-android-em-7.0-x86_64-qr-opt-geckoview, Gecko-linux1804-64-domstreams-qr-debug, Gecko-linux1804-64-qr-debug, Gecko-linux1804-64-qr-opt, Gecko-windows10-32-2004-qr-debug, Gecko-windows10-32-2004-qr-opt, Gecko-windows10-64-2004-qr-debug, Gecko-windows10-64-2004-qr-opt, GitHub], TIMEOUT [Gecko-linux1804-64-tsan-qr-opt] (Chrome: OK, Safari: TIMEOUT)
Should not flush autofocus candidates when render-blocked: FAIL (Chrome: FAIL, Safari: FAIL)
Should not run the scroll steps when render-blocked: FAIL (Chrome: FAIL, Safari: FAIL)
Should not run the update animations and send events steps when render-blocked: FAIL (Chrome: FAIL, Safari: FAIL)
Should not run animation frame callbacks when render-blocked: FAIL (Chrome: FAIL, Safari: FAIL)
Should not run the update intersection observers step when render-blocked: FAIL (Chrome: FAIL, Safari: FAIL)
Render-blocking module script is preloaded and executed: TIMEOUT (Chrome: PASS, Safari: TIMEOUT)
/html/dom/render-blocking/script-inserted-modulepreload-link.tentative.html: TIMEOUT (Chrome: OK, Safari: TIMEOUT)
Rendering is blocked before render-blocking resources are loaded: FAIL (Chrome: FAIL, Safari: FAIL)
Script-inserted render-blocking module script is preloaded and evaluated: TIMEOUT (Chrome: PASS, Safari: TIMEOUT)

Pushed by wptsync@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/69c5448c61a5
[wpt PR 33195] - [renderblocking] Implement render-blocking on preload and modulepreload links, a=testonly
https://hg.mozilla.org/integration/autoland/rev/f69a9db78f12
[wpt PR 33195] - Update wpt metadata, a=testonly
Pushed by wptsync@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/b4670f82f19b
[wpt PR 33195] - [renderblocking] Implement render-blocking on preload and modulepreload links, a=testonly
https://hg.mozilla.org/integration/autoland/rev/01858891782a
[wpt PR 33195] - Update wpt metadata, a=testonly
Status: NEW → RESOLVED
Closed: 2 years ago
Resolution: --- → FIXED
Target Milestone: --- → 100 Branch
You need to log in before you can comment on or make changes to this bug.