Closed Bug 1839315 Opened 2 years ago Closed 2 years ago

Add "fetchpriority" attribute to <link> element and `Link` headers, first parts

Categories

(Core :: Networking, enhancement, P2)

enhancement

Tracking

()

RESOLVED FIXED
121 Branch
Tracking Status
firefox121 --- fixed

People

(Reporter: mbrodesser, Assigned: mbrodesser)

References

(Blocks 1 open bug)

Details

(Whiteboard: [necko-triaged])

Attachments

(8 files, 9 obsolete files)

48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
Whiteboard: [necko-triaged]
Priority: -- → P2

The standard defines multiple link types (https://html.spec.whatwg.org/multipage/semantics.html#attr-link-rel), so perhaps this requires updating more loader functions than the ones mentioned in https://bugzilla.mozilla.org/show_bug.cgi?id=1797715#c2.

When implementing this, grep the code for references to this bug (e.g. grep -i "Bug <bugnumber>").

Assignee: nobody → mbrodesser
Status: NEW → ASSIGNED
Summary: Add "fetchpriority" attribute to <link> element → Add "fetchpriority" attribute to <link> element and `Link` headers

Setting the internal priority depending on the fetchPriority will be
implemented in a following part.

Depends on D189935

Attachment #9356374 - Attachment description: Bug 1839315: part 1) Lift code for `fetchpriority` attribute from `HTMLScriptElement` to `nsGenericHTMLElement`. r=#necko → Bug 1839315: part 1) Lift code for `fetchpriority` attribute from `HTMLScriptElement` to `nsGenericHTMLElementWithFetchPriorityAttribute`. r=smaug
Attachment #9356376 - Attachment description: Bug 1839315: part 2) Add `fetchPriority` attribute to HTMLLinkElement's DOM interface. r=#necko → Bug 1839315: part 2) Add `fetchPriority` attribute to HTMLLinkElement's DOM interface. r=saschanaz
Attachment #9356539 - Attachment description: Bug 1839315: part 3) Remove no-op method `PreloaderBase::PrioritizeAsPreload`. r=#necko → Bug 1839315: part 3) Remove no-op method `PreloaderBase::PrioritizeAsPreload`. r=valentin

Otherwise it's hard to understand what's supposed to happen there.

Depends on D190666

Pushed by mbrodesser@igalia.com: https://hg.mozilla.org/integration/autoland/rev/2598def65c5c part 3) Remove no-op method `PreloaderBase::PrioritizeAsPreload`. r=necko-reviewers,valentin
Pushed by mbrodesser@igalia.com: https://hg.mozilla.org/integration/autoland/rev/c66a394ad061 part 4) Link from `SheetLoadData::mWasAlternate` to spec. r=emilio DONTBUILD
Pushed by mbrodesser@igalia.com: https://hg.mozilla.org/integration/autoland/rev/9cafd79c8405 part 5) Add links to spec for parsing the Link header fields a HTTP header contains. r=necko-reviewers,valentin

The function is more than 250 lines long
(https://searchfox.org/mozilla-central/rev/5ad226c7379b0564c76dc3b54b44985356f94c5a/netwerk/base/nsNetUtil.cpp#3448-3703)
and will be extended in a following part.
This refactoring allows to extend the new, simpler function instead.

Pushed by mbrodesser@igalia.com: https://hg.mozilla.org/integration/autoland/rev/0b6c07041133 part 7) Factor updating an attribute out of `net::ParseLinkHeader`. r=necko-reviewers,jesup

Setting the value currently has no user-observable effect. It will be
used in a following part.

Attachment #9359313 - Attachment description: Bug 1839315: part 8) Store the `fetchpriority` value from Link header fields in the `LinkHeader` struct. r=#necko → Bug 1839315: part 8) Store the `fetchpriority` value from Link header fields in the `LinkHeader` struct. r=manuel
Pushed by mbrodesser@igalia.com: https://hg.mozilla.org/integration/autoland/rev/75b27b040343 part 1) Lift code for `fetchpriority` attribute from `HTMLScriptElement` to `nsGenericHTMLElementWithFetchPriorityAttribute`. r=smaug https://hg.mozilla.org/integration/autoland/rev/7621c3c4c268 part 2) Add `fetchPriority` attribute to HTMLLinkElement's DOM interface. r=necko-reviewers,webidl,saschanaz,valentin https://hg.mozilla.org/integration/autoland/rev/9cf48ec99a06 part 6) Lift code for `fetchpriority` attribute from `nsGenericHTMLElementWithFetchPriorityAttribute` to `nsGenericHTMLElement`. r=smaug
Pushed by mbrodesser@igalia.com: https://hg.mozilla.org/integration/autoland/rev/8d15361d7639 part 8) Store the `fetchpriority` value from Link header fields in the `LinkHeader` struct. r=manuel

Includes only support for dynamically loading style sheets from <link>
elements and Link header fields.
The remaining support, including preloading, will be added in other
patches.

This is allows enabling the style tests in a following part. The other
tests can be separated when needed.

Depends on D191745

Allows the separate tests to pass. Otherwise passes are shadowed by
failures. The next parts make use of that.

The tests for images might be adapted in a following part to match the
priorities at
https://web.dev/articles/fetch-priority#browser_priority_and_fetchpriority.

Tests existing behavior. It differs from Chromium's, which assigns
highest priority instead of high.

The test is added for the fetchpriority feature because loading a
font-face font has overlapping code with linking fonts via <link rel=preload as=font> in FontPreloader
(https://searchfox.org/mozilla-central/rev/d6576544301cacc0e393fbc919c53e4e6b0d46ec/layout/style/FontPreloader.h#25).

Test is added for the same reason as the one for part 15:
in Gecko FontPreloader code is called.

Attachment #9363497 - Attachment description: Bug 1839315: part 15) Add test for internally assigned priority of font-face font. r=emilio → Bug 1839315: part 15) Add test for internally assigned priority of font-face. r=emilio
Attachment #9363690 - Attachment description: Bug 1839315: part 16) Add test for internally assigned priority of font-face font loaded from a worker. r=emilio → Bug 1839315: part 16) Add test for internally assigned priority of font-face loaded from a worker. r=emilio
Attachment #9363497 - Attachment description: Bug 1839315: part 15) Add test for internally assigned priority of font-face. r=emilio → Bug 1839315: part 15) Add test for internally assigned priority of font-face loaded from `<head>`. r=dholbert
Attachment #9363690 - Attachment description: Bug 1839315: part 16) Add test for internally assigned priority of font-face loaded from a worker. r=emilio → Bug 1839315: part 16) Add test for internally assigned priority of font-face loaded from a worker. r=dholbert
Attachment #9363872 - Attachment description: Bug 1839315: part 17) Add test for internally assigned priority of font-face loaded from a document. r=dholbert → Bug 1839315: part 17) Add test for internally assigned priority of font-face loaded from a script. r=dholbert

Comment on attachment 9356374 [details]
Bug 1839315: part 1) Lift code for fetchpriority attribute from HTMLScriptElement to nsGenericHTMLElementWithFetchPriorityAttribute. r=smaug

Revision D189935 was moved to bug 1865610. Setting attachment 9356374 [details] to obsolete.

Attachment #9356374 - Attachment is obsolete: true
Attachment #9356374 - Attachment is obsolete: false

Comment on attachment 9360017 [details]
Bug 1839315: part 9) Add partial support for the "fetchpriority" attribute for loading style sheets from <link> elements or Link header fields. r=smaug,emilio

Revision D191745 was moved to bug 1865610. Setting attachment 9360017 [details] to obsolete.

Attachment #9360017 - Attachment is obsolete: true

Comment on attachment 9360018 [details]
Bug 1839315: part 10) Separate tests for <link rel=preload as=style> and corresponding Link header tests from other as= tests. r=emilio

Revision D191746 was moved to bug 1865610. Setting attachment 9360018 [details] to obsolete.

Attachment #9360018 - Attachment is obsolete: true

Comment on attachment 9360234 [details]
Bug 1839315: part 11) Add fetchpriority attribute support for preloaded stylesheets. r=smaug,emilio,#necko-reviewers

Revision D191866 was moved to bug 1865610. Setting attachment 9360234 [details] to obsolete.

Attachment #9360234 - Attachment is obsolete: true

Comment on attachment 9361204 [details]
Bug 1839315: part 12) Add fetchpriority attribute support for rel=modulepreload and rel=preload as=script. r=smaug,valentin

Revision D192331 was moved to bug 1865610. Setting attachment 9361204 [details] to obsolete.

Attachment #9361204 - Attachment is obsolete: true

Comment on attachment 9361205 [details]
Bug 1839315: part 13) Separate tests for <link rel=preload as=fetch> from other <link rel=preload> tests. r=valentin

Revision D192332 was moved to bug 1865610. Setting attachment 9361205 [details] to obsolete.

Attachment #9361205 - Attachment is obsolete: true

Comment on attachment 9363277 [details]
Bug 1839315: part 14) Separate tests for <link rel=preload as=font> from other preload tests. r=valentin

Revision D193435 was moved to bug 1865610. Setting attachment 9363277 [details] to obsolete.

Attachment #9363277 - Attachment is obsolete: true

Comment on attachment 9363497 [details]
Bug 1839315: part 15) Add test for internally assigned priority of font-face loaded from <head>. r=dholbert

Revision D193550 was moved to bug 1865610. Setting attachment 9363497 [details] to obsolete.

Attachment #9363497 - Attachment is obsolete: true

Comment on attachment 9363690 [details]
Bug 1839315: part 16) Add test for internally assigned priority of font-face loaded from a worker. r=dholbert

Revision D193657 was moved to bug 1865610. Setting attachment 9363690 [details] to obsolete.

Attachment #9363690 - Attachment is obsolete: true

Comment on attachment 9363872 [details]
Bug 1839315: part 17) Add test for internally assigned priority of font-face loaded from a script. r=dholbert

Revision D193766 was moved to bug 1865610. Setting attachment 9363872 [details] to obsolete.

Attachment #9363872 - Attachment is obsolete: true
Status: ASSIGNED → RESOLVED
Closed: 2 years ago
Keywords: leave-open
Resolution: --- → FIXED
Summary: Add "fetchpriority" attribute to <link> element and `Link` headers → Add "fetchpriority" attribute to <link> element and `Link` headers, first parts
Target Milestone: --- → 121 Branch
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: