Implement prerendering cross-origin iframes [chromium/src : main]

0 views
Skip to first unread message

Yoichi Osato (Gerrit)

unread,
Aug 22, 2025, 12:09:43 AMAug 22
to Hiroki Nakagawa, Yoav Weiss (@Shopify), Chromium LUCI CQ, AyeAye, chromium...@chromium.org, prerendering-reviews, creis...@chromium.org, alexmo...@chromium.org, navigation...@chromium.org, network-ser...@chromium.org, blink-...@chromium.org, blink-revie...@chromium.org, gavinp+p...@chromium.org, gavin...@chromium.org, tburkar...@chromium.org
Attention needed from Hiroki Nakagawa

New activity on the change

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
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: I4715487260e227ffc2541bc5c2a283a780b9cc2d
Gerrit-Change-Number: 6780845
Gerrit-PatchSet: 17
Gerrit-Owner: Yoichi Osato <yoi...@chromium.org>
Gerrit-Reviewer: Hiroki Nakagawa <nhi...@chromium.org>
Gerrit-Reviewer: Yoichi Osato <yoi...@chromium.org>
Gerrit-CC: Yoav Weiss (@Shopify) <yoav...@chromium.org>
Gerrit-CC: prerendering-reviews <prerenderi...@chromium.org>
Gerrit-Attention: Hiroki Nakagawa <nhi...@chromium.org>
Gerrit-Comment-Date: Fri, 22 Aug 2025 04:09:10 +0000
Gerrit-HasComments: No
Gerrit-Has-Labels: No
satisfied_requirement
unsatisfied_requirement
open
diffy

Hiroki Nakagawa (Gerrit)

unread,
Aug 22, 2025, 12:40:51 AMAug 22
to Yoichi Osato, Lingqi Chi, Yoav Weiss (@Shopify), Chromium LUCI CQ, AyeAye, chromium...@chromium.org, prerendering-reviews, creis...@chromium.org, alexmo...@chromium.org, navigation...@chromium.org, network-ser...@chromium.org, blink-...@chromium.org, blink-revie...@chromium.org, gavinp+p...@chromium.org, gavin...@chromium.org, tburkar...@chromium.org
Attention needed from Hiroki Nakagawa and Lingqi Chi

Hiroki Nakagawa added 1 comment

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

+lingqi@: I'd like to have more reviewers for this new feature. Can you help to review?

Open in Gerrit

Related details

Attention is currently required from:
  • Hiroki Nakagawa
  • Lingqi Chi
Submit Requirements:
  • requirement satisfiedCode-Coverage
  • requirement is not satisfiedCode-Owners
  • requirement is not satisfiedCode-Review
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: I4715487260e227ffc2541bc5c2a283a780b9cc2d
Gerrit-Change-Number: 6780845
Gerrit-PatchSet: 17
Gerrit-Owner: Yoichi Osato <yoi...@chromium.org>
Gerrit-Reviewer: Hiroki Nakagawa <nhi...@chromium.org>
Gerrit-Reviewer: Lingqi Chi <lin...@chromium.org>
Gerrit-Reviewer: Yoichi Osato <yoi...@chromium.org>
Gerrit-CC: Yoav Weiss (@Shopify) <yoav...@chromium.org>
Gerrit-CC: prerendering-reviews <prerenderi...@chromium.org>
Gerrit-Attention: Lingqi Chi <lin...@chromium.org>
Gerrit-Attention: Hiroki Nakagawa <nhi...@chromium.org>
Gerrit-Comment-Date: Fri, 22 Aug 2025 04:40:21 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: No
satisfied_requirement
unsatisfied_requirement
open
diffy

Lingqi Chi (Gerrit)

unread,
Aug 22, 2025, 2:28:50 AMAug 22
to Yoichi Osato, Hiroki Nakagawa, Yoav Weiss (@Shopify), Chromium LUCI CQ, AyeAye, chromium...@chromium.org, prerendering-reviews, creis...@chromium.org, alexmo...@chromium.org, navigation...@chromium.org, network-ser...@chromium.org, blink-...@chromium.org, blink-revie...@chromium.org, gavinp+p...@chromium.org, gavin...@chromium.org, tburkar...@chromium.org
Attention needed from Hiroki Nakagawa and Yoichi Osato

Lingqi Chi added 9 comments

Patchset-level comments
Lingqi Chi . resolved

thank you!

Commit Message
Line 8, Patchset 17 (Latest):
Lingqi Chi . unresolved

memo) since prerender2 was implemented with the assumption that cross-origin iframes should not loaded until activation, there are some code paths that still hold this assumption. as far as i can tell:
1.
https://source.chromium.org/chromium/chromium/src/+/main:content/browser/renderer_host/render_frame_proxy_host.cc;drc=2b2aabbe4856380ccbeabc14a18600500d13bb46;l=848

2. https://source.chromium.org/chromium/chromium/src/+/main:third_party/blink/renderer/core/exported/web_view_impl.cc;drc=43776165d1d46d532f5e0a184045fb62e959af6e;l=3522

Maybe we can leave some TODO comments to track them?

Line 20, Patchset 17 (Latest):
Lingqi Chi . unresolved

Since it is the basic part, Can we make it behind a feature flag?

File content/browser/preloading/prerender/prerender_host.h
Line 596, Patchset 17 (Latest): // True if cross-origin subframe navigation are allowed.
Lingqi Chi . unresolved

nit/ navigations?

Line 417, Patchset 17 (Latest): // Allows cross-origin subframes to be prerendered.
Lingqi Chi . unresolved

Maybe `Whether to allow`?

File content/browser/preloading/prerender/prerender_host.cc
Line 779, Patchset 17 (Latest): CHECK(page);
if (allow_cross_origin_subframe_navigation_) {
page->render_frame_host()
->GetPage()
.NotifyCrossOriginSubframePrerenderIsAllowed();
}
Lingqi Chi . unresolved

Out of curiosity, are there any reasons that we do not propagate this state when receiving the header? if so, could we leave a brief comment here?

File content/browser/preloading/prerender/prerender_subframe_navigation_throttle.cc
Line 5, Patchset 17 (Latest):#include "content/browser/preloading/prerender/prerender_subframe_navigation_throttle.h"
Lingqi Chi . unresolved

let's update the class-level comment accordingly

Line 168, Patchset 17 (Latest):PrerenderSubframeNavigationThrottle::DeferOrCancelCrossOriginSubframeNavigation(
Lingqi Chi . unresolved

maybe we can leave a todo to rename this function? I think it is out-of-date after your CL.

File third_party/blink/web_tests/external/wpt/speculation-rules/prerender/cross-origin-iframe-prerender.https.html
Line 44, Patchset 17 (Latest): {
event: 'prerendering change',
prerendering: false
},
{
event: 'finished waiting iframe prerender finished',
prerendering: false
Lingqi Chi . unresolved

I think after this CL, cross-origin iframes can be loaded, is my understanding correct? In this case, it should be possible that "finished waiting iframe prerender finished" fired before the "prerendering change" event?

Open in Gerrit

Related details

Attention is currently required from:
  • Hiroki Nakagawa
  • Yoichi Osato
Submit Requirements:
    • requirement satisfiedCode-Coverage
    • requirement is not satisfiedCode-Owners
    • requirement is not satisfiedCode-Review
    • requirement is not satisfiedNo-Unresolved-Comments
    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: I4715487260e227ffc2541bc5c2a283a780b9cc2d
    Gerrit-Change-Number: 6780845
    Gerrit-PatchSet: 17
    Gerrit-Owner: Yoichi Osato <yoi...@chromium.org>
    Gerrit-Reviewer: Hiroki Nakagawa <nhi...@chromium.org>
    Gerrit-Reviewer: Lingqi Chi <lin...@chromium.org>
    Gerrit-Reviewer: Yoichi Osato <yoi...@chromium.org>
    Gerrit-CC: Yoav Weiss (@Shopify) <yoav...@chromium.org>
    Gerrit-CC: prerendering-reviews <prerenderi...@chromium.org>
    Gerrit-Attention: Hiroki Nakagawa <nhi...@chromium.org>
    Gerrit-Attention: Yoichi Osato <yoi...@chromium.org>
    Gerrit-Comment-Date: Fri, 22 Aug 2025 06:28:19 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: No
    satisfied_requirement
    unsatisfied_requirement
    open
    diffy

    Hiroki Nakagawa (Gerrit)

    unread,
    Aug 22, 2025, 2:36:31 AMAug 22
    to Yoichi Osato, Domenic Denicola, Lingqi Chi, Yoav Weiss (@Shopify), Chromium LUCI CQ, AyeAye, chromium...@chromium.org, prerendering-reviews, creis...@chromium.org, alexmo...@chromium.org, navigation...@chromium.org, network-ser...@chromium.org, blink-...@chromium.org, blink-revie...@chromium.org, gavinp+p...@chromium.org, gavin...@chromium.org, tburkar...@chromium.org
    Attention needed from Yoichi Osato

    Hiroki Nakagawa added 3 comments

    Patchset-level comments
    Hiroki Nakagawa . resolved

    I haven't fully reviewed this yet but let me release early comments.

    File content/browser/preloading/prerender/prerender_host.cc
    Line 647, Patchset 17 (Latest): navigation_handle->GetResponseHeaders();
    Hiroki Nakagawa . unresolved

    nit: Can we use `navigation_request` for consistency with other parts in this function?

    Line 650, Patchset 17 (Latest): network::ParseSupportsLoadingMode(*headers);
    Hiroki Nakagawa . unresolved

    Can we use `navigation_request->response()->parsed_headers->supports_loading_mode` like no_vary_search below? Parsing the header in the browser process with C++ is not encouraged.
    https://chromium.googlesource.com/chromium/src/+/HEAD/docs/security/rule-of-2.md

    Open in Gerrit

    Related details

    Attention is currently required from:
    • Yoichi Osato
    Submit Requirements:
    • requirement satisfiedCode-Coverage
    • requirement is not satisfiedCode-Owners
    • requirement is not satisfiedCode-Review
    • requirement is not satisfiedNo-Unresolved-Comments
    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: I4715487260e227ffc2541bc5c2a283a780b9cc2d
    Gerrit-Change-Number: 6780845
    Gerrit-PatchSet: 17
    Gerrit-Owner: Yoichi Osato <yoi...@chromium.org>
    Gerrit-Reviewer: Hiroki Nakagawa <nhi...@chromium.org>
    Gerrit-Reviewer: Lingqi Chi <lin...@chromium.org>
    Gerrit-Reviewer: Yoichi Osato <yoi...@chromium.org>
    Gerrit-CC: Domenic Denicola <dom...@chromium.org>
    Gerrit-CC: Yoav Weiss (@Shopify) <yoav...@chromium.org>
    Gerrit-CC: prerendering-reviews <prerenderi...@chromium.org>
    Gerrit-Attention: Yoichi Osato <yoi...@chromium.org>
    Gerrit-Comment-Date: Fri, 22 Aug 2025 06:36:00 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: No
    satisfied_requirement
    unsatisfied_requirement
    open
    diffy

    Lingqi Chi (Gerrit)

    unread,
    Aug 22, 2025, 2:40:48 AMAug 22
    to Yoichi Osato, Domenic Denicola, Hiroki Nakagawa, Yoav Weiss (@Shopify), Chromium LUCI CQ, AyeAye, chromium...@chromium.org, prerendering-reviews, creis...@chromium.org, alexmo...@chromium.org, navigation...@chromium.org, network-ser...@chromium.org, blink-...@chromium.org, blink-revie...@chromium.org, gavinp+p...@chromium.org, gavin...@chromium.org, tburkar...@chromium.org
    Attention needed from Yoichi Osato

    Lingqi Chi added 1 comment

    File content/browser/preloading/prerender/prerender_host.cc
    Line 650, Patchset 17 (Latest): network::ParseSupportsLoadingMode(*headers);
    Hiroki Nakagawa . unresolved

    Can we use `navigation_request->response()->parsed_headers->supports_loading_mode` like no_vary_search below? Parsing the header in the browser process with C++ is not encouraged.
    https://chromium.googlesource.com/chromium/src/+/HEAD/docs/security/rule-of-2.md

    Lingqi Chi

    TIL!

    Gerrit-Comment-Date: Fri, 22 Aug 2025 06:40:24 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: No
    Comment-In-Reply-To: Hiroki Nakagawa <nhi...@chromium.org>
    satisfied_requirement
    unsatisfied_requirement
    open
    diffy

    Yoichi Osato (Gerrit)

    unread,
    Aug 26, 2025, 4:07:27 AM (13 days ago) Aug 26
    to Domenic Denicola, Lingqi Chi, Hiroki Nakagawa, Yoav Weiss (@Shopify), Chromium LUCI CQ, AyeAye, chromium...@chromium.org, prerendering-reviews, creis...@chromium.org, alexmo...@chromium.org, navigation...@chromium.org, network-ser...@chromium.org, blink-...@chromium.org, blink-revie...@chromium.org, gavinp+p...@chromium.org, gavin...@chromium.org, tburkar...@chromium.org
    Attention needed from Hiroki Nakagawa and Lingqi Chi

    Yoichi Osato added 10 comments

    Commit Message
    Line 8, Patchset 17:
    Lingqi Chi . resolved

    memo) since prerender2 was implemented with the assumption that cross-origin iframes should not loaded until activation, there are some code paths that still hold this assumption. as far as i can tell:
    1.
    https://source.chromium.org/chromium/chromium/src/+/main:content/browser/renderer_host/render_frame_proxy_host.cc;drc=2b2aabbe4856380ccbeabc14a18600500d13bb46;l=848

    2. https://source.chromium.org/chromium/chromium/src/+/main:third_party/blink/renderer/core/exported/web_view_impl.cc;drc=43776165d1d46d532f5e0a184045fb62e959af6e;l=3522

    Maybe we can leave some TODO comments to track them?

    Yoichi Osato

    #2 is addressed in this CL.
    I added a description for #1 in the design doc.

    Line 20, Patchset 17:
    Lingqi Chi . resolved

    Since it is the basic part, Can we make it behind a feature flag?

    Yoichi Osato

    Done

    File content/browser/preloading/prerender/prerender_host.h
    Line 596, Patchset 17: // True if cross-origin subframe navigation are allowed.
    Lingqi Chi . resolved

    nit/ navigations?

    Yoichi Osato

    Done

    Line 417, Patchset 17: // Allows cross-origin subframes to be prerendered.
    Lingqi Chi . resolved

    Maybe `Whether to allow`?

    Yoichi Osato

    Done

    File content/browser/preloading/prerender/prerender_host.cc
    Line 647, Patchset 17: navigation_handle->GetResponseHeaders();
    Hiroki Nakagawa . resolved

    nit: Can we use `navigation_request` for consistency with other parts in this function?

    Yoichi Osato

    Done

    Line 650, Patchset 17: network::ParseSupportsLoadingMode(*headers);
    Hiroki Nakagawa . resolved

    Can we use `navigation_request->response()->parsed_headers->supports_loading_mode` like no_vary_search below? Parsing the header in the browser process with C++ is not encouraged.
    https://chromium.googlesource.com/chromium/src/+/HEAD/docs/security/rule-of-2.md

    Lingqi Chi

    TIL!

    Yoichi Osato

    Done


    if (allow_cross_origin_subframe_navigation_) {
    page->render_frame_host()
    ->GetPage()
    .NotifyCrossOriginSubframePrerenderIsAllowed();
    }
    Lingqi Chi . unresolved

    Out of curiosity, are there any reasons that we do not propagate this state when receiving the header? if so, could we leave a brief comment here?

    Yoichi Osato

    I guess PrerenderHost::Activate() activates the Page here and we should not touch Page things before this.
    @nhi...@chromium.org for confirmation.

    File content/browser/preloading/prerender/prerender_subframe_navigation_throttle.cc
    Line 5, Patchset 17:#include "content/browser/preloading/prerender/prerender_subframe_navigation_throttle.h"
    Lingqi Chi . resolved

    let's update the class-level comment accordingly

    Yoichi Osato

    Done

    Line 168, Patchset 17:PrerenderSubframeNavigationThrottle::DeferOrCancelCrossOriginSubframeNavigation(
    Lingqi Chi . resolved

    maybe we can leave a todo to rename this function? I think it is out-of-date after your CL.

    Yoichi Osato

    Done

    File third_party/blink/web_tests/external/wpt/speculation-rules/prerender/cross-origin-iframe-prerender.https.html

    event: 'prerendering change',
    prerendering: false
    },
    {
    event: 'finished waiting iframe prerender finished',
    prerendering: false
    Lingqi Chi . resolved

    I think after this CL, cross-origin iframes can be loaded, is my understanding correct? In this case, it should be possible that "finished waiting iframe prerender finished" fired before the "prerendering change" event?

    Yoichi Osato

    You're right. It cannot be determined. Wrote such in the design doc too and updated the test.

    Open in Gerrit

    Related details

    Attention is currently required from:
    • Hiroki Nakagawa
    • Lingqi Chi
    Submit Requirements:
    • requirement satisfiedCode-Coverage
    • requirement is not satisfiedCode-Owners
    • requirement is not satisfiedCode-Review
    • requirement is not satisfiedNo-Unresolved-Comments
    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: I4715487260e227ffc2541bc5c2a283a780b9cc2d
    Gerrit-Change-Number: 6780845
    Gerrit-PatchSet: 18
    Gerrit-Owner: Yoichi Osato <yoi...@chromium.org>
    Gerrit-Reviewer: Hiroki Nakagawa <nhi...@chromium.org>
    Gerrit-Reviewer: Lingqi Chi <lin...@chromium.org>
    Gerrit-Reviewer: Yoichi Osato <yoi...@chromium.org>
    Gerrit-CC: Domenic Denicola <dom...@chromium.org>
    Gerrit-CC: Yoav Weiss (@Shopify) <yoav...@chromium.org>
    Gerrit-CC: prerendering-reviews <prerenderi...@chromium.org>
    Gerrit-Attention: Lingqi Chi <lin...@chromium.org>
    Gerrit-Attention: Hiroki Nakagawa <nhi...@chromium.org>
    Gerrit-Comment-Date: Tue, 26 Aug 2025 08:07:02 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: No
    Comment-In-Reply-To: Lingqi Chi <lin...@chromium.org>
    Comment-In-Reply-To: Hiroki Nakagawa <nhi...@chromium.org>
    satisfied_requirement
    unsatisfied_requirement
    open
    diffy

    Huanpo Lin (Gerrit)

    unread,
    Aug 26, 2025, 5:53:46 AM (13 days ago) Aug 26
    to Yoichi Osato, Domenic Denicola, Lingqi Chi, Hiroki Nakagawa, Yoav Weiss (@Shopify), Chromium LUCI CQ, AyeAye, chromium...@chromium.org, prerendering-reviews, creis...@chromium.org, alexmo...@chromium.org, navigation...@chromium.org, network-ser...@chromium.org, blink-...@chromium.org, blink-revie...@chromium.org, gavinp+p...@chromium.org, gavin...@chromium.org, tburkar...@chromium.org
    Attention needed from Hiroki Nakagawa, Lingqi Chi and Yoichi Osato

    Huanpo Lin added 1 comment

    File content/browser/preloading/prerender/prerender_subframe_navigation_throttle.h
    Line 49, Patchset 18 (Latest): ThrottleCheckResult WillStartCrossOriginSubframeNavigation(
    Huanpo Lin . unresolved

    drive-by comment: Since allowing cross origin subframe still requires opt-in `Supports-Loading-Mode: prerender-cross-origin-frames`, or it will still be deferred, should this be renamed to `MaybeStartCrossOriginSubframeNavigation` or something else?

    Open in Gerrit

    Related details

    Attention is currently required from:
    • Hiroki Nakagawa
    • Lingqi Chi
    • Yoichi Osato
    Submit Requirements:
    • requirement satisfiedCode-Coverage
    • requirement is not satisfiedCode-Owners
    • requirement is not satisfiedCode-Review
    • requirement is not satisfiedNo-Unresolved-Comments
    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: I4715487260e227ffc2541bc5c2a283a780b9cc2d
    Gerrit-Change-Number: 6780845
    Gerrit-PatchSet: 18
    Gerrit-Owner: Yoichi Osato <yoi...@chromium.org>
    Gerrit-Reviewer: Hiroki Nakagawa <nhi...@chromium.org>
    Gerrit-Reviewer: Lingqi Chi <lin...@chromium.org>
    Gerrit-Reviewer: Yoichi Osato <yoi...@chromium.org>
    Gerrit-CC: Domenic Denicola <dom...@chromium.org>
    Gerrit-CC: Huanpo Lin <robe...@chromium.org>
    Gerrit-CC: Yoav Weiss (@Shopify) <yoav...@chromium.org>
    Gerrit-CC: prerendering-reviews <prerenderi...@chromium.org>
    Gerrit-Attention: Lingqi Chi <lin...@chromium.org>
    Gerrit-Attention: Hiroki Nakagawa <nhi...@chromium.org>
    Gerrit-Attention: Yoichi Osato <yoi...@chromium.org>
    Gerrit-Comment-Date: Tue, 26 Aug 2025 09:53:19 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: No
    satisfied_requirement
    unsatisfied_requirement
    open
    diffy

    Yoichi Osato (Gerrit)

    unread,
    Aug 27, 2025, 3:15:24 AM (12 days ago) Aug 27
    to Huanpo Lin, Domenic Denicola, Lingqi Chi, Hiroki Nakagawa, Yoav Weiss (@Shopify), Chromium LUCI CQ, AyeAye, chromium...@chromium.org, prerendering-reviews, creis...@chromium.org, alexmo...@chromium.org, navigation...@chromium.org, network-ser...@chromium.org, blink-...@chromium.org, blink-revie...@chromium.org, gavinp+p...@chromium.org, gavin...@chromium.org, tburkar...@chromium.org
    Attention needed from Hiroki Nakagawa, Huanpo Lin and Lingqi Chi

    Yoichi Osato added 1 comment

    File content/browser/preloading/prerender/prerender_subframe_navigation_throttle.h
    Line 49, Patchset 18: ThrottleCheckResult WillStartCrossOriginSubframeNavigation(
    Huanpo Lin . resolved

    drive-by comment: Since allowing cross origin subframe still requires opt-in `Supports-Loading-Mode: prerender-cross-origin-frames`, or it will still be deferred, should this be renamed to `MaybeStartCrossOriginSubframeNavigation` or something else?

    Yoichi Osato

    Done

    Open in Gerrit

    Related details

    Attention is currently required from:
    • Hiroki Nakagawa
    • Huanpo Lin
    • Lingqi Chi
    Submit Requirements:
    • requirement satisfiedCode-Coverage
    • requirement is not satisfiedCode-Owners
    • requirement is not satisfiedCode-Review
    • requirement is not satisfiedNo-Unresolved-Comments
    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: I4715487260e227ffc2541bc5c2a283a780b9cc2d
    Gerrit-Change-Number: 6780845
    Gerrit-PatchSet: 19
    Gerrit-Owner: Yoichi Osato <yoi...@chromium.org>
    Gerrit-Reviewer: Hiroki Nakagawa <nhi...@chromium.org>
    Gerrit-Reviewer: Lingqi Chi <lin...@chromium.org>
    Gerrit-Reviewer: Yoichi Osato <yoi...@chromium.org>
    Gerrit-CC: Domenic Denicola <dom...@chromium.org>
    Gerrit-CC: Huanpo Lin <robe...@chromium.org>
    Gerrit-CC: Yoav Weiss (@Shopify) <yoav...@chromium.org>
    Gerrit-CC: prerendering-reviews <prerenderi...@chromium.org>
    Gerrit-Attention: Lingqi Chi <lin...@chromium.org>
    Gerrit-Attention: Hiroki Nakagawa <nhi...@chromium.org>
    Gerrit-Attention: Huanpo Lin <robe...@chromium.org>
    Gerrit-Comment-Date: Wed, 27 Aug 2025 07:15:11 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: No
    Comment-In-Reply-To: Huanpo Lin <robe...@chromium.org>
    satisfied_requirement
    unsatisfied_requirement
    open
    diffy

    Hiroki Nakagawa (Gerrit)

    unread,
    Aug 28, 2025, 5:01:09 AM (11 days ago) Aug 28
    to Yoichi Osato, Huanpo Lin, Domenic Denicola, Lingqi Chi, Yoav Weiss (@Shopify), Chromium LUCI CQ, AyeAye, chromium...@chromium.org, prerendering-reviews, creis...@chromium.org, alexmo...@chromium.org, navigation...@chromium.org, network-ser...@chromium.org, blink-...@chromium.org, blink-revie...@chromium.org, gavinp+p...@chromium.org, gavin...@chromium.org, tburkar...@chromium.org
    Attention needed from Huanpo Lin, Lingqi Chi and Yoichi Osato

    Hiroki Nakagawa added 6 comments

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

    Sorry for the late reply. Looks good overall. I'll review tests later.

    File content/browser/preloading/prerender/prerender_host.cc
    Line 645, Patchset 18: bool has_no_vary_search_with_parse_error_header = false;
    if (navigation_request->response() &&
    navigation_request->response()->parsed_headers) {
    const network::mojom::ParsedHeadersPtr& parsed_headers =
    navigation_request->response()->parsed_headers;
    if (parsed_headers->no_vary_search_with_parse_error) {
    has_no_vary_search_with_parse_error_header = true;
    MaybeSetNoVarySearch(*parsed_headers->no_vary_search_with_parse_error);
    }

    if (base::FeatureList::IsEnabled(features::kPrerender2CrossOriginIframes) &&
    base::Contains(
    parsed_headers->supports_loading_mode,
    network::mojom::LoadingMode::kPrerenderCrossOriginFrames)) {
    allow_cross_origin_subframe_navigation_ = true;
    }
    }
    if (!has_no_vary_search_with_parse_error_header) {
    CHECK(!no_vary_search_.has_value());
    CHECK(!no_vary_search_parse_error_.has_value());
    }
    Hiroki Nakagawa . unresolved

    `has_no_vary_search_with_parse_error_header` may not be necessary:

    ```
    if (navigation_request->response() &&
    navigation_request->response()->parsed_headers) {
    const network::mojom::ParsedHeadersPtr& parsed_headers =
    navigation_request->response()->parsed_headers;
    if (parsed_headers->no_vary_search_with_parse_error) {
    has_no_vary_search_with_parse_error_header = true;
    MaybeSetNoVarySearch(*parsed_headers->no_vary_search_with_parse_error);
    } else {
    CHECK(!no_vary_search_.has_value());
    CHECK(!no_vary_search_parse_error_.has_value());
    }
        if (base::FeatureList::IsEnabled(features::kPrerender2CrossOriginIframes) &&
    base::Contains(
    parsed_headers->supports_loading_mode,
    network::mojom::LoadingMode::kPrerenderCrossOriginFrames)) {
    allow_cross_origin_subframe_navigation_ = true;
    }
    }
    ```
    Line 776, Patchset 18: if ((base::FeatureList::IsEnabled(features::kPrerender2CrossOriginIframes)) &&
    Hiroki Nakagawa . unresolved

    This parentheses is redundant.

    Line 779, Patchset 17: CHECK(page);
    if (allow_cross_origin_subframe_navigation_) {
    page->render_frame_host()
    ->GetPage()
    .NotifyCrossOriginSubframePrerenderIsAllowed();
    }
    Lingqi Chi . unresolved

    Out of curiosity, are there any reasons that we do not propagate this state when receiving the header? if so, could we leave a brief comment here?

    Yoichi Osato

    I guess PrerenderHost::Activate() activates the Page here and we should not touch Page things before this.
    @nhi...@chromium.org for confirmation.

    Hiroki Nakagawa

    I think there isn't such a restriction.

    File content/browser/preloading/prerender/prerender_subframe_navigation_throttle.cc
    Line 169, Patchset 19 (Latest):PrerenderSubframeNavigationThrottle::MaybeStartCrossOriginSubframeNavigation(
    Hiroki Nakagawa . unresolved

    Actually this function doesn't start or defer the navigation. Instead, this decides the policy for navigation. Thus, how about naming this `DecidePolicyForCrossOriginSubframeNavigation()`?

    File content/browser/renderer_host/page_impl.cc
    Line 279, Patchset 19 (Latest): }
    Hiroki Nakagawa . unresolved

    It's a bit difficult to follow these conditions in the if-statement. Can we move this outside of the statement, for example, like this?

    ```
    const bool should_send_activation_start = [&]() {
    // comments
    if (is_main_document) {
    return true;
    }
      // comments
    if (base::FeatureList::IsEnabled(
    ::features::kPrerender2CrossOriginIframes) &&
    type == ActivationType::kPrerendering &&
    is_cross_origin_subframe_prerender_allowed_) {
    return true;
    }
      // comments
    if (type == ActivationType::kPreview) {
    return true;
    }
    return false;
    }
    if (should_send_activation_start) {
    params->activation_start = *activation_start_time_;
    }
    ```
    Open in Gerrit

    Related details

    Attention is currently required from:
    • Huanpo Lin
    • Lingqi Chi
    • Yoichi Osato
    Gerrit-Attention: Yoichi Osato <yoi...@chromium.org>
    Gerrit-Attention: Huanpo Lin <robe...@chromium.org>
    Gerrit-Comment-Date: Thu, 28 Aug 2025 09:00:46 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: No
    Comment-In-Reply-To: Lingqi Chi <lin...@chromium.org>
    Comment-In-Reply-To: Yoichi Osato <yoi...@chromium.org>
    satisfied_requirement
    unsatisfied_requirement
    open
    diffy

    Yoichi Osato (Gerrit)

    unread,
    Aug 29, 2025, 1:04:17 AM (10 days ago) Aug 29
    to Huanpo Lin, Domenic Denicola, Lingqi Chi, Hiroki Nakagawa, Yoav Weiss (@Shopify), Chromium LUCI CQ, AyeAye, chromium...@chromium.org, prerendering-reviews, creis...@chromium.org, alexmo...@chromium.org, navigation...@chromium.org, network-ser...@chromium.org, blink-...@chromium.org, blink-revie...@chromium.org, gavinp+p...@chromium.org, gavin...@chromium.org, tburkar...@chromium.org
    Attention needed from Hiroki Nakagawa, Huanpo Lin and Lingqi Chi

    Yoichi Osato added 5 comments

    File content/browser/preloading/prerender/prerender_host.cc
    Yoichi Osato

    CHECK(!no_vary_XXX) is checked even if `!navigation_request->response()`.

    Line 776, Patchset 18: if ((base::FeatureList::IsEnabled(features::kPrerender2CrossOriginIframes)) &&
    Hiroki Nakagawa . resolved

    This parentheses is redundant.

    Yoichi Osato

    Done

    Line 779, Patchset 17: CHECK(page);
    if (allow_cross_origin_subframe_navigation_) {
    page->render_frame_host()
    ->GetPage()
    .NotifyCrossOriginSubframePrerenderIsAllowed();
    }
    Lingqi Chi . unresolved

    Out of curiosity, are there any reasons that we do not propagate this state when receiving the header? if so, could we leave a brief comment here?

    Yoichi Osato

    I guess PrerenderHost::Activate() activates the Page here and we should not touch Page things before this.
    @nhi...@chromium.org for confirmation.

    Hiroki Nakagawa

    I think there isn't such a restriction.

    Yoichi Osato

    I investigated it and found that the PageImpl is created at RenderFrameHostImpl::DidCommitNavigationInternal() :
    https://source.chromium.org/chromium/chromium/src/+/main:content/browser/renderer_host/render_frame_host_impl.cc;drc=36482c6a5e727337ed2676000fca1d095d7c8b3f;l=15597.
    That means we don't have it at "PrerenderHost::ReadyToCommitNavigation()".

    File content/browser/preloading/prerender/prerender_subframe_navigation_throttle.cc
    Line 169, Patchset 19:PrerenderSubframeNavigationThrottle::MaybeStartCrossOriginSubframeNavigation(
    Hiroki Nakagawa . resolved

    Actually this function doesn't start or defer the navigation. Instead, this decides the policy for navigation. Thus, how about naming this `DecidePolicyForCrossOriginSubframeNavigation()`?

    Yoichi Osato

    Done

    File content/browser/renderer_host/page_impl.cc
    Line 279, Patchset 19: }
    Hiroki Nakagawa . resolved

    It's a bit difficult to follow these conditions in the if-statement. Can we move this outside of the statement, for example, like this?

    ```
    const bool should_send_activation_start = [&]() {
    // comments
    if (is_main_document) {
    return true;
    }
      // comments
    if (base::FeatureList::IsEnabled(
    ::features::kPrerender2CrossOriginIframes) &&
    type == ActivationType::kPrerendering &&
    is_cross_origin_subframe_prerender_allowed_) {
    return true;
    }
      // comments
    if (type == ActivationType::kPreview) {
    return true;
    }
    return false;
    }
    if (should_send_activation_start) {
    params->activation_start = *activation_start_time_;
    }
    ```
    Yoichi Osato

    Done

    Open in Gerrit

    Related details

    Attention is currently required from:
    • Hiroki Nakagawa
    • Huanpo Lin
    • Lingqi Chi
    Submit Requirements:
    • requirement satisfiedCode-Coverage
    • requirement is not satisfiedCode-Owners
    • requirement is not satisfiedCode-Review
    • requirement is not satisfiedNo-Unresolved-Comments
    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: I4715487260e227ffc2541bc5c2a283a780b9cc2d
    Gerrit-Change-Number: 6780845
    Gerrit-PatchSet: 20
    Gerrit-Owner: Yoichi Osato <yoi...@chromium.org>
    Gerrit-Reviewer: Hiroki Nakagawa <nhi...@chromium.org>
    Gerrit-Reviewer: Lingqi Chi <lin...@chromium.org>
    Gerrit-Reviewer: Yoichi Osato <yoi...@chromium.org>
    Gerrit-CC: Domenic Denicola <dom...@chromium.org>
    Gerrit-CC: Huanpo Lin <robe...@chromium.org>
    Gerrit-CC: Yoav Weiss (@Shopify) <yoav...@chromium.org>
    Gerrit-CC: prerendering-reviews <prerenderi...@chromium.org>
    Gerrit-Attention: Lingqi Chi <lin...@chromium.org>
    Gerrit-Attention: Hiroki Nakagawa <nhi...@chromium.org>
    Gerrit-Attention: Huanpo Lin <robe...@chromium.org>
    Gerrit-Comment-Date: Fri, 29 Aug 2025 05:03:44 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: No
    Comment-In-Reply-To: Lingqi Chi <lin...@chromium.org>
    Comment-In-Reply-To: Hiroki Nakagawa <nhi...@chromium.org>
    Comment-In-Reply-To: Yoichi Osato <yoi...@chromium.org>
    satisfied_requirement
    unsatisfied_requirement
    open
    diffy

    Lingqi Chi (Gerrit)

    unread,
    Sep 1, 2025, 2:23:02 AM (7 days ago) Sep 1
    to Yoichi Osato, Huanpo Lin, Domenic Denicola, Hiroki Nakagawa, Yoav Weiss (@Shopify), Chromium LUCI CQ, AyeAye, chromium...@chromium.org, prerendering-reviews, creis...@chromium.org, alexmo...@chromium.org, navigation...@chromium.org, network-ser...@chromium.org, blink-...@chromium.org, blink-revie...@chromium.org, gavinp+p...@chromium.org, gavin...@chromium.org, tburkar...@chromium.org
    Attention needed from Hiroki Nakagawa, Huanpo Lin and Yoichi Osato

    Lingqi Chi added 7 comments

    Patchset-level comments
    File-level comment, Patchset 20 (Latest):
    Lingqi Chi . resolved

    thank you! (sorry for my late reply)

    File content/browser/preloading/prerender/prerender_host.cc
    Lingqi Chi

    if(navigation_request->response) looks like a defensive programming style but I'm wondering if it could be a nullptr when reaching here.

    Line 779, Patchset 17: CHECK(page);
    if (allow_cross_origin_subframe_navigation_) {
    page->render_frame_host()
    ->GetPage()
    .NotifyCrossOriginSubframePrerenderIsAllowed();
    }
    Lingqi Chi . unresolved

    Out of curiosity, are there any reasons that we do not propagate this state when receiving the header? if so, could we leave a brief comment here?

    Yoichi Osato

    I guess PrerenderHost::Activate() activates the Page here and we should not touch Page things before this.
    @nhi...@chromium.org for confirmation.

    Hiroki Nakagawa

    I think there isn't such a restriction.

    Yoichi Osato

    I investigated it and found that the PageImpl is created at RenderFrameHostImpl::DidCommitNavigationInternal() :
    https://source.chromium.org/chromium/chromium/src/+/main:content/browser/renderer_host/render_frame_host_impl.cc;drc=36482c6a5e727337ed2676000fca1d095d7c8b3f;l=15597.
    That means we don't have it at "PrerenderHost::ReadyToCommitNavigation()".

    Lingqi Chi

    interesting.. It is my first time to know that during prerendering navigation, the PageImpl will be reset....

    File third_party/blink/web_tests/external/wpt/speculation-rules/prerender/resources/cross-origin-iframe-prerender.html
    Line 18, Patchset 20 (Latest): reject(`prerendering is wrong. initial_prerendering+${initial_prerendering}, document.prerendering=${document.prerendering}`);
    Lingqi Chi . unresolved

    nit) state

    Line 18, Patchset 20 (Latest): reject(`prerendering is wrong. initial_prerendering+${initial_prerendering}, document.prerendering=${document.prerendering}`);
    Lingqi Chi . unresolved

    Does it mean `=`?

    Line 35, Patchset 20 (Latest): if (e.data == 'document.prerendering changes to false from true')
    Lingqi Chi . unresolved

    how can we ensure that the iframe is loaded before activation? The message is sent by prerenderingchange event listener, so I'm wondering if it is possible that the listener is not registered before activation..?

    Line 46, Patchset 20 (Latest): const prerenderChannel = new PrerenderChannel('prerender-channel');
    Lingqi Chi . unresolved

    nit) Indentation

    Open in Gerrit

    Related details

    Attention is currently required from:
    • Hiroki Nakagawa
    • Huanpo Lin
    • Yoichi Osato
    Submit Requirements:
    • requirement satisfiedCode-Coverage
    • requirement is not satisfiedCode-Owners
    • requirement is not satisfiedCode-Review
    • requirement is not satisfiedNo-Unresolved-Comments
    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: I4715487260e227ffc2541bc5c2a283a780b9cc2d
    Gerrit-Change-Number: 6780845
    Gerrit-PatchSet: 20
    Gerrit-Owner: Yoichi Osato <yoi...@chromium.org>
    Gerrit-Reviewer: Hiroki Nakagawa <nhi...@chromium.org>
    Gerrit-Reviewer: Lingqi Chi <lin...@chromium.org>
    Gerrit-Reviewer: Yoichi Osato <yoi...@chromium.org>
    Gerrit-CC: Domenic Denicola <dom...@chromium.org>
    Gerrit-CC: Huanpo Lin <robe...@chromium.org>
    Gerrit-CC: Yoav Weiss (@Shopify) <yoav...@chromium.org>
    Gerrit-CC: prerendering-reviews <prerenderi...@chromium.org>
    Gerrit-Attention: Hiroki Nakagawa <nhi...@chromium.org>
    Gerrit-Attention: Yoichi Osato <yoi...@chromium.org>
    Gerrit-Attention: Huanpo Lin <robe...@chromium.org>
    Gerrit-Comment-Date: Mon, 01 Sep 2025 06:22:41 +0000
    satisfied_requirement
    unsatisfied_requirement
    open
    diffy

    Yoichi Osato (Gerrit)

    unread,
    Sep 1, 2025, 2:54:51 AM (7 days ago) Sep 1
    to Huanpo Lin, Domenic Denicola, Lingqi Chi, Hiroki Nakagawa, Yoav Weiss (@Shopify), Chromium LUCI CQ, AyeAye, chromium...@chromium.org, prerendering-reviews, creis...@chromium.org, alexmo...@chromium.org, navigation...@chromium.org, network-ser...@chromium.org, blink-...@chromium.org, blink-revie...@chromium.org, gavinp+p...@chromium.org, gavin...@chromium.org, tburkar...@chromium.org
    Attention needed from Hiroki Nakagawa, Huanpo Lin and Lingqi Chi

    Yoichi Osato added 4 comments

    File third_party/blink/web_tests/external/wpt/speculation-rules/prerender/resources/cross-origin-iframe-prerender.html
    Line 18, Patchset 20: reject(`prerendering is wrong. initial_prerendering+${initial_prerendering}, document.prerendering=${document.prerendering}`);
    Lingqi Chi . resolved

    Does it mean `=`?

    Yoichi Osato

    Done

    Line 18, Patchset 20: reject(`prerendering is wrong. initial_prerendering+${initial_prerendering}, document.prerendering=${document.prerendering}`);
    Lingqi Chi . resolved

    nit) state

    Yoichi Osato

    Done

    Line 35, Patchset 20: if (e.data == 'document.prerendering changes to false from true')
    Lingqi Chi . resolved

    how can we ensure that the iframe is loaded before activation? The message is sent by prerenderingchange event listener, so I'm wondering if it is possible that the listener is not registered before activation..?

    Yoichi Osato

    Good catch. I confused prerender/resources/utils.js usage.
    Updated the code to confirm prerendering state change before activation via
    prerenderChannel.postMessage('readyToActivate').

    Line 46, Patchset 20: const prerenderChannel = new PrerenderChannel('prerender-channel');
    Lingqi Chi . resolved

    nit) Indentation

    Yoichi Osato

    Done

    Open in Gerrit

    Related details

    Attention is currently required from:
    • Hiroki Nakagawa
    • Huanpo Lin
    • Lingqi Chi
    Submit Requirements:
    • requirement satisfiedCode-Coverage
    • requirement is not satisfiedCode-Owners
    • requirement is not satisfiedCode-Review
    • requirement is not satisfiedNo-Unresolved-Comments
    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: I4715487260e227ffc2541bc5c2a283a780b9cc2d
    Gerrit-Change-Number: 6780845
    Gerrit-PatchSet: 21
    Gerrit-Owner: Yoichi Osato <yoi...@chromium.org>
    Gerrit-Reviewer: Hiroki Nakagawa <nhi...@chromium.org>
    Gerrit-Reviewer: Lingqi Chi <lin...@chromium.org>
    Gerrit-Reviewer: Yoichi Osato <yoi...@chromium.org>
    Gerrit-CC: Domenic Denicola <dom...@chromium.org>
    Gerrit-CC: Huanpo Lin <robe...@chromium.org>
    Gerrit-CC: Yoav Weiss (@Shopify) <yoav...@chromium.org>
    Gerrit-CC: prerendering-reviews <prerenderi...@chromium.org>
    Gerrit-Attention: Lingqi Chi <lin...@chromium.org>
    Gerrit-Attention: Hiroki Nakagawa <nhi...@chromium.org>
    Gerrit-Attention: Huanpo Lin <robe...@chromium.org>
    Gerrit-Comment-Date: Mon, 01 Sep 2025 06:54:28 +0000
    satisfied_requirement
    unsatisfied_requirement
    open
    diffy

    Yoichi Osato (Gerrit)

    unread,
    Sep 1, 2025, 7:43:09 PM (7 days ago) Sep 1
    to Huanpo Lin, Domenic Denicola, Lingqi Chi, Hiroki Nakagawa, Yoav Weiss (@Shopify), Chromium LUCI CQ, AyeAye, chromium...@chromium.org, prerendering-reviews, creis...@chromium.org, alexmo...@chromium.org, navigation...@chromium.org, network-ser...@chromium.org, blink-...@chromium.org, blink-revie...@chromium.org, gavinp+p...@chromium.org, gavin...@chromium.org, tburkar...@chromium.org
    Attention needed from Hiroki Nakagawa and Lingqi Chi

    Yoichi Osato voted Commit-Queue+1

    Commit-Queue+1
    Open in Gerrit

    Related details

    Attention is currently required from:
    • Hiroki Nakagawa
    • Lingqi Chi
    Gerrit-Comment-Date: Mon, 01 Sep 2025 23:42:41 +0000
    Gerrit-HasComments: No
    Gerrit-Has-Labels: Yes
    satisfied_requirement
    unsatisfied_requirement
    open
    diffy

    Hiroki Nakagawa (Gerrit)

    unread,
    Sep 2, 2025, 2:31:59 AM (6 days ago) Sep 2
    to Yoichi Osato, Huanpo Lin, Domenic Denicola, Lingqi Chi, Yoav Weiss (@Shopify), Chromium LUCI CQ, AyeAye, chromium...@chromium.org, prerendering-reviews, creis...@chromium.org, alexmo...@chromium.org, navigation...@chromium.org, network-ser...@chromium.org, blink-...@chromium.org, blink-revie...@chromium.org, gavinp+p...@chromium.org, gavin...@chromium.org, tburkar...@chromium.org
    Attention needed from Lingqi Chi and Yoichi Osato

    Hiroki Nakagawa added 6 comments

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

    (I'm still reading test code, but let me release comments before my meeting starts. Feel free to add more reviewers)

    File content/browser/preloading/prerender/prerender_features.h
    Line 72, Patchset 20:CONTENT_EXPORT BASE_DECLARE_FEATURE(kPrerender2CrossOriginIframes);
    Hiroki Nakagawa . unresolved

    Can you add a link to the crbug?

    File content/browser/preloading/prerender/prerender_host.cc
    Hiroki Nakagawa

    Thanks! I'm not sure if it's possible... If navigation fils results in an error page, this could be null...? (just wild guess)

    Anyway, it's an orthogonal to this change, and it's fine with me to keep this as for now.

    File content/browser/preloading/prerender/prerender_subframe_navigation_throttle.cc
    Line 216, Patchset 22 (Latest): // Defer cross-origin subframe navigation until page activation.
    Hiroki Nakagawa . unresolved

    Can you update this comment? For example,

    // Decide a loading policy for cross-origin subframe navigation: cancel, defer it until page activation, or proceed if the opt-in header allows.

    File third_party/blink/web_tests/external/wpt/speculation-rules/prerender/cross-origin-iframe-prerender.https.html
    Line 5, Patchset 22 (Latest):This file cannot be upstreamed to WPT until:
    Hiroki Nakagawa . unresolved

    Actually this test will be upstreamed, as this is under external/wpt 😊

    If this is a tentative behavior, can we add the "tentative" filename flag?
    https://web-platform-tests.org/writing-tests/file-names.html#test-features

    File third_party/blink/web_tests/external/wpt/speculation-rules/prerender/resources/cross-origin-iframe-prerender.html
    Line 45, Patchset 22 (Latest): // Since cross-origin iframe is out-of-process, each frames’s activation
    Hiroki Nakagawa . unresolved

    I wonder if this depends on implementation of browsers. Can we more loosely mention this? For example,

    // Since cross iframe can be loaded in a separate renderer process depending on browser implementation, ...

    Open in Gerrit

    Related details

    Attention is currently required from:
    • Lingqi Chi
    • Yoichi Osato
    Submit Requirements:
    • requirement satisfiedCode-Coverage
    • requirement is not satisfiedCode-Owners
    • requirement is not satisfiedCode-Review
    • requirement is not satisfiedNo-Unresolved-Comments
    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: I4715487260e227ffc2541bc5c2a283a780b9cc2d
    Gerrit-Change-Number: 6780845
    Gerrit-PatchSet: 22
    Gerrit-Owner: Yoichi Osato <yoi...@chromium.org>
    Gerrit-Reviewer: Hiroki Nakagawa <nhi...@chromium.org>
    Gerrit-Reviewer: Lingqi Chi <lin...@chromium.org>
    Gerrit-Reviewer: Yoichi Osato <yoi...@chromium.org>
    Gerrit-CC: Domenic Denicola <dom...@chromium.org>
    Gerrit-CC: Huanpo Lin <robe...@chromium.org>
    Gerrit-CC: Yoav Weiss (@Shopify) <yoav...@chromium.org>
    Gerrit-CC: prerendering-reviews <prerenderi...@chromium.org>
    Gerrit-Attention: Lingqi Chi <lin...@chromium.org>
    Gerrit-Attention: Yoichi Osato <yoi...@chromium.org>
    Gerrit-Comment-Date: Tue, 02 Sep 2025 06:31:31 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: No
    Comment-In-Reply-To: Lingqi Chi <lin...@chromium.org>
    satisfied_requirement
    unsatisfied_requirement
    open
    diffy

    Lingqi Chi (Gerrit)

    unread,
    Sep 2, 2025, 2:58:44 AM (6 days ago) Sep 2
    to Yoichi Osato, Huanpo Lin, Domenic Denicola, Hiroki Nakagawa, Yoav Weiss (@Shopify), Chromium LUCI CQ, AyeAye, chromium...@chromium.org, prerendering-reviews, creis...@chromium.org, alexmo...@chromium.org, navigation...@chromium.org, network-ser...@chromium.org, blink-...@chromium.org, blink-revie...@chromium.org, gavinp+p...@chromium.org, gavin...@chromium.org, tburkar...@chromium.org
    Attention needed from Yoichi Osato

    Lingqi Chi added 2 comments

    Patchset-level comments
    Lingqi Chi . resolved

    thank you!

    File third_party/blink/web_tests/external/wpt/speculation-rules/prerender/resources/cross-origin-iframe-src-prerender.html
    Line 8, Patchset 22 (Latest):});
    Lingqi Chi . unresolved

    iiuc, appendChild does not wait for the child to be fully loaded. so, to ensure the listener is registered before activation, we may need to post a message to ensure the script is loaded.

    and then the test looks like:
    1. initiator page A starts prerendering B.html
    2. adds a iframe(iframe_B), registers a listener for prerenderingchange event(or maybe it is not needed, as it can be verified by smoke tests), a listener for iframe_b's prerenderingchange event message, a listener for iframe_b's loading event message.
    3. iframe_B registers a prerenderinghchange event listener (as above)
    4. iframe_B informs B that iframe_B is loaded.
    5. after receiving iframe_b's loading event message, B asks A to activate B via readyToActivate signal.
    6. then b inform the test page of the test success..

    Open in Gerrit

    Related details

    Attention is currently required from:
    • Yoichi Osato
    Gerrit-Attention: Yoichi Osato <yoi...@chromium.org>
    Gerrit-Comment-Date: Tue, 02 Sep 2025 06:58:15 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: No
    satisfied_requirement
    unsatisfied_requirement
    open
    diffy

    Hiroki Nakagawa (Gerrit)

    unread,
    Sep 2, 2025, 3:51:46 AM (6 days ago) Sep 2
    to Yoichi Osato, Huanpo Lin, Domenic Denicola, Lingqi Chi, Yoav Weiss (@Shopify), Chromium LUCI CQ, AyeAye, chromium...@chromium.org, prerendering-reviews, creis...@chromium.org, alexmo...@chromium.org, navigation...@chromium.org, network-ser...@chromium.org, blink-...@chromium.org, blink-revie...@chromium.org, gavinp+p...@chromium.org, gavin...@chromium.org, tburkar...@chromium.org
    Attention needed from Yoichi Osato

    Hiroki Nakagawa added 1 comment

    File third_party/blink/web_tests/external/wpt/speculation-rules/prerender/resources/cross-origin-iframe-prerender.html
    Line 52, Patchset 23 (Latest): }, (error)=>{
    message = error;
    })
    Hiroki Nakagawa . unresolved

    Should this be `catch`?

    ```
    let message;
    Promise.all([mainFramePrerenderFinished, iFramePrerenderFinished])
    .then(()=>{
    message = 'main frame and iframe prerender finished correctly.';
    })
    .catch((error)=>{
    message = error;
    })
    .finally(()=>{
    // Send the observed events back to the main test page.
    const testChannel = new PrerenderChannel('test-channel');
    testChannel.postMessage(message);
    testChannel.close();
    });
    ```
    Open in Gerrit

    Related details

    Attention is currently required from:
    • Yoichi Osato
    Submit Requirements:
    • requirement satisfiedCode-Coverage
    • requirement is not satisfiedCode-Owners
    • requirement is not satisfiedCode-Review
    • requirement is not satisfiedNo-Unresolved-Comments
    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: I4715487260e227ffc2541bc5c2a283a780b9cc2d
    Gerrit-Change-Number: 6780845
    Gerrit-PatchSet: 23
    Gerrit-Owner: Yoichi Osato <yoi...@chromium.org>
    Gerrit-Reviewer: Hiroki Nakagawa <nhi...@chromium.org>
    Gerrit-Reviewer: Lingqi Chi <lin...@chromium.org>
    Gerrit-Reviewer: Yoichi Osato <yoi...@chromium.org>
    Gerrit-CC: Domenic Denicola <dom...@chromium.org>
    Gerrit-CC: Huanpo Lin <robe...@chromium.org>
    Gerrit-CC: Yoav Weiss (@Shopify) <yoav...@chromium.org>
    Gerrit-CC: prerendering-reviews <prerenderi...@chromium.org>
    Gerrit-Attention: Yoichi Osato <yoi...@chromium.org>
    Gerrit-Comment-Date: Tue, 02 Sep 2025 07:51:20 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: No
    satisfied_requirement
    unsatisfied_requirement
    open
    diffy

    Yoichi Osato (Gerrit)

    unread,
    Sep 2, 2025, 9:10:57 PM (6 days ago) Sep 2
    to Huanpo Lin, Domenic Denicola, Lingqi Chi, Hiroki Nakagawa, Yoav Weiss (@Shopify), Chromium LUCI CQ, AyeAye, chromium...@chromium.org, prerendering-reviews, creis...@chromium.org, alexmo...@chromium.org, navigation...@chromium.org, network-ser...@chromium.org, blink-...@chromium.org, blink-revie...@chromium.org, gavinp+p...@chromium.org, gavin...@chromium.org, tburkar...@chromium.org
    Attention needed from Hiroki Nakagawa and Lingqi Chi

    Yoichi Osato added 7 comments

    Patchset-level comments
    File-level comment, Patchset 22:
    Hiroki Nakagawa . unresolved

    (I'm still reading test code, but let me release comments before my meeting starts. Feel free to add more reviewers)

    Yoichi Osato

    I think it is good to get LGTM among the team before asking other OWNERs review.

    File content/browser/preloading/prerender/prerender_features.h
    Line 72, Patchset 20:CONTENT_EXPORT BASE_DECLARE_FEATURE(kPrerender2CrossOriginIframes);
    Hiroki Nakagawa . resolved

    Can you add a link to the crbug?

    Yoichi Osato

    Done

    File content/browser/preloading/prerender/prerender_subframe_navigation_throttle.cc
    Line 216, Patchset 22: // Defer cross-origin subframe navigation until page activation.
    Hiroki Nakagawa . resolved

    Can you update this comment? For example,

    // Decide a loading policy for cross-origin subframe navigation: cancel, defer it until page activation, or proceed if the opt-in header allows.

    Yoichi Osato

    Done

    File third_party/blink/web_tests/external/wpt/speculation-rules/prerender/cross-origin-iframe-prerender.https.html
    Line 5, Patchset 22:This file cannot be upstreamed to WPT until:
    Hiroki Nakagawa . resolved

    Actually this test will be upstreamed, as this is under external/wpt 😊

    If this is a tentative behavior, can we add the "tentative" filename flag?
    https://web-platform-tests.org/writing-tests/file-names.html#test-features

    Yoichi Osato

    Based on we're updating the spec, just let me upstream this to the public WPT.

    File third_party/blink/web_tests/external/wpt/speculation-rules/prerender/resources/cross-origin-iframe-prerender.html
    Line 45, Patchset 22: // Since cross-origin iframe is out-of-process, each frames’s activation
    Hiroki Nakagawa . resolved

    I wonder if this depends on implementation of browsers. Can we more loosely mention this? For example,

    // Since cross iframe can be loaded in a separate renderer process depending on browser implementation, ...

    Yoichi Osato

    Ah I didn't know that depends the impls.

    Line 52, Patchset 23 (Latest): }, (error)=>{
    message = error;
    })
    Hiroki Nakagawa . unresolved

    Should this be `catch`?

    ```
    let message;
    Promise.all([mainFramePrerenderFinished, iFramePrerenderFinished])
    .then(()=>{
    message = 'main frame and iframe prerender finished correctly.';
    })
    .catch((error)=>{
    message = error;
    })
    .finally(()=>{
    // Send the observed events back to the main test page.
    const testChannel = new PrerenderChannel('test-channel');
    testChannel.postMessage(message);
    testChannel.close();
    });
    ```
    Yoichi Osato

    .then(res,rej) is same as .then(res).catch(rej).

    File third_party/blink/web_tests/external/wpt/speculation-rules/prerender/resources/cross-origin-iframe-src-prerender.html
    Lingqi Chi . unresolved

    iiuc, appendChild does not wait for the child to be fully loaded. so, to ensure the listener is registered before activation, we may need to post a message to ensure the script is loaded.

    and then the test looks like:
    1. initiator page A starts prerendering B.html
    2. adds a iframe(iframe_B), registers a listener for prerenderingchange event(or maybe it is not needed, as it can be verified by smoke tests), a listener for iframe_b's prerenderingchange event message, a listener for iframe_b's loading event message.
    3. iframe_B registers a prerenderinghchange event listener (as above)
    4. iframe_B informs B that iframe_B is loaded.
    5. after receiving iframe_b's loading event message, B asks A to activate B via readyToActivate signal.
    6. then b inform the test page of the test success..

    Yoichi Osato

    Waiting each document.prerendering to false before activation is not enough?

    Open in Gerrit

    Related details

    Attention is currently required from:
    • Hiroki Nakagawa
    • Lingqi Chi
    Submit Requirements:
    • requirement satisfiedCode-Coverage
    • requirement is not satisfiedCode-Owners
    • requirement is not satisfiedCode-Review
    • requirement is not satisfiedNo-Unresolved-Comments
    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: I4715487260e227ffc2541bc5c2a283a780b9cc2d
    Gerrit-Change-Number: 6780845
    Gerrit-PatchSet: 23
    Gerrit-Owner: Yoichi Osato <yoi...@chromium.org>
    Gerrit-Reviewer: Hiroki Nakagawa <nhi...@chromium.org>
    Gerrit-Reviewer: Lingqi Chi <lin...@chromium.org>
    Gerrit-Reviewer: Yoichi Osato <yoi...@chromium.org>
    Gerrit-CC: Domenic Denicola <dom...@chromium.org>
    Gerrit-CC: Huanpo Lin <robe...@chromium.org>
    Gerrit-CC: Yoav Weiss (@Shopify) <yoav...@chromium.org>
    Gerrit-CC: prerendering-reviews <prerenderi...@chromium.org>
    Gerrit-Attention: Lingqi Chi <lin...@chromium.org>
    Gerrit-Attention: Hiroki Nakagawa <nhi...@chromium.org>
    Gerrit-Comment-Date: Wed, 03 Sep 2025 01:10:28 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: No
    satisfied_requirement
    unsatisfied_requirement
    open
    diffy

    Lingqi Chi (Gerrit)

    unread,
    Sep 2, 2025, 9:44:36 PM (6 days ago) Sep 2
    to Yoichi Osato, Huanpo Lin, Domenic Denicola, Hiroki Nakagawa, Yoav Weiss (@Shopify), Chromium LUCI CQ, AyeAye, chromium...@chromium.org, prerendering-reviews, creis...@chromium.org, alexmo...@chromium.org, navigation...@chromium.org, network-ser...@chromium.org, blink-...@chromium.org, blink-revie...@chromium.org, gavinp+p...@chromium.org, gavin...@chromium.org, tburkar...@chromium.org
    Attention needed from Hiroki Nakagawa and Yoichi Osato

    Lingqi Chi added 2 comments

    Lingqi Chi . resolved

    thank you!

    File third_party/blink/web_tests/external/wpt/speculation-rules/prerender/resources/cross-origin-iframe-src-prerender.html
    Lingqi Chi . unresolved

    iiuc, appendChild does not wait for the child to be fully loaded. so, to ensure the listener is registered before activation, we may need to post a message to ensure the script is loaded.

    and then the test looks like:
    1. initiator page A starts prerendering B.html
    2. adds a iframe(iframe_B), registers a listener for prerenderingchange event(or maybe it is not needed, as it can be verified by smoke tests), a listener for iframe_b's prerenderingchange event message, a listener for iframe_b's loading event message.
    3. iframe_B registers a prerenderinghchange event listener (as above)
    4. iframe_B informs B that iframe_B is loaded.
    5. after receiving iframe_b's loading event message, B asks A to activate B via readyToActivate signal.
    6. then b inform the test page of the test success..

    Yoichi Osato

    Waiting each document.prerendering to false before activation is not enough?

    Lingqi Chi

    I think it is enough in terms of correctness, just wondering if the test would be flaky on some bots because the listener may not be registered when activation..

    Open in Gerrit

    Related details

    Attention is currently required from:
    • Hiroki Nakagawa
    • Yoichi Osato
    Submit Requirements:
    • requirement satisfiedCode-Coverage
    • requirement is not satisfiedCode-Owners
    • requirement is not satisfiedCode-Review
    • requirement is not satisfiedNo-Unresolved-Comments
    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: I4715487260e227ffc2541bc5c2a283a780b9cc2d
    Gerrit-Change-Number: 6780845
    Gerrit-PatchSet: 23
    Gerrit-Owner: Yoichi Osato <yoi...@chromium.org>
    Gerrit-Reviewer: Hiroki Nakagawa <nhi...@chromium.org>
    Gerrit-Reviewer: Lingqi Chi <lin...@chromium.org>
    Gerrit-Reviewer: Yoichi Osato <yoi...@chromium.org>
    Gerrit-CC: Domenic Denicola <dom...@chromium.org>
    Gerrit-CC: Huanpo Lin <robe...@chromium.org>
    Gerrit-CC: Yoav Weiss (@Shopify) <yoav...@chromium.org>
    Gerrit-CC: prerendering-reviews <prerenderi...@chromium.org>
    Gerrit-Attention: Hiroki Nakagawa <nhi...@chromium.org>
    Gerrit-Attention: Yoichi Osato <yoi...@chromium.org>
    Gerrit-Comment-Date: Wed, 03 Sep 2025 01:44:13 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: No
    Comment-In-Reply-To: Lingqi Chi <lin...@chromium.org>
    Comment-In-Reply-To: Yoichi Osato <yoi...@chromium.org>
    satisfied_requirement
    unsatisfied_requirement
    open
    diffy

    Hiroki Nakagawa (Gerrit)

    unread,
    Sep 2, 2025, 10:13:50 PM (6 days ago) Sep 2
    to Yoichi Osato, Huanpo Lin, Domenic Denicola, Lingqi Chi, Yoav Weiss (@Shopify), Chromium LUCI CQ, AyeAye, chromium...@chromium.org, prerendering-reviews, creis...@chromium.org, alexmo...@chromium.org, navigation...@chromium.org, network-ser...@chromium.org, blink-...@chromium.org, blink-revie...@chromium.org, gavinp+p...@chromium.org, gavin...@chromium.org, tburkar...@chromium.org
    Attention needed from Yoichi Osato

    Hiroki Nakagawa voted and added 2 comments

    Votes added by Hiroki Nakagawa

    Code-Review+1

    2 comments

    Patchset-level comments
    Hiroki Nakagawa . resolved

    LGTM, thanks! I'll delegate reviews for test stability to lingqi@.

    File third_party/blink/web_tests/external/wpt/speculation-rules/prerender/resources/cross-origin-iframe-prerender.html
    Line 52, Patchset 23 (Latest): }, (error)=>{
    message = error;
    })
    Hiroki Nakagawa . resolved

    Should this be `catch`?

    ```
    let message;
    Promise.all([mainFramePrerenderFinished, iFramePrerenderFinished])
    .then(()=>{
    message = 'main frame and iframe prerender finished correctly.';
    })
    .catch((error)=>{
    message = error;
    })
    .finally(()=>{
    // Send the observed events back to the main test page.
    const testChannel = new PrerenderChannel('test-channel');
    testChannel.postMessage(message);
    testChannel.close();
    });
    ```
    Yoichi Osato

    .then(res,rej) is same as .then(res).catch(rej).

    Hiroki Nakagawa

    Ohh, I didn't know the usage! Sorry for bothering you.

    Open in Gerrit

    Related details

    Attention is currently required from:
    • Yoichi Osato
    Submit Requirements:
      • requirement satisfiedCode-Coverage
      • requirement is not satisfiedCode-Owners
      • requirement satisfiedCode-Review
      • requirement is not satisfiedNo-Unresolved-Comments
      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: I4715487260e227ffc2541bc5c2a283a780b9cc2d
      Gerrit-Change-Number: 6780845
      Gerrit-PatchSet: 23
      Gerrit-Owner: Yoichi Osato <yoi...@chromium.org>
      Gerrit-Reviewer: Hiroki Nakagawa <nhi...@chromium.org>
      Gerrit-Reviewer: Lingqi Chi <lin...@chromium.org>
      Gerrit-Reviewer: Yoichi Osato <yoi...@chromium.org>
      Gerrit-CC: Domenic Denicola <dom...@chromium.org>
      Gerrit-CC: Huanpo Lin <robe...@chromium.org>
      Gerrit-CC: Yoav Weiss (@Shopify) <yoav...@chromium.org>
      Gerrit-CC: prerendering-reviews <prerenderi...@chromium.org>
      Gerrit-Attention: Yoichi Osato <yoi...@chromium.org>
      Gerrit-Comment-Date: Wed, 03 Sep 2025 02:13:24 +0000
      Gerrit-HasComments: Yes
      Gerrit-Has-Labels: Yes
      satisfied_requirement
      unsatisfied_requirement
      open
      diffy

      Yoichi Osato (Gerrit)

      unread,
      Sep 3, 2025, 12:58:04 AM (5 days ago) Sep 3
      to Hiroki Nakagawa, Huanpo Lin, Domenic Denicola, Lingqi Chi, Yoav Weiss (@Shopify), Chromium LUCI CQ, AyeAye, chromium...@chromium.org, prerendering-reviews, creis...@chromium.org, alexmo...@chromium.org, navigation...@chromium.org, network-ser...@chromium.org, blink-...@chromium.org, blink-revie...@chromium.org, gavinp+p...@chromium.org, gavin...@chromium.org, tburkar...@chromium.org
      Attention needed from Lingqi Chi

      Yoichi Osato added 1 comment

      File third_party/blink/web_tests/external/wpt/speculation-rules/prerender/resources/cross-origin-iframe-src-prerender.html
      Lingqi Chi . unresolved

      iiuc, appendChild does not wait for the child to be fully loaded. so, to ensure the listener is registered before activation, we may need to post a message to ensure the script is loaded.

      and then the test looks like:
      1. initiator page A starts prerendering B.html
      2. adds a iframe(iframe_B), registers a listener for prerenderingchange event(or maybe it is not needed, as it can be verified by smoke tests), a listener for iframe_b's prerenderingchange event message, a listener for iframe_b's loading event message.
      3. iframe_B registers a prerenderinghchange event listener (as above)
      4. iframe_B informs B that iframe_B is loaded.
      5. after receiving iframe_b's loading event message, B asks A to activate B via readyToActivate signal.
      6. then b inform the test page of the test success..

      Yoichi Osato

      Waiting each document.prerendering to false before activation is not enough?

      Lingqi Chi

      I think it is enough in terms of correctness, just wondering if the test would be flaky on some bots because the listener may not be registered when activation..

      Yoichi Osato
      We await iFramePrerenderFinished at L49 before L65 postMessage('readyToActivate').
      Awaiting iFramePrerenderFinished means
      ```
      "await" document.addEventListener('prerenderingchange') (fully loaded)
      "await" window.parent.postMessage(`document.prerendering...
      "await" if (e.data == 'document.prerendering chan...
      resolve(); (in page B)
      ```

      So L65:postMessage('readyToActivate') is never called w/o iframes event registration and callback, as I understand it.
      Open in Gerrit

      Related details

      Attention is currently required from:
      • Lingqi Chi
      Submit Requirements:
      • requirement satisfiedCode-Coverage
      • requirement is not satisfiedCode-Owners
      • requirement satisfiedCode-Review
      • requirement is not satisfiedNo-Unresolved-Comments
      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: I4715487260e227ffc2541bc5c2a283a780b9cc2d
      Gerrit-Change-Number: 6780845
      Gerrit-PatchSet: 23
      Gerrit-Owner: Yoichi Osato <yoi...@chromium.org>
      Gerrit-Reviewer: Hiroki Nakagawa <nhi...@chromium.org>
      Gerrit-Reviewer: Lingqi Chi <lin...@chromium.org>
      Gerrit-Reviewer: Yoichi Osato <yoi...@chromium.org>
      Gerrit-CC: Domenic Denicola <dom...@chromium.org>
      Gerrit-CC: Huanpo Lin <robe...@chromium.org>
      Gerrit-CC: Yoav Weiss (@Shopify) <yoav...@chromium.org>
      Gerrit-CC: prerendering-reviews <prerenderi...@chromium.org>
      Gerrit-Attention: Lingqi Chi <lin...@chromium.org>
      Gerrit-Comment-Date: Wed, 03 Sep 2025 04:57:27 +0000
      satisfied_requirement
      unsatisfied_requirement
      open
      diffy

      Lingqi Chi (Gerrit)

      unread,
      Sep 3, 2025, 1:53:20 AM (5 days ago) Sep 3
      to Yoichi Osato, Hiroki Nakagawa, Huanpo Lin, Domenic Denicola, Yoav Weiss (@Shopify), Chromium LUCI CQ, AyeAye, chromium...@chromium.org, prerendering-reviews, creis...@chromium.org, alexmo...@chromium.org, navigation...@chromium.org, network-ser...@chromium.org, blink-...@chromium.org, blink-revie...@chromium.org, gavinp+p...@chromium.org, gavin...@chromium.org, tburkar...@chromium.org
      Attention needed from Yoichi Osato

      Lingqi Chi added 2 comments

      Patchset-level comments
      Lingqi Chi . resolved

      thank you!

      File third_party/blink/web_tests/external/wpt/speculation-rules/prerender/resources/cross-origin-iframe-src-prerender.html
      Lingqi Chi . unresolved

      iiuc, appendChild does not wait for the child to be fully loaded. so, to ensure the listener is registered before activation, we may need to post a message to ensure the script is loaded.

      and then the test looks like:
      1. initiator page A starts prerendering B.html
      2. adds a iframe(iframe_B), registers a listener for prerenderingchange event(or maybe it is not needed, as it can be verified by smoke tests), a listener for iframe_b's prerenderingchange event message, a listener for iframe_b's loading event message.
      3. iframe_B registers a prerenderinghchange event listener (as above)
      4. iframe_B informs B that iframe_B is loaded.
      5. after receiving iframe_b's loading event message, B asks A to activate B via readyToActivate signal.
      6. then b inform the test page of the test success..

      Yoichi Osato

      Waiting each document.prerendering to false before activation is not enough?

      Lingqi Chi

      I think it is enough in terms of correctness, just wondering if the test would be flaky on some bots because the listener may not be registered when activation..

      Yoichi Osato
      We await iFramePrerenderFinished at L49 before L65 postMessage('readyToActivate').
      Awaiting iFramePrerenderFinished means
      ```
      "await" document.addEventListener('prerenderingchange') (fully loaded)
      "await" window.parent.postMessage(`document.prerendering...
      "await" if (e.data == 'document.prerendering chan...
      resolve(); (in page B)
      ```

      So L65:postMessage('readyToActivate') is never called w/o iframes event registration and callback, as I understand it.
      Lingqi Chi

      IIUC, Promise.proto.then() and Promise.proto.finally() return a Promise, without waiting for it to be resolved.

      https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise/then

      Open in Gerrit

      Related details

      Attention is currently required from:
      • Yoichi Osato
      Submit Requirements:
      • requirement satisfiedCode-Coverage
      • requirement is not satisfiedCode-Owners
      • requirement satisfiedCode-Review
      • requirement is not satisfiedNo-Unresolved-Comments
      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: I4715487260e227ffc2541bc5c2a283a780b9cc2d
      Gerrit-Change-Number: 6780845
      Gerrit-PatchSet: 23
      Gerrit-Owner: Yoichi Osato <yoi...@chromium.org>
      Gerrit-Reviewer: Hiroki Nakagawa <nhi...@chromium.org>
      Gerrit-Reviewer: Lingqi Chi <lin...@chromium.org>
      Gerrit-Reviewer: Yoichi Osato <yoi...@chromium.org>
      Gerrit-CC: Domenic Denicola <dom...@chromium.org>
      Gerrit-CC: Huanpo Lin <robe...@chromium.org>
      Gerrit-CC: Yoav Weiss (@Shopify) <yoav...@chromium.org>
      Gerrit-CC: prerendering-reviews <prerenderi...@chromium.org>
      Gerrit-Attention: Yoichi Osato <yoi...@chromium.org>
      Gerrit-Comment-Date: Wed, 03 Sep 2025 05:52:54 +0000
      satisfied_requirement
      unsatisfied_requirement
      open
      diffy

      Yoichi Osato (Gerrit)

      unread,
      Sep 4, 2025, 7:45:19 PM (4 days ago) Sep 4
      to Hiroki Nakagawa, Huanpo Lin, Domenic Denicola, Lingqi Chi, Yoav Weiss (@Shopify), Chromium LUCI CQ, AyeAye, chromium...@chromium.org, prerendering-reviews, creis...@chromium.org, alexmo...@chromium.org, navigation...@chromium.org, network-ser...@chromium.org, blink-...@chromium.org, blink-revie...@chromium.org, gavinp+p...@chromium.org, gavin...@chromium.org, tburkar...@chromium.org
      Attention needed from Lingqi Chi

      Yoichi Osato added 1 comment

      File third_party/blink/web_tests/external/wpt/speculation-rules/prerender/resources/cross-origin-iframe-src-prerender.html
      Lingqi Chi . resolved

      iiuc, appendChild does not wait for the child to be fully loaded. so, to ensure the listener is registered before activation, we may need to post a message to ensure the script is loaded.

      and then the test looks like:
      1. initiator page A starts prerendering B.html
      2. adds a iframe(iframe_B), registers a listener for prerenderingchange event(or maybe it is not needed, as it can be verified by smoke tests), a listener for iframe_b's prerenderingchange event message, a listener for iframe_b's loading event message.
      3. iframe_B registers a prerenderinghchange event listener (as above)
      4. iframe_B informs B that iframe_B is loaded.
      5. after receiving iframe_b's loading event message, B asks A to activate B via readyToActivate signal.
      6. then b inform the test page of the test success..

      Yoichi Osato

      Waiting each document.prerendering to false before activation is not enough?

      Lingqi Chi

      I think it is enough in terms of correctness, just wondering if the test would be flaky on some bots because the listener may not be registered when activation..

      Yoichi Osato
      We await iFramePrerenderFinished at L49 before L65 postMessage('readyToActivate').
      Awaiting iFramePrerenderFinished means
      ```
      "await" document.addEventListener('prerenderingchange') (fully loaded)
      "await" window.parent.postMessage(`document.prerendering...
      "await" if (e.data == 'document.prerendering chan...
      resolve(); (in page B)
      ```

      So L65:postMessage('readyToActivate') is never called w/o iframes event registration and callback, as I understand it.
      Lingqi Chi

      IIUC, Promise.proto.then() and Promise.proto.finally() return a Promise, without waiting for it to be resolved.

      https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise/then

      Yoichi Osato

      Ah, you're right. Done.

      Open in Gerrit

      Related details

      Attention is currently required from:
      • Lingqi Chi
      Submit Requirements:
      • requirement satisfiedCode-Coverage
      • requirement is not satisfiedCode-Owners
      • requirement satisfiedCode-Review
      • requirement is not satisfiedNo-Unresolved-Comments
      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: I4715487260e227ffc2541bc5c2a283a780b9cc2d
      Gerrit-Change-Number: 6780845
      Gerrit-PatchSet: 25
      Gerrit-Owner: Yoichi Osato <yoi...@chromium.org>
      Gerrit-Reviewer: Hiroki Nakagawa <nhi...@chromium.org>
      Gerrit-Reviewer: Lingqi Chi <lin...@chromium.org>
      Gerrit-Reviewer: Yoichi Osato <yoi...@chromium.org>
      Gerrit-CC: Domenic Denicola <dom...@chromium.org>
      Gerrit-CC: Huanpo Lin <robe...@chromium.org>
      Gerrit-CC: Yoav Weiss (@Shopify) <yoav...@chromium.org>
      Gerrit-CC: prerendering-reviews <prerenderi...@chromium.org>
      Gerrit-Attention: Lingqi Chi <lin...@chromium.org>
      Gerrit-Comment-Date: Thu, 04 Sep 2025 23:44:43 +0000
      satisfied_requirement
      unsatisfied_requirement
      open
      diffy

      Lingqi Chi (Gerrit)

      unread,
      Sep 5, 2025, 7:11:12 AM (3 days ago) Sep 5
      to Yoichi Osato, Hiroki Nakagawa, Huanpo Lin, Domenic Denicola, Yoav Weiss (@Shopify), Chromium LUCI CQ, AyeAye, chromium...@chromium.org, prerendering-reviews, creis...@chromium.org, alexmo...@chromium.org, navigation...@chromium.org, network-ser...@chromium.org, blink-...@chromium.org, blink-revie...@chromium.org, gavinp+p...@chromium.org, gavin...@chromium.org, tburkar...@chromium.org
      Attention needed from Yoichi Osato

      Lingqi Chi voted and added 1 comment

      Votes added by Lingqi Chi

      Code-Review+1

      1 comment

      Patchset-level comments
      Lingqi Chi . resolved

      thank you!

      Open in Gerrit

      Related details

      Attention is currently required from:
      • Yoichi Osato
      Submit Requirements:
      • requirement satisfiedCode-Coverage
      • requirement is not satisfiedCode-Owners
      • requirement satisfiedCode-Review
      • requirement is not satisfiedNo-Unresolved-Comments
      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: I4715487260e227ffc2541bc5c2a283a780b9cc2d
      Gerrit-Change-Number: 6780845
      Gerrit-PatchSet: 25
      Gerrit-Owner: Yoichi Osato <yoi...@chromium.org>
      Gerrit-Reviewer: Hiroki Nakagawa <nhi...@chromium.org>
      Gerrit-Reviewer: Lingqi Chi <lin...@chromium.org>
      Gerrit-Reviewer: Yoichi Osato <yoi...@chromium.org>
      Gerrit-CC: Domenic Denicola <dom...@chromium.org>
      Gerrit-CC: Huanpo Lin <robe...@chromium.org>
      Gerrit-CC: Yoav Weiss (@Shopify) <yoav...@chromium.org>
      Gerrit-CC: prerendering-reviews <prerenderi...@chromium.org>
      Gerrit-Attention: Yoichi Osato <yoi...@chromium.org>
      Gerrit-Comment-Date: Fri, 05 Sep 2025 11:10:46 +0000
      Gerrit-HasComments: Yes
      Gerrit-Has-Labels: Yes
      satisfied_requirement
      unsatisfied_requirement
      open
      diffy

      Yoichi Osato (Gerrit)

      unread,
      Sep 7, 2025, 8:32:10 PM (16 hours ago) Sep 7
      to Takashi Toyoshima, Lingqi Chi, Hiroki Nakagawa, Huanpo Lin, Domenic Denicola, Yoav Weiss (@Shopify), Chromium LUCI CQ, AyeAye, chromium...@chromium.org, prerendering-reviews, creis...@chromium.org, alexmo...@chromium.org, navigation...@chromium.org, network-ser...@chromium.org, blink-...@chromium.org, blink-revie...@chromium.org, gavinp+p...@chromium.org, gavin...@chromium.org, tburkar...@chromium.org
      Attention needed from Takashi Toyoshima

      Yoichi Osato added 2 comments

      File content/browser/preloading/prerender/prerender_host.cc
      Line 645, Patchset 18: bool has_no_vary_search_with_parse_error_header = false;
      if (navigation_request->response() &&
      navigation_request->response()->parsed_headers) {
      const network::mojom::ParsedHeadersPtr& parsed_headers =
      navigation_request->response()->parsed_headers;
      if (parsed_headers->no_vary_search_with_parse_error) {
      has_no_vary_search_with_parse_error_header = true;
      MaybeSetNoVarySearch(*parsed_headers->no_vary_search_with_parse_error);
      }

      if (base::FeatureList::IsEnabled(features::kPrerender2CrossOriginIframes) &&
      base::Contains(
      parsed_headers->supports_loading_mode,
      network::mojom::LoadingMode::kPrerenderCrossOriginFrames)) {
      allow_cross_origin_subframe_navigation_ = true;
      }
      }
      if (!has_no_vary_search_with_parse_error_header) {
      CHECK(!no_vary_search_.has_value());
      CHECK(!no_vary_search_parse_error_.has_value());
      }
      Hiroki Nakagawa . resolved

      `has_no_vary_search_with_parse_error_header` may not be necessary:

      ```
      if (navigation_request->response() &&
      navigation_request->response()->parsed_headers) {
      const network::mojom::ParsedHeadersPtr& parsed_headers =
      navigation_request->response()->parsed_headers;
      if (parsed_headers->no_vary_search_with_parse_error) {
      has_no_vary_search_with_parse_error_header = true;
      MaybeSetNoVarySearch(*parsed_headers->no_vary_search_with_parse_error);
      } else {
      CHECK(!no_vary_search_.has_value());
      CHECK(!no_vary_search_parse_error_.has_value());
      }
          if (base::FeatureList::IsEnabled(features::kPrerender2CrossOriginIframes) &&
      base::Contains(
      parsed_headers->supports_loading_mode,
      network::mojom::LoadingMode::kPrerenderCrossOriginFrames)) {
      allow_cross_origin_subframe_navigation_ = true;
      }
      }
      ```
      Yoichi Osato

      CHECK(!no_vary_XXX) is checked even if `!navigation_request->response()`.

      Lingqi Chi

      if(navigation_request->response) looks like a defensive programming style but I'm wondering if it could be a nullptr when reaching here.

      Hiroki Nakagawa

      Thanks! I'm not sure if it's possible... If navigation fils results in an error page, this could be null...? (just wild guess)

      Anyway, it's an orthogonal to this change, and it's fine with me to keep this as for now.

      Yoichi Osato

      Let me resolved this so far.

      Line 779, Patchset 17: CHECK(page);
      if (allow_cross_origin_subframe_navigation_) {
      page->render_frame_host()
      ->GetPage()
      .NotifyCrossOriginSubframePrerenderIsAllowed();
      }
      Lingqi Chi . resolved

      Out of curiosity, are there any reasons that we do not propagate this state when receiving the header? if so, could we leave a brief comment here?

      Yoichi Osato

      I guess PrerenderHost::Activate() activates the Page here and we should not touch Page things before this.
      @nhi...@chromium.org for confirmation.

      Hiroki Nakagawa

      I think there isn't such a restriction.

      Yoichi Osato

      I investigated it and found that the PageImpl is created at RenderFrameHostImpl::DidCommitNavigationInternal() :
      https://source.chromium.org/chromium/chromium/src/+/main:content/browser/renderer_host/render_frame_host_impl.cc;drc=36482c6a5e727337ed2676000fca1d095d7c8b3f;l=15597.
      That means we don't have it at "PrerenderHost::ReadyToCommitNavigation()".

      Lingqi Chi

      interesting.. It is my first time to know that during prerendering navigation, the PageImpl will be reset....

      Yoichi Osato

      Let me resolved this so far.

      Open in Gerrit

      Related details

      Attention is currently required from:
      • Takashi Toyoshima
      Submit Requirements:
      • requirement satisfiedCode-Coverage
      • requirement is not satisfiedCode-Owners
      • requirement satisfiedCode-Review
      • requirement is not satisfiedNo-Unresolved-Comments
      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: I4715487260e227ffc2541bc5c2a283a780b9cc2d
      Gerrit-Change-Number: 6780845
      Gerrit-PatchSet: 25
      Gerrit-Owner: Yoichi Osato <yoi...@chromium.org>
      Gerrit-Reviewer: Hiroki Nakagawa <nhi...@chromium.org>
      Gerrit-Reviewer: Lingqi Chi <lin...@chromium.org>
      Gerrit-Reviewer: Takashi Toyoshima <toyo...@chromium.org>
      Gerrit-Reviewer: Yoichi Osato <yoi...@chromium.org>
      Gerrit-CC: Domenic Denicola <dom...@chromium.org>
      Gerrit-CC: Huanpo Lin <robe...@chromium.org>
      Gerrit-CC: Yoav Weiss (@Shopify) <yoav...@chromium.org>
      Gerrit-CC: prerendering-reviews <prerenderi...@chromium.org>
      Gerrit-Attention: Takashi Toyoshima <toyo...@chromium.org>
      Gerrit-Comment-Date: Mon, 08 Sep 2025 00:31:41 +0000
      Gerrit-HasComments: Yes
      Gerrit-Has-Labels: No
      Comment-In-Reply-To: Lingqi Chi <lin...@chromium.org>
      satisfied_requirement
      unsatisfied_requirement
      open
      diffy

      Yoichi Osato (Gerrit)

      unread,
      Sep 7, 2025, 8:34:48 PM (16 hours ago) Sep 7
      to Rakina Zata Amni, Koji Ishii, Takashi Toyoshima, Lingqi Chi, Hiroki Nakagawa, Huanpo Lin, Domenic Denicola, Yoav Weiss (@Shopify), Chromium LUCI CQ, AyeAye, chromium...@chromium.org, prerendering-reviews, creis...@chromium.org, alexmo...@chromium.org, navigation...@chromium.org, network-ser...@chromium.org, blink-...@chromium.org, blink-revie...@chromium.org, gavinp+p...@chromium.org, gavin...@chromium.org, tburkar...@chromium.org
      Attention needed from Koji Ishii, Rakina Zata Amni and Takashi Toyoshima

      Yoichi Osato added 1 comment

      Patchset-level comments
      File-level comment, Patchset 22:
      Hiroki Nakagawa . resolved

      (I'm still reading test code, but let me release comments before my meeting starts. Feel free to add more reviewers)

      Yoichi Osato

      I think it is good to get LGTM among the team before asking other OWNERs review.

      Yoichi Osato

      Done

      Open in Gerrit

      Related details

      Attention is currently required from:
      • Koji Ishii
      • Rakina Zata Amni
      • Takashi Toyoshima
      Submit Requirements:
      • requirement satisfiedCode-Coverage
      • requirement is not satisfiedCode-Owners
      • requirement satisfiedCode-Review
      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: I4715487260e227ffc2541bc5c2a283a780b9cc2d
      Gerrit-Change-Number: 6780845
      Gerrit-PatchSet: 25
      Gerrit-Owner: Yoichi Osato <yoi...@chromium.org>
      Gerrit-Reviewer: Hiroki Nakagawa <nhi...@chromium.org>
      Gerrit-Reviewer: Koji Ishii <ko...@chromium.org>
      Gerrit-Reviewer: Lingqi Chi <lin...@chromium.org>
      Gerrit-Reviewer: Rakina Zata Amni <rak...@chromium.org>
      Gerrit-Reviewer: Takashi Toyoshima <toyo...@chromium.org>
      Gerrit-Reviewer: Yoichi Osato <yoi...@chromium.org>
      Gerrit-CC: Domenic Denicola <dom...@chromium.org>
      Gerrit-CC: Huanpo Lin <robe...@chromium.org>
      Gerrit-CC: Yoav Weiss (@Shopify) <yoav...@chromium.org>
      Gerrit-CC: prerendering-reviews <prerenderi...@chromium.org>
      Gerrit-Attention: Koji Ishii <ko...@chromium.org>
      Gerrit-Attention: Rakina Zata Amni <rak...@chromium.org>
      Gerrit-Attention: Takashi Toyoshima <toyo...@chromium.org>
      Gerrit-Comment-Date: Mon, 08 Sep 2025 00:34:13 +0000
      Gerrit-HasComments: Yes
      Gerrit-Has-Labels: No
      satisfied_requirement
      unsatisfied_requirement
      open
      diffy

      Yoichi Osato (Gerrit)

      unread,
      Sep 7, 2025, 8:37:08 PM (16 hours ago) Sep 7
      to Kent Tamura, Takashi Toyoshima, Lingqi Chi, Hiroki Nakagawa, Huanpo Lin, Domenic Denicola, Yoav Weiss (@Shopify), Chromium LUCI CQ, AyeAye, chromium...@chromium.org, prerendering-reviews, creis...@chromium.org, alexmo...@chromium.org, navigation...@chromium.org, network-ser...@chromium.org, blink-...@chromium.org, blink-revie...@chromium.org, gavinp+p...@chromium.org, gavin...@chromium.org, tburkar...@chromium.org
      Attention needed from Kent Tamura and Takashi Toyoshima

      Yoichi Osato added 1 comment

      Patchset-level comments
      File-level comment, Patchset 25 (Latest):
      Yoichi Osato . resolved
      Ask 
      toyoshim@ for /services review.
      tkent@ for VirtualTest review.
      PTAL.
      Open in Gerrit

      Related details

      Attention is currently required from:
      • Kent Tamura
      • Takashi Toyoshima
      Submit Requirements:
      • requirement satisfiedCode-Coverage
      • requirement is not satisfiedCode-Owners
      • requirement satisfiedCode-Review
      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: I4715487260e227ffc2541bc5c2a283a780b9cc2d
      Gerrit-Change-Number: 6780845
      Gerrit-PatchSet: 25
      Gerrit-Owner: Yoichi Osato <yoi...@chromium.org>
      Gerrit-Reviewer: Hiroki Nakagawa <nhi...@chromium.org>
      Gerrit-Reviewer: Kent Tamura <tk...@chromium.org>
      Gerrit-Reviewer: Lingqi Chi <lin...@chromium.org>
      Gerrit-Reviewer: Takashi Toyoshima <toyo...@chromium.org>
      Gerrit-Reviewer: Yoichi Osato <yoi...@chromium.org>
      Gerrit-CC: Domenic Denicola <dom...@chromium.org>
      Gerrit-CC: Huanpo Lin <robe...@chromium.org>
      Gerrit-CC: Yoav Weiss (@Shopify) <yoav...@chromium.org>
      Gerrit-CC: prerendering-reviews <prerenderi...@chromium.org>
      Gerrit-Attention: Kent Tamura <tk...@chromium.org>
      Gerrit-Attention: Takashi Toyoshima <toyo...@chromium.org>
      Gerrit-Comment-Date: Mon, 08 Sep 2025 00:36:35 +0000
      Gerrit-HasComments: Yes
      Gerrit-Has-Labels: No
      satisfied_requirement
      unsatisfied_requirement
      open
      diffy

      Kent Tamura (Gerrit)

      unread,
      Sep 7, 2025, 8:39:21 PM (16 hours ago) Sep 7
      to Yoichi Osato, Kent Tamura, Takashi Toyoshima, Lingqi Chi, Hiroki Nakagawa, Huanpo Lin, Domenic Denicola, Yoav Weiss (@Shopify), Chromium LUCI CQ, AyeAye, chromium...@chromium.org, prerendering-reviews, creis...@chromium.org, alexmo...@chromium.org, navigation...@chromium.org, network-ser...@chromium.org, blink-...@chromium.org, blink-revie...@chromium.org, gavinp+p...@chromium.org, gavin...@chromium.org, tburkar...@chromium.org
      Attention needed from Takashi Toyoshima and Yoichi Osato

      Kent Tamura voted and added 1 comment

      Votes added by Kent Tamura

      Code-Review+1

      1 comment

      Patchset-level comments
      Kent Tamura . resolved

      VTS LGTM

      Open in Gerrit

      Related details

      Attention is currently required from:
      • Takashi Toyoshima
      • Yoichi Osato
      Gerrit-Attention: Yoichi Osato <yoi...@chromium.org>
      Gerrit-Attention: Takashi Toyoshima <toyo...@chromium.org>
      Gerrit-Comment-Date: Mon, 08 Sep 2025 00:38:52 +0000
      Gerrit-HasComments: Yes
      Gerrit-Has-Labels: Yes
      satisfied_requirement
      unsatisfied_requirement
      open
      diffy

      Yoichi Osato (Gerrit)

      unread,
      Sep 7, 2025, 8:54:20 PM (16 hours ago) Sep 7
      to Jonathan Ross, Kent Tamura, Takashi Toyoshima, Lingqi Chi, Hiroki Nakagawa, Huanpo Lin, Domenic Denicola, Yoav Weiss (@Shopify), Chromium LUCI CQ, AyeAye, chromium...@chromium.org, prerendering-reviews, creis...@chromium.org, alexmo...@chromium.org, navigation...@chromium.org, network-ser...@chromium.org, blink-...@chromium.org, blink-revie...@chromium.org, gavinp+p...@chromium.org, gavin...@chromium.org, tburkar...@chromium.org
      Attention needed from Jonathan Ross and Takashi Toyoshima

      Yoichi Osato added 1 comment

      Patchset-level comments
      Yoichi Osato . resolved

      Ask jonross@ for c/b/r/page_impl.* review. PTAL.

      Open in Gerrit

      Related details

      Attention is currently required from:
      • Jonathan Ross
      • Takashi Toyoshima
      Submit Requirements:
      • requirement satisfiedCode-Coverage
      • requirement is not satisfiedCode-Owners
      • requirement satisfiedCode-Review
      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: I4715487260e227ffc2541bc5c2a283a780b9cc2d
      Gerrit-Change-Number: 6780845
      Gerrit-PatchSet: 25
      Gerrit-Owner: Yoichi Osato <yoi...@chromium.org>
      Gerrit-Reviewer: Hiroki Nakagawa <nhi...@chromium.org>
      Gerrit-Reviewer: Jonathan Ross <jon...@chromium.org>
      Gerrit-Reviewer: Kent Tamura <tk...@chromium.org>
      Gerrit-Reviewer: Lingqi Chi <lin...@chromium.org>
      Gerrit-Reviewer: Takashi Toyoshima <toyo...@chromium.org>
      Gerrit-Reviewer: Yoichi Osato <yoi...@chromium.org>
      Gerrit-CC: Domenic Denicola <dom...@chromium.org>
      Gerrit-CC: Huanpo Lin <robe...@chromium.org>
      Gerrit-CC: Yoav Weiss (@Shopify) <yoav...@chromium.org>
      Gerrit-CC: prerendering-reviews <prerenderi...@chromium.org>
      Gerrit-Attention: Jonathan Ross <jon...@chromium.org>
      Gerrit-Attention: Takashi Toyoshima <toyo...@chromium.org>
      Gerrit-Comment-Date: Mon, 08 Sep 2025 00:53:44 +0000
      Gerrit-HasComments: Yes
      Gerrit-Has-Labels: No
      satisfied_requirement
      unsatisfied_requirement
      open
      diffy

      Takashi Toyoshima (Gerrit)

      unread,
      1:46 AM (11 hours ago) 1:46 AM
      to Yoichi Osato, Jonathan Ross, Kent Tamura, Lingqi Chi, Hiroki Nakagawa, Huanpo Lin, Domenic Denicola, Yoav Weiss (@Shopify), Chromium LUCI CQ, AyeAye, chromium...@chromium.org, prerendering-reviews, creis...@chromium.org, alexmo...@chromium.org, navigation...@chromium.org, network-ser...@chromium.org, blink-...@chromium.org, blink-revie...@chromium.org, gavinp+p...@chromium.org, gavin...@chromium.org, tburkar...@chromium.org
      Attention needed from Jonathan Ross and Yoichi Osato

      Takashi Toyoshima voted and added 1 comment

      Votes added by Takashi Toyoshima

      Code-Review+1

      1 comment

      File content/browser/preloading/prerender/prerender_subframe_navigation_throttle.cc
      Line 186, Patchset 25 (Latest): if (base::FeatureList::IsEnabled(features::kPrerender2CrossOriginIframes) &&
      Takashi Toyoshima . unresolved
      Maybe
      ```
      if (prerender_host->AllowCrossOriginSubframeNavigation()) {
      CHECK(base::FeatureList::IsEnabled(...));
      return NavigationThrottle::PROCEED;
      }
      ```
      If we follow the existing check pattern around the prerender related base::Features, the feature is gated at an earlier place, PrerenderHost, and internal code just respects the PrerenderHost's decision and does CHECK(IsEnabled()).
      Open in Gerrit

      Related details

      Attention is currently required from:
      • Jonathan Ross
      • Yoichi Osato
      Submit Requirements:
        • requirement satisfiedCode-Coverage
        • requirement is not satisfiedCode-Owners
        • requirement satisfiedCode-Review
        • requirement is not satisfiedNo-Unresolved-Comments
        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: I4715487260e227ffc2541bc5c2a283a780b9cc2d
        Gerrit-Change-Number: 6780845
        Gerrit-PatchSet: 25
        Gerrit-Owner: Yoichi Osato <yoi...@chromium.org>
        Gerrit-Reviewer: Hiroki Nakagawa <nhi...@chromium.org>
        Gerrit-Reviewer: Jonathan Ross <jon...@chromium.org>
        Gerrit-Reviewer: Kent Tamura <tk...@chromium.org>
        Gerrit-Reviewer: Lingqi Chi <lin...@chromium.org>
        Gerrit-Reviewer: Takashi Toyoshima <toyo...@chromium.org>
        Gerrit-Reviewer: Yoichi Osato <yoi...@chromium.org>
        Gerrit-CC: Domenic Denicola <dom...@chromium.org>
        Gerrit-CC: Huanpo Lin <robe...@chromium.org>
        Gerrit-CC: Yoav Weiss (@Shopify) <yoav...@chromium.org>
        Gerrit-CC: prerendering-reviews <prerenderi...@chromium.org>
        Gerrit-Attention: Yoichi Osato <yoi...@chromium.org>
        Gerrit-Attention: Jonathan Ross <jon...@chromium.org>
        Gerrit-Comment-Date: Mon, 08 Sep 2025 05:46:12 +0000
        Gerrit-HasComments: Yes
        Gerrit-Has-Labels: Yes
        satisfied_requirement
        unsatisfied_requirement
        open
        diffy

        Yoichi Osato (Gerrit)

        unread,
        2:33 AM (10 hours ago) 2:33 AM
        to Takashi Toyoshima, Jonathan Ross, Kent Tamura, Lingqi Chi, Hiroki Nakagawa, Huanpo Lin, Domenic Denicola, Yoav Weiss (@Shopify), Chromium LUCI CQ, AyeAye, chromium...@chromium.org, prerendering-reviews, creis...@chromium.org, alexmo...@chromium.org, navigation...@chromium.org, network-ser...@chromium.org, blink-...@chromium.org, blink-revie...@chromium.org, gavinp+p...@chromium.org, gavin...@chromium.org, tburkar...@chromium.org
        Attention needed from Jonathan Ross

        Yoichi Osato added 1 comment

        File content/browser/preloading/prerender/prerender_subframe_navigation_throttle.cc
        Line 186, Patchset 25: if (base::FeatureList::IsEnabled(features::kPrerender2CrossOriginIframes) &&
        Takashi Toyoshima . resolved
        Maybe
        ```
        if (prerender_host->AllowCrossOriginSubframeNavigation()) {
        CHECK(base::FeatureList::IsEnabled(...));
        return NavigationThrottle::PROCEED;
        }
        ```
        If we follow the existing check pattern around the prerender related base::Features, the feature is gated at an earlier place, PrerenderHost, and internal code just respects the PrerenderHost's decision and does CHECK(IsEnabled()).
        Yoichi Osato

        Done

        Open in Gerrit

        Related details

        Attention is currently required from:
        • Jonathan Ross
        Submit Requirements:
        • requirement satisfiedCode-Coverage
        • requirement is not satisfiedCode-Owners
        • requirement satisfiedCode-Review
        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: I4715487260e227ffc2541bc5c2a283a780b9cc2d
        Gerrit-Change-Number: 6780845
        Gerrit-PatchSet: 26
        Gerrit-Owner: Yoichi Osato <yoi...@chromium.org>
        Gerrit-Reviewer: Hiroki Nakagawa <nhi...@chromium.org>
        Gerrit-Reviewer: Jonathan Ross <jon...@chromium.org>
        Gerrit-Reviewer: Kent Tamura <tk...@chromium.org>
        Gerrit-Reviewer: Lingqi Chi <lin...@chromium.org>
        Gerrit-Reviewer: Takashi Toyoshima <toyo...@chromium.org>
        Gerrit-Reviewer: Yoichi Osato <yoi...@chromium.org>
        Gerrit-CC: Domenic Denicola <dom...@chromium.org>
        Gerrit-CC: Huanpo Lin <robe...@chromium.org>
        Gerrit-CC: Yoav Weiss (@Shopify) <yoav...@chromium.org>
        Gerrit-CC: prerendering-reviews <prerenderi...@chromium.org>
        Gerrit-Attention: Jonathan Ross <jon...@chromium.org>
        Gerrit-Comment-Date: Mon, 08 Sep 2025 06:32:50 +0000
        Gerrit-HasComments: Yes
        Gerrit-Has-Labels: No
        Comment-In-Reply-To: Takashi Toyoshima <toyo...@chromium.org>
        satisfied_requirement
        unsatisfied_requirement
        open
        diffy

        Jonathan Ross (Gerrit)

        unread,
        10:49 AM (2 hours ago) 10:49 AM
        to Yoichi Osato, Takashi Toyoshima, Kent Tamura, Lingqi Chi, Hiroki Nakagawa, Huanpo Lin, Domenic Denicola, Yoav Weiss (@Shopify), Chromium LUCI CQ, AyeAye, chromium...@chromium.org, prerendering-reviews, creis...@chromium.org, alexmo...@chromium.org, navigation...@chromium.org, network-ser...@chromium.org, blink-...@chromium.org, blink-revie...@chromium.org, gavinp+p...@chromium.org, gavin...@chromium.org, tburkar...@chromium.org
        Attention needed from Yoichi Osato

        Jonathan Ross voted Code-Review+1

        Code-Review+1
        Open in Gerrit

        Related details

        Attention is currently required from:
        • Yoichi Osato
        Submit Requirements:
        • requirement satisfiedCode-Coverage
        • requirement satisfiedCode-Owners
        • requirement satisfiedCode-Review
        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: I4715487260e227ffc2541bc5c2a283a780b9cc2d
        Gerrit-Change-Number: 6780845
        Gerrit-PatchSet: 26
        Gerrit-Owner: Yoichi Osato <yoi...@chromium.org>
        Gerrit-Reviewer: Hiroki Nakagawa <nhi...@chromium.org>
        Gerrit-Reviewer: Jonathan Ross <jon...@chromium.org>
        Gerrit-Reviewer: Kent Tamura <tk...@chromium.org>
        Gerrit-Reviewer: Lingqi Chi <lin...@chromium.org>
        Gerrit-Reviewer: Takashi Toyoshima <toyo...@chromium.org>
        Gerrit-Reviewer: Yoichi Osato <yoi...@chromium.org>
        Gerrit-CC: Domenic Denicola <dom...@chromium.org>
        Gerrit-CC: Huanpo Lin <robe...@chromium.org>
        Gerrit-CC: Yoav Weiss (@Shopify) <yoav...@chromium.org>
        Gerrit-CC: prerendering-reviews <prerenderi...@chromium.org>
        Gerrit-Attention: Yoichi Osato <yoi...@chromium.org>
        Gerrit-Comment-Date: Mon, 08 Sep 2025 14:49:33 +0000
        Gerrit-HasComments: No
        Gerrit-Has-Labels: Yes
        satisfied_requirement
        open
        diffy

        Blink W3C Test Autoroller (Gerrit)

        unread,
        10:59 AM (2 hours ago) 10:59 AM
        to Yoichi Osato, Jonathan Ross, Takashi Toyoshima, Kent Tamura, Lingqi Chi, Hiroki Nakagawa, Huanpo Lin, Domenic Denicola, Yoav Weiss (@Shopify), Chromium LUCI CQ, AyeAye, chromium...@chromium.org, prerendering-reviews, creis...@chromium.org, alexmo...@chromium.org, navigation...@chromium.org, network-ser...@chromium.org, blink-...@chromium.org, blink-revie...@chromium.org, gavinp+p...@chromium.org, gavin...@chromium.org, tburkar...@chromium.org
        Attention needed from Yoichi Osato

        Message from Blink W3C Test Autoroller

        Exportable changes to web-platform-tests were detected in this CL and a pull request in the upstream repo has been made: https://github.com/web-platform-tests/wpt/pull/54750.

        When this CL lands, the bot will automatically merge the PR on GitHub if the required GitHub checks pass; otherwise, ecosystem-infra@ team will triage the failures and may contact you.

        WPT Export docs:
        https://chromium.googlesource.com/chromium/src/+/main/docs/testing/web_platform_tests.md#Automatic-export-process

        Open in Gerrit

        Related details

        Attention is currently required from:
        • Yoichi Osato
        Submit Requirements:
        • requirement satisfiedCode-Coverage
        • requirement satisfiedCode-Owners
        • requirement satisfiedCode-Review
        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: I4715487260e227ffc2541bc5c2a283a780b9cc2d
        Gerrit-Change-Number: 6780845
        Gerrit-PatchSet: 26
        Gerrit-Owner: Yoichi Osato <yoi...@chromium.org>
        Gerrit-Reviewer: Hiroki Nakagawa <nhi...@chromium.org>
        Gerrit-Reviewer: Jonathan Ross <jon...@chromium.org>
        Gerrit-Reviewer: Kent Tamura <tk...@chromium.org>
        Gerrit-Reviewer: Lingqi Chi <lin...@chromium.org>
        Gerrit-Reviewer: Takashi Toyoshima <toyo...@chromium.org>
        Gerrit-Reviewer: Yoichi Osato <yoi...@chromium.org>
        Gerrit-CC: Blink W3C Test Autoroller <blink-w3c-te...@chromium.org>
        Gerrit-CC: Domenic Denicola <dom...@chromium.org>
        Gerrit-CC: Huanpo Lin <robe...@chromium.org>
        Gerrit-CC: Yoav Weiss (@Shopify) <yoav...@chromium.org>
        Gerrit-CC: prerendering-reviews <prerenderi...@chromium.org>
        Gerrit-Attention: Yoichi Osato <yoi...@chromium.org>
        Gerrit-Comment-Date: Mon, 08 Sep 2025 14:58:53 +0000
        Gerrit-HasComments: No
        Gerrit-Has-Labels: No
        satisfied_requirement
        open
        diffy
        Reply all
        Reply to author
        Forward
        0 new messages