Create initial compositor frame sink for new renderers early [chromium/src : main]

1 view
Skip to first unread message

Rakina Zata Amni (Gerrit)

unread,
Apr 20, 2026, 10:56:49 AMApr 20
to Dave Tapuska, Mathias Bynens, Ian Vollick, Chromium Metrics Reviews, Sadrul Chowdhury, James Su, Bo Liu, Vasiliy Telezhnikov, Jonathan Ross, Daniel Cheng, android-bu...@system.gserviceaccount.com, Chromium LUCI CQ, chromium...@chromium.org, devtools...@chromium.org, headless...@chromium.org, cc-...@chromium.org, devtools-re...@chromium.org, mac-r...@chromium.org, asvitkine...@chromium.org, jbauma...@chromium.org, keithle...@chromium.org, nona+...@chromium.org, yhanad...@chromium.org, shuche...@chromium.org, tranbaod...@chromium.org, blink-revi...@chromium.org, blink-re...@chromium.org, kinuko...@chromium.org, blink-...@chromium.org, alexmo...@chromium.org, creis...@chromium.org, ipc-securi...@chromium.org, navigation...@chromium.org
Attention needed from Dave Tapuska and Jonathan Ross

Rakina Zata Amni added 3 comments

Patchset-level comments
File-level comment, Patchset 64:
Jonathan Ross . resolved

Windows seems to be flaking on new test EarlyGpuChannelBrowserTest.EarlyFrameSinkUsed_InitiallyHidden,

Rakina Zata Amni

Oh thanks, let's see if the unflaking works..

File-level comment, Patchset 70 (Latest):
Rakina Zata Amni . resolved

+dtapuska@ for third_party/blink review, PTAL :)

File content/browser/renderer_host/render_widget_host_impl.cc
Line 3503, Patchset 28: // If the widget is already shown, trigger frame sink creation. Use a
// PostTask to allow the window manager to finish attaching the Aura
// window to the display before Viz hooks up the CompositorFrameSink. If
Jonathan Ross . resolved

This would expose us to Browser UI thread congestion. So if we can eliminate this now that would be good

Rakina Zata Amni

Yeah ideally we avoid the PostTask here, but I couldn't figure out how to avoid these tab dragging failures otherwise: https://ci.chromium.org/ui/p/chromium/builders/try/linux-chromeos-rel/2799251. Do you know if there's another workaround?

Jonathan Ross

Strange, I wouldn't expect that call to impact tab dragging. As ` CreateCompositorFrameSink` is not a sync mojom call. So timeouts are unexpected.

Rakina Zata Amni

FWIW I got this workaround from Gemini because I couldn't figure out why the test was failing. Here's what it says, does it make sense?

Why this fails on ChromeOS Tablet Mode
In ChromeOS tablet mode, snapping or floating a window is a heavy operation handled by Ash (specifically TabletModeWindowManager and SplitViewController). It involves:

Changing the window's parent container in the Aura window tree.
Drastically changing the bounds.
Setting up window properties that tell Viz how to route hit testing and BeginFrames.
If you create the frame sink before this happens (by doing it synchronously instead of an async PostTask), Viz initializes the CompositorFrameSink with the initial (wrong) properties. When Ash immediately snaps the window right after, the sudden change in hierarchy and bounds can cause:

Frame Eviction: The renderer might produce a frame for the old bounds which Viz rejects because Ash has already updated the expected surface ID to the new snapped bounds.
Missing BeginFrames: If the frame sink is created before the window is added to the correct snapped container, it might not be hooked up to the correct display's BeginFrameSource in time, causing the test to time out waiting for a frame.

Jonathan Ross

If ChromeOS tab dragging creates new CompositorFrameSinks then I hadn't known that.

Frame Eviction part of that explanation doesn't make sense. Viz might reject a frame, but that is a separate system. `viz::FrameEvictionManager` lives in the Browser process. It will "evict" the `viz::Surface` for a client when it becomes hidden. (After a limit of saved surfaces is hit.)

Rakina Zata Amni

OK after a few more Gemini consulations I think we can avoid the PostTask by doing two things:

  • Checking if the window is attached when creating the widget (if it's not then we're in the middle of tab dragging and can skip the optimization)
  • Handle re-parenting during drag: In tablet mode on ChromeOS, a window can be attached to a root window early but then gets re-parented during the drag operation. If the early-created frame sink persisted through this re-parenting, it caused synchronization issues and test timeouts. To fix this, the solution involved adding logic to detect when a tab-drag operation is in progress (using a window property like kTabDragInProgressKey) and explicitly destroying the frame sink in RenderWidgetHostViewAura::ParentHierarchyChanged if a drag is detected during re-parenting. This forces a fallback to the standard renderer-driven frame sink creation path, which is safe and handles the new hierarchy correctly.

Do those sound reasonable to you?

Jonathan Ross

Disabling this during tab dragging sgtm.

It does sound like this is racy with re-parenting then. So we might need to consider a follow up to understand why this is failing

Rakina Zata Amni

Hmm actually some of the tab dragging tests are still flaky after those fixes. I tried debugging but didn't really get anywhere. Since the Webium experiment is not currently enabled on ChromeOS, I think maybe it's better to just skip the optimization on ChromeOS at this point and investigate how to make this work later. WDYT?

Jonathan Ross

If we only needed this for ChromeOS, and it still fails. Then yeah we should limit the feature to non-CrOS for now. We could probably remove this if it wasn't needed for other platforms

Rakina Zata Amni

Acknowledged

Open in Gerrit

Related details

Attention is currently required from:
  • Dave Tapuska
  • Jonathan Ross
Submit Requirements:
  • requirement satisfiedCode-Coverage
  • requirement is not satisfiedCode-Owners
  • requirement is not satisfiedCode-Review
  • requirement is not satisfiedNo-Unresolved-Comments
  • requirement is not satisfiedReview-Enforcement
Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
Gerrit-MessageType: comment
Gerrit-Project: chromium/src
Gerrit-Branch: main
Gerrit-Change-Id: Ie0090238aa555b0e31ac5233f3dd34a8a05f219c
Gerrit-Change-Number: 7720164
Gerrit-PatchSet: 70
Gerrit-Owner: Rakina Zata Amni <rak...@chromium.org>
Gerrit-Reviewer: Dave Tapuska <dtap...@chromium.org>
Gerrit-Reviewer: Jonathan Ross <jon...@chromium.org>
Gerrit-Reviewer: Rakina Zata Amni <rak...@chromium.org>
Gerrit-CC: Bo Liu <bo...@chromium.org>
Gerrit-CC: Chromium Metrics Reviews <chromium-met...@google.com>
Gerrit-CC: Daniel Cheng <dch...@chromium.org>
Gerrit-CC: Ian Vollick <vol...@chromium.org>
Gerrit-CC: James Su <su...@chromium.org>
Gerrit-CC: Mathias Bynens <mat...@chromium.org>
Gerrit-CC: Sadrul Chowdhury <sad...@chromium.org>
Gerrit-CC: Vasiliy Telezhnikov <vas...@chromium.org>
Gerrit-Attention: Jonathan Ross <jon...@chromium.org>
Gerrit-Attention: Dave Tapuska <dtap...@chromium.org>
Gerrit-Comment-Date: Mon, 20 Apr 2026 14:56:16 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: No
Comment-In-Reply-To: Jonathan Ross <jon...@chromium.org>
Comment-In-Reply-To: Rakina Zata Amni <rak...@chromium.org>
satisfied_requirement
unsatisfied_requirement
open
diffy

Dave Tapuska (Gerrit)

unread,
Apr 22, 2026, 10:14:55 AMApr 22
to Rakina Zata Amni, Mathias Bynens, Ian Vollick, Chromium Metrics Reviews, Sadrul Chowdhury, James Su, Bo Liu, Vasiliy Telezhnikov, Jonathan Ross, Daniel Cheng, android-bu...@system.gserviceaccount.com, Chromium LUCI CQ, chromium...@chromium.org, devtools...@chromium.org, headless...@chromium.org, cc-...@chromium.org, devtools-re...@chromium.org, mac-r...@chromium.org, asvitkine...@chromium.org, jbauma...@chromium.org, keithle...@chromium.org, nona+...@chromium.org, yhanad...@chromium.org, shuche...@chromium.org, tranbaod...@chromium.org, blink-revi...@chromium.org, blink-re...@chromium.org, kinuko...@chromium.org, blink-...@chromium.org, alexmo...@chromium.org, creis...@chromium.org, ipc-securi...@chromium.org, navigation...@chromium.org
Attention needed from Jonathan Ross and Rakina Zata Amni

Dave Tapuska added 6 comments

File components/viz/host/gpu_client.h
Line 118, Patchset 72 (Parent):
Dave Tapuska . unresolved

why this removal?

File content/browser/renderer_host/render_widget_host_impl.h
Line 1621, Patchset 72: mojo::PendingReceiver<viz::mojom::CompositorFrameSink> initial_sink_receiver_;
Dave Tapuska . unresolved

I'd prefer if this was wrapped in a struct like:

```
struct PendingFrameSinkChannels {
mojo::PendingRemote...
};
std::optional<PendingFrameSinkChannels> pending_frame_sink_channel_;
```
File content/browser/renderer_host/render_widget_host_impl.cc
Line 167, Patchset 72:#if defined(USE_AURA)
Dave Tapuska . unresolved

Why this include?

File content/renderer/render_frame_impl.cc
Line 1263, Patchset 72: web_frame_widget->SetInitialFrameSink(
Dave Tapuska . unresolved

Why another method, could we just roll this into InitializeCompositing?

File third_party/blink/public/web/web_widget.h
Line 81, Patchset 72: virtual void SetInitialFrameSink(
Dave Tapuska . unresolved

Why doesn't this exist for WebPagePopup?

File third_party/blink/renderer/platform/widget/widget_base.h
Line 627, Patchset 72: mojo::PendingRemote<viz::mojom::CompositorFrameSink> initial_frame_sink_;
Dave Tapuska . unresolved

Same idea, lets put this in a pending struct

Open in Gerrit

Related details

Attention is currently required from:
  • Jonathan Ross
  • Rakina Zata Amni
Submit Requirements:
  • requirement satisfiedCode-Coverage
  • requirement is not satisfiedCode-Owners
  • requirement is not satisfiedCode-Review
  • requirement is not satisfiedNo-Unresolved-Comments
  • requirement is not satisfiedReview-Enforcement
Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
Gerrit-MessageType: comment
Gerrit-Project: chromium/src
Gerrit-Branch: main
Gerrit-Change-Id: Ie0090238aa555b0e31ac5233f3dd34a8a05f219c
Gerrit-Change-Number: 7720164
Gerrit-PatchSet: 73
Gerrit-Owner: Rakina Zata Amni <rak...@chromium.org>
Gerrit-Reviewer: Dave Tapuska <dtap...@chromium.org>
Gerrit-Reviewer: Jonathan Ross <jon...@chromium.org>
Gerrit-Reviewer: Rakina Zata Amni <rak...@chromium.org>
Gerrit-CC: Bo Liu <bo...@chromium.org>
Gerrit-CC: Chromium Metrics Reviews <chromium-met...@google.com>
Gerrit-CC: Daniel Cheng <dch...@chromium.org>
Gerrit-CC: Ian Vollick <vol...@chromium.org>
Gerrit-CC: James Su <su...@chromium.org>
Gerrit-CC: Mathias Bynens <mat...@chromium.org>
Gerrit-CC: Sadrul Chowdhury <sad...@chromium.org>
Gerrit-CC: Vasiliy Telezhnikov <vas...@chromium.org>
Gerrit-Attention: Jonathan Ross <jon...@chromium.org>
Gerrit-Attention: Rakina Zata Amni <rak...@chromium.org>
Gerrit-Comment-Date: Wed, 22 Apr 2026 14:14:50 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: No
satisfied_requirement
unsatisfied_requirement
open
diffy

Rakina Zata Amni (Gerrit)

unread,
Apr 22, 2026, 11:49:29 AMApr 22
to Dave Tapuska, Mathias Bynens, Ian Vollick, Chromium Metrics Reviews, Sadrul Chowdhury, James Su, Bo Liu, Vasiliy Telezhnikov, Jonathan Ross, Daniel Cheng, android-bu...@system.gserviceaccount.com, Chromium LUCI CQ, chromium...@chromium.org, devtools...@chromium.org, headless...@chromium.org, cc-...@chromium.org, devtools-re...@chromium.org, mac-r...@chromium.org, asvitkine...@chromium.org, jbauma...@chromium.org, keithle...@chromium.org, nona+...@chromium.org, yhanad...@chromium.org, shuche...@chromium.org, tranbaod...@chromium.org, blink-revi...@chromium.org, blink-re...@chromium.org, kinuko...@chromium.org, blink-...@chromium.org, alexmo...@chromium.org, creis...@chromium.org, ipc-securi...@chromium.org, navigation...@chromium.org
Attention needed from Dave Tapuska and Jonathan Ross

Rakina Zata Amni added 7 comments

File components/viz/host/gpu_client.h
Dave Tapuska . resolved

why this removal?

Rakina Zata Amni

Oops, bad rebase

File content/browser/renderer_host/render_widget_host_impl.h
Line 1621, Patchset 72: mojo::PendingReceiver<viz::mojom::CompositorFrameSink> initial_sink_receiver_;
Dave Tapuska . resolved

I'd prefer if this was wrapped in a struct like:

```
struct PendingFrameSinkChannels {
mojo::PendingRemote...
};
std::optional<PendingFrameSinkChannels> pending_frame_sink_channel_;
```
Rakina Zata Amni

Done

File content/browser/renderer_host/render_widget_host_impl.cc
Line 167, Patchset 72:#if defined(USE_AURA)
Dave Tapuska . resolved

Why this include?

Rakina Zata Amni

Old change, removed

File content/renderer/render_frame_impl.cc
Line 1263, Patchset 72: web_frame_widget->SetInitialFrameSink(
Dave Tapuska . resolved

Why another method, could we just roll this into InitializeCompositing?

Rakina Zata Amni

Done

File third_party/blink/public/web/web_widget.h
Line 81, Patchset 72: virtual void SetInitialFrameSink(
Dave Tapuska . resolved

Why doesn't this exist for WebPagePopup?

Rakina Zata Amni

Now that it's combined with `InitializeCompositing()` this exists there too (although it does nothing)

File third_party/blink/renderer/platform/widget/widget_base.h
Line 627, Patchset 72: mojo::PendingRemote<viz::mojom::CompositorFrameSink> initial_frame_sink_;
Dave Tapuska . resolved

Same idea, lets put this in a pending struct

Rakina Zata Amni

Done

File third_party/blink/renderer/platform/widget/widget_base.cc
Line 848, Patchset 28: mojo::PendingReceiver<blink::mojom::blink::RenderInputRouterClient>(
Jonathan Ross . resolved

Nit: `blink::mojom::RenderInputRouterClient`

Rakina Zata Amni

I changed it to `mojom::blink::RenderInputRouterClient` since `blink::mojom::RenderInputRouterClient` wouldn't compile and Gemini seems to think it's not possible to use that, but let me know if it actually is possible

Rakina Zata Amni

Done

Open in Gerrit

Related details

Attention is currently required from:
  • Dave Tapuska
  • Jonathan Ross
Submit Requirements:
  • requirement satisfiedCode-Coverage
  • requirement is not satisfiedCode-Owners
  • requirement is not satisfiedCode-Review
  • requirement is not satisfiedNo-Unresolved-Comments
  • requirement is not satisfiedReview-Enforcement
Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
Gerrit-MessageType: comment
Gerrit-Project: chromium/src
Gerrit-Branch: main
Gerrit-Change-Id: Ie0090238aa555b0e31ac5233f3dd34a8a05f219c
Gerrit-Change-Number: 7720164
Gerrit-PatchSet: 74
Gerrit-Owner: Rakina Zata Amni <rak...@chromium.org>
Gerrit-Reviewer: Dave Tapuska <dtap...@chromium.org>
Gerrit-Reviewer: Jonathan Ross <jon...@chromium.org>
Gerrit-Reviewer: Rakina Zata Amni <rak...@chromium.org>
Gerrit-CC: Bo Liu <bo...@chromium.org>
Gerrit-CC: Chromium Metrics Reviews <chromium-met...@google.com>
Gerrit-CC: Daniel Cheng <dch...@chromium.org>
Gerrit-CC: Ian Vollick <vol...@chromium.org>
Gerrit-CC: James Su <su...@chromium.org>
Gerrit-CC: Mathias Bynens <mat...@chromium.org>
Gerrit-CC: Sadrul Chowdhury <sad...@chromium.org>
Gerrit-CC: Vasiliy Telezhnikov <vas...@chromium.org>
Gerrit-Attention: Jonathan Ross <jon...@chromium.org>
Gerrit-Attention: Dave Tapuska <dtap...@chromium.org>
Gerrit-Comment-Date: Wed, 22 Apr 2026 15:48:48 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: No
Comment-In-Reply-To: Jonathan Ross <jon...@chromium.org>
Comment-In-Reply-To: Dave Tapuska <dtap...@chromium.org>
satisfied_requirement
unsatisfied_requirement
open
diffy

Rakina Zata Amni (Gerrit)

unread,
Apr 23, 2026, 12:19:00 PMApr 23
to Chromium IPC Reviews, Kent Tamura, Dave Tapuska, Mathias Bynens, Ian Vollick, Chromium Metrics Reviews, Sadrul Chowdhury, James Su, Bo Liu, Vasiliy Telezhnikov, Jonathan Ross, Daniel Cheng, android-bu...@system.gserviceaccount.com, Chromium LUCI CQ, chromium...@chromium.org, devtools...@chromium.org, headless...@chromium.org, cc-...@chromium.org, devtools-re...@chromium.org, mac-r...@chromium.org, asvitkine...@chromium.org, jbauma...@chromium.org, keithle...@chromium.org, nona+...@chromium.org, yhanad...@chromium.org, shuche...@chromium.org, tranbaod...@chromium.org, blink-revi...@chromium.org, blink-re...@chromium.org, kinuko...@chromium.org, blink-...@chromium.org, alexmo...@chromium.org, creis...@chromium.org, ipc-securi...@chromium.org, navigation...@chromium.org
Attention needed from Chromium IPC Reviews, Dave Tapuska, Jonathan Ross and Kent Tamura

Rakina Zata Amni added 1 comment

Rakina Zata Amni . resolved

Looks like dtapuska@ is OOO so let me reassign to tkent@, and also add an IPC reviewer. PTAL :)

Open in Gerrit

Related details

Attention is currently required from:
  • Chromium IPC Reviews
  • Dave Tapuska
  • Jonathan Ross
  • Kent Tamura
Submit Requirements:
  • requirement satisfiedCode-Coverage
  • requirement is not satisfiedCode-Owners
  • requirement is not satisfiedCode-Review
  • requirement is not satisfiedNo-Unresolved-Comments
  • requirement is not satisfiedReview-Enforcement
Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
Gerrit-MessageType: comment
Gerrit-Project: chromium/src
Gerrit-Branch: main
Gerrit-Change-Id: Ie0090238aa555b0e31ac5233f3dd34a8a05f219c
Gerrit-Change-Number: 7720164
Gerrit-PatchSet: 78
Gerrit-Owner: Rakina Zata Amni <rak...@chromium.org>
Gerrit-Reviewer: Chromium IPC Reviews <chrome-ip...@google.com>
Gerrit-Reviewer: Jonathan Ross <jon...@chromium.org>
Gerrit-Reviewer: Kent Tamura <tk...@chromium.org>
Gerrit-Reviewer: Rakina Zata Amni <rak...@chromium.org>
Gerrit-CC: Bo Liu <bo...@chromium.org>
Gerrit-CC: Chromium Metrics Reviews <chromium-met...@google.com>
Gerrit-CC: Daniel Cheng <dch...@chromium.org>
Gerrit-CC: Dave Tapuska <dtap...@chromium.org>
Gerrit-CC: Ian Vollick <vol...@chromium.org>
Gerrit-CC: James Su <su...@chromium.org>
Gerrit-CC: Mathias Bynens <mat...@chromium.org>
Gerrit-CC: Sadrul Chowdhury <sad...@chromium.org>
Gerrit-CC: Vasiliy Telezhnikov <vas...@chromium.org>
Gerrit-Attention: Jonathan Ross <jon...@chromium.org>
Gerrit-Attention: Chromium IPC Reviews <chrome-ip...@google.com>
Gerrit-Attention: Kent Tamura <tk...@chromium.org>
Gerrit-Attention: Dave Tapuska <dtap...@chromium.org>
Gerrit-Comment-Date: Thu, 23 Apr 2026 16:18:29 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: No
satisfied_requirement
unsatisfied_requirement
open
diffy

gwsq (Gerrit)

unread,
Apr 23, 2026, 12:20:11 PMApr 23
to Rakina Zata Amni, Chromium IPC Reviews, Takashi Toyoshima, Kent Tamura, Dave Tapuska, Mathias Bynens, Ian Vollick, Chromium Metrics Reviews, Sadrul Chowdhury, James Su, Bo Liu, Vasiliy Telezhnikov, Jonathan Ross, Daniel Cheng, android-bu...@system.gserviceaccount.com, Chromium LUCI CQ, chromium...@chromium.org, devtools...@chromium.org, headless...@chromium.org, cc-...@chromium.org, devtools-re...@chromium.org, mac-r...@chromium.org, asvitkine...@chromium.org, jbauma...@chromium.org, keithle...@chromium.org, nona+...@chromium.org, yhanad...@chromium.org, shuche...@chromium.org, tranbaod...@chromium.org, blink-revi...@chromium.org, blink-re...@chromium.org, kinuko...@chromium.org, blink-...@chromium.org, alexmo...@chromium.org, creis...@chromium.org, ipc-securi...@chromium.org, navigation...@chromium.org
Attention needed from Dave Tapuska, Jonathan Ross, Kent Tamura and Takashi Toyoshima

Message from gwsq

From googleclient/chrome/chromium_gwsq/ipc/config.gwsq:
IPC: toyo...@chromium.org

📎 It looks like you’re making a possibly security-sensitive change! 📎 IPC security review isn’t a rubberstamp, so your friendly security reviewer will need a fair amount of context to review your CL effectively. Please review your CL description and code comments to make sure they provide context for someone unfamiliar with your project/area. Pay special attention to where data comes from and which processes it flows between (and their privilege levels). Feel free to point your security reviewer at design docs, bugs, or other links if you can’t reasonably make a self-contained CL description. (Also see https://cbea.ms/git-commit/).

IPC reviewer(s): toyo...@chromium.org


Reviewer source(s):
toyo...@chromium.org is from context(googleclient/chrome/chromium_gwsq/ipc/config.gwsq)

Open in Gerrit

Related details

Attention is currently required from:
  • Dave Tapuska
  • Jonathan Ross
  • Kent Tamura
  • Takashi Toyoshima
Submit Requirements:
  • requirement satisfiedCode-Coverage
  • requirement is not satisfiedCode-Owners
  • requirement is not satisfiedCode-Review
  • requirement is not satisfiedNo-Unresolved-Comments
  • requirement is not satisfiedReview-Enforcement
Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
Gerrit-MessageType: comment
Gerrit-Project: chromium/src
Gerrit-Branch: main
Gerrit-Change-Id: Ie0090238aa555b0e31ac5233f3dd34a8a05f219c
Gerrit-Change-Number: 7720164
Gerrit-PatchSet: 78
Gerrit-Owner: Rakina Zata Amni <rak...@chromium.org>
Gerrit-Reviewer: Jonathan Ross <jon...@chromium.org>
Gerrit-Reviewer: Kent Tamura <tk...@chromium.org>
Gerrit-Reviewer: Rakina Zata Amni <rak...@chromium.org>
Gerrit-Reviewer: Takashi Toyoshima <toyo...@chromium.org>
Gerrit-CC: Bo Liu <bo...@chromium.org>
Gerrit-CC: Chromium IPC Reviews <chrome-ip...@google.com>
Gerrit-CC: Chromium Metrics Reviews <chromium-met...@google.com>
Gerrit-CC: Daniel Cheng <dch...@chromium.org>
Gerrit-CC: Dave Tapuska <dtap...@chromium.org>
Gerrit-CC: Ian Vollick <vol...@chromium.org>
Gerrit-CC: James Su <su...@chromium.org>
Gerrit-CC: Mathias Bynens <mat...@chromium.org>
Gerrit-CC: Sadrul Chowdhury <sad...@chromium.org>
Gerrit-CC: Vasiliy Telezhnikov <vas...@chromium.org>
Gerrit-CC: gwsq
Gerrit-Attention: Jonathan Ross <jon...@chromium.org>
Gerrit-Attention: Takashi Toyoshima <toyo...@chromium.org>
Gerrit-Attention: Kent Tamura <tk...@chromium.org>
Gerrit-Attention: Dave Tapuska <dtap...@chromium.org>
Gerrit-Comment-Date: Thu, 23 Apr 2026 16:20:05 +0000
Gerrit-HasComments: No
Gerrit-Has-Labels: No
satisfied_requirement
unsatisfied_requirement
open
diffy

Kent Tamura (Gerrit)

unread,
Apr 23, 2026, 6:59:13 PMApr 23
to Rakina Zata Amni, Kent Tamura, Chromium IPC Reviews, Takashi Toyoshima, Dave Tapuska, Mathias Bynens, Ian Vollick, Chromium Metrics Reviews, Sadrul Chowdhury, James Su, Bo Liu, Vasiliy Telezhnikov, Jonathan Ross, Daniel Cheng, android-bu...@system.gserviceaccount.com, Chromium LUCI CQ, chromium...@chromium.org, devtools...@chromium.org, headless...@chromium.org, cc-...@chromium.org, devtools-re...@chromium.org, mac-r...@chromium.org, asvitkine...@chromium.org, jbauma...@chromium.org, keithle...@chromium.org, nona+...@chromium.org, yhanad...@chromium.org, shuche...@chromium.org, tranbaod...@chromium.org, blink-revi...@chromium.org, blink-re...@chromium.org, kinuko...@chromium.org, blink-...@chromium.org, alexmo...@chromium.org, creis...@chromium.org, ipc-securi...@chromium.org, navigation...@chromium.org
Attention needed from Dave Tapuska, Jonathan Ross, Rakina Zata Amni and Takashi Toyoshima

Kent Tamura voted and added 2 comments

Votes added by Kent Tamura

Code-Review+1

2 comments

Patchset-level comments
Kent Tamura . resolved

third_party/blink LGTM

File third_party/blink/public/web/DEPS
Line 47, Patchset 78 (Latest): "+services/viz/public/mojom/compositing/compositor_frame_sink.mojom-shared.h",
Kent Tamura . unresolved

This should be inserted at a sorted position.

Open in Gerrit

Related details

Attention is currently required from:
  • Dave Tapuska
  • Jonathan Ross
  • Rakina Zata Amni
  • Takashi Toyoshima
Submit Requirements:
    • requirement satisfiedCode-Coverage
    • requirement is not satisfiedCode-Owners
    • requirement satisfiedCode-Review
    • requirement is not satisfiedNo-Unresolved-Comments
    • requirement satisfiedReview-Enforcement
    Gerrit-Attention: Dave Tapuska <dtap...@chromium.org>
    Gerrit-Attention: Rakina Zata Amni <rak...@chromium.org>
    Gerrit-Comment-Date: Thu, 23 Apr 2026 22:58:31 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: Yes
    satisfied_requirement
    unsatisfied_requirement
    open
    diffy

    Rakina Zata Amni (Gerrit)

    unread,
    Apr 24, 2026, 1:23:09 PMApr 24
    to Jonathan Ross, Kent Tamura, Chromium IPC Reviews, Takashi Toyoshima, Dave Tapuska, Mathias Bynens, Ian Vollick, Chromium Metrics Reviews, Sadrul Chowdhury, James Su, Bo Liu, Vasiliy Telezhnikov, Daniel Cheng, android-bu...@system.gserviceaccount.com, Chromium LUCI CQ, chromium...@chromium.org, devtools...@chromium.org, headless...@chromium.org, cc-...@chromium.org, devtools-re...@chromium.org, mac-r...@chromium.org, asvitkine...@chromium.org, jbauma...@chromium.org, keithle...@chromium.org, nona+...@chromium.org, yhanad...@chromium.org, shuche...@chromium.org, tranbaod...@chromium.org, blink-revi...@chromium.org, blink-re...@chromium.org, kinuko...@chromium.org, blink-...@chromium.org, alexmo...@chromium.org, creis...@chromium.org, ipc-securi...@chromium.org, navigation...@chromium.org
    Attention needed from Dave Tapuska, Jonathan Ross and Takashi Toyoshima

    Rakina Zata Amni added 1 comment

    File third_party/blink/public/web/DEPS
    Line 47, Patchset 78: "+services/viz/public/mojom/compositing/compositor_frame_sink.mojom-shared.h",
    Kent Tamura . resolved

    This should be inserted at a sorted position.

    Rakina Zata Amni

    Done

    Open in Gerrit

    Related details

    Attention is currently required from:
    • Dave Tapuska
    • Jonathan Ross
    • Takashi Toyoshima
    Submit Requirements:
    • requirement satisfiedCode-Coverage
    • requirement is not satisfiedCode-Owners
    • requirement satisfiedCode-Review
    • requirement is not satisfiedNo-Unresolved-Comments
    • requirement satisfiedReview-Enforcement
    Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
    Gerrit-MessageType: comment
    Gerrit-Project: chromium/src
    Gerrit-Branch: main
    Gerrit-Change-Id: Ie0090238aa555b0e31ac5233f3dd34a8a05f219c
    Gerrit-Change-Number: 7720164
    Gerrit-PatchSet: 80
    Gerrit-Owner: Rakina Zata Amni <rak...@chromium.org>
    Gerrit-Reviewer: Jonathan Ross <jon...@chromium.org>
    Gerrit-Reviewer: Kent Tamura <tk...@chromium.org>
    Gerrit-Reviewer: Rakina Zata Amni <rak...@chromium.org>
    Gerrit-Reviewer: Takashi Toyoshima <toyo...@chromium.org>
    Gerrit-CC: Bo Liu <bo...@chromium.org>
    Gerrit-CC: Chromium IPC Reviews <chrome-ip...@google.com>
    Gerrit-CC: Chromium Metrics Reviews <chromium-met...@google.com>
    Gerrit-CC: Daniel Cheng <dch...@chromium.org>
    Gerrit-CC: Dave Tapuska <dtap...@chromium.org>
    Gerrit-CC: Ian Vollick <vol...@chromium.org>
    Gerrit-CC: James Su <su...@chromium.org>
    Gerrit-CC: Mathias Bynens <mat...@chromium.org>
    Gerrit-CC: Sadrul Chowdhury <sad...@chromium.org>
    Gerrit-CC: Vasiliy Telezhnikov <vas...@chromium.org>
    Gerrit-CC: gwsq
    Gerrit-Attention: Jonathan Ross <jon...@chromium.org>
    Gerrit-Attention: Takashi Toyoshima <toyo...@chromium.org>
    Gerrit-Attention: Dave Tapuska <dtap...@chromium.org>
    Gerrit-Comment-Date: Fri, 24 Apr 2026 17:22:26 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: No
    Comment-In-Reply-To: Kent Tamura <tk...@chromium.org>
    satisfied_requirement
    unsatisfied_requirement
    open
    diffy

    Jonathan Ross (Gerrit)

    unread,
    Apr 24, 2026, 2:11:58 PMApr 24
    to Rakina Zata Amni, Kent Tamura, Chromium IPC Reviews, Takashi Toyoshima, Dave Tapuska, Mathias Bynens, Ian Vollick, Chromium Metrics Reviews, Sadrul Chowdhury, James Su, Bo Liu, Vasiliy Telezhnikov, Daniel Cheng, android-bu...@system.gserviceaccount.com, Chromium LUCI CQ, chromium...@chromium.org, devtools...@chromium.org, headless...@chromium.org, cc-...@chromium.org, devtools-re...@chromium.org, mac-r...@chromium.org, asvitkine...@chromium.org, jbauma...@chromium.org, keithle...@chromium.org, nona+...@chromium.org, yhanad...@chromium.org, shuche...@chromium.org, tranbaod...@chromium.org, blink-revi...@chromium.org, blink-re...@chromium.org, kinuko...@chromium.org, blink-...@chromium.org, alexmo...@chromium.org, creis...@chromium.org, ipc-securi...@chromium.org, navigation...@chromium.org
    Attention needed from Rakina Zata Amni and Takashi Toyoshima

    Jonathan Ross added 5 comments

    File content/browser/gpu/initial_gpu_channel_browsertest.cc
    Line 344, Patchset 80 (Latest): // Expect that the initial channel was established successfully. Note that
    // this might be established even before the navigation above, but there's no
    // way to non-flakily wait for the histogram before we committed any
    // navigation in the process.
    Jonathan Ross . unresolved

    Further reason to not rely on histogram for testing

    Line 359, Patchset 80 (Latest): // The initial frame sink should be used on non-ChromeOS platforms.
    // Wait for a frame to be submitted. This ensures the renderer has
    // requested the frame sink.
    RenderFrameSubmissionObserver observer(shell()->web_contents());
    observer.WaitForAnyFrameSubmission();
    Jonathan Ross . unresolved

    We should probably just make a non-ChromeOS test, that enables `features::kSendGPUChannelEarly` and validates that we successfully produce a frame

    File content/browser/renderer_host/render_widget_host_impl.cc
    Line 958, Patchset 80 (Latest): if (GetHostFrameSinkManager()->IsFrameSinkIdRegistered(GetFrameSinkId())) {
    Jonathan Ross . unresolved

    Please fix this WARNING reported by autoreview issue finding: Is there a specific reason to drop the pipes if the ID is not registered yet? `CreateFrameSink` already handles buffering until the view is ready. If we reset here, the renderer (which already has its end of the pipes) will face a connection error and will have to fallback to the slow path anyway. It might be safer to just call `CreateFrameSink` and let it buffer.

    Is there a specific reason to drop the pipes if the ID is not registered yet? `CreateFrameSink` already handles buffering until the view is ready. If we reset here, the renderer (which already has its end of the pipes) will face a connection error and will have to fallback to the slow path anyway. It might be safer to just call `CreateFrameSink` and let it buffer.

    Line 3537, Patchset 80 (Latest): // TODO(crbug.com/ 496408117): Make this work on ChromeOS too.
    Jonathan Ross . unresolved

    Please fix this WARNING reported by autoreview issue finding: NIT: Extra space in bug URL: 'crbug.com/ 496408117' -> 'crbug.com/496408117'

    NIT: Extra space in bug URL: 'crbug.com/ 496408117' -> 'crbug.com/496408117'

    File tools/metrics/histograms/metadata/gpu/histograms.xml
    Line 934, Patchset 80 (Latest):<histogram name="GPU.EarlyInitialFrameSinkUsed" enum="Boolean"
    expires_after="2027-04-24">
    Open in Gerrit

    Related details

    Attention is currently required from:
    • Rakina Zata Amni
    • Takashi Toyoshima
    Gerrit-Attention: Takashi Toyoshima <toyo...@chromium.org>
    Gerrit-Attention: Rakina Zata Amni <rak...@chromium.org>
    Gerrit-Comment-Date: Fri, 24 Apr 2026 18:11:53 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: No
    satisfied_requirement
    unsatisfied_requirement
    open
    diffy

    Rakina Zata Amni (Gerrit)

    unread,
    Apr 24, 2026, 3:21:49 PMApr 24
    to Jonathan Ross, Kent Tamura, Chromium IPC Reviews, Takashi Toyoshima, Dave Tapuska, Mathias Bynens, Ian Vollick, Chromium Metrics Reviews, Sadrul Chowdhury, James Su, Bo Liu, Vasiliy Telezhnikov, Daniel Cheng, android-bu...@system.gserviceaccount.com, Chromium LUCI CQ, chromium...@chromium.org, devtools...@chromium.org, headless...@chromium.org, cc-...@chromium.org, devtools-re...@chromium.org, mac-r...@chromium.org, asvitkine...@chromium.org, jbauma...@chromium.org, keithle...@chromium.org, nona+...@chromium.org, yhanad...@chromium.org, shuche...@chromium.org, tranbaod...@chromium.org, blink-revi...@chromium.org, blink-re...@chromium.org, kinuko...@chromium.org, blink-...@chromium.org, alexmo...@chromium.org, creis...@chromium.org, ipc-securi...@chromium.org, navigation...@chromium.org
    Attention needed from Jonathan Ross and Takashi Toyoshima

    Rakina Zata Amni added 5 comments

    File content/browser/gpu/initial_gpu_channel_browsertest.cc
    Line 344, Patchset 80: // Expect that the initial channel was established successfully. Note that

    // this might be established even before the navigation above, but there's no
    // way to non-flakily wait for the histogram before we committed any
    // navigation in the process.
    Jonathan Ross . unresolved

    Further reason to not rely on histogram for testing

    Rakina Zata Amni

    Hmm yeah I wonder if there are other nicer ways to test end-to-end including the renderer side without histograms for both the early GPU channel and frame sink. There shouldn't really be any observable behavior changing except the performance, which isn't really testable. I've dropped all the histogram testing now, let me know if I should add other kinds of tests.

    Line 359, Patchset 80: // The initial frame sink should be used on non-ChromeOS platforms.

    // Wait for a frame to be submitted. This ensures the renderer has
    // requested the frame sink.
    RenderFrameSubmissionObserver observer(shell()->web_contents());
    observer.WaitForAnyFrameSubmission();
    Jonathan Ross . unresolved

    We should probably just make a non-ChromeOS test, that enables `features::kSendGPUChannelEarly` and validates that we successfully produce a frame

    Rakina Zata Amni

    Do you mean make this SpareRendererUsesEarlyChannel be non-ChromeOS-only, or something else? (there are other tests that already use RenderFrameSubmissionObserver too)

    File content/browser/renderer_host/render_widget_host_impl.cc
    Line 958, Patchset 80: if (GetHostFrameSinkManager()->IsFrameSinkIdRegistered(GetFrameSinkId())) {
    Jonathan Ross . unresolved

    Please fix this WARNING reported by autoreview issue finding: Is there a specific reason to drop the pipes if the ID is not registered yet? `CreateFrameSink` already handles buffering until the view is ready. If we reset here, the renderer (which already has its end of the pipes) will face a connection error and will have to fallback to the slow path anyway. It might be safer to just call `CreateFrameSink` and let it buffer.

    Is there a specific reason to drop the pipes if the ID is not registered yet? `CreateFrameSink` already handles buffering until the view is ready. If we reset here, the renderer (which already has its end of the pipes) will face a connection error and will have to fallback to the slow path anyway. It might be safer to just call `CreateFrameSink` and let it buffer.

    Rakina Zata Amni

    I think some tests were failing without the `IsFrameSinkIdRegistered()`, but I lost track of which ones. Let me run without the checks and see if they still fail.

    Line 3537, Patchset 80: // TODO(crbug.com/ 496408117): Make this work on ChromeOS too.
    Jonathan Ross . resolved

    Please fix this WARNING reported by autoreview issue finding: NIT: Extra space in bug URL: 'crbug.com/ 496408117' -> 'crbug.com/496408117'

    NIT: Extra space in bug URL: 'crbug.com/ 496408117' -> 'crbug.com/496408117'

    Rakina Zata Amni

    Done

    File tools/metrics/histograms/metadata/gpu/histograms.xml
    Line 934, Patchset 80:<histogram name="GPU.EarlyInitialFrameSinkUsed" enum="Boolean"
    expires_after="2027-04-24">
    Jonathan Ross . resolved
    Rakina Zata Amni

    Acknowledged

    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
    • requirement is not satisfiedNo-Unresolved-Comments
    • requirement satisfiedReview-Enforcement
    Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
    Gerrit-MessageType: comment
    Gerrit-Project: chromium/src
    Gerrit-Branch: main
    Gerrit-Change-Id: Ie0090238aa555b0e31ac5233f3dd34a8a05f219c
    Gerrit-Change-Number: 7720164
    Gerrit-PatchSet: 82
    Gerrit-Owner: Rakina Zata Amni <rak...@chromium.org>
    Gerrit-Reviewer: Jonathan Ross <jon...@chromium.org>
    Gerrit-Reviewer: Kent Tamura <tk...@chromium.org>
    Gerrit-Reviewer: Rakina Zata Amni <rak...@chromium.org>
    Gerrit-Reviewer: Takashi Toyoshima <toyo...@chromium.org>
    Gerrit-CC: Bo Liu <bo...@chromium.org>
    Gerrit-CC: Chromium IPC Reviews <chrome-ip...@google.com>
    Gerrit-CC: Chromium Metrics Reviews <chromium-met...@google.com>
    Gerrit-CC: Daniel Cheng <dch...@chromium.org>
    Gerrit-CC: Dave Tapuska <dtap...@chromium.org>
    Gerrit-CC: Ian Vollick <vol...@chromium.org>
    Gerrit-CC: James Su <su...@chromium.org>
    Gerrit-CC: Mathias Bynens <mat...@chromium.org>
    Gerrit-CC: Sadrul Chowdhury <sad...@chromium.org>
    Gerrit-CC: Vasiliy Telezhnikov <vas...@chromium.org>
    Gerrit-CC: gwsq
    Gerrit-Attention: Jonathan Ross <jon...@chromium.org>
    Gerrit-Attention: Takashi Toyoshima <toyo...@chromium.org>
    Gerrit-Comment-Date: Fri, 24 Apr 2026 19:21:18 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: No
    Comment-In-Reply-To: Jonathan Ross <jon...@chromium.org>
    satisfied_requirement
    unsatisfied_requirement
    open
    diffy

    Jonathan Ross (Gerrit)

    unread,
    Apr 24, 2026, 5:33:50 PMApr 24
    to Rakina Zata Amni, Kent Tamura, Chromium IPC Reviews, Takashi Toyoshima, Dave Tapuska, Mathias Bynens, Ian Vollick, Chromium Metrics Reviews, Sadrul Chowdhury, James Su, Bo Liu, Vasiliy Telezhnikov, Daniel Cheng, android-bu...@system.gserviceaccount.com, Chromium LUCI CQ, chromium...@chromium.org, devtools...@chromium.org, headless...@chromium.org, cc-...@chromium.org, devtools-re...@chromium.org, mac-r...@chromium.org, asvitkine...@chromium.org, jbauma...@chromium.org, keithle...@chromium.org, nona+...@chromium.org, yhanad...@chromium.org, shuche...@chromium.org, tranbaod...@chromium.org, blink-revi...@chromium.org, blink-re...@chromium.org, kinuko...@chromium.org, blink-...@chromium.org, alexmo...@chromium.org, creis...@chromium.org, ipc-securi...@chromium.org, navigation...@chromium.org
    Attention needed from Rakina Zata Amni and Takashi Toyoshima

    Jonathan Ross added 2 comments

    File content/browser/gpu/initial_gpu_channel_browsertest.cc
    Line 344, Patchset 80: // Expect that the initial channel was established successfully. Note that
    // this might be established even before the navigation above, but there's no
    // way to non-flakily wait for the histogram before we committed any
    // navigation in the process.
    Jonathan Ross . resolved

    Further reason to not rely on histogram for testing

    Rakina Zata Amni

    Hmm yeah I wonder if there are other nicer ways to test end-to-end including the renderer side without histograms for both the early GPU channel and frame sink. There shouldn't really be any observable behavior changing except the performance, which isn't really testable. I've dropped all the histogram testing now, let me know if I should add other kinds of tests.

    Jonathan Ross

    Yeah, any non-performance changes would result in existing tests failing to submit frames. We should be okay with the added ` EarlyFrameSinkUsed_InitiallyHidden` and `InitialGpuChannelBrowserTest` is enabling `kSendGPUChannelEarly`, for general coverage

    Line 359, Patchset 80: // The initial frame sink should be used on non-ChromeOS platforms.
    // Wait for a frame to be submitted. This ensures the renderer has
    // requested the frame sink.
    RenderFrameSubmissionObserver observer(shell()->web_contents());
    observer.WaitForAnyFrameSubmission();
    Jonathan Ross . resolved

    We should probably just make a non-ChromeOS test, that enables `features::kSendGPUChannelEarly` and validates that we successfully produce a frame

    Rakina Zata Amni

    Do you mean make this SpareRendererUsesEarlyChannel be non-ChromeOS-only, or something else? (there are other tests that already use RenderFrameSubmissionObserver too)

    Jonathan Ross

    I think the current state of `EarlyFrameSinkUsed_InitiallyHidden` should be sufficient, since `InitialGpuChannelBrowserTest` is enabling `kSendGPUChannelEarly`.

    Open in Gerrit

    Related details

    Attention is currently required from:
    • Rakina Zata Amni
    • Takashi Toyoshima
    Gerrit-Attention: Takashi Toyoshima <toyo...@chromium.org>
    Gerrit-Attention: Rakina Zata Amni <rak...@chromium.org>
    Gerrit-Comment-Date: Fri, 24 Apr 2026 21:33:41 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: No
    Comment-In-Reply-To: Jonathan Ross <jon...@chromium.org>
    satisfied_requirement
    unsatisfied_requirement
    open
    diffy

    Takashi Toyoshima (Gerrit)

    unread,
    Apr 27, 2026, 4:10:36 AMApr 27
    to Rakina Zata Amni, Jonathan Ross, Kent Tamura, Chromium IPC Reviews, Dave Tapuska, Mathias Bynens, Ian Vollick, Chromium Metrics Reviews, Sadrul Chowdhury, James Su, Bo Liu, Vasiliy Telezhnikov, Daniel Cheng, android-bu...@system.gserviceaccount.com, Chromium LUCI CQ, chromium...@chromium.org, devtools...@chromium.org, headless...@chromium.org, cc-...@chromium.org, devtools-re...@chromium.org, mac-r...@chromium.org, asvitkine...@chromium.org, jbauma...@chromium.org, keithle...@chromium.org, nona+...@chromium.org, yhanad...@chromium.org, shuche...@chromium.org, tranbaod...@chromium.org, blink-revi...@chromium.org, blink-re...@chromium.org, kinuko...@chromium.org, blink-...@chromium.org, alexmo...@chromium.org, creis...@chromium.org, ipc-securi...@chromium.org, navigation...@chromium.org
    Attention needed from Rakina Zata Amni

    Takashi Toyoshima added 3 comments

    File content/common/frame.mojom
    Line 66, Patchset 83 (Latest):import "services/viz/public/mojom/compositing/compositor_frame_sink.mojom";
    Takashi Toyoshima . unresolved

    dictionary order?

    Line 255, Patchset 83 (Latest):
    Takashi Toyoshima . unresolved

    Comments on where and how this is used

    Line 257, Patchset 83 (Latest): pending_remote<viz.mojom.CompositorFrameSink>? initial_frame_sink;
    Takashi Toyoshima . unresolved

    Do you really need to make all these optional? Just struct level optional would work as these three seems to be set at once together?

    Open in Gerrit

    Related details

    Attention is currently required from:
    • Rakina Zata Amni
    Submit Requirements:
    • requirement satisfiedCode-Coverage
    • requirement is not satisfiedCode-Owners
    • requirement satisfiedCode-Review
    • requirement is not satisfiedNo-Unresolved-Comments
    • requirement satisfiedReview-Enforcement
    Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
    Gerrit-MessageType: comment
    Gerrit-Project: chromium/src
    Gerrit-Branch: main
    Gerrit-Change-Id: Ie0090238aa555b0e31ac5233f3dd34a8a05f219c
    Gerrit-Change-Number: 7720164
    Gerrit-PatchSet: 83
    Gerrit-Owner: Rakina Zata Amni <rak...@chromium.org>
    Gerrit-Reviewer: Jonathan Ross <jon...@chromium.org>
    Gerrit-Reviewer: Kent Tamura <tk...@chromium.org>
    Gerrit-Reviewer: Rakina Zata Amni <rak...@chromium.org>
    Gerrit-Reviewer: Takashi Toyoshima <toyo...@chromium.org>
    Gerrit-CC: Bo Liu <bo...@chromium.org>
    Gerrit-CC: Chromium IPC Reviews <chrome-ip...@google.com>
    Gerrit-CC: Chromium Metrics Reviews <chromium-met...@google.com>
    Gerrit-CC: Daniel Cheng <dch...@chromium.org>
    Gerrit-CC: Dave Tapuska <dtap...@chromium.org>
    Gerrit-CC: Ian Vollick <vol...@chromium.org>
    Gerrit-CC: James Su <su...@chromium.org>
    Gerrit-CC: Mathias Bynens <mat...@chromium.org>
    Gerrit-CC: Sadrul Chowdhury <sad...@chromium.org>
    Gerrit-CC: Vasiliy Telezhnikov <vas...@chromium.org>
    Gerrit-CC: gwsq
    Gerrit-Attention: Rakina Zata Amni <rak...@chromium.org>
    Gerrit-Comment-Date: Mon, 27 Apr 2026 08:10:10 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: No
    satisfied_requirement
    unsatisfied_requirement
    open
    diffy

    Dave Tapuska (Gerrit)

    unread,
    Apr 27, 2026, 12:55:43 PMApr 27
    to Rakina Zata Amni, Jonathan Ross, Kent Tamura, Chromium IPC Reviews, Takashi Toyoshima, Mathias Bynens, Ian Vollick, Chromium Metrics Reviews, Sadrul Chowdhury, James Su, Bo Liu, Vasiliy Telezhnikov, Daniel Cheng, android-bu...@system.gserviceaccount.com, Chromium LUCI CQ, chromium...@chromium.org, devtools...@chromium.org, headless...@chromium.org, cc-...@chromium.org, devtools-re...@chromium.org, mac-r...@chromium.org, asvitkine...@chromium.org, jbauma...@chromium.org, keithle...@chromium.org, nona+...@chromium.org, yhanad...@chromium.org, shuche...@chromium.org, tranbaod...@chromium.org, blink-revi...@chromium.org, blink-re...@chromium.org, kinuko...@chromium.org, blink-...@chromium.org, alexmo...@chromium.org, creis...@chromium.org, ipc-securi...@chromium.org, navigation...@chromium.org
    Attention needed from Kent Tamura and Rakina Zata Amni

    Dave Tapuska added 6 comments

    File content/browser/renderer_host/render_widget_host_impl.h
    Line 1630, Patchset 87 (Latest): InitialFrameSinkPipes initial_frame_sink_pipes_;
    Dave Tapuska . unresolved

    std::optional<InitialFrameSinkPipes>

    File content/browser/renderer_host/render_widget_host_impl.cc
    Line 957, Patchset 87 (Latest): if (initial_frame_sink_pipes_.receiver.is_valid()) {
    Dave Tapuska . unresolved

    initial_frame_sink_pipes_.has_value()

    Line 3524, Patchset 87 (Latest): initial_frame_sink_pipes_.receiver.reset();
    Dave Tapuska . unresolved

    initial_frame_sink_pipes_.reset();

    Line 3541, Patchset 87 (Latest): auto initial_frame_sink_params = mojom::InitialFrameSinkParams::New();
    Dave Tapuska . unresolved

    initial_frame_sink_pipes_.emplace();

    Line 3778, Patchset 87 (Latest): initial_frame_sink_pipes_.receiver.reset();
    Dave Tapuska . unresolved

    initial_frame_sink_pipes_.reset()

    File third_party/blink/renderer/platform/widget/widget_base.h
    Line 636, Patchset 87 (Latest): InitialFrameSinkPipes initial_frame_sink_pipes_;
    Dave Tapuska . unresolved

    same deal here. (std::optional)... Why std::optional because it isn't valid all the time, and resetting it clears all the state.

    Open in Gerrit

    Related details

    Attention is currently required from:
    • Kent Tamura
    • Rakina Zata Amni
    Submit Requirements:
      • requirement satisfiedCode-Coverage
      • requirement is not satisfiedCode-Owners
      • requirement is not satisfiedCode-Review
      • requirement is not satisfiedNo-Unresolved-Comments
      • requirement is not satisfiedReview-Enforcement
      Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
      Gerrit-MessageType: comment
      Gerrit-Project: chromium/src
      Gerrit-Branch: main
      Gerrit-Change-Id: Ie0090238aa555b0e31ac5233f3dd34a8a05f219c
      Gerrit-Change-Number: 7720164
      Gerrit-PatchSet: 87
      Gerrit-Owner: Rakina Zata Amni <rak...@chromium.org>
      Gerrit-Reviewer: Jonathan Ross <jon...@chromium.org>
      Gerrit-Reviewer: Kent Tamura <tk...@chromium.org>
      Gerrit-Reviewer: Rakina Zata Amni <rak...@chromium.org>
      Gerrit-Reviewer: Takashi Toyoshima <toyo...@chromium.org>
      Gerrit-CC: Bo Liu <bo...@chromium.org>
      Gerrit-CC: Chromium IPC Reviews <chrome-ip...@google.com>
      Gerrit-CC: Chromium Metrics Reviews <chromium-met...@google.com>
      Gerrit-CC: Daniel Cheng <dch...@chromium.org>
      Gerrit-CC: Dave Tapuska <dtap...@chromium.org>
      Gerrit-CC: Ian Vollick <vol...@chromium.org>
      Gerrit-CC: James Su <su...@chromium.org>
      Gerrit-CC: Mathias Bynens <mat...@chromium.org>
      Gerrit-CC: Sadrul Chowdhury <sad...@chromium.org>
      Gerrit-CC: Vasiliy Telezhnikov <vas...@chromium.org>
      Gerrit-CC: gwsq
      Gerrit-Attention: Kent Tamura <tk...@chromium.org>
      Gerrit-Attention: Rakina Zata Amni <rak...@chromium.org>
      Gerrit-Comment-Date: Mon, 27 Apr 2026 16:55:32 +0000
      Gerrit-HasComments: Yes
      Gerrit-Has-Labels: No
      satisfied_requirement
      unsatisfied_requirement
      open
      diffy

      Rakina Zata Amni (Gerrit)

      unread,
      Apr 27, 2026, 1:17:15 PMApr 27
      to Jonathan Ross, Kent Tamura, Chromium IPC Reviews, Takashi Toyoshima, Dave Tapuska, Mathias Bynens, Ian Vollick, Chromium Metrics Reviews, Sadrul Chowdhury, James Su, Bo Liu, Vasiliy Telezhnikov, Daniel Cheng, android-bu...@system.gserviceaccount.com, Chromium LUCI CQ, chromium...@chromium.org, devtools...@chromium.org, headless...@chromium.org, cc-...@chromium.org, devtools-re...@chromium.org, mac-r...@chromium.org, asvitkine...@chromium.org, jbauma...@chromium.org, keithle...@chromium.org, nona+...@chromium.org, yhanad...@chromium.org, shuche...@chromium.org, tranbaod...@chromium.org, blink-revi...@chromium.org, blink-re...@chromium.org, kinuko...@chromium.org, blink-...@chromium.org, alexmo...@chromium.org, creis...@chromium.org, ipc-securi...@chromium.org, navigation...@chromium.org
      Attention needed from Dave Tapuska, Jonathan Ross, Kent Tamura and Takashi Toyoshima

      Rakina Zata Amni added 10 comments

      File content/browser/renderer_host/render_widget_host_impl.h
      Line 1630, Patchset 87: InitialFrameSinkPipes initial_frame_sink_pipes_;
      Dave Tapuska . resolved

      std::optional<InitialFrameSinkPipes>

      Rakina Zata Amni

      Done

      File content/browser/renderer_host/render_widget_host_impl.cc
      Line 957, Patchset 87: if (initial_frame_sink_pipes_.receiver.is_valid()) {
      Dave Tapuska . resolved

      initial_frame_sink_pipes_.has_value()

      Rakina Zata Amni

      Done

      Line 958, Patchset 80: if (GetHostFrameSinkManager()->IsFrameSinkIdRegistered(GetFrameSinkId())) {
      Jonathan Ross . resolved

      Please fix this WARNING reported by autoreview issue finding: Is there a specific reason to drop the pipes if the ID is not registered yet? `CreateFrameSink` already handles buffering until the view is ready. If we reset here, the renderer (which already has its end of the pipes) will face a connection error and will have to fallback to the slow path anyway. It might be safer to just call `CreateFrameSink` and let it buffer.

      Is there a specific reason to drop the pipes if the ID is not registered yet? `CreateFrameSink` already handles buffering until the view is ready. If we reset here, the renderer (which already has its end of the pipes) will face a connection error and will have to fallback to the slow path anyway. It might be safer to just call `CreateFrameSink` and let it buffer.

      Rakina Zata Amni

      I think some tests were failing without the `IsFrameSinkIdRegistered()`, but I lost track of which ones. Let me run without the checks and see if they still fail.

      Rakina Zata Amni

      Looks like it's not needed after all, so keeping it removed :)

      Line 3524, Patchset 87: initial_frame_sink_pipes_.receiver.reset();
      Dave Tapuska . resolved

      initial_frame_sink_pipes_.reset();

      Rakina Zata Amni

      Done

      Line 3541, Patchset 87: auto initial_frame_sink_params = mojom::InitialFrameSinkParams::New();
      Dave Tapuska . resolved

      initial_frame_sink_pipes_.emplace();

      Rakina Zata Amni

      Done

      Line 3778, Patchset 87: initial_frame_sink_pipes_.receiver.reset();
      Dave Tapuska . resolved

      initial_frame_sink_pipes_.reset()

      Rakina Zata Amni

      Done

      File content/common/frame.mojom
      Line 66, Patchset 83:import "services/viz/public/mojom/compositing/compositor_frame_sink.mojom";
      Takashi Toyoshima . resolved

      dictionary order?

      Rakina Zata Amni

      Done

      Line 255, Patchset 83:
      Takashi Toyoshima . resolved

      Comments on where and how this is used

      Rakina Zata Amni

      Done

      Line 257, Patchset 83: pending_remote<viz.mojom.CompositorFrameSink>? initial_frame_sink;
      Takashi Toyoshima . resolved

      Do you really need to make all these optional? Just struct level optional would work as these three seems to be set at once together?

      Rakina Zata Amni

      Right, removed the optional part of the members

      File third_party/blink/renderer/platform/widget/widget_base.h
      Line 636, Patchset 87: InitialFrameSinkPipes initial_frame_sink_pipes_;
      Dave Tapuska . resolved

      same deal here. (std::optional)... Why std::optional because it isn't valid all the time, and resetting it clears all the state.

      Rakina Zata Amni

      Done

      Open in Gerrit

      Related details

      Attention is currently required from:
      • Dave Tapuska
      • Jonathan Ross
      • Kent Tamura
      • Takashi Toyoshima
      Submit Requirements:
      • requirement satisfiedCode-Coverage
      • requirement is not satisfiedCode-Owners
      • requirement is not satisfiedCode-Review
      • requirement is not satisfiedNo-Unresolved-Comments
      • requirement is not satisfiedReview-Enforcement
      Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
      Gerrit-MessageType: comment
      Gerrit-Project: chromium/src
      Gerrit-Branch: main
      Gerrit-Change-Id: Ie0090238aa555b0e31ac5233f3dd34a8a05f219c
      Gerrit-Change-Number: 7720164
      Gerrit-PatchSet: 89
      Gerrit-Owner: Rakina Zata Amni <rak...@chromium.org>
      Gerrit-Reviewer: Jonathan Ross <jon...@chromium.org>
      Gerrit-Reviewer: Kent Tamura <tk...@chromium.org>
      Gerrit-Reviewer: Rakina Zata Amni <rak...@chromium.org>
      Gerrit-Reviewer: Takashi Toyoshima <toyo...@chromium.org>
      Gerrit-CC: Bo Liu <bo...@chromium.org>
      Gerrit-CC: Chromium IPC Reviews <chrome-ip...@google.com>
      Gerrit-CC: Chromium Metrics Reviews <chromium-met...@google.com>
      Gerrit-CC: Daniel Cheng <dch...@chromium.org>
      Gerrit-CC: Dave Tapuska <dtap...@chromium.org>
      Gerrit-CC: Ian Vollick <vol...@chromium.org>
      Gerrit-CC: James Su <su...@chromium.org>
      Gerrit-CC: Mathias Bynens <mat...@chromium.org>
      Gerrit-CC: Sadrul Chowdhury <sad...@chromium.org>
      Gerrit-CC: Vasiliy Telezhnikov <vas...@chromium.org>
      Gerrit-CC: gwsq
      Gerrit-Attention: Jonathan Ross <jon...@chromium.org>
      Gerrit-Attention: Takashi Toyoshima <toyo...@chromium.org>
      Gerrit-Attention: Dave Tapuska <dtap...@chromium.org>
      Gerrit-Attention: Kent Tamura <tk...@chromium.org>
      Gerrit-Comment-Date: Mon, 27 Apr 2026 17:16:39 +0000
      Gerrit-HasComments: Yes
      Gerrit-Has-Labels: No
      Comment-In-Reply-To: Jonathan Ross <jon...@chromium.org>
      Comment-In-Reply-To: Takashi Toyoshima <toyo...@chromium.org>
      Comment-In-Reply-To: Dave Tapuska <dtap...@chromium.org>
      satisfied_requirement
      unsatisfied_requirement
      open
      diffy

      Dave Tapuska (Gerrit)

      unread,
      Apr 27, 2026, 1:36:46 PMApr 27
      to Rakina Zata Amni, Jonathan Ross, Kent Tamura, Chromium IPC Reviews, Takashi Toyoshima, Mathias Bynens, Ian Vollick, Chromium Metrics Reviews, Sadrul Chowdhury, James Su, Bo Liu, Vasiliy Telezhnikov, Daniel Cheng, android-bu...@system.gserviceaccount.com, Chromium LUCI CQ, chromium...@chromium.org, devtools...@chromium.org, headless...@chromium.org, cc-...@chromium.org, devtools-re...@chromium.org, mac-r...@chromium.org, asvitkine...@chromium.org, jbauma...@chromium.org, keithle...@chromium.org, nona+...@chromium.org, yhanad...@chromium.org, shuche...@chromium.org, tranbaod...@chromium.org, blink-revi...@chromium.org, blink-re...@chromium.org, kinuko...@chromium.org, blink-...@chromium.org, alexmo...@chromium.org, creis...@chromium.org, ipc-securi...@chromium.org, navigation...@chromium.org
      Attention needed from Jonathan Ross, Kent Tamura, Rakina Zata Amni and Takashi Toyoshima

      Dave Tapuska added 7 comments

      File third_party/blink/renderer/core/frame/web_frame_widget_impl.h
      Line 428, Patchset 89 (Latest): blink::mojom::RenderInputRouterClientInterfaceBase>
      Dave Tapuska . unresolved

      mojom::RenderInputRouterClientInterfaceBase

      Note the signature here will differ from the virtual definition. But this is meant to be that we use the sub-namespace blink ones on the impl files.

      Line 425, Patchset 89 (Latest): viz::mojom::CompositorFrameSinkClientInterfaceBase>
      Dave Tapuska . unresolved

      Same..

      Line 422, Patchset 89 (Latest): CrossVariantMojoRemote<viz::mojom::CompositorFrameSinkInterfaceBase>
      Dave Tapuska . unresolved

      viz::mojom::blink::

      File third_party/blink/renderer/platform/widget/widget_base.h
      Line 117, Patchset 89 (Latest): blink::mojom::RenderInputRouterClientInterfaceBase>
      Dave Tapuska . unresolved

      Just mojom::RenderInputRouterClientInterfaceBase

      Line 114, Patchset 89 (Latest): viz::mojom::CompositorFrameSinkClientInterfaceBase>
      Dave Tapuska . unresolved

      viz::mojom::blink::

      Line 111, Patchset 89 (Latest): CrossVariantMojoRemote<viz::mojom::CompositorFrameSinkInterfaceBase>
      Dave Tapuska . unresolved

      This should be viz::mojom::blink::CompositorFrameSinkInterfaceBase

      File third_party/blink/tools/blinkpy/presubmit/audit_non_blink_usage.py
      Line 3096, Patchset 89 (Latest): 'third_party/blink/renderer/core/exported/web_page_popup_impl.cc',
      Dave Tapuska . unresolved

      Hopefully with the viz::mojom::blink changes we can avoid everything bug web_widget.h for allowing the mojom types.

      Open in Gerrit

      Related details

      Attention is currently required from:
      • Jonathan Ross
      • Kent Tamura
      • Rakina Zata Amni
      • Takashi Toyoshima
      Gerrit-Attention: Kent Tamura <tk...@chromium.org>
      Gerrit-Attention: Rakina Zata Amni <rak...@chromium.org>
      Gerrit-Comment-Date: Mon, 27 Apr 2026 17:36:31 +0000
      Gerrit-HasComments: Yes
      Gerrit-Has-Labels: No
      satisfied_requirement
      unsatisfied_requirement
      open
      diffy

      Jonathan Ross (Gerrit)

      unread,
      Apr 27, 2026, 5:01:56 PMApr 27
      to Rakina Zata Amni, Kent Tamura, Chromium IPC Reviews, Takashi Toyoshima, Dave Tapuska, Mathias Bynens, Ian Vollick, Chromium Metrics Reviews, Sadrul Chowdhury, James Su, Bo Liu, Vasiliy Telezhnikov, Daniel Cheng, android-bu...@system.gserviceaccount.com, Chromium LUCI CQ, chromium...@chromium.org, devtools...@chromium.org, headless...@chromium.org, cc-...@chromium.org, devtools-re...@chromium.org, mac-r...@chromium.org, asvitkine...@chromium.org, jbauma...@chromium.org, keithle...@chromium.org, nona+...@chromium.org, yhanad...@chromium.org, shuche...@chromium.org, tranbaod...@chromium.org, blink-revi...@chromium.org, blink-re...@chromium.org, kinuko...@chromium.org, blink-...@chromium.org, alexmo...@chromium.org, creis...@chromium.org, ipc-securi...@chromium.org, navigation...@chromium.org
      Attention needed from Kent Tamura, Rakina Zata Amni and Takashi Toyoshima

      Jonathan Ross added 3 comments

      File content/browser/renderer_host/render_widget_host_impl.cc
      Line 912, Patchset 89 (Latest): if (!waiting_for_init_) {
      blink_widget_->WasShown(view_->is_evicted(),
      std::move(record_tab_switch_time_request));
      } else {
      // Delay the WasShown message until Init is called.
      pending_show_params_.emplace(view_->is_evicted(),
      std::move(record_tab_switch_time_request));
      }
      Jonathan Ross . unresolved

      Could `waiting_for_init_` cause an issue with binding the pipes in `CreateFrameSink`?

      Line 954, Patchset 89 (Latest):
      // If we created the frame sink pipes early but the widget was hidden,
      // we deferred the actual creation until it becomes visible.
      if (initial_frame_sink_pipes_.has_value()) {
      CreateFrameSink(std::move(initial_frame_sink_pipes_->receiver),
      std::move(initial_frame_sink_pipes_->client),
      std::move(initial_frame_sink_pipes_->viz_rir_client));
      initial_frame_sink_pipes_.reset();
      }
      Jonathan Ross . unresolved

      Should we have this above `SendScreenRects`? So that the pipes are given to the Renderer before it attempts to do any graphical work in response to the visual properties?

      Line 3558, Patchset 89 (Latest):#endif
      Jonathan Ross . unresolved

      Nit: preference to document wha the pre-processor if for when more than a couple of lines away
      `#endif // !BUILDFLAG(IS_CHROMEOS)`

      Open in Gerrit

      Related details

      Attention is currently required from:
      Gerrit-Attention: Takashi Toyoshima <toyo...@chromium.org>
      Gerrit-Attention: Kent Tamura <tk...@chromium.org>
      Gerrit-Attention: Rakina Zata Amni <rak...@chromium.org>
      Gerrit-Comment-Date: Mon, 27 Apr 2026 21:01:46 +0000
      Gerrit-HasComments: Yes
      Gerrit-Has-Labels: No
      satisfied_requirement
      unsatisfied_requirement
      open
      diffy

      Rakina Zata Amni (Gerrit)

      unread,
      Apr 28, 2026, 11:18:42 AMApr 28
      to Jonathan Ross, Kent Tamura, Chromium IPC Reviews, Takashi Toyoshima, Dave Tapuska, Mathias Bynens, Ian Vollick, Chromium Metrics Reviews, Sadrul Chowdhury, James Su, Bo Liu, Vasiliy Telezhnikov, Daniel Cheng, android-bu...@system.gserviceaccount.com, Chromium LUCI CQ, chromium...@chromium.org, devtools...@chromium.org, headless...@chromium.org, cc-...@chromium.org, devtools-re...@chromium.org, mac-r...@chromium.org, asvitkine...@chromium.org, jbauma...@chromium.org, keithle...@chromium.org, nona+...@chromium.org, yhanad...@chromium.org, shuche...@chromium.org, tranbaod...@chromium.org, blink-revi...@chromium.org, blink-re...@chromium.org, kinuko...@chromium.org, blink-...@chromium.org, alexmo...@chromium.org, creis...@chromium.org, ipc-securi...@chromium.org, navigation...@chromium.org
      Attention needed from Dave Tapuska, Jonathan Ross, Kent Tamura and Takashi Toyoshima

      Rakina Zata Amni added 10 comments

      File content/browser/renderer_host/render_widget_host_impl.cc
      Line 912, Patchset 89: if (!waiting_for_init_) {

      blink_widget_->WasShown(view_->is_evicted(),
      std::move(record_tab_switch_time_request));
      } else {
      // Delay the WasShown message until Init is called.
      pending_show_params_.emplace(view_->is_evicted(),
      std::move(record_tab_switch_time_request));
      }
      Jonathan Ross . unresolved

      Could `waiting_for_init_` cause an issue with binding the pipes in `CreateFrameSink`?

      Rakina Zata Amni

      Hmm yeah I wonder. I think this deferral is more because we don't have the renderer-side objects yet right? So it makes sense to defer the WasShown until when we actually have the renderer-side objects. The early frame sink pipes themselves are only sent to the renderer when we create the widget on the renderer side so that seems fine without having to explicitly check for `waiting_for_init_`? Meanwhile the `CreateFrameSink()` call should be going to the GPU process and I think should work fine even if the renderer side is not connected yet, just like the early GPU channel?


      // If we created the frame sink pipes early but the widget was hidden,
      // we deferred the actual creation until it becomes visible.
      if (initial_frame_sink_pipes_.has_value()) {
      CreateFrameSink(std::move(initial_frame_sink_pipes_->receiver),
      std::move(initial_frame_sink_pipes_->client),
      std::move(initial_frame_sink_pipes_->viz_rir_client));
      initial_frame_sink_pipes_.reset();
      }
      Jonathan Ross . resolved

      Should we have this above `SendScreenRects`? So that the pipes are given to the Renderer before it attempts to do any graphical work in response to the visual properties?

      Rakina Zata Amni

      Done

      Line 3558, Patchset 89:#endif
      Jonathan Ross . resolved

      Nit: preference to document wha the pre-processor if for when more than a couple of lines away
      `#endif // !BUILDFLAG(IS_CHROMEOS)`

      Rakina Zata Amni

      Done

      File third_party/blink/renderer/core/frame/web_frame_widget_impl.h
      Line 428, Patchset 89: blink::mojom::RenderInputRouterClientInterfaceBase>
      Dave Tapuska . resolved

      mojom::RenderInputRouterClientInterfaceBase

      Note the signature here will differ from the virtual definition. But this is meant to be that we use the sub-namespace blink ones on the impl files.

      Rakina Zata Amni

      Done

      Line 425, Patchset 89: viz::mojom::CompositorFrameSinkClientInterfaceBase>
      Dave Tapuska . resolved

      Same..

      Rakina Zata Amni

      Done

      Line 422, Patchset 89: CrossVariantMojoRemote<viz::mojom::CompositorFrameSinkInterfaceBase>
      Dave Tapuska . resolved

      viz::mojom::blink::

      Rakina Zata Amni

      Done

      File third_party/blink/renderer/platform/widget/widget_base.h
      Line 117, Patchset 89: blink::mojom::RenderInputRouterClientInterfaceBase>
      Dave Tapuska . resolved

      Just mojom::RenderInputRouterClientInterfaceBase

      Rakina Zata Amni

      Done

      Line 114, Patchset 89: viz::mojom::CompositorFrameSinkClientInterfaceBase>
      Dave Tapuska . resolved

      viz::mojom::blink::

      Rakina Zata Amni

      Done

      Line 111, Patchset 89: CrossVariantMojoRemote<viz::mojom::CompositorFrameSinkInterfaceBase>
      Dave Tapuska . resolved

      This should be viz::mojom::blink::CompositorFrameSinkInterfaceBase

      Rakina Zata Amni

      Done

      File third_party/blink/tools/blinkpy/presubmit/audit_non_blink_usage.py
      Line 3096, Patchset 89: 'third_party/blink/renderer/core/exported/web_page_popup_impl.cc',
      Dave Tapuska . resolved

      Hopefully with the viz::mojom::blink changes we can avoid everything bug web_widget.h for allowing the mojom types.

      Rakina Zata Amni

      Done, thanks!

      Open in Gerrit

      Related details

      Attention is currently required from:
      • Dave Tapuska
      • Jonathan Ross
      • Kent Tamura
      • Takashi Toyoshima
      Submit Requirements:
      • requirement satisfiedCode-Coverage
      • requirement is not satisfiedCode-Owners
      • requirement is not satisfiedCode-Review
      • requirement is not satisfiedNo-Unresolved-Comments
      • requirement is not satisfiedReview-Enforcement
      Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
      Gerrit-MessageType: comment
      Gerrit-Project: chromium/src
      Gerrit-Branch: main
      Gerrit-Change-Id: Ie0090238aa555b0e31ac5233f3dd34a8a05f219c
      Gerrit-Change-Number: 7720164
      Gerrit-PatchSet: 97
      Gerrit-Owner: Rakina Zata Amni <rak...@chromium.org>
      Gerrit-Reviewer: Jonathan Ross <jon...@chromium.org>
      Gerrit-Reviewer: Kent Tamura <tk...@chromium.org>
      Gerrit-Reviewer: Rakina Zata Amni <rak...@chromium.org>
      Gerrit-Reviewer: Takashi Toyoshima <toyo...@chromium.org>
      Gerrit-CC: Bo Liu <bo...@chromium.org>
      Gerrit-CC: Chromium IPC Reviews <chrome-ip...@google.com>
      Gerrit-CC: Chromium Metrics Reviews <chromium-met...@google.com>
      Gerrit-CC: Daniel Cheng <dch...@chromium.org>
      Gerrit-CC: Dave Tapuska <dtap...@chromium.org>
      Gerrit-CC: Ian Vollick <vol...@chromium.org>
      Gerrit-CC: James Su <su...@chromium.org>
      Gerrit-CC: Mathias Bynens <mat...@chromium.org>
      Gerrit-CC: Sadrul Chowdhury <sad...@chromium.org>
      Gerrit-CC: Vasiliy Telezhnikov <vas...@chromium.org>
      Gerrit-CC: gwsq
      Gerrit-Attention: Jonathan Ross <jon...@chromium.org>
      Gerrit-Attention: Takashi Toyoshima <toyo...@chromium.org>
      Gerrit-Attention: Dave Tapuska <dtap...@chromium.org>
      Gerrit-Attention: Kent Tamura <tk...@chromium.org>
      Gerrit-Comment-Date: Tue, 28 Apr 2026 15:18:08 +0000
      Gerrit-HasComments: Yes
      Gerrit-Has-Labels: No
      Comment-In-Reply-To: Jonathan Ross <jon...@chromium.org>
      Comment-In-Reply-To: Dave Tapuska <dtap...@chromium.org>
      satisfied_requirement
      unsatisfied_requirement
      open
      diffy

      Rakina Zata Amni (Gerrit)

      unread,
      Apr 30, 2026, 2:30:59 AMApr 30
      to Jonathan Ross, Kent Tamura, Chromium IPC Reviews, Takashi Toyoshima, Dave Tapuska, Mathias Bynens, Ian Vollick, Chromium Metrics Reviews, Sadrul Chowdhury, James Su, Bo Liu, Vasiliy Telezhnikov, Daniel Cheng, android-bu...@system.gserviceaccount.com, Chromium LUCI CQ, chromium...@chromium.org, devtools...@chromium.org, headless...@chromium.org, cc-...@chromium.org, devtools-re...@chromium.org, mac-r...@chromium.org, asvitkine...@chromium.org, jbauma...@chromium.org, keithle...@chromium.org, nona+...@chromium.org, yhanad...@chromium.org, shuche...@chromium.org, tranbaod...@chromium.org, blink-revi...@chromium.org, blink-re...@chromium.org, kinuko...@chromium.org, blink-...@chromium.org, alexmo...@chromium.org, creis...@chromium.org, ipc-securi...@chromium.org, navigation...@chromium.org
      Attention needed from Dave Tapuska, Jonathan Ross, Kent Tamura and Takashi Toyoshima

      Rakina Zata Amni added 1 comment

      Rakina Zata Amni . resolved

      Friendly ping for reviews :)

      Open in Gerrit

      Related details

      Attention is currently required from:
      • Dave Tapuska
      • Jonathan Ross
      • Kent Tamura
      • Takashi Toyoshima
      Submit Requirements:
      • requirement satisfiedCode-Coverage
      • requirement is not satisfiedCode-Owners
      • requirement is not satisfiedCode-Review
      • requirement is not satisfiedNo-Unresolved-Comments
      • requirement is not satisfiedReview-Enforcement
      Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
      Gerrit-MessageType: comment
      Gerrit-Project: chromium/src
      Gerrit-Branch: main
      Gerrit-Change-Id: Ie0090238aa555b0e31ac5233f3dd34a8a05f219c
      Gerrit-Change-Number: 7720164
      Gerrit-PatchSet: 101
      Gerrit-Owner: Rakina Zata Amni <rak...@chromium.org>
      Gerrit-Reviewer: Jonathan Ross <jon...@chromium.org>
      Gerrit-Reviewer: Kent Tamura <tk...@chromium.org>
      Gerrit-Reviewer: Rakina Zata Amni <rak...@chromium.org>
      Gerrit-Reviewer: Takashi Toyoshima <toyo...@chromium.org>
      Gerrit-CC: Bo Liu <bo...@chromium.org>
      Gerrit-CC: Chromium IPC Reviews <chrome-ip...@google.com>
      Gerrit-CC: Chromium Metrics Reviews <chromium-met...@google.com>
      Gerrit-CC: Daniel Cheng <dch...@chromium.org>
      Gerrit-CC: Dave Tapuska <dtap...@chromium.org>
      Gerrit-CC: Ian Vollick <vol...@chromium.org>
      Gerrit-CC: James Su <su...@chromium.org>
      Gerrit-CC: Mathias Bynens <mat...@chromium.org>
      Gerrit-CC: Sadrul Chowdhury <sad...@chromium.org>
      Gerrit-CC: Vasiliy Telezhnikov <vas...@chromium.org>
      Gerrit-CC: gwsq
      Gerrit-Attention: Jonathan Ross <jon...@chromium.org>
      Gerrit-Attention: Takashi Toyoshima <toyo...@chromium.org>
      Gerrit-Attention: Dave Tapuska <dtap...@chromium.org>
      Gerrit-Attention: Kent Tamura <tk...@chromium.org>
      Gerrit-Comment-Date: Thu, 30 Apr 2026 06:30:30 +0000
      Gerrit-HasComments: Yes
      Gerrit-Has-Labels: No
      satisfied_requirement
      unsatisfied_requirement
      open
      diffy

      Takashi Toyoshima (Gerrit)

      unread,
      Apr 30, 2026, 2:39:30 AMApr 30
      to Rakina Zata Amni, Jonathan Ross, Kent Tamura, Chromium IPC Reviews, Dave Tapuska, Mathias Bynens, Ian Vollick, Chromium Metrics Reviews, Sadrul Chowdhury, James Su, Bo Liu, Vasiliy Telezhnikov, Daniel Cheng, android-bu...@system.gserviceaccount.com, Chromium LUCI CQ, chromium...@chromium.org, devtools...@chromium.org, headless...@chromium.org, cc-...@chromium.org, devtools-re...@chromium.org, mac-r...@chromium.org, asvitkine...@chromium.org, jbauma...@chromium.org, keithle...@chromium.org, nona+...@chromium.org, yhanad...@chromium.org, shuche...@chromium.org, tranbaod...@chromium.org, blink-revi...@chromium.org, blink-re...@chromium.org, kinuko...@chromium.org, blink-...@chromium.org, alexmo...@chromium.org, creis...@chromium.org, ipc-securi...@chromium.org, navigation...@chromium.org
      Attention needed from Dave Tapuska, Jonathan Ross and Kent Tamura

      Takashi Toyoshima added 3 comments

      File content/browser/renderer_host/render_widget_host_impl.h
      Line 1624, Patchset 101 (Latest): struct InitialFrameSinkPipes {
      Takashi Toyoshima . unresolved

      https://google.github.io/styleguide/cppguide.html#Declaration_Order

      struct declaration should be located first before other method declarations in the same (private) scope. (though, already this file had an exception above...)

      By the way, why don't you use the mojo struct directly here?

      File third_party/blink/renderer/core/exported/web_page_popup_impl.cc
      Line 396, Patchset 101 (Latest): InitializeCompositing(screen_infos,
      /*settings=*/nullptr, {}, {}, {});
      Takashi Toyoshima . unresolved

      Not related to this change directly, but calling virtual method in a constructor causes a confusion. Even if a derived class implements InitializeCompositing, calling it from here would call the WebPagePopupImpl::InitializeCompositing always, not the derived class's implementation. That says, just a normal method is safe and provides the same functionality.
      For the same reason, if the parent call this virtual method, this class's implementation would not be called. (because of the virtual table initialization order)
      Just in case.

      File third_party/blink/renderer/platform/widget/widget_base.h
      Line 628, Patchset 101 (Latest):
      Takashi Toyoshima . unresolved

      ditto. why we need a separate struct for the same structured objects?

      Open in Gerrit

      Related details

      Attention is currently required from:
      • Dave Tapuska
      • Jonathan Ross
      • Kent Tamura
      Gerrit-Attention: Dave Tapuska <dtap...@chromium.org>
      Gerrit-Attention: Kent Tamura <tk...@chromium.org>
      Gerrit-Comment-Date: Thu, 30 Apr 2026 06:39:01 +0000
      Gerrit-HasComments: Yes
      Gerrit-Has-Labels: No
      satisfied_requirement
      unsatisfied_requirement
      open
      diffy

      Kent Tamura (Gerrit)

      unread,
      Apr 30, 2026, 2:41:18 AMApr 30
      to Rakina Zata Amni, Kent Tamura, Jonathan Ross, Chromium IPC Reviews, Takashi Toyoshima, Dave Tapuska, Mathias Bynens, Ian Vollick, Chromium Metrics Reviews, Sadrul Chowdhury, James Su, Bo Liu, Vasiliy Telezhnikov, Daniel Cheng, android-bu...@system.gserviceaccount.com, Chromium LUCI CQ, chromium...@chromium.org, devtools...@chromium.org, headless...@chromium.org, cc-...@chromium.org, devtools-re...@chromium.org, mac-r...@chromium.org, asvitkine...@chromium.org, jbauma...@chromium.org, keithle...@chromium.org, nona+...@chromium.org, yhanad...@chromium.org, shuche...@chromium.org, tranbaod...@chromium.org, blink-revi...@chromium.org, blink-re...@chromium.org, kinuko...@chromium.org, blink-...@chromium.org, alexmo...@chromium.org, creis...@chromium.org, ipc-securi...@chromium.org, navigation...@chromium.org
      Attention needed from Dave Tapuska, Jonathan Ross and Rakina Zata Amni

      Kent Tamura voted and added 1 comment

      Votes added by Kent Tamura

      Code-Review+1

      1 comment

      Patchset-level comments
      Kent Tamura . resolved

      third_party/blink LGTM

      Kent Tamura

      third_party/blink LGTM

      Open in Gerrit

      Related details

      Attention is currently required from:
      • Dave Tapuska
      • Jonathan Ross
      • Rakina Zata Amni
      Submit Requirements:
        • requirement satisfiedCode-Coverage
        • requirement is not satisfiedCode-Owners
        • requirement satisfiedCode-Review
        • requirement is not satisfiedNo-Unresolved-Comments
        • requirement satisfiedReview-Enforcement
        Gerrit-Attention: Rakina Zata Amni <rak...@chromium.org>
        Gerrit-Comment-Date: Thu, 30 Apr 2026 06:40:48 +0000
        Gerrit-HasComments: Yes
        Gerrit-Has-Labels: Yes
        Comment-In-Reply-To: Kent Tamura <tk...@chromium.org>
        satisfied_requirement
        unsatisfied_requirement
        open
        diffy

        Rakina Zata Amni (Gerrit)

        unread,
        Apr 30, 2026, 3:59:59 AMApr 30
        to Kent Tamura, Jonathan Ross, Chromium IPC Reviews, Takashi Toyoshima, Dave Tapuska, Mathias Bynens, Ian Vollick, Chromium Metrics Reviews, Sadrul Chowdhury, James Su, Bo Liu, Vasiliy Telezhnikov, Daniel Cheng, android-bu...@system.gserviceaccount.com, Chromium LUCI CQ, chromium...@chromium.org, devtools...@chromium.org, headless...@chromium.org, cc-...@chromium.org, devtools-re...@chromium.org, mac-r...@chromium.org, asvitkine...@chromium.org, jbauma...@chromium.org, keithle...@chromium.org, nona+...@chromium.org, yhanad...@chromium.org, shuche...@chromium.org, tranbaod...@chromium.org, blink-revi...@chromium.org, blink-re...@chromium.org, kinuko...@chromium.org, blink-...@chromium.org, alexmo...@chromium.org, creis...@chromium.org, ipc-securi...@chromium.org, navigation...@chromium.org
        Attention needed from Dave Tapuska, Jonathan Ross, Kent Tamura and Takashi Toyoshima

        Rakina Zata Amni added 3 comments

        File content/browser/renderer_host/render_widget_host_impl.h
        Line 1624, Patchset 101: struct InitialFrameSinkPipes {
        Takashi Toyoshima . resolved

        https://google.github.io/styleguide/cppguide.html#Declaration_Order

        struct declaration should be located first before other method declarations in the same (private) scope. (though, already this file had an exception above...)

        By the way, why don't you use the mojo struct directly here?

        Rakina Zata Amni

        Moved to before the functions. These pipes are the opposite of what we sent via mojo so we need to use a separate struct.

        File third_party/blink/renderer/core/exported/web_page_popup_impl.cc
        Line 396, Patchset 101: InitializeCompositing(screen_infos,
        /*settings=*/nullptr, {}, {}, {});
        Takashi Toyoshima . resolved

        Not related to this change directly, but calling virtual method in a constructor causes a confusion. Even if a derived class implements InitializeCompositing, calling it from here would call the WebPagePopupImpl::InitializeCompositing always, not the derived class's implementation. That says, just a normal method is safe and provides the same functionality.
        For the same reason, if the parent call this virtual method, this class's implementation would not be called. (because of the virtual table initialization order)
        Just in case.

        Rakina Zata Amni

        Thanks, I agree that calling virtual methods in a constructor is an anti-pattern that can cause confusion. Currently this seems to work fine because WebPagePopupImpl is final and for this CL there's nothing actually changing for WebPagePopupImpl behavior too?

        File third_party/blink/renderer/platform/widget/widget_base.h
        Line 628, Patchset 101:
        Takashi Toyoshima . resolved

        ditto. why we need a separate struct for the same structured objects?

        Rakina Zata Amni

        This one can use the mojo struct, but I needed to move the struct to blink instead, which seems fine so I did that.

        Open in Gerrit

        Related details

        Attention is currently required from:
        • Dave Tapuska
        • Jonathan Ross
        • Kent Tamura
        • Takashi Toyoshima
        Submit Requirements:
          • requirement satisfiedCode-Coverage
          • requirement is not satisfiedCode-Owners
          • requirement is not satisfiedCode-Review
          • requirement is not satisfiedNo-Unresolved-Comments
          • requirement is not satisfiedReview-Enforcement
          Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
          Gerrit-MessageType: comment
          Gerrit-Project: chromium/src
          Gerrit-Branch: main
          Gerrit-Change-Id: Ie0090238aa555b0e31ac5233f3dd34a8a05f219c
          Gerrit-Change-Number: 7720164
          Gerrit-PatchSet: 102
          Gerrit-Owner: Rakina Zata Amni <rak...@chromium.org>
          Gerrit-Reviewer: Jonathan Ross <jon...@chromium.org>
          Gerrit-Reviewer: Kent Tamura <tk...@chromium.org>
          Gerrit-Reviewer: Rakina Zata Amni <rak...@chromium.org>
          Gerrit-Reviewer: Takashi Toyoshima <toyo...@chromium.org>
          Gerrit-CC: Bo Liu <bo...@chromium.org>
          Gerrit-CC: Chromium IPC Reviews <chrome-ip...@google.com>
          Gerrit-CC: Chromium Metrics Reviews <chromium-met...@google.com>
          Gerrit-CC: Daniel Cheng <dch...@chromium.org>
          Gerrit-CC: Dave Tapuska <dtap...@chromium.org>
          Gerrit-CC: Ian Vollick <vol...@chromium.org>
          Gerrit-CC: James Su <su...@chromium.org>
          Gerrit-CC: Mathias Bynens <mat...@chromium.org>
          Gerrit-CC: Sadrul Chowdhury <sad...@chromium.org>
          Gerrit-CC: Vasiliy Telezhnikov <vas...@chromium.org>
          Gerrit-CC: gwsq
          Gerrit-Attention: Jonathan Ross <jon...@chromium.org>
          Gerrit-Attention: Takashi Toyoshima <toyo...@chromium.org>
          Gerrit-Attention: Kent Tamura <tk...@chromium.org>
          Gerrit-Attention: Dave Tapuska <dtap...@chromium.org>
          Gerrit-Comment-Date: Thu, 30 Apr 2026 07:59:36 +0000
          Gerrit-HasComments: Yes
          Gerrit-Has-Labels: No
          Comment-In-Reply-To: Takashi Toyoshima <toyo...@chromium.org>
          satisfied_requirement
          unsatisfied_requirement
          open
          diffy

          Takashi Toyoshima (Gerrit)

          unread,
          May 1, 2026, 1:53:23 AMMay 1
          to Rakina Zata Amni, Kent Tamura, Jonathan Ross, Chromium IPC Reviews, Dave Tapuska, Mathias Bynens, Ian Vollick, Chromium Metrics Reviews, Sadrul Chowdhury, James Su, Bo Liu, Vasiliy Telezhnikov, Daniel Cheng, android-bu...@system.gserviceaccount.com, Chromium LUCI CQ, chromium...@chromium.org, devtools...@chromium.org, headless...@chromium.org, cc-...@chromium.org, devtools-re...@chromium.org, mac-r...@chromium.org, asvitkine...@chromium.org, jbauma...@chromium.org, keithle...@chromium.org, nona+...@chromium.org, yhanad...@chromium.org, shuche...@chromium.org, tranbaod...@chromium.org, blink-revi...@chromium.org, blink-re...@chromium.org, kinuko...@chromium.org, blink-...@chromium.org, alexmo...@chromium.org, creis...@chromium.org, ipc-securi...@chromium.org, navigation...@chromium.org
          Attention needed from Dave Tapuska, Jonathan Ross, Kent Tamura and Rakina Zata Amni

          Takashi Toyoshima voted and added 3 comments

          Votes added by Takashi Toyoshima

          Code-Review+1

          3 comments

          Patchset-level comments
          File-level comment, Patchset 102 (Latest):
          Takashi Toyoshima . resolved

          lgtm per nits

          File content/browser/renderer_host/render_widget_host_impl.cc
          Line 3532, Patchset 102 (Latest): bool using_sync_compositing =
          Takashi Toyoshima . unresolved

          nit: const bool is a bit nicer for compiler?

          File third_party/blink/renderer/platform/widget/widget_base.cc
          Open in Gerrit

          Related details

          Attention is currently required from:
          • Dave Tapuska
          • Jonathan Ross
          • Kent Tamura
          • Rakina Zata Amni
          Submit Requirements:
            • requirement satisfiedCode-Coverage
            • requirement is not satisfiedCode-Owners
            • requirement satisfiedCode-Review
            • requirement is not satisfiedNo-Unresolved-Comments
            • requirement satisfiedReview-Enforcement
            Gerrit-Attention: Kent Tamura <tk...@chromium.org>
            Gerrit-Attention: Dave Tapuska <dtap...@chromium.org>
            Gerrit-Attention: Rakina Zata Amni <rak...@chromium.org>
            Gerrit-Comment-Date: Fri, 01 May 2026 05:52:56 +0000
            Gerrit-HasComments: Yes
            Gerrit-Has-Labels: Yes
            satisfied_requirement
            unsatisfied_requirement
            open
            diffy

            Dave Tapuska (Gerrit)

            unread,
            May 1, 2026, 10:00:46 AMMay 1
            to Rakina Zata Amni, Takashi Toyoshima, Kent Tamura, Jonathan Ross, Chromium IPC Reviews, Mathias Bynens, Ian Vollick, Chromium Metrics Reviews, Sadrul Chowdhury, James Su, Bo Liu, Vasiliy Telezhnikov, Daniel Cheng, android-bu...@system.gserviceaccount.com, Chromium LUCI CQ, chromium...@chromium.org, devtools...@chromium.org, headless...@chromium.org, cc-...@chromium.org, devtools-re...@chromium.org, mac-r...@chromium.org, asvitkine...@chromium.org, jbauma...@chromium.org, keithle...@chromium.org, nona+...@chromium.org, yhanad...@chromium.org, shuche...@chromium.org, tranbaod...@chromium.org, blink-revi...@chromium.org, blink-re...@chromium.org, kinuko...@chromium.org, blink-...@chromium.org, alexmo...@chromium.org, creis...@chromium.org, ipc-securi...@chromium.org, navigation...@chromium.org
            Attention needed from Jonathan Ross, Kent Tamura and Rakina Zata Amni

            Dave Tapuska voted Code-Review+1

            Code-Review+1
            Open in Gerrit

            Related details

            Attention is currently required from:
            • Jonathan Ross
            • Kent Tamura
            • Rakina Zata Amni
            Submit Requirements:
            • requirement satisfiedCode-Coverage
            • requirement is not satisfiedCode-Owners
            • requirement satisfiedCode-Review
            • requirement is not satisfiedNo-Unresolved-Comments
            • requirement satisfiedReview-Enforcement
            Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
            Gerrit-MessageType: comment
            Gerrit-Project: chromium/src
            Gerrit-Branch: main
            Gerrit-Change-Id: Ie0090238aa555b0e31ac5233f3dd34a8a05f219c
            Gerrit-Change-Number: 7720164
            Gerrit-PatchSet: 102
            Gerrit-Owner: Rakina Zata Amni <rak...@chromium.org>
            Gerrit-Reviewer: Dave Tapuska <dtap...@chromium.org>
            Gerrit-Reviewer: Jonathan Ross <jon...@chromium.org>
            Gerrit-Reviewer: Kent Tamura <tk...@chromium.org>
            Gerrit-Reviewer: Rakina Zata Amni <rak...@chromium.org>
            Gerrit-Reviewer: Takashi Toyoshima <toyo...@chromium.org>
            Gerrit-CC: Bo Liu <bo...@chromium.org>
            Gerrit-CC: Chromium IPC Reviews <chrome-ip...@google.com>
            Gerrit-CC: Chromium Metrics Reviews <chromium-met...@google.com>
            Gerrit-CC: Daniel Cheng <dch...@chromium.org>
            Gerrit-CC: Ian Vollick <vol...@chromium.org>
            Gerrit-CC: James Su <su...@chromium.org>
            Gerrit-CC: Mathias Bynens <mat...@chromium.org>
            Gerrit-CC: Sadrul Chowdhury <sad...@chromium.org>
            Gerrit-CC: Vasiliy Telezhnikov <vas...@chromium.org>
            Gerrit-CC: gwsq
            Gerrit-Attention: Jonathan Ross <jon...@chromium.org>
            Gerrit-Attention: Kent Tamura <tk...@chromium.org>
            Gerrit-Attention: Rakina Zata Amni <rak...@chromium.org>
            Gerrit-Comment-Date: Fri, 01 May 2026 14:00:29 +0000
            Gerrit-HasComments: No
            Gerrit-Has-Labels: Yes
            satisfied_requirement
            unsatisfied_requirement
            open
            diffy

            Jonathan Ross (Gerrit)

            unread,
            May 1, 2026, 1:49:14 PMMay 1
            to Rakina Zata Amni, Dave Tapuska, Takashi Toyoshima, Kent Tamura, Chromium IPC Reviews, Mathias Bynens, Ian Vollick, Chromium Metrics Reviews, Sadrul Chowdhury, James Su, Bo Liu, Vasiliy Telezhnikov, Daniel Cheng, android-bu...@system.gserviceaccount.com, Chromium LUCI CQ, chromium...@chromium.org, devtools...@chromium.org, headless...@chromium.org, cc-...@chromium.org, devtools-re...@chromium.org, mac-r...@chromium.org, asvitkine...@chromium.org, jbauma...@chromium.org, keithle...@chromium.org, nona+...@chromium.org, yhanad...@chromium.org, shuche...@chromium.org, tranbaod...@chromium.org, blink-revi...@chromium.org, blink-re...@chromium.org, kinuko...@chromium.org, blink-...@chromium.org, alexmo...@chromium.org, creis...@chromium.org, ipc-securi...@chromium.org, navigation...@chromium.org
            Attention needed from Kent Tamura and Rakina Zata Amni

            Jonathan Ross voted and added 3 comments

            Votes added by Jonathan Ross

            Code-Review+1

            3 comments

            File content/browser/renderer_host/render_widget_host_impl.h
            Line 1154, Patchset 102 (Latest): InitialFrameSinkPipes& operator=(InitialFrameSinkPipes&&) = default;
            Jonathan Ross . unresolved

            Please fix this WARNING reported by autoreview issue finding: Since this struct has an explicit destructor and move assignment, it should also have a move constructor (e.g., `InitialFrameSinkPipes(InitialFrameSinkPipes&&) = default;`) to ensure it remains movable, especially since it is used within an `std::optional`.

            Since this struct has an explicit destructor and move assignment, it should also have a move constructor (e.g., `InitialFrameSinkPipes(InitialFrameSinkPipes&&) = default;`) to ensure it remains movable, especially since it is used within an `std::optional`.

            File content/browser/renderer_host/render_widget_host_impl.cc
            Line 901, Patchset 102 (Latest): initial_frame_sink_pipes_.reset();
            Jonathan Ross . unresolved

            Please fix this WARNING reported by autoreview issue finding: This reset is redundant because `CreateFrameSink` already calls `initial_frame_sink_pipes_.reset()` at the beginning of its implementation.

            This reset is redundant because `CreateFrameSink` already calls `initial_frame_sink_pipes_.reset()` at the beginning of its implementation.

            File content/renderer/render_frame_impl.cc
            Line 1262, Patchset 102 (Latest): mojo::PendingRemote<viz::mojom::CompositorFrameSink> initial_frame_sink;
            Jonathan Ross . unresolved

            Please fix this WARNING reported by autoreview issue finding: This logic for unpacking the initial frame sink pipes is identical to the one at line 1661. Please consider moving this to a small helper function within `render_frame_impl.cc` to avoid duplication.

            This logic for unpacking the initial frame sink pipes is identical to the one at line 1661. Please consider moving this to a small helper function within `render_frame_impl.cc` to avoid duplication.

            Open in Gerrit

            Related details

            Attention is currently required from:
            • Kent Tamura
            • Rakina Zata Amni
            Submit Requirements:
            • requirement satisfiedCode-Coverage
            • requirement satisfiedCode-Owners
            Gerrit-Attention: Kent Tamura <tk...@chromium.org>
            Gerrit-Attention: Rakina Zata Amni <rak...@chromium.org>
            Gerrit-Comment-Date: Fri, 01 May 2026 17:48:52 +0000
            Gerrit-HasComments: Yes
            Gerrit-Has-Labels: Yes
            satisfied_requirement
            unsatisfied_requirement
            open
            diffy

            Rakina Zata Amni (Gerrit)

            unread,
            May 7, 2026, 10:33:23 AMMay 7
            to Jonathan Ross, Dave Tapuska, Takashi Toyoshima, Kent Tamura, Chromium IPC Reviews, Mathias Bynens, Ian Vollick, Chromium Metrics Reviews, Sadrul Chowdhury, James Su, Bo Liu, Vasiliy Telezhnikov, Daniel Cheng, android-bu...@system.gserviceaccount.com, Chromium LUCI CQ, chromium...@chromium.org, devtools...@chromium.org, headless...@chromium.org, cc-...@chromium.org, devtools-re...@chromium.org, mac-r...@chromium.org, asvitkine...@chromium.org, jbauma...@chromium.org, keithle...@chromium.org, nona+...@chromium.org, yhanad...@chromium.org, shuche...@chromium.org, tranbaod...@chromium.org, blink-revi...@chromium.org, blink-re...@chromium.org, kinuko...@chromium.org, blink-...@chromium.org, alexmo...@chromium.org, creis...@chromium.org, ipc-securi...@chromium.org, navigation...@chromium.org
            Attention needed from Kent Tamura

            Rakina Zata Amni added 5 comments

            File content/browser/renderer_host/render_widget_host_impl.h
            Line 1154, Patchset 102: InitialFrameSinkPipes& operator=(InitialFrameSinkPipes&&) = default;
            Jonathan Ross . resolved

            Please fix this WARNING reported by autoreview issue finding: Since this struct has an explicit destructor and move assignment, it should also have a move constructor (e.g., `InitialFrameSinkPipes(InitialFrameSinkPipes&&) = default;`) to ensure it remains movable, especially since it is used within an `std::optional`.

            Since this struct has an explicit destructor and move assignment, it should also have a move constructor (e.g., `InitialFrameSinkPipes(InitialFrameSinkPipes&&) = default;`) to ensure it remains movable, especially since it is used within an `std::optional`.

            Rakina Zata Amni

            Done

            File content/browser/renderer_host/render_widget_host_impl.cc
            Line 901, Patchset 102: initial_frame_sink_pipes_.reset();
            Jonathan Ross . resolved

            Please fix this WARNING reported by autoreview issue finding: This reset is redundant because `CreateFrameSink` already calls `initial_frame_sink_pipes_.reset()` at the beginning of its implementation.

            This reset is redundant because `CreateFrameSink` already calls `initial_frame_sink_pipes_.reset()` at the beginning of its implementation.

            Rakina Zata Amni

            Done

            Line 3532, Patchset 102: bool using_sync_compositing =
            Takashi Toyoshima . resolved

            nit: const bool is a bit nicer for compiler?

            Rakina Zata Amni

            Done

            File content/renderer/render_frame_impl.cc
            Line 1262, Patchset 102: mojo::PendingRemote<viz::mojom::CompositorFrameSink> initial_frame_sink;
            Jonathan Ross . resolved

            Please fix this WARNING reported by autoreview issue finding: This logic for unpacking the initial frame sink pipes is identical to the one at line 1661. Please consider moving this to a small helper function within `render_frame_impl.cc` to avoid duplication.

            This logic for unpacking the initial frame sink pipes is identical to the one at line 1661. Please consider moving this to a small helper function within `render_frame_impl.cc` to avoid duplication.

            Rakina Zata Amni

            Done

            File third_party/blink/renderer/platform/widget/widget_base.cc
            Line 857, Patchset 102: DCHECK_EQ(
            Takashi Toyoshima . resolved
            Rakina Zata Amni

            Done

            Open in Gerrit

            Related details

            Attention is currently required from:
            • Kent Tamura
            Submit Requirements:
            • requirement satisfiedCode-Coverage
            • requirement satisfiedCode-Owners
            • requirement satisfiedCode-Review
            • requirement is not satisfiedNo-Unresolved-Comments
            • requirement satisfiedReview-Enforcement
            Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
            Gerrit-MessageType: comment
            Gerrit-Project: chromium/src
            Gerrit-Branch: main
            Gerrit-Change-Id: Ie0090238aa555b0e31ac5233f3dd34a8a05f219c
            Gerrit-Change-Number: 7720164
            Gerrit-PatchSet: 111
            Gerrit-Owner: Rakina Zata Amni <rak...@chromium.org>
            Gerrit-Reviewer: Dave Tapuska <dtap...@chromium.org>
            Gerrit-Reviewer: Jonathan Ross <jon...@chromium.org>
            Gerrit-Reviewer: Kent Tamura <tk...@chromium.org>
            Gerrit-Reviewer: Rakina Zata Amni <rak...@chromium.org>
            Gerrit-Reviewer: Takashi Toyoshima <toyo...@chromium.org>
            Gerrit-CC: Bo Liu <bo...@chromium.org>
            Gerrit-CC: Chromium IPC Reviews <chrome-ip...@google.com>
            Gerrit-CC: Chromium Metrics Reviews <chromium-met...@google.com>
            Gerrit-CC: Daniel Cheng <dch...@chromium.org>
            Gerrit-CC: Ian Vollick <vol...@chromium.org>
            Gerrit-CC: James Su <su...@chromium.org>
            Gerrit-CC: Mathias Bynens <mat...@chromium.org>
            Gerrit-CC: Sadrul Chowdhury <sad...@chromium.org>
            Gerrit-CC: Vasiliy Telezhnikov <vas...@chromium.org>
            Gerrit-CC: gwsq
            Gerrit-Attention: Kent Tamura <tk...@chromium.org>
            Gerrit-Comment-Date: Thu, 07 May 2026 14:32:45 +0000
            Gerrit-HasComments: Yes
            Gerrit-Has-Labels: No
            satisfied_requirement
            unsatisfied_requirement
            open
            diffy

            Rakina Zata Amni (Gerrit)

            unread,
            May 14, 2026, 5:29:15 AMMay 14
            to Jonathan Ross, Dave Tapuska, Takashi Toyoshima, Kent Tamura, Chromium IPC Reviews, Mathias Bynens, Ian Vollick, Chromium Metrics Reviews, Sadrul Chowdhury, Zhe Su, Bo Liu, Vasiliy Telezhnikov, Daniel Cheng, android-bu...@system.gserviceaccount.com, Chromium LUCI CQ, chromium...@chromium.org, devtools...@chromium.org, headless...@chromium.org, cc-...@chromium.org, devtools-re...@chromium.org, mac-r...@chromium.org, asvitkine...@chromium.org, jbauma...@chromium.org, keithle...@chromium.org, nona+...@chromium.org, yhanad...@chromium.org, shuche...@chromium.org, tranbaod...@chromium.org, blink-revi...@chromium.org, blink-re...@chromium.org, kinuko...@chromium.org, blink-...@chromium.org, alexmo...@chromium.org, creis...@chromium.org, ipc-securi...@chromium.org, navigation...@chromium.org
            Attention needed from Kent Tamura

            Rakina Zata Amni added 3 comments

            Patchset-level comments
            Rakina Zata Amni . resolved

            PTAL :) Not sure how to test the additions here though. Any suggestions?

            Rakina Zata Amni

            Done

            File chrome/browser/ui/views/tabs/dragging/tab_drag_controller.cc
            Line 198, Patchset 60: // In tablet mode, ConvertPointToScreen might fail and return 0,0.
            Jonathan Ross . resolved

            Can we file a bug for this?

            Rakina Zata Amni

            (no longer neeeded)

            File content/browser/renderer_host/render_widget_host_impl.cc
            Line 912, Patchset 89: if (!waiting_for_init_) {
            blink_widget_->WasShown(view_->is_evicted(),
            std::move(record_tab_switch_time_request));
            } else {
            // Delay the WasShown message until Init is called.
            pending_show_params_.emplace(view_->is_evicted(),
            std::move(record_tab_switch_time_request));
            }
            Jonathan Ross . resolved

            Could `waiting_for_init_` cause an issue with binding the pipes in `CreateFrameSink`?

            Rakina Zata Amni

            Hmm yeah I wonder. I think this deferral is more because we don't have the renderer-side objects yet right? So it makes sense to defer the WasShown until when we actually have the renderer-side objects. The early frame sink pipes themselves are only sent to the renderer when we create the widget on the renderer side so that seems fine without having to explicitly check for `waiting_for_init_`? Meanwhile the `CreateFrameSink()` call should be going to the GPU process and I think should work fine even if the renderer side is not connected yet, just like the early GPU channel?

            Rakina Zata Amni

            Closing this, let me know if there are still concerns around this.

            Open in Gerrit

            Related details

            Attention is currently required from:
            • Kent Tamura
            Submit Requirements:
              • requirement satisfiedCode-Coverage
              • requirement satisfiedCode-Owners
              • requirement satisfiedCode-Review
              • requirement satisfiedReview-Enforcement
              Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
              Gerrit-MessageType: comment
              Gerrit-Project: chromium/src
              Gerrit-Branch: main
              Gerrit-Change-Id: Ie0090238aa555b0e31ac5233f3dd34a8a05f219c
              Gerrit-Change-Number: 7720164
              Gerrit-PatchSet: 122
              Gerrit-Owner: Rakina Zata Amni <rak...@chromium.org>
              Gerrit-Reviewer: Dave Tapuska <dtap...@chromium.org>
              Gerrit-Reviewer: Jonathan Ross <jon...@chromium.org>
              Gerrit-Reviewer: Kent Tamura <tk...@chromium.org>
              Gerrit-Reviewer: Rakina Zata Amni <rak...@chromium.org>
              Gerrit-Reviewer: Takashi Toyoshima <toyo...@chromium.org>
              Gerrit-CC: Bo Liu <bo...@chromium.org>
              Gerrit-CC: Chromium IPC Reviews <chrome-ip...@google.com>
              Gerrit-CC: Chromium Metrics Reviews <chromium-met...@google.com>
              Gerrit-CC: Daniel Cheng <dch...@chromium.org>
              Gerrit-CC: Ian Vollick <vol...@chromium.org>
              Gerrit-CC: Mathias Bynens <mat...@chromium.org>
              Gerrit-CC: Sadrul Chowdhury <sad...@chromium.org>
              Gerrit-CC: Vasiliy Telezhnikov <vas...@chromium.org>
              Gerrit-CC: Zhe Su <su...@chromium.org>
              Gerrit-Comment-Date: Thu, 14 May 2026 09:28:47 +0000
              Gerrit-HasComments: Yes
              Gerrit-Has-Labels: No
              Comment-In-Reply-To: Jonathan Ross <jon...@chromium.org>
              Comment-In-Reply-To: Rakina Zata Amni <rak...@chromium.org>
              satisfied_requirement
              open
              diffy

              Rakina Zata Amni (Gerrit)

              unread,
              May 15, 2026, 12:37:44 AMMay 15
              to Jonathan Ross, Dave Tapuska, Takashi Toyoshima, Kent Tamura, Chromium IPC Reviews, Mathias Bynens, Ian Vollick, Chromium Metrics Reviews, Sadrul Chowdhury, Zhe Su, Bo Liu, Vasiliy Telezhnikov, Daniel Cheng, android-bu...@system.gserviceaccount.com, Chromium LUCI CQ, chromium...@chromium.org, devtools...@chromium.org, headless...@chromium.org, cc-...@chromium.org, devtools-re...@chromium.org, mac-r...@chromium.org, asvitkine...@chromium.org, jbauma...@chromium.org, keithle...@chromium.org, nona+...@chromium.org, yhanad...@chromium.org, shuche...@chromium.org, tranbaod...@chromium.org, blink-revi...@chromium.org, blink-re...@chromium.org, kinuko...@chromium.org, blink-...@chromium.org, alexmo...@chromium.org, creis...@chromium.org, ipc-securi...@chromium.org, navigation...@chromium.org
              Attention needed from Kent Tamura

              Rakina Zata Amni voted Commit-Queue+2

              Commit-Queue+2
              Open in Gerrit

              Related details

              Attention is currently required from:
              • Kent Tamura
              Submit Requirements:
              • requirement satisfiedCode-Coverage
              • requirement satisfiedCode-Owners
              • requirement satisfiedCode-Review
              • requirement satisfiedReview-Enforcement
              Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
              Gerrit-MessageType: comment
              Gerrit-Project: chromium/src
              Gerrit-Branch: main
              Gerrit-Change-Id: Ie0090238aa555b0e31ac5233f3dd34a8a05f219c
              Gerrit-Change-Number: 7720164
              Gerrit-PatchSet: 123
              Gerrit-Owner: Rakina Zata Amni <rak...@chromium.org>
              Gerrit-Reviewer: Dave Tapuska <dtap...@chromium.org>
              Gerrit-Reviewer: Jonathan Ross <jon...@chromium.org>
              Gerrit-Reviewer: Kent Tamura <tk...@chromium.org>
              Gerrit-Reviewer: Rakina Zata Amni <rak...@chromium.org>
              Gerrit-Reviewer: Takashi Toyoshima <toyo...@chromium.org>
              Gerrit-CC: Bo Liu <bo...@chromium.org>
              Gerrit-CC: Chromium IPC Reviews <chrome-ip...@google.com>
              Gerrit-CC: Chromium Metrics Reviews <chromium-met...@google.com>
              Gerrit-CC: Daniel Cheng <dch...@chromium.org>
              Gerrit-CC: Ian Vollick <vol...@chromium.org>
              Gerrit-CC: Mathias Bynens <mat...@chromium.org>
              Gerrit-CC: Sadrul Chowdhury <sad...@chromium.org>
              Gerrit-CC: Vasiliy Telezhnikov <vas...@chromium.org>
              Gerrit-CC: Zhe Su <su...@chromium.org>
              Gerrit-CC: gwsq
              Gerrit-Attention: Kent Tamura <tk...@chromium.org>
              Gerrit-Comment-Date: Fri, 15 May 2026 04:37:10 +0000
              Gerrit-HasComments: No
              Gerrit-Has-Labels: Yes
              satisfied_requirement
              open
              diffy

              Chromium LUCI CQ (Gerrit)

              unread,
              May 15, 2026, 2:03:58 AMMay 15
              to Rakina Zata Amni, Jonathan Ross, Dave Tapuska, Takashi Toyoshima, Kent Tamura, Chromium IPC Reviews, Mathias Bynens, Ian Vollick, Chromium Metrics Reviews, Sadrul Chowdhury, Zhe Su, Bo Liu, Vasiliy Telezhnikov, Daniel Cheng, android-bu...@system.gserviceaccount.com, chromium...@chromium.org, devtools...@chromium.org, headless...@chromium.org, cc-...@chromium.org, devtools-re...@chromium.org, mac-r...@chromium.org, asvitkine...@chromium.org, jbauma...@chromium.org, keithle...@chromium.org, nona+...@chromium.org, yhanad...@chromium.org, shuche...@chromium.org, tranbaod...@chromium.org, blink-revi...@chromium.org, blink-re...@chromium.org, kinuko...@chromium.org, blink-...@chromium.org, alexmo...@chromium.org, creis...@chromium.org, ipc-securi...@chromium.org, navigation...@chromium.org

              Chromium LUCI CQ submitted the change with unreviewed changes

              Unreviewed changes

              102 is the latest approved patch-set.
              The change was submitted with unreviewed changes in the following files:

              ```
              The name of the file: content/browser/gpu/initial_gpu_channel_browsertest.cc
              Insertions: 13, Deletions: 27.

              The diff is too large to show. Please review the diff.
              ```
              ```
              The name of the file: content/browser/renderer_host/render_widget_host_impl.cc
              Insertions: 6, Deletions: 2.

              The diff is too large to show. Please review the diff.
              ```
              ```
              The name of the file: third_party/blink/renderer/platform/widget/widget_base.cc
              Insertions: 6, Deletions: 7.

              The diff is too large to show. Please review the diff.
              ```
              ```
              The name of the file: content/browser/renderer_host/render_widget_host_impl.h
              Insertions: 2, Deletions: 1.

              The diff is too large to show. Please review the diff.
              ```
              ```
              The name of the file: content/renderer/render_frame_impl.cc
              Insertions: 20, Deletions: 18.

              The diff is too large to show. Please review the diff.
              ```
              ```
              The name of the file: third_party/blink/renderer/platform/widget/widget_base.h
              Insertions: 0, Deletions: 1.

              The diff is too large to show. Please review the diff.
              ```

              Change information

              Commit message:
              Create initial compositor frame sink for new renderers early

              We want to create compositor frame sink as soon as possible by
              sending mojo pipes needed by the renderer for frame sink communication
              during renderer initialization. This allows the renderer to get the
              frame sink quickly without having the renderer request for it and
              wait for a renderer -> browser roundtrip, which can be especially
              slow when the browser main thread is busy, e.g. during startup.

              This CL adds a new browser -> renderer SetInitialFrameSink path that
              does just that by creating the message pipes and calling
              CreateCompositorFrameSink as soon as possible on the browser process,
              sending the renderer end of the pipes to SetInitialFrameSink. This
              new path makes the renderer use the browser-sent initial frame
              sink pipes instead of creating the pipes in the renderer and r
              requesting the browser to connect it.

              See doc: https://docs.google.com/document/d/1WumYcuGWjtS8EY6EWXRa1idV3MWbpLTHNWdAHsGiFjk/edit?resourcekey=0-ztQwyWhDmc7mFZTEVJZLHw&tab=t.0#heading=h.vczmpwfwb81x
              Change-Id: Ie0090238aa555b0e31ac5233f3dd34a8a05f219c
              Commit-Queue: Rakina Zata Amni <rak...@chromium.org>
              Reviewed-by: Takashi Toyoshima <toyo...@chromium.org>
              Reviewed-by: Jonathan Ross <jon...@chromium.org>
              Reviewed-by: Dave Tapuska <dtap...@chromium.org>
              Cr-Commit-Position: refs/heads/main@{#1631093}
              Files:
              • M components/viz/test/test_frame_sink_manager.cc
              • M components/viz/test/test_frame_sink_manager.h
              • M content/browser/gpu/initial_gpu_channel_browsertest.cc
              • M content/browser/renderer_host/render_widget_host_impl.cc
              • M content/browser/renderer_host/render_widget_host_impl.h
              • M content/common/frame.mojom
              • M content/renderer/render_frame_impl.cc
              • M third_party/blink/public/mojom/widget/platform_widget.mojom
              • M third_party/blink/public/web/DEPS
              • M third_party/blink/public/web/web_widget.h
              • M third_party/blink/renderer/core/exported/DEPS
              • M third_party/blink/renderer/core/exported/web_page_popup_impl.cc
              • M third_party/blink/renderer/core/exported/web_page_popup_impl.h
              • M third_party/blink/renderer/core/frame/DEPS
              • M third_party/blink/renderer/core/frame/frame_test_helpers.cc
              • M third_party/blink/renderer/core/frame/web_frame_widget_impl.cc
              • M third_party/blink/renderer/core/frame/web_frame_widget_impl.h
              • M third_party/blink/renderer/platform/widget/widget_base.cc
              • M third_party/blink/renderer/platform/widget/widget_base.h
              • M third_party/blink/tools/blinkpy/presubmit/audit_non_blink_usage.py
              • M tools/metrics/histograms/metadata/gpu/histograms.xml
              Change size: L
              Delta: 21 files changed, 375 insertions(+), 22 deletions(-)
              Branch: refs/heads/main
              Submit Requirements:
              • requirement satisfiedCode-Review: +1 by Jonathan Ross, +1 by Dave Tapuska, +1 by Takashi Toyoshima
              Open in Gerrit
              Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
              Gerrit-MessageType: merged
              Gerrit-Project: chromium/src
              Gerrit-Branch: main
              Gerrit-Change-Id: Ie0090238aa555b0e31ac5233f3dd34a8a05f219c
              Gerrit-Change-Number: 7720164
              Gerrit-PatchSet: 124
              Gerrit-Owner: Rakina Zata Amni <rak...@chromium.org>
              Gerrit-Reviewer: Chromium LUCI CQ <chromiu...@luci-project-accounts.iam.gserviceaccount.com>
              Gerrit-Reviewer: Dave Tapuska <dtap...@chromium.org>
              Gerrit-Reviewer: Jonathan Ross <jon...@chromium.org>
              Gerrit-Reviewer: Kent Tamura <tk...@chromium.org>
              Gerrit-Reviewer: Rakina Zata Amni <rak...@chromium.org>
              Gerrit-Reviewer: Takashi Toyoshima <toyo...@chromium.org>
              Gerrit-CC: Bo Liu <bo...@chromium.org>
              Gerrit-CC: Chromium IPC Reviews <chrome-ip...@google.com>
              open
              diffy
              satisfied_requirement
              Reply all
              Reply to author
              Forward
              0 new messages