w3ctag / design-reviews

W3C specs and API reviews
Creative Commons Zero v1.0 Universal
332 stars 56 forks source link

Review request on Render Blocking Status in Resource Timing #753

Closed abinpaul1 closed 2 years ago

abinpaul1 commented 2 years ago

Wotcher TAG!

I'm requesting a TAG review of Render Blocking Status in Resource Timing.

Adds a field to PerfomanceResourceTiming to indicate the render blocking status of a resource. Currently from a developer perspective, the only way to determine which resources were actually render blocking is to rely on complex heurestics. The new field would instead provide a direct signal regarding the same.

Further details:

You should also know that...

Reception towards a similar feature introduced in Chromium was very positive. The article and tweet linked below is a good indicator.

We'd prefer the TAG provide feedback as :

💬 leave review feedback as a comment in this issue and @-notify @abinpaul1 @yoavweiss

atanassov commented 2 years ago

@ylafon & I reviewed the proposal during our London F2F today. The developer use cases and proposed addition to fetch and Resource Timing all make sense. One question that came up was about the attribute type. Why did you define it as string and not boolean?

abinpaul1 commented 2 years ago

The main reasoning was to keep it open to being extended later on, if we wanted to provide more supporting information regarding render blocking.

Say we have a scenario where a plain script element is present in the head and another plain script element is dynamically added to head. The former is blocking and the latter is non-blocking, so say we had a string value saying dynamically-injected-non-blocking, we could maybe convey more information regarding why it was non-blocking as well. The proposal started out with a couple more such values before deciding to rely on the boolean.

The final value that is exposed was defined as string to keep it open to such extensions or others if they were to be deemed useful later on.

ylafon commented 2 years ago

How about using an enum in that case? That would avoid using strings to be used to carry extra information using micro-syntax, where another value would be better

abinpaul1 commented 2 years ago

Thanks for the suggestion. An enum does seem to be better suited. The explainer and spec have been updated to use an enum field instead of the string type.

torgo commented 2 years ago

Hi @abinpaul1 thanks for that! On that basis, we're happy to close. Thank you for flying TAG.