Intent to continue Experiment: Priority Hints

242 views
Skip to first unread message

Patrick Meenan

unread,
Sep 10, 2021, 11:16:10 AM9/10/21
to blink-dev

Contact emails

ad...@chromium.orgdomfa...@gmail.comkenji...@chromium.orgpme...@chromium.org

Explainer

https://github.com/WICG/priority-hints/blob/main/EXPLAINER.md

Specification

https://wicg.github.io/priority-hints/

Summary

Priority Hints provide developers a way to indicate a resource's relative importance to the browser, allowing more control over the order resources are loaded. Many factors influence a resource's priority in browsers. These include type, visibility, and preload status of a resource. Priority Hints introduces a developer-set "importance" attribute allowing developers to influence the computed priority of a resource. Supported importance values are auto, low, and high.



Blink component

Blink>Loader

Search tags

priority-hintspriority hints

TAG review



TAG review status

Pending

Risks



Interoperability and Compatibility

Gecko: No signal
WebKit: No signal
Web developers: Strongly positive


Goals for experimentation

The goal is to re-start the origin trial experiment for Priority Hints with a focus on some specific use cases that have generated significant developer interest:

  • Boost the priority of the LCP image for a page by specifying importance="high" on the image element, causing LCP to happen sooner.
  • Increase the priority of async scripts using better semantics than the current hack that is commonly used (inserting a link preload for the async script)
  • Decreasing the priority of late-body scripts to allow for better sequencing with images.
  • Decreasing the priority of CSS to allow for sequencing with parser-blocking scripts.
  • Allow for varying priorities of javascript-initiated fetches.
The bulk of the experiment will be focused on making sure the API surface meets developers needs and works as expected.


Reason this experiment is being extended

The previous experiment was run before the recent focus on core web vitals and LCP in particular and did not generate as much developer interest as there is now. There were also prioritization issues with preload that are fixed in 95 that made it difficult to experiment with for the script case. There is pretty significant demand from developers for the knobs that Priority Hints provide, particularly for improving LCP.


Ongoing technical constraints

None


Debuggability



Will this feature be supported on all six Blink platforms (Windows, Mac, Linux, Chrome OS, Android, and Android WebView)?

Yes

Is this feature fully tested by web-platform-tests?

No

Flag name

PriorityHints

Requires code in //chrome?

False

Tracking bug

https://crbug.com/821464

Estimated milestones

OriginTrial desktop last101
OriginTrial desktop first96
OriginTrial android last101
OriginTrial android first96


Link to entry on the Chrome Platform Status

https://www.chromestatus.com/feature/5273474901737472

Links to previous Intent discussions

Intent to Experiment: https://groups.google.com/a/chromium.org/g/blink-dev/c/jpeSdM897Xw/m/CY6tothSDgAJ


This intent message was generated by Chrome Platform Status.

Yoav Weiss

unread,
Sep 13, 2021, 9:42:27 AM9/13/21
to Patrick Meenan, blink-dev
Thanks for working on this!!

On an administrative note, this should be considered a new OT, as the previous one was run a while ago.

I also suspect that the server-side support for priorities improved since the original OT, at least in some servers.
 

Ongoing technical constraints

None


Debuggability



Will this feature be supported on all six Blink platforms (Windows, Mac, Linux, Chrome OS, Android, and Android WebView)?

Yes

Is this feature fully tested by web-platform-tests?

No

Flag name

PriorityHints

Requires code in //chrome?

False

Tracking bug

https://crbug.com/821464

Estimated milestones

OriginTrial desktop last101
OriginTrial desktop first96
OriginTrial android last101
OriginTrial android first96


Do you have partners lined up to start experimenting in M96?
Any particular reason for needing to run it till M101? If not, it may be better to run it till M99 (inclusive) and ask for an extension with what we've learned.
 

Link to entry on the Chrome Platform Status

https://www.chromestatus.com/feature/5273474901737472

Links to previous Intent discussions

Intent to Experiment: https://groups.google.com/a/chromium.org/g/blink-dev/c/jpeSdM897Xw/m/CY6tothSDgAJ


This intent message was generated by Chrome Platform Status.

--
You received this message because you are subscribed to the Google Groups "blink-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to blink-dev+...@chromium.org.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAPq58w4GGUARoL%3DKrhCPDG43xWQMk3FuUK-_-zHxM_Tr1tXGKQ%40mail.gmail.com.

Patrick Meenan

unread,
Sep 13, 2021, 9:56:38 AM9/13/21
to Yoav Weiss, blink-dev
Thanks. I emailed experimentation-dev just to be sure because the underlying feature didn't change and I want to avoid confusion about multiple different trials for the same feature name.

The main thing that is changing is that the dev ecosystem now has pretty heavy interest in using it to improve LCP so gathering feedback will be a lot easier than the last go-around which was focused on async scripts (which already had a hack people were using).

Yoav Weiss

unread,
Sep 13, 2021, 12:19:08 PM9/13/21
to Patrick Meenan, blink-dev
On Mon, Sep 13, 2021 at 3:56 PM Patrick Meenan <pme...@chromium.org> wrote:
Thanks. I emailed experimentation-dev just to be sure because the underlying feature didn't change and I want to avoid confusion about multiple different trials for the same feature name.

To clarify, I didn't mean this needs a new experiment name. I just meant that from an API owners' perspective, the previous experiment should not impact the timeframes of this one, as there's been a 2 years break in between them. Apologies for not being clearer.

Mike West

unread,
Sep 16, 2021, 2:45:57 AM9/16/21
to Yoav Weiss, Patrick Meenan, blink-dev
Hey Patrick!

I left some notes about signals and TAG below, but this is a pretty reasonable thing to experiment with from my perspective. The only outstanding question for experimentation is timing. As Yoav noted, M96 to M101 is a little longer than we generally run OTs. If you have developers lined up to experiment in M96, would you be comfortable with capping the OT at M99 (inclusive) and evaluating the need for changes/extension at that point?

If that timeline works for you, it LGTM. If not, let's chat!
 
-mike


On Mon, Sep 13, 2021 at 6:19 PM Yoav Weiss <yoav...@chromium.org> wrote:


On Mon, Sep 13, 2021 at 3:56 PM Patrick Meenan <pme...@chromium.org> wrote:
Thanks. I emailed experimentation-dev just to be sure because the underlying feature didn't change and I want to avoid confusion about multiple different trials for the same feature name.

To clarify, I didn't mean this needs a new experiment name. I just meant that from an API owners' perspective, the previous experiment should not impact the timeframes of this one, as there's been a 2 years break in between them. Apologies for not being clearer.
 

The main thing that is changing is that the dev ecosystem now has pretty heavy interest in using it to improve LCP so gathering feedback will be a lot easier than the last go-around which was focused on async scripts (which already had a hack people were using).

On Mon, Sep 13, 2021 at 9:42 AM Yoav Weiss <yoav...@chromium.org> wrote:
Thanks for working on this!!

On an administrative note, this should be considered a new OT, as the previous one was run a while ago.

On Fri, Sep 10, 2021 at 5:16 PM Patrick Meenan <pme...@chromium.org> wrote:

Contact emails

ad...@chromium.orgdomfa...@gmail.comkenji...@chromium.orgpme...@chromium.org

Explainer

https://github.com/WICG/priority-hints/blob/main/EXPLAINER.md

Specification

https://wicg.github.io/priority-hints/

Summary

Priority Hints provide developers a way to indicate a resource's relative importance to the browser, allowing more control over the order resources are loaded. Many factors influence a resource's priority in browsers. These include type, visibility, and preload status of a resource. Priority Hints introduces a developer-set "importance" attribute allowing developers to influence the computed priority of a resource. Supported importance values are auto, low, and high.



Blink component

Blink>Loader

Search tags

priority-hintspriority hints

TAG review



TAG review status

Pending

Can you link to the TAG review? I didn't see it in a quick search of their repository (I did find a review for the previous instantiation of this mechanism; perhaps y'all meant to re-open that?)
 


Risks



Interoperability and Compatibility

Gecko: No signal
WebKit: No signal

It's probably a good idea to ask for signals earlier rather than later. It's non-blocking for this experiment, but it would be very helpful to have this feedback when y'all are making shipping decisions.
 
Reply all
Reply to author
Forward
0 new messages