[iOS][AppBar] Introduce Menu Factory for Toolbar Buttons [chromium/src : main]

0 views
Skip to first unread message

Eric Ekey (Gerrit)

unread,
Mar 20, 2026, 11:56:38 AM (3 days ago) Mar 20
to Scott Yoder, Chromium LUCI CQ, chromium...@chromium.org, feature-me...@chromium.org, ios-revie...@chromium.org, ios-r...@chromium.org, marq+...@chromium.org
Attention needed from Scott Yoder

Eric Ekey voted and added 1 comment

Votes added by Eric Ekey

Commit-Queue+1

1 comment

Patchset-level comments
File-level comment, Patchset 5 (Latest):
Eric Ekey . unresolved

@scott...@google.com Please take a first look

Open in Gerrit

Related details

Attention is currently required from:
  • Scott Yoder
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: I47875a8265a716379b9002e34204a1f79b8ca03e
Gerrit-Change-Number: 7684862
Gerrit-PatchSet: 5
Gerrit-Owner: Eric Ekey <eric...@google.com>
Gerrit-Reviewer: Eric Ekey <eric...@google.com>
Gerrit-Reviewer: Scott Yoder <scott...@google.com>
Gerrit-Attention: Scott Yoder <scott...@google.com>
Gerrit-Comment-Date: Fri, 20 Mar 2026 15:56:31 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: Yes
satisfied_requirement
unsatisfied_requirement
open
diffy

Scott Yoder (Gerrit)

unread,
Mar 20, 2026, 3:30:52 PM (3 days ago) Mar 20
to Eric Ekey, Chromium LUCI CQ, chromium...@chromium.org, feature-me...@chromium.org, ios-revie...@chromium.org, ios-r...@chromium.org, marq+...@chromium.org
Attention needed from Eric Ekey

Scott Yoder added 7 comments

File ios/chrome/browser/app_bar/coordinator/app_bar_mediator.mm
Line 145, Patchset 5: _buttonMenuFactory.currentWebStateList = _currentWebStateList;
Scott Yoder . unresolved

This wont be set at this point, so you could probably skip setting it here.

Line 481, Patchset 5:- (void)setRegularActionFactory:(BrowserActionFactory*)regularActionFactory {
if (regularActionFactory == _regularActionFactory) {
return;
}
_regularActionFactory = regularActionFactory;
_buttonMenuFactory.regularActionFactory = _regularActionFactory;
}

- (void)setIncognitoActionFactory:
(BrowserActionFactory*)incognitoActionFactory {
if (incognitoActionFactory == _incognitoActionFactory) {
return;
}
_incognitoActionFactory = incognitoActionFactory;
_buttonMenuFactory.incognitoActionFactory = _incognitoActionFactory;
}
Scott Yoder . unresolved

Since it now takes these in the initializer, does it need properties/setters to handle this after initialization?

File ios/chrome/browser/toolbar/coordinator/DEPS
Line 16, Patchset 5:
Scott Yoder . unresolved

Please fix this WARNING reported by Trailing Whitespace: Please remove the trailing whitespace.

Please remove the trailing whitespace.

File ios/chrome/browser/toolbar/coordinator/toolbar_mediator.mm
Line 33, Patchset 5:@property(nonatomic, assign) WebStateList* currentWebStateList;
Scott Yoder . unresolved

Why does this need to become a property? I'm not sure I understand when it would change. As far as I can tell, it is only set in the initializer and in disconnect and I don't think you need it to be a property with a setter for that.

File ios/chrome/browser/toolbar/ui/buttons/DEPS
Line 2, Patchset 5: "+ios/chrome/browser/lens/ui_bundled/lens_availability.h",
Scott Yoder . unresolved

nit: add keep-sorted.

File ios/chrome/browser/toolbar/ui/buttons/toolbar_button_menu_factory.mm
Line 36, Patchset 5:// TODO: comment
Scott Yoder . unresolved

nit: fix comment.

File ios/chrome/browser/toolbar/ui/buttons/toolbar_button_menu_factory_delegate.h
Line 16, Patchset 5:@optional
Scott Yoder . unresolved

Are these really optional? If they are, you probably need to check whether the delegate implements them before calling (via `respondsToSelector:`). And then in order to have that work, your delegate protocol probably needs to include NSObject.

Open in Gerrit

Related details

Attention is currently required from:
  • Eric Ekey
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: I47875a8265a716379b9002e34204a1f79b8ca03e
Gerrit-Change-Number: 7684862
Gerrit-PatchSet: 5
Gerrit-Owner: Eric Ekey <eric...@google.com>
Gerrit-Reviewer: Eric Ekey <eric...@google.com>
Gerrit-Reviewer: Scott Yoder <scott...@google.com>
Gerrit-Attention: Eric Ekey <eric...@google.com>
Gerrit-Comment-Date: Fri, 20 Mar 2026 19:30:46 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: No
satisfied_requirement
unsatisfied_requirement
open
diffy

Scott Yoder (Gerrit)

unread,
Mar 20, 2026, 3:32:16 PM (3 days ago) Mar 20
to Eric Ekey, Chromium LUCI CQ, chromium...@chromium.org, feature-me...@chromium.org, ios-revie...@chromium.org, ios-r...@chromium.org, marq+...@chromium.org
Attention needed from Eric Ekey

Scott Yoder added 2 comments

File ios/chrome/browser/toolbar/coordinator/DEPS
Line 16, Patchset 5:
Scott Yoder . resolved

Please fix this WARNING reported by Trailing Whitespace: Please remove the trailing whitespace.

Please remove the trailing whitespace.

Scott Yoder

Done

File ios/chrome/browser/toolbar/ui/buttons/toolbar_button_menu_factory.mm
Line 36, Patchset 5:// TODO: comment
Scott Yoder . resolved

nit: fix comment.

Scott Yoder

Done

Open in Gerrit

Related details

Attention is currently required from:
  • Eric Ekey
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: I47875a8265a716379b9002e34204a1f79b8ca03e
Gerrit-Change-Number: 7684862
Gerrit-PatchSet: 6
Gerrit-Owner: Eric Ekey <eric...@google.com>
Gerrit-Reviewer: Eric Ekey <eric...@google.com>
Gerrit-Reviewer: Scott Yoder <scott...@google.com>
Gerrit-Attention: Eric Ekey <eric...@google.com>
Gerrit-Comment-Date: Fri, 20 Mar 2026 19:32:11 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: No
Comment-In-Reply-To: Scott Yoder <scott...@google.com>
satisfied_requirement
unsatisfied_requirement
open
diffy

Eric Ekey (Gerrit)

unread,
8:38 AM (3 hours ago) 8:38 AM
to Gauthier Ambard, Scott Yoder, Chromium LUCI CQ, chromium...@chromium.org, feature-me...@chromium.org, ios-revie...@chromium.org, ios-r...@chromium.org, marq+...@chromium.org
Attention needed from Gauthier Ambard and Scott Yoder

Eric Ekey added 7 comments

Patchset-level comments

@scott...@google.com Please take a first look

Eric Ekey

Thanks!

File-level comment, Patchset 11 (Latest):
Eric Ekey . unresolved

@gam...@chromium.org Please have a look

File ios/chrome/browser/app_bar/coordinator/app_bar_mediator.mm
Line 145, Patchset 5: _buttonMenuFactory.currentWebStateList = _currentWebStateList;
Scott Yoder . resolved

This wont be set at this point, so you could probably skip setting it here.

Eric Ekey

Done

Line 481, Patchset 5:- (void)setRegularActionFactory:(BrowserActionFactory*)regularActionFactory {
if (regularActionFactory == _regularActionFactory) {
return;
}
_regularActionFactory = regularActionFactory;
_buttonMenuFactory.regularActionFactory = _regularActionFactory;
}

- (void)setIncognitoActionFactory:
(BrowserActionFactory*)incognitoActionFactory {
if (incognitoActionFactory == _incognitoActionFactory) {
return;
}
_incognitoActionFactory = incognitoActionFactory;
_buttonMenuFactory.incognitoActionFactory = _incognitoActionFactory;
}
Scott Yoder . unresolved

Since it now takes these in the initializer, does it need properties/setters to handle this after initialization?

Eric Ekey

Not sure I understand what you mean here, could you clarify?. Though, this latest patchset removes the action factories as public properties and adds a public interface to set them.

File ios/chrome/browser/toolbar/coordinator/toolbar_mediator.mm
Line 33, Patchset 5:@property(nonatomic, assign) WebStateList* currentWebStateList;
Scott Yoder . unresolved

Why does this need to become a property? I'm not sure I understand when it would change. As far as I can tell, it is only set in the initializer and in disconnect and I don't think you need it to be a property with a setter for that.

Eric Ekey

If we're sure it would never change, then yeah this doesn't need to be a property. This was a measure to ensure any changes would be properly reflected in the Menu Factory's WebStateList. Changed in latest patchset.

File ios/chrome/browser/toolbar/ui/buttons/DEPS
Line 2, Patchset 5: "+ios/chrome/browser/lens/ui_bundled/lens_availability.h",
Scott Yoder . resolved

nit: add keep-sorted.

Eric Ekey

Done

File ios/chrome/browser/toolbar/ui/buttons/toolbar_button_menu_factory_delegate.h
Scott Yoder . resolved

Are these really optional? If they are, you probably need to check whether the delegate implements them before calling (via `respondsToSelector:`). And then in order to have that work, your delegate protocol probably needs to include NSObject.

Eric Ekey

Yes, I believe these should all be optional. Not every delegate will have the buttons that require these actions (toolbar doesn't have a new tab button, tab grid won't have navigation arrows, etc.). Updated.

Open in Gerrit

Related details

Attention is currently required from:
  • Gauthier Ambard
  • Scott Yoder
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: I47875a8265a716379b9002e34204a1f79b8ca03e
Gerrit-Change-Number: 7684862
Gerrit-PatchSet: 11
Gerrit-Owner: Eric Ekey <eric...@google.com>
Gerrit-Reviewer: Eric Ekey <eric...@google.com>
Gerrit-Reviewer: Gauthier Ambard <gam...@chromium.org>
Gerrit-Reviewer: Scott Yoder <scott...@google.com>
Gerrit-Attention: Scott Yoder <scott...@google.com>
Gerrit-Attention: Gauthier Ambard <gam...@chromium.org>
Gerrit-Comment-Date: Mon, 23 Mar 2026 12:38:40 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: No
Comment-In-Reply-To: Eric Ekey <eric...@google.com>
Comment-In-Reply-To: Scott Yoder <scott...@google.com>
satisfied_requirement
unsatisfied_requirement
open
diffy

Scott Yoder (Gerrit)

unread,
9:48 AM (2 hours ago) 9:48 AM
to Eric Ekey, Gauthier Ambard, Chromium LUCI CQ, chromium...@chromium.org, feature-me...@chromium.org, ios-revie...@chromium.org, ios-r...@chromium.org, marq+...@chromium.org
Attention needed from Eric Ekey and Gauthier Ambard

Scott Yoder added 2 comments

File ios/chrome/browser/app_bar/coordinator/app_bar_mediator.mm
Line 481, Patchset 5:- (void)setRegularActionFactory:(BrowserActionFactory*)regularActionFactory {
if (regularActionFactory == _regularActionFactory) {
return;
}
_regularActionFactory = regularActionFactory;
_buttonMenuFactory.regularActionFactory = _regularActionFactory;
}

- (void)setIncognitoActionFactory:
(BrowserActionFactory*)incognitoActionFactory {
if (incognitoActionFactory == _incognitoActionFactory) {
return;
}
_incognitoActionFactory = incognitoActionFactory;
_buttonMenuFactory.incognitoActionFactory = _incognitoActionFactory;
}
Scott Yoder . unresolved

Since it now takes these in the initializer, does it need properties/setters to handle this after initialization?

Eric Ekey

Not sure I understand what you mean here, could you clarify?. Though, this latest patchset removes the action factories as public properties and adds a public interface to set them.

Scott Yoder

regularActionFactory and incognitoActionFactory are both parameters of the initializer - they are passed in there. So I'm wondering why we would still need setter methods. Are they used anywhere?

File ios/chrome/browser/toolbar/coordinator/toolbar_mediator.mm
Line 33, Patchset 5:@property(nonatomic, assign) WebStateList* currentWebStateList;
Scott Yoder . unresolved

Why does this need to become a property? I'm not sure I understand when it would change. As far as I can tell, it is only set in the initializer and in disconnect and I don't think you need it to be a property with a setter for that.

Eric Ekey

If we're sure it would never change, then yeah this doesn't need to be a property. This was a measure to ensure any changes would be properly reflected in the Menu Factory's WebStateList. Changed in latest patchset.

Scott Yoder

A browser has a WebStateList. Items in the list may change, but the list itself doesn't change. Since the toolbar is browser scoped (unlike the App bar), I don't think this is needed.

Open in Gerrit

Related details

Attention is currently required from:
  • Eric Ekey
  • Gauthier Ambard
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: I47875a8265a716379b9002e34204a1f79b8ca03e
Gerrit-Change-Number: 7684862
Gerrit-PatchSet: 11
Gerrit-Owner: Eric Ekey <eric...@google.com>
Gerrit-Reviewer: Eric Ekey <eric...@google.com>
Gerrit-Reviewer: Gauthier Ambard <gam...@chromium.org>
Gerrit-Reviewer: Scott Yoder <scott...@google.com>
Gerrit-Attention: Eric Ekey <eric...@google.com>
Gerrit-Attention: Gauthier Ambard <gam...@chromium.org>
Gerrit-Comment-Date: Mon, 23 Mar 2026 13:48:11 +0000
satisfied_requirement
unsatisfied_requirement
open
diffy

Eric Ekey (Gerrit)

unread,
10:08 AM (2 hours ago) 10:08 AM
to Gauthier Ambard, Scott Yoder, Chromium LUCI CQ, chromium...@chromium.org, feature-me...@chromium.org, ios-revie...@chromium.org, ios-r...@chromium.org, marq+...@chromium.org
Attention needed from Gauthier Ambard and Scott Yoder

Eric Ekey added 2 comments

File ios/chrome/browser/app_bar/coordinator/app_bar_mediator.mm
Line 481, Patchset 5:- (void)setRegularActionFactory:(BrowserActionFactory*)regularActionFactory {
if (regularActionFactory == _regularActionFactory) {
return;
}
_regularActionFactory = regularActionFactory;
_buttonMenuFactory.regularActionFactory = _regularActionFactory;
}

- (void)setIncognitoActionFactory:
(BrowserActionFactory*)incognitoActionFactory {
if (incognitoActionFactory == _incognitoActionFactory) {
return;
}
_incognitoActionFactory = incognitoActionFactory;
_buttonMenuFactory.incognitoActionFactory = _incognitoActionFactory;
}
Scott Yoder . unresolved

Since it now takes these in the initializer, does it need properties/setters to handle this after initialization?

Eric Ekey

Not sure I understand what you mean here, could you clarify?. Though, this latest patchset removes the action factories as public properties and adds a public interface to set them.

Scott Yoder

regularActionFactory and incognitoActionFactory are both parameters of the initializer - they are passed in there. So I'm wondering why we would still need setter methods. Are they used anywhere?

Eric Ekey

FWIU if the incognito browser is updated from the coordinator, the incognito action factory would need to be updated as well to dispatch from the new incognito browser. Strictly speaking, this CL only calls the setter for the incognito factory, but I saw having setters for both as a way to prevent future pitfalls, since the mediator pushes that update to the menu factory. WDYT?

See `-[AppBarCoordinator setIncognitoBrowser:]`

File ios/chrome/browser/toolbar/coordinator/toolbar_mediator.mm
Line 33, Patchset 5:@property(nonatomic, assign) WebStateList* currentWebStateList;
Scott Yoder . resolved

Why does this need to become a property? I'm not sure I understand when it would change. As far as I can tell, it is only set in the initializer and in disconnect and I don't think you need it to be a property with a setter for that.

Eric Ekey

If we're sure it would never change, then yeah this doesn't need to be a property. This was a measure to ensure any changes would be properly reflected in the Menu Factory's WebStateList. Changed in latest patchset.

Scott Yoder

A browser has a WebStateList. Items in the list may change, but the list itself doesn't change. Since the toolbar is browser scoped (unlike the App bar), I don't think this is needed.

Eric Ekey

Done

Open in Gerrit

Related details

Attention is currently required from:
  • Gauthier Ambard
  • Scott Yoder
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: I47875a8265a716379b9002e34204a1f79b8ca03e
Gerrit-Change-Number: 7684862
Gerrit-PatchSet: 11
Gerrit-Owner: Eric Ekey <eric...@google.com>
Gerrit-Reviewer: Eric Ekey <eric...@google.com>
Gerrit-Reviewer: Gauthier Ambard <gam...@chromium.org>
Gerrit-Reviewer: Scott Yoder <scott...@google.com>
Gerrit-Attention: Scott Yoder <scott...@google.com>
Gerrit-Attention: Gauthier Ambard <gam...@chromium.org>
Gerrit-Comment-Date: Mon, 23 Mar 2026 14:08:05 +0000
satisfied_requirement
unsatisfied_requirement
open
diffy

Gauthier Ambard (Gerrit)

unread,
11:27 AM (20 minutes ago) 11:27 AM
to Eric Ekey, Scott Yoder, Chromium LUCI CQ, chromium...@chromium.org, feature-me...@chromium.org, ios-revie...@chromium.org, ios-r...@chromium.org, marq+...@chromium.org
Attention needed from Eric Ekey and Scott Yoder

Gauthier Ambard added 9 comments

Commit Message
Line 14, Patchset 11 (Latest):surfaces for the new tab/group button on iPad. A stale TODO is removed.
Gauthier Ambard . resolved

I like the idea!
However, I think the API should probably be revisited. In particular it feels a bit clunky for the Toolbar.

File ios/chrome/browser/app_bar/coordinator/app_bar_mediator.h
Line 99, Patchset 11 (Latest):- (void)setRegularActionFactory:(BrowserActionFactory*)regularActionFactory;
Gauthier Ambard . unresolved

Remove this one, I don't think it is needed

File ios/chrome/browser/app_bar/coordinator/app_bar_mediator.mm
Line 481, Patchset 5:- (void)setRegularActionFactory:(BrowserActionFactory*)regularActionFactory {
if (regularActionFactory == _regularActionFactory) {
return;
}
_regularActionFactory = regularActionFactory;
_buttonMenuFactory.regularActionFactory = _regularActionFactory;
}

- (void)setIncognitoActionFactory:
(BrowserActionFactory*)incognitoActionFactory {
if (incognitoActionFactory == _incognitoActionFactory) {
return;
}
_incognitoActionFactory = incognitoActionFactory;
_buttonMenuFactory.incognitoActionFactory = _incognitoActionFactory;
}
Scott Yoder . unresolved

Since it now takes these in the initializer, does it need properties/setters to handle this after initialization?

Eric Ekey

Not sure I understand what you mean here, could you clarify?. Though, this latest patchset removes the action factories as public properties and adds a public interface to set them.

Scott Yoder

regularActionFactory and incognitoActionFactory are both parameters of the initializer - they are passed in there. So I'm wondering why we would still need setter methods. Are they used anywhere?

Eric Ekey

FWIU if the incognito browser is updated from the coordinator, the incognito action factory would need to be updated as well to dispatch from the new incognito browser. Strictly speaking, this CL only calls the setter for the incognito factory, but I saw having setters for both as a way to prevent future pitfalls, since the mediator pushes that update to the menu factory. WDYT?

See `-[AppBarCoordinator setIncognitoBrowser:]`

Gauthier Ambard

I would rather remove the setter for the regular one. It is not supposed to be updated.

File ios/chrome/browser/toolbar/coordinator/toolbar_mediator.mm
Line 76, Patchset 11 (Latest): _buttonMenuFactory.incognitoActionFactory = _actionFactory;
Gauthier Ambard . unresolved

I don't think this one should pass the incognito state nor the incognito action factory (especially as it is not the incognito one here).
Could we make the menu factory work in that case?

File ios/chrome/browser/toolbar/ui/buttons/toolbar_button_menu_factory.h
Line 45, Patchset 11 (Latest):- (instancetype)initWithIncognitoState:(IncognitoState*)incognitoState
Gauthier Ambard . unresolved

Based on other comment above, do we want to have the initializer take the ingontio state or do we want to pass maybe the factory to the method?

Line 39, Patchset 11 (Latest):@property(nonatomic, assign) WebStateList* currentWebStateList;
Gauthier Ambard . unresolved

It feels weird that the WSL is the "current one" but the factory are based on the incognito state.

File ios/chrome/browser/toolbar/ui/buttons/toolbar_button_menu_factory.mm
Line 100, Patchset 11 (Latest): CHECK(self.delegate);
Gauthier Ambard . unresolved

You can't CHECK a delegate: delegate can be nil and can not respond to selector if they are optional (otherwise, don't make them optional).

Line 163, Patchset 11 (Latest): CHECK(_templateURLService);
Gauthier Ambard . unresolved

If you CHECK it, should it be in the init instead?

File ios/chrome/browser/toolbar/ui/buttons/toolbar_button_menu_factory_delegate.h
Line 19, Patchset 11 (Latest):@optional
Gauthier Ambard . unresolved

I wonder if I wouldn't prefer having them mandatory with NOTREACHED in the one that should not be implemented. It is more aligned with the delegate pattern vs CHECK(respondToSelector).

Open in Gerrit

Related details

Attention is currently required from:
  • Eric Ekey
  • Scott Yoder
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: I47875a8265a716379b9002e34204a1f79b8ca03e
Gerrit-Change-Number: 7684862
Gerrit-PatchSet: 11
Gerrit-Owner: Eric Ekey <eric...@google.com>
Gerrit-Reviewer: Eric Ekey <eric...@google.com>
Gerrit-Reviewer: Gauthier Ambard <gam...@chromium.org>
Gerrit-Reviewer: Scott Yoder <scott...@google.com>
Gerrit-Attention: Eric Ekey <eric...@google.com>
Gerrit-Attention: Scott Yoder <scott...@google.com>
Gerrit-Comment-Date: Mon, 23 Mar 2026 15:27:28 +0000
satisfied_requirement
unsatisfied_requirement
open
diffy
Reply all
Reply to author
Forward
0 new messages