Speculative load measurement - preload early hints [chromium/src : main]

0 views
Skip to first unread message

Yoav Weiss (@Shopify) (Gerrit)

unread,
Apr 18, 2026, 1:27:31 AM (12 days ago) Apr 18
to Arthur Sonzogni, Hiroki Nakagawa, Dominic Farolino, Kouhei Ueno, android-bu...@system.gserviceaccount.com, Chromium LUCI CQ, chromium...@chromium.org, Nate Chapin, core-timi...@chromium.org, speed-metrics...@chromium.org, jmedle...@chromium.org, alexmo...@chromium.org, blink-re...@chromium.org, blink-revie...@chromium.org, blink-...@chromium.org, creis...@chromium.org, gavinp...@chromium.org, ipc-securi...@chromium.org, kinuko...@chromium.org, loading-re...@chromium.org, loading...@chromium.org, navigation...@chromium.org
Attention needed from Arthur Sonzogni and Hiroki Nakagawa

Yoav Weiss (@Shopify) added 1 comment

Patchset-level comments
File-level comment, Patchset 9 (Latest):
Yoav Weiss (@Shopify) . resolved

Adding Arthur for the renderer_host parts

Open in Gerrit

Related details

Attention is currently required from:
  • Arthur Sonzogni
  • Hiroki Nakagawa
Submit Requirements:
  • requirement satisfiedCode-Coverage
  • requirement is not satisfiedCode-Owners
  • requirement is not satisfiedCode-Review
  • requirement is not satisfiedReview-Enforcement
Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
Gerrit-MessageType: comment
Gerrit-Project: chromium/src
Gerrit-Branch: main
Gerrit-Change-Id: Ib82ba3c1b0275e8396cb6055971f12210af710cb
Gerrit-Change-Number: 7685815
Gerrit-PatchSet: 9
Gerrit-Owner: Yoav Weiss (@Shopify) <yoav...@chromium.org>
Gerrit-Reviewer: Arthur Sonzogni <arthurs...@chromium.org>
Gerrit-Reviewer: Hiroki Nakagawa <nhi...@chromium.org>
Gerrit-Reviewer: Kouhei Ueno <kou...@chromium.org>
Gerrit-Reviewer: Yoav Weiss (@Shopify) <yoav...@chromium.org>
Gerrit-CC: Dominic Farolino <d...@chromium.org>
Gerrit-CC: Nate Chapin <jap...@chromium.org>
Gerrit-Attention: Hiroki Nakagawa <nhi...@chromium.org>
Gerrit-Attention: Arthur Sonzogni <arthurs...@chromium.org>
Gerrit-Comment-Date: Sat, 18 Apr 2026 05:27:09 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: No
satisfied_requirement
unsatisfied_requirement
open
diffy

Hiroki Nakagawa (Gerrit)

unread,
Apr 24, 2026, 5:12:56 AM (5 days ago) Apr 24
to Yoav Weiss (@Shopify), Arthur Sonzogni, Dominic Farolino, Kouhei Ueno, android-bu...@system.gserviceaccount.com, Chromium LUCI CQ, chromium...@chromium.org, Nate Chapin, core-timi...@chromium.org, speed-metrics...@chromium.org, jmedle...@chromium.org, alexmo...@chromium.org, blink-re...@chromium.org, blink-revie...@chromium.org, blink-...@chromium.org, creis...@chromium.org, gavinp...@chromium.org, ipc-securi...@chromium.org, kinuko...@chromium.org, loading-re...@chromium.org, loading...@chromium.org, navigation...@chromium.org
Attention needed from Arthur Sonzogni and Yoav Weiss (@Shopify)

Hiroki Nakagawa added 11 comments

Patchset-level comments
Hiroki Nakagawa . resolved

Sorry for the late review.

File content/browser/renderer_host/navigation_controller_impl.cc
Line 4664, Patchset 9 (Latest): /*early_hints_preloaded_resources=*/
Hiroki Nakagawa . unresolved

I think this comment is no longer necessary, as it's clear from the type name.

File content/browser/renderer_host/navigation_entry_impl.cc
Line 1051, Patchset 9 (Latest): EarlyHintsPreloadInfoPtr>() /* early_hints_preloaded_resources
*/
Hiroki Nakagawa . unresolved

Ditto.

File content/browser/renderer_host/navigation_request.cc
Line 1477, Patchset 9 (Latest): /*early_hints_preloaded_resources=*/
Hiroki Nakagawa . unresolved

Ditto.

Line 1637, Patchset 9 (Latest): /*early_hints_preloaded_resources=*/
Hiroki Nakagawa . unresolved

Ditto.

File third_party/blink/public/mojom/navigation/navigation_params.mojom
Line 55, Patchset 9 (Latest): network.mojom.RequestDestination destination;
Hiroki Nakagawa . unresolved

Instead of destination, can we use `network::mojom::LinkAsAttribute`, so that more directly translate it to "as" string in Blink?
https://source.chromium.org/chromium/chromium/src/+/main:services/network/public/mojom/link_header.mojom;l=22-32;drc=e7e1a3be8c621322129fa519118d8291acc467e4

File third_party/blink/renderer/platform/loader/fetch/resource_fetcher.cc
Line 1906, Patchset 9 (Parent): if (RuntimeEnabledFeatures::SpeculationMeasurementEnabled()) {
Hiroki Nakagawa . unresolved

Why do we remove the feature flag check?

Line 1999, Patchset 9 (Parent): // Only track <link rel=preload> in `preload_records_` for the
Hiroki Nakagawa . unresolved

Can you keep the back-quotes?

Line 2002, Patchset 9 (Parent): if (RuntimeEnabledFeatures::SpeculationMeasurementEnabled() &&
Hiroki Nakagawa . unresolved

Ditto. Why is this feature flag check removed?

Line 2428, Patchset 9 (Latest): default:
Hiroki Nakagawa . unresolved

Can we avoid using the default so that the compiler can detect when a new enum is added?

File third_party/blink/web_tests/external/wpt/speculation-rules/speculation-measurement/support/speculation-measurement-utils.js
Line 32, Patchset 9 (Latest): if (!href) href = supportFileUrl(as);
Hiroki Nakagawa . unresolved

Can you revert removing braces in this file?

Open in Gerrit

Related details

Attention is currently required from:
  • Arthur Sonzogni
  • Yoav Weiss (@Shopify)
Submit Requirements:
    • requirement satisfiedCode-Coverage
    • requirement is not satisfiedCode-Owners
    • requirement is not satisfiedCode-Review
    • requirement is not satisfiedNo-Unresolved-Comments
    • requirement is not satisfiedReview-Enforcement
    Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
    Gerrit-MessageType: comment
    Gerrit-Project: chromium/src
    Gerrit-Branch: main
    Gerrit-Change-Id: Ib82ba3c1b0275e8396cb6055971f12210af710cb
    Gerrit-Change-Number: 7685815
    Gerrit-PatchSet: 9
    Gerrit-Owner: Yoav Weiss (@Shopify) <yoav...@chromium.org>
    Gerrit-Reviewer: Arthur Sonzogni <arthurs...@chromium.org>
    Gerrit-Reviewer: Hiroki Nakagawa <nhi...@chromium.org>
    Gerrit-Reviewer: Kouhei Ueno <kou...@chromium.org>
    Gerrit-Reviewer: Yoav Weiss (@Shopify) <yoav...@chromium.org>
    Gerrit-CC: Dominic Farolino <d...@chromium.org>
    Gerrit-CC: Nate Chapin <jap...@chromium.org>
    Gerrit-Attention: Arthur Sonzogni <arthurs...@chromium.org>
    Gerrit-Attention: Yoav Weiss (@Shopify) <yoav...@chromium.org>
    Gerrit-Comment-Date: Fri, 24 Apr 2026 09:12:21 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: No
    satisfied_requirement
    unsatisfied_requirement
    open
    diffy

    Hiroki Nakagawa (Gerrit)

    unread,
    Apr 24, 2026, 5:17:48 AM (5 days ago) Apr 24
    to Yoav Weiss (@Shopify), Arthur Sonzogni, Dominic Farolino, Kouhei Ueno, android-bu...@system.gserviceaccount.com, Chromium LUCI CQ, chromium...@chromium.org, Nate Chapin, core-timi...@chromium.org, speed-metrics...@chromium.org, jmedle...@chromium.org, alexmo...@chromium.org, blink-re...@chromium.org, blink-revie...@chromium.org, blink-...@chromium.org, creis...@chromium.org, gavinp...@chromium.org, ipc-securi...@chromium.org, kinuko...@chromium.org, loading-re...@chromium.org, loading...@chromium.org, navigation...@chromium.org
    Attention needed from Arthur Sonzogni and Yoav Weiss (@Shopify)

    Hiroki Nakagawa added 1 comment

    File third_party/blink/public/mojom/navigation/navigation_params.mojom
    Line 55, Patchset 9 (Latest): network.mojom.RequestDestination destination;
    Hiroki Nakagawa . unresolved

    Instead of destination, can we use `network::mojom::LinkAsAttribute`, so that more directly translate it to "as" string in Blink?
    https://source.chromium.org/chromium/chromium/src/+/main:services/network/public/mojom/link_header.mojom;l=22-32;drc=e7e1a3be8c621322129fa519118d8291acc467e4

    Gerrit-Comment-Date: Fri, 24 Apr 2026 09:17:26 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: No
    Comment-In-Reply-To: Hiroki Nakagawa <nhi...@chromium.org>
    satisfied_requirement
    unsatisfied_requirement
    open
    diffy

    Arthur Sonzogni (Gerrit)

    unread,
    Apr 24, 2026, 7:21:05 AM (5 days ago) Apr 24
    to Yoav Weiss (@Shopify), Hiroki Nakagawa, Dominic Farolino, Kouhei Ueno, android-bu...@system.gserviceaccount.com, Chromium LUCI CQ, chromium...@chromium.org, Nate Chapin, core-timi...@chromium.org, speed-metrics...@chromium.org, jmedle...@chromium.org, alexmo...@chromium.org, blink-re...@chromium.org, blink-revie...@chromium.org, blink-...@chromium.org, creis...@chromium.org, gavinp...@chromium.org, ipc-securi...@chromium.org, kinuko...@chromium.org, loading-re...@chromium.org, loading...@chromium.org, navigation...@chromium.org
    Attention needed from Hiroki Nakagawa and Yoav Weiss (@Shopify)

    Arthur Sonzogni added 2 comments

    Patchset-level comments
    Arthur Sonzogni . unresolved

    @n

    Commit Message
    Line 10, Patchset 9 (Latest):Change-Id: Ib82ba3c1b0275e8396cb6055971f12210af710cb
    Arthur Sonzogni . unresolved

    Hi Yoav!

    @nhi...@chromium.org already made nice comments. I will mostly defer to him. Please close this when ready for me to double check and stamp

    Open in Gerrit

    Related details

    Attention is currently required from:
    • Hiroki Nakagawa
    • Yoav Weiss (@Shopify)
    Gerrit-Attention: Hiroki Nakagawa <nhi...@chromium.org>
    Gerrit-Attention: Yoav Weiss (@Shopify) <yoav...@chromium.org>
    Gerrit-Comment-Date: Fri, 24 Apr 2026 11:20:50 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: No
    satisfied_requirement
    unsatisfied_requirement
    open
    diffy

    Yoav Weiss (@Shopify) (Gerrit)

    unread,
    Apr 27, 2026, 12:27:19 AM (3 days ago) Apr 27
    to Arthur Sonzogni, Hiroki Nakagawa, Dominic Farolino, Kouhei Ueno, android-bu...@system.gserviceaccount.com, Chromium LUCI CQ, chromium...@chromium.org, Nate Chapin, core-timi...@chromium.org, speed-metrics...@chromium.org, jmedle...@chromium.org, alexmo...@chromium.org, blink-re...@chromium.org, blink-revie...@chromium.org, blink-...@chromium.org, creis...@chromium.org, gavinp...@chromium.org, ipc-securi...@chromium.org, kinuko...@chromium.org, loading-re...@chromium.org, loading...@chromium.org, navigation...@chromium.org
    Attention needed from Hiroki Nakagawa

    Yoav Weiss (@Shopify) added 9 comments

    File content/browser/renderer_host/navigation_controller_impl.cc
    Line 4664, Patchset 9: /*early_hints_preloaded_resources=*/
    Hiroki Nakagawa . resolved

    I think this comment is no longer necessary, as it's clear from the type name.

    Yoav Weiss (@Shopify)

    Done

    File content/browser/renderer_host/navigation_entry_impl.cc
    Line 1051, Patchset 9: EarlyHintsPreloadInfoPtr>() /* early_hints_preloaded_resources
    */
    Hiroki Nakagawa . resolved

    Ditto.

    Yoav Weiss (@Shopify)

    Done

    File content/browser/renderer_host/navigation_request.cc
    Line 1477, Patchset 9: /*early_hints_preloaded_resources=*/
    Hiroki Nakagawa . resolved

    Ditto.

    Yoav Weiss (@Shopify)

    Done

    Line 1637, Patchset 9: /*early_hints_preloaded_resources=*/
    Hiroki Nakagawa . resolved

    Ditto.

    Yoav Weiss (@Shopify)

    Done

    File third_party/blink/public/mojom/navigation/navigation_params.mojom
    Line 55, Patchset 9: network.mojom.RequestDestination destination;
    Hiroki Nakagawa . resolved

    Instead of destination, can we use `network::mojom::LinkAsAttribute`, so that more directly translate it to "as" string in Blink?
    https://source.chromium.org/chromium/chromium/src/+/main:services/network/public/mojom/link_header.mojom;l=22-32;drc=e7e1a3be8c621322129fa519118d8291acc467e4

    Hiroki Nakagawa

    Also, `LinkHeader` struct can be reused instead of `EarlyHintsPreloadInfo`.
    https://source.chromium.org/chromium/chromium/src/+/main:services/network/public/mojom/link_header.mojom;l=42-60;drc=e7e1a3be8c621322129fa519118d8291acc467e4

    Yoav Weiss (@Shopify)

    Done

    File third_party/blink/renderer/platform/loader/fetch/resource_fetcher.cc
    Line 1906, Patchset 9 (Parent): if (RuntimeEnabledFeatures::SpeculationMeasurementEnabled()) {
    Hiroki Nakagawa . resolved

    Why do we remove the feature flag check?

    Yoav Weiss (@Shopify)

    Bad merge conflict resolution (on this and the braces removal..)

    Line 1999, Patchset 9 (Parent): // Only track <link rel=preload> in `preload_records_` for the
    Hiroki Nakagawa . resolved

    Can you keep the back-quotes?

    Yoav Weiss (@Shopify)

    Done

    Line 2002, Patchset 9 (Parent): if (RuntimeEnabledFeatures::SpeculationMeasurementEnabled() &&
    Hiroki Nakagawa . resolved

    Ditto. Why is this feature flag check removed?

    Yoav Weiss (@Shopify)

    Done

    Line 2428, Patchset 9: default:
    Hiroki Nakagawa . resolved

    Can we avoid using the default so that the compiler can detect when a new enum is added?

    Yoav Weiss (@Shopify)

    Done

    Open in Gerrit

    Related details

    Attention is currently required from:
    • Hiroki Nakagawa
    Submit Requirements:
    • requirement satisfiedCode-Coverage
    • requirement is not satisfiedCode-Owners
    • requirement is not satisfiedCode-Review
    • requirement is not satisfiedNo-Unresolved-Comments
    • requirement is not satisfiedReview-Enforcement
    Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
    Gerrit-MessageType: comment
    Gerrit-Project: chromium/src
    Gerrit-Branch: main
    Gerrit-Change-Id: Ib82ba3c1b0275e8396cb6055971f12210af710cb
    Gerrit-Change-Number: 7685815
    Gerrit-PatchSet: 11
    Gerrit-Owner: Yoav Weiss (@Shopify) <yoav...@chromium.org>
    Gerrit-Reviewer: Arthur Sonzogni <arthurs...@chromium.org>
    Gerrit-Reviewer: Hiroki Nakagawa <nhi...@chromium.org>
    Gerrit-Reviewer: Kouhei Ueno <kou...@chromium.org>
    Gerrit-Reviewer: Yoav Weiss (@Shopify) <yoav...@chromium.org>
    Gerrit-CC: Dominic Farolino <d...@chromium.org>
    Gerrit-CC: Nate Chapin <jap...@chromium.org>
    Gerrit-Attention: Hiroki Nakagawa <nhi...@chromium.org>
    Gerrit-Comment-Date: Mon, 27 Apr 2026 04:26:57 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: No
    Comment-In-Reply-To: Hiroki Nakagawa <nhi...@chromium.org>
    satisfied_requirement
    unsatisfied_requirement
    open
    diffy

    Yoav Weiss (@Shopify) (Gerrit)

    unread,
    Apr 27, 2026, 12:27:26 AM (3 days ago) Apr 27
    to Arthur Sonzogni, Hiroki Nakagawa, Dominic Farolino, Kouhei Ueno, android-bu...@system.gserviceaccount.com, Chromium LUCI CQ, chromium...@chromium.org, Nate Chapin, core-timi...@chromium.org, speed-metrics...@chromium.org, jmedle...@chromium.org, alexmo...@chromium.org, blink-re...@chromium.org, blink-revie...@chromium.org, blink-...@chromium.org, creis...@chromium.org, gavinp...@chromium.org, ipc-securi...@chromium.org, kinuko...@chromium.org, loading-re...@chromium.org, loading...@chromium.org, navigation...@chromium.org
    Attention needed from Hiroki Nakagawa

    Yoav Weiss (@Shopify) added 1 comment

    File third_party/blink/web_tests/external/wpt/speculation-rules/speculation-measurement/support/speculation-measurement-utils.js
    Line 32, Patchset 9: if (!href) href = supportFileUrl(as);
    Hiroki Nakagawa . resolved

    Can you revert removing braces in this file?

    Yoav Weiss (@Shopify)

    Done

    Gerrit-Comment-Date: Mon, 27 Apr 2026 04:27:12 +0000
    satisfied_requirement
    unsatisfied_requirement
    open
    diffy

    Yoav Weiss (@Shopify) (Gerrit)

    unread,
    Apr 27, 2026, 12:47:36 AM (3 days ago) Apr 27
    to Arthur Sonzogni, Hiroki Nakagawa, Dominic Farolino, Kouhei Ueno, android-bu...@system.gserviceaccount.com, Chromium LUCI CQ, chromium...@chromium.org, Nate Chapin, core-timi...@chromium.org, speed-metrics...@chromium.org, jmedle...@chromium.org, alexmo...@chromium.org, blink-re...@chromium.org, blink-revie...@chromium.org, blink-...@chromium.org, creis...@chromium.org, gavinp...@chromium.org, ipc-securi...@chromium.org, kinuko...@chromium.org, loading-re...@chromium.org, loading...@chromium.org, navigation...@chromium.org

    Yoav Weiss (@Shopify) voted and added 1 comment

    Votes added by Yoav Weiss (@Shopify)

    Commit-Queue+1

    1 comment

    File third_party/blink/renderer/core/timing/preload_data.h
    Line 28, Patchset 12 (Latest): // Returns the crossorigin mode for the IDL interface.
    Yoav Weiss (@Shopify) . unresolved

    This is reverting comments from the previous CL.. I'm looking into it

    Open in Gerrit

    Related details

    Attention set is empty
    Submit Requirements:
    • requirement satisfiedCode-Coverage
    • requirement is not satisfiedCode-Owners
    • requirement is not satisfiedCode-Review
    • requirement is not satisfiedNo-Unresolved-Comments
    • requirement is not satisfiedReview-Enforcement
    Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
    Gerrit-MessageType: comment
    Gerrit-Project: chromium/src
    Gerrit-Branch: main
    Gerrit-Change-Id: Ib82ba3c1b0275e8396cb6055971f12210af710cb
    Gerrit-Change-Number: 7685815
    Gerrit-PatchSet: 12
    Gerrit-Owner: Yoav Weiss (@Shopify) <yoav...@chromium.org>
    Gerrit-Reviewer: Arthur Sonzogni <arthurs...@chromium.org>
    Gerrit-Reviewer: Hiroki Nakagawa <nhi...@chromium.org>
    Gerrit-Reviewer: Kouhei Ueno <kou...@chromium.org>
    Gerrit-Reviewer: Yoav Weiss (@Shopify) <yoav...@chromium.org>
    Gerrit-CC: Dominic Farolino <d...@chromium.org>
    Gerrit-CC: Nate Chapin <jap...@chromium.org>
    Gerrit-Comment-Date: Mon, 27 Apr 2026 04:47:12 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: Yes
    satisfied_requirement
    unsatisfied_requirement
    open
    diffy

    Yoav Weiss (@Shopify) (Gerrit)

    unread,
    Apr 27, 2026, 1:14:23 AM (3 days ago) Apr 27
    to Arthur Sonzogni, Hiroki Nakagawa, Dominic Farolino, Kouhei Ueno, android-bu...@system.gserviceaccount.com, Chromium LUCI CQ, chromium...@chromium.org, Nate Chapin, core-timi...@chromium.org, speed-metrics...@chromium.org, jmedle...@chromium.org, alexmo...@chromium.org, blink-re...@chromium.org, blink-revie...@chromium.org, blink-...@chromium.org, creis...@chromium.org, gavinp...@chromium.org, ipc-securi...@chromium.org, kinuko...@chromium.org, loading-re...@chromium.org, loading...@chromium.org, navigation...@chromium.org

    Yoav Weiss (@Shopify) voted and added 1 comment

    Votes added by Yoav Weiss (@Shopify)

    Commit-Queue+1

    1 comment

    File third_party/blink/renderer/core/timing/preload_data.h
    Line 28, Patchset 12: // Returns the crossorigin mode for the IDL interface.
    Yoav Weiss (@Shopify) . resolved

    This is reverting comments from the previous CL.. I'm looking into it

    Yoav Weiss (@Shopify)

    Done

    Open in Gerrit

    Related details

    Attention set is empty
    Submit Requirements:
    • requirement satisfiedCode-Coverage
    • requirement is not satisfiedCode-Owners
    • requirement is not satisfiedCode-Review
    • requirement is not satisfiedNo-Unresolved-Comments
    • requirement is not satisfiedReview-Enforcement
    Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
    Gerrit-MessageType: comment
    Gerrit-Project: chromium/src
    Gerrit-Branch: main
    Gerrit-Change-Id: Ib82ba3c1b0275e8396cb6055971f12210af710cb
    Gerrit-Change-Number: 7685815
    Gerrit-PatchSet: 13
    Gerrit-Owner: Yoav Weiss (@Shopify) <yoav...@chromium.org>
    Gerrit-Reviewer: Arthur Sonzogni <arthurs...@chromium.org>
    Gerrit-Reviewer: Hiroki Nakagawa <nhi...@chromium.org>
    Gerrit-Reviewer: Kouhei Ueno <kou...@chromium.org>
    Gerrit-Reviewer: Yoav Weiss (@Shopify) <yoav...@chromium.org>
    Gerrit-CC: Dominic Farolino <d...@chromium.org>
    Gerrit-CC: Nate Chapin <jap...@chromium.org>
    Gerrit-Comment-Date: Mon, 27 Apr 2026 05:14:05 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: Yes
    Comment-In-Reply-To: Yoav Weiss (@Shopify) <yoav...@chromium.org>
    satisfied_requirement
    unsatisfied_requirement
    open
    diffy

    Hiroki Nakagawa (Gerrit)

    unread,
    Apr 28, 2026, 2:33:03 PM (yesterday) Apr 28
    to Yoav Weiss (@Shopify), Arthur Sonzogni, Dominic Farolino, Kouhei Ueno, android-bu...@system.gserviceaccount.com, Chromium LUCI CQ, chromium...@chromium.org, Nate Chapin, core-timi...@chromium.org, speed-metrics...@chromium.org, jmedle...@chromium.org, alexmo...@chromium.org, blink-re...@chromium.org, blink-revie...@chromium.org, blink-...@chromium.org, creis...@chromium.org, gavinp...@chromium.org, ipc-securi...@chromium.org, kinuko...@chromium.org, loading-re...@chromium.org, loading...@chromium.org, navigation...@chromium.org
    Attention needed from Kouhei Ueno and Yoav Weiss (@Shopify)

    Hiroki Nakagawa added 7 comments

    Patchset-level comments
    File-level comment, Patchset 15 (Latest):
    Hiroki Nakagawa . resolved

    Looks good overall.

    File third_party/blink/renderer/core/timing/preload_data.h
    Line 39, Patchset 15 (Latest): const V8CrossOriginMode crossorigin_;
    Hiroki Nakagawa . unresolved

    Should we keep this as `CrossOriginAttributeValue` according to this previous review comment?
    https://chromium-review.git.corp.google.com/c/chromium/src/+/7715319/comment/3166799c_9b9d71c6/

    File third_party/blink/renderer/platform/loader/fetch/resource.cc
    Line 74, Patchset 15 (Latest):String ResourceTypeToAsAttributeString(ResourceType type) {
    Hiroki Nakagawa . unresolved

    Instead of adding a new helper, can we keep using `PreloadHelper::GetAsAttributeFromResourceType()` that was introduced by the previous CL?

    File third_party/blink/renderer/platform/loader/fetch/resource_fetcher.cc
    Line 2448, Patchset 15 (Latest): break; // kCrossOriginAttributeNotSet is the default
    Hiroki Nakagawa . unresolved

    Instead of depending on the default value, can we explicitly set `info.crossorigin` to `kCrossOriginAttributeNotSet` here?

    Line 2435, Patchset 15 (Latest): // Also record early hints preloads for the SpeculationMeasurement API.
    for (const auto& [url, entry] : resources) {
    if (!preload_records_.Contains(url)) {
    PreloadInfo info;
    info.as = LinkAsAttributeToString(entry.as);
    switch (entry.cross_origin) {
    case network::mojom::CrossOriginAttribute::kAnonymous:
    info.crossorigin = kCrossOriginAttributeAnonymous;
    break;
    case network::mojom::CrossOriginAttribute::kUseCredentials:
    info.crossorigin = kCrossOriginAttributeUseCredentials;
    break;
    case network::mojom::CrossOriginAttribute::kUnspecified:
    break; // kCrossOriginAttributeNotSet is the default
    }
    preload_records_.insert(url, std::move(info));
    }
    }
    Hiroki Nakagawa . unresolved

    This should be guarded by the feature flag:

    ```
    // Also record early hints preloads for the SpeculationMeasurement API.
    if (RuntimeEnabledFeatures::SpeculationMeasurementEnabled()) {
    for (const auto& [url, entry] : resources) {
    // ...
    }
    }
    ```
    Line 3366, Patchset 15 (Latest): // Mark as used in preload_records_ for the SpeculationMeasurement API.
    auto record_it = preload_records_.find(initial_url);
    if (record_it != preload_records_.end()) {
    record_it->value.used_time = base::TimeTicks::Now();
    }
    Hiroki Nakagawa . unresolved

    Ditto. This should be guarded by the feature flag.

    File third_party/blink/web_tests/external/wpt/speculation-rules/speculation-measurement/performance-speculations-early-hints-preload.tentative.h2.window.js
    Line 11, Patchset 15 (Latest): {as_attr: 'fetch', crossorigin_attr: ''},
    {as_attr: 'fetch', crossorigin_attr: 'use-credentials'},
    Hiroki Nakagawa . unresolved

    Test cases for "fetch" are not consistent with others. Is this intentional? I wonder if this should be like this:

    ```
    {as_attr: 'fetch'},
    {as_attr: 'fetch', crossorigin_attr: 'anonymous'},
    {as_attr: 'fetch', crossorigin_attr: 'use-credentials'},
    ```
    Open in Gerrit

    Related details

    Attention is currently required from:
    • Kouhei Ueno
    • Yoav Weiss (@Shopify)
    Submit Requirements:
    • requirement satisfiedCode-Coverage
    • requirement is not satisfiedCode-Owners
    • requirement is not satisfiedCode-Review
    • requirement is not satisfiedNo-Unresolved-Comments
    • requirement is not satisfiedReview-Enforcement
    Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
    Gerrit-MessageType: comment
    Gerrit-Project: chromium/src
    Gerrit-Branch: main
    Gerrit-Change-Id: Ib82ba3c1b0275e8396cb6055971f12210af710cb
    Gerrit-Change-Number: 7685815
    Gerrit-PatchSet: 15
    Gerrit-Owner: Yoav Weiss (@Shopify) <yoav...@chromium.org>
    Gerrit-Reviewer: Arthur Sonzogni <arthurs...@chromium.org>
    Gerrit-Reviewer: Hiroki Nakagawa <nhi...@chromium.org>
    Gerrit-Reviewer: Kouhei Ueno <kou...@chromium.org>
    Gerrit-Reviewer: Yoav Weiss (@Shopify) <yoav...@chromium.org>
    Gerrit-CC: Dominic Farolino <d...@chromium.org>
    Gerrit-CC: Nate Chapin <jap...@chromium.org>
    Gerrit-Attention: Yoav Weiss (@Shopify) <yoav...@chromium.org>
    Gerrit-Attention: Kouhei Ueno <kou...@chromium.org>
    Gerrit-Comment-Date: Tue, 28 Apr 2026 18:32:27 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: No
    satisfied_requirement
    unsatisfied_requirement
    open
    diffy

    Yoav Weiss (@Shopify) (Gerrit)

    unread,
    12:49 AM (15 hours ago) 12:49 AM
    to Arthur Sonzogni, Hiroki Nakagawa, Dominic Farolino, Kouhei Ueno, android-bu...@system.gserviceaccount.com, Chromium LUCI CQ, chromium...@chromium.org, Nate Chapin, core-timi...@chromium.org, speed-metrics...@chromium.org, jmedle...@chromium.org, alexmo...@chromium.org, blink-re...@chromium.org, blink-revie...@chromium.org, blink-...@chromium.org, creis...@chromium.org, gavinp...@chromium.org, ipc-securi...@chromium.org, kinuko...@chromium.org, loading-re...@chromium.org, loading...@chromium.org, navigation...@chromium.org
    Attention needed from Hiroki Nakagawa and Kouhei Ueno

    Yoav Weiss (@Shopify) voted and added 6 comments

    Votes added by Yoav Weiss (@Shopify)

    Commit-Queue+1

    6 comments

    File third_party/blink/renderer/core/timing/preload_data.h
    Line 39, Patchset 15: const V8CrossOriginMode crossorigin_;
    Hiroki Nakagawa . resolved

    Should we keep this as `CrossOriginAttributeValue` according to this previous review comment?
    https://chromium-review.git.corp.google.com/c/chromium/src/+/7715319/comment/3166799c_9b9d71c6/

    Yoav Weiss (@Shopify)

    Done

    File third_party/blink/renderer/platform/loader/fetch/resource.cc
    Line 74, Patchset 15:String ResourceTypeToAsAttributeString(ResourceType type) {
    Hiroki Nakagawa . resolved

    Instead of adding a new helper, can we keep using `PreloadHelper::GetAsAttributeFromResourceType()` that was introduced by the previous CL?

    Yoav Weiss (@Shopify)

    Oops, apologies. I moved that helper from PreloadHelper to Resource, so that it can be used in platform/

    File third_party/blink/renderer/platform/loader/fetch/resource_fetcher.cc
    Line 2448, Patchset 15: break; // kCrossOriginAttributeNotSet is the default
    Hiroki Nakagawa . resolved

    Instead of depending on the default value, can we explicitly set `info.crossorigin` to `kCrossOriginAttributeNotSet` here?

    Yoav Weiss (@Shopify)

    Done

    Line 2435, Patchset 15: // Also record early hints preloads for the SpeculationMeasurement API.

    for (const auto& [url, entry] : resources) {
    if (!preload_records_.Contains(url)) {
    PreloadInfo info;
    info.as = LinkAsAttributeToString(entry.as);
    switch (entry.cross_origin) {
    case network::mojom::CrossOriginAttribute::kAnonymous:
    info.crossorigin = kCrossOriginAttributeAnonymous;
    break;
    case network::mojom::CrossOriginAttribute::kUseCredentials:
    info.crossorigin = kCrossOriginAttributeUseCredentials;
    break;
    case network::mojom::CrossOriginAttribute::kUnspecified:
    break; // kCrossOriginAttributeNotSet is the default
    }
    preload_records_.insert(url, std::move(info));
    }
    }
    Hiroki Nakagawa . resolved

    This should be guarded by the feature flag:

    ```
    // Also record early hints preloads for the SpeculationMeasurement API.
    if (RuntimeEnabledFeatures::SpeculationMeasurementEnabled()) {
    for (const auto& [url, entry] : resources) {
    // ...
    }
    }
    ```
    Yoav Weiss (@Shopify)

    Done

    Line 3366, Patchset 15: // Mark as used in preload_records_ for the SpeculationMeasurement API.

    auto record_it = preload_records_.find(initial_url);
    if (record_it != preload_records_.end()) {
    record_it->value.used_time = base::TimeTicks::Now();
    }
    Hiroki Nakagawa . resolved

    Ditto. This should be guarded by the feature flag.

    Yoav Weiss (@Shopify)

    Done

    File third_party/blink/web_tests/external/wpt/speculation-rules/speculation-measurement/performance-speculations-early-hints-preload.tentative.h2.window.js
    Line 11, Patchset 15: {as_attr: 'fetch', crossorigin_attr: ''},

    {as_attr: 'fetch', crossorigin_attr: 'use-credentials'},
    Hiroki Nakagawa . resolved

    Test cases for "fetch" are not consistent with others. Is this intentional? I wonder if this should be like this:

    ```
    {as_attr: 'fetch'},
    {as_attr: 'fetch', crossorigin_attr: 'anonymous'},
    {as_attr: 'fetch', crossorigin_attr: 'use-credentials'},
    ```
    Yoav Weiss (@Shopify)

    Done

    Open in Gerrit

    Related details

    Attention is currently required from:
    • Hiroki Nakagawa
    • Kouhei Ueno
    Submit Requirements:
    • requirement satisfiedCode-Coverage
    • requirement is not satisfiedCode-Owners
    • requirement is not satisfiedCode-Review
    • requirement is not satisfiedNo-Unresolved-Comments
    • requirement is not satisfiedReview-Enforcement
    Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
    Gerrit-MessageType: comment
    Gerrit-Project: chromium/src
    Gerrit-Branch: main
    Gerrit-Change-Id: Ib82ba3c1b0275e8396cb6055971f12210af710cb
    Gerrit-Change-Number: 7685815
    Gerrit-PatchSet: 16
    Gerrit-Owner: Yoav Weiss (@Shopify) <yoav...@chromium.org>
    Gerrit-Reviewer: Arthur Sonzogni <arthurs...@chromium.org>
    Gerrit-Reviewer: Hiroki Nakagawa <nhi...@chromium.org>
    Gerrit-Reviewer: Kouhei Ueno <kou...@chromium.org>
    Gerrit-Reviewer: Yoav Weiss (@Shopify) <yoav...@chromium.org>
    Gerrit-CC: Dominic Farolino <d...@chromium.org>
    Gerrit-CC: Nate Chapin <jap...@chromium.org>
    Gerrit-Attention: Hiroki Nakagawa <nhi...@chromium.org>
    Gerrit-Attention: Kouhei Ueno <kou...@chromium.org>
    Gerrit-Comment-Date: Wed, 29 Apr 2026 04:49:04 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: Yes
    Comment-In-Reply-To: Hiroki Nakagawa <nhi...@chromium.org>
    satisfied_requirement
    unsatisfied_requirement
    open
    diffy
    Reply all
    Reply to author
    Forward
    0 new messages