Skip to content

Lift CDP renderBlockingStatus onto entries as _renderBlocking#155

Merged
soulgalore merged 1 commit into
mainfrom
add-render-blocking
May 6, 2026
Merged

Lift CDP renderBlockingStatus onto entries as _renderBlocking#155
soulgalore merged 1 commit into
mainfrom
add-render-blocking

Conversation

@soulgalore
Copy link
Copy Markdown
Member

Chrome's CDP has carried the per-request render-blocking classification on Network.requestWillBeSent.params.renderBlockingStatus since Chrome 108, but chrome-har silently dropped it on the floor. Downstream HAR consumers (waterfall-tools' WPT-style renderer in particular) match _renderBlocking === 'blocking' to draw the orange ⊗ marker on each request that delays first paint, and without this field the marker never appears regardless of how blocking the CSS or script actually was. CDP emits the value in PascalCase ('Blocking', 'NonBlocking', 'InBodyParserBlocking', 'PotentiallyBlocking'); we lowercase before storing so the renderer's case-sensitive equality check works without each consumer having to re-normalise. Older Chrome builds that don't emit the field leave _renderBlocking unset, distinguishing "not blocking" from "browser couldn't tell us" — the same tri-state convention used elsewhere in the project.

Co-authored-by: Claude Opus 4.7 (1M context) [email protected]

Chrome's CDP has carried the per-request render-blocking classification on
Network.requestWillBeSent.params.renderBlockingStatus since Chrome 108, but chrome-har silently
dropped it on the floor. Downstream HAR consumers (waterfall-tools' WPT-style renderer in
particular) match _renderBlocking === 'blocking' to draw the orange ⊗ marker on each request that
delays first paint, and without this field the marker never appears regardless of how blocking the
CSS or script actually was. CDP emits the value in PascalCase ('Blocking', 'NonBlocking',
'InBodyParserBlocking', 'PotentiallyBlocking'); we lowercase before storing so the renderer's
case-sensitive equality check works without each consumer having to re-normalise. Older Chrome
builds that don't emit the field leave _renderBlocking unset, distinguishing "not blocking" from
"browser couldn't tell us" — the same tri-state convention used elsewhere in the project.

Co-authored-by: Claude Opus 4.7 (1M context) [email protected]
@soulgalore soulgalore merged commit a1a46f1 into main May 6, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant