[iOS] Use delegate pattern for ReminderNotificationsCoordinator lifecycle [chromium/src : main]

0 views
Skip to first unread message

Karis Li (Gerrit)

unread,
Mar 13, 2026, 11:19:58 AM (10 days ago) Mar 13
to Éric Noyau, Gauthier Ambard, Sylvain Defresne, Chromium LUCI CQ, chromium...@chromium.org, AyeAye, ios-revie...@chromium.org, ios-r...@chromium.org, browser-comp...@chromium.org, marq+...@chromium.org
Attention needed from Gauthier Ambard, Sylvain Defresne and Éric Noyau

Karis Li voted and added 1 comment

Votes added by Karis Li

Commit-Queue+1

1 comment

Patchset-level comments
File-level comment, Patchset 6 (Latest):
Karis Li . resolved

This CL is ready for review,PTAL,Thanks.

Open in Gerrit

Related details

Attention is currently required from:
  • Gauthier Ambard
  • Sylvain Defresne
  • Éric Noyau
Submit Requirements:
  • requirement satisfiedCode-Coverage
  • requirement is not satisfiedCode-Owners
  • requirement is not satisfiedCode-Review
  • requirement is not satisfiedReview-Enforcement
Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
Gerrit-MessageType: comment
Gerrit-Project: chromium/src
Gerrit-Branch: main
Gerrit-Change-Id: I68a0156e80954f2326b76dbe8f7c3bb35058034e
Gerrit-Change-Number: 7663108
Gerrit-PatchSet: 6
Gerrit-Owner: Karis Li <li...@microsoft.com>
Gerrit-Reviewer: Gauthier Ambard <gam...@chromium.org>
Gerrit-Reviewer: Karis Li <li...@microsoft.com>
Gerrit-Reviewer: Sylvain Defresne <sdef...@chromium.org>
Gerrit-Reviewer: Éric Noyau <no...@chromium.org>
Gerrit-Attention: Éric Noyau <no...@chromium.org>
Gerrit-Attention: Sylvain Defresne <sdef...@chromium.org>
Gerrit-Attention: Gauthier Ambard <gam...@chromium.org>
Gerrit-Comment-Date: Fri, 13 Mar 2026 15:19:24 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: Yes
satisfied_requirement
unsatisfied_requirement
open
diffy

Gauthier Ambard (Gerrit)

unread,
Mar 13, 2026, 11:36:14 AM (10 days ago) Mar 13
to Karis Li, Benjamin Williams, Éric Noyau, Sylvain Defresne, Chromium LUCI CQ, chromium...@chromium.org, AyeAye, ios-revie...@chromium.org, ios-r...@chromium.org, browser-comp...@chromium.org, marq+...@chromium.org
Attention needed from Benjamin Williams, Karis Li, Sylvain Defresne and Éric Noyau

Gauthier Ambard added 2 comments

Commit Message
Line 7, Patchset 6 (Latest):[iOS] Use delegate pattern for ReminderNotificationsCoordinator lifecycle
Gauthier Ambard . unresolved

Super interesting question!
Adding @bwwil...@google.com as author of the todo

File ios/chrome/browser/reminder_notifications/coordinator/reminder_notifications_coordinator.mm
Line 125, Patchset 6 (Parent): [handler dismissSetTabReminderUI];
Gauthier Ambard . unresolved

How did that work when it was presented from the bookmarks?

Open in Gerrit

Related details

Attention is currently required from:
  • Benjamin Williams
  • Karis Li
  • Sylvain Defresne
  • Éric Noyau
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: I68a0156e80954f2326b76dbe8f7c3bb35058034e
    Gerrit-Change-Number: 7663108
    Gerrit-PatchSet: 6
    Gerrit-Owner: Karis Li <li...@microsoft.com>
    Gerrit-Reviewer: Gauthier Ambard <gam...@chromium.org>
    Gerrit-Reviewer: Karis Li <li...@microsoft.com>
    Gerrit-Reviewer: Sylvain Defresne <sdef...@chromium.org>
    Gerrit-Reviewer: Éric Noyau <no...@chromium.org>
    Gerrit-CC: Benjamin Williams <bwwil...@google.com>
    Gerrit-Attention: Éric Noyau <no...@chromium.org>
    Gerrit-Attention: Karis Li <li...@microsoft.com>
    Gerrit-Attention: Sylvain Defresne <sdef...@chromium.org>
    Gerrit-Attention: Benjamin Williams <bwwil...@google.com>
    Gerrit-Comment-Date: Fri, 13 Mar 2026 15:36:03 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: No
    satisfied_requirement
    unsatisfied_requirement
    open
    diffy

    Karis Li (Gerrit)

    unread,
    Mar 15, 2026, 7:17:03 AM (8 days ago) Mar 15
    to Benjamin Williams, Éric Noyau, Gauthier Ambard, Sylvain Defresne, Chromium LUCI CQ, chromium...@chromium.org, AyeAye, ios-revie...@chromium.org, ios-r...@chromium.org, browser-comp...@chromium.org, marq+...@chromium.org
    Attention needed from Benjamin Williams, Gauthier Ambard, Sylvain Defresne and Éric Noyau

    Karis Li added 1 comment

    File ios/chrome/browser/reminder_notifications/coordinator/reminder_notifications_coordinator.mm
    Line 125, Patchset 6 (Parent): [handler dismissSetTabReminderUI];
    Gauthier Ambard . unresolved

    How did that work when it was presented from the bookmarks?

    Karis Li

    Previously this didn't work correctly — dismissSetTabReminderUI was dispatched through CommandDispatcher and handled by BrowserCoordinator, but when the reminder was presented from BookmarksCoordinator, BrowserCoordinator's _reminderNotificationsCoordinator was nil, so the dismiss was a no-op and the UI got stuck. This CL fixes that bug by using the delegate pattern so each presenter handles its own coordinator lifecycle.

    Before: https://drive.google.com/file/d/1NcvzF12ATbCkPMe9Bf5CfIg0Z4t6sLXR/view?usp=sharing

    After: https://drive.google.com/file/d/16knhPyKE8QhNExdFXgT4UMgiiMBzJ76h/view?usp=sharing

    Open in Gerrit

    Related details

    Attention is currently required from:
    • Benjamin Williams
    • Gauthier Ambard
    • Sylvain Defresne
    • Éric Noyau
    Gerrit-Attention: Sylvain Defresne <sdef...@chromium.org>
    Gerrit-Attention: Benjamin Williams <bwwil...@google.com>
    Gerrit-Attention: Gauthier Ambard <gam...@chromium.org>
    Gerrit-Comment-Date: Sun, 15 Mar 2026 11:16:25 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: No
    Comment-In-Reply-To: Gauthier Ambard <gam...@chromium.org>
    satisfied_requirement
    unsatisfied_requirement
    open
    diffy

    Gauthier Ambard (Gerrit)

    unread,
    Mar 16, 2026, 5:19:27 AM (8 days ago) Mar 16
    to Karis Li, Benjamin Williams, Éric Noyau, Sylvain Defresne, Chromium LUCI CQ, chromium...@chromium.org, AyeAye, ios-revie...@chromium.org, ios-r...@chromium.org, browser-comp...@chromium.org, marq+...@chromium.org
    Attention needed from Benjamin Williams, Karis Li, Sylvain Defresne and Éric Noyau

    Gauthier Ambard voted and added 1 comment

    Votes added by Gauthier Ambard

    Code-Review+1

    1 comment

    File ios/chrome/browser/reminder_notifications/coordinator/reminder_notifications_coordinator.mm
    Line 125, Patchset 6 (Parent): [handler dismissSetTabReminderUI];
    Gauthier Ambard . resolved

    How did that work when it was presented from the bookmarks?

    Karis Li

    Previously this didn't work correctly — dismissSetTabReminderUI was dispatched through CommandDispatcher and handled by BrowserCoordinator, but when the reminder was presented from BookmarksCoordinator, BrowserCoordinator's _reminderNotificationsCoordinator was nil, so the dismiss was a no-op and the UI got stuck. This CL fixes that bug by using the delegate pattern so each presenter handles its own coordinator lifecycle.

    Before: https://drive.google.com/file/d/1NcvzF12ATbCkPMe9Bf5CfIg0Z4t6sLXR/view?usp=sharing

    After: https://drive.google.com/file/d/16knhPyKE8QhNExdFXgT4UMgiiMBzJ76h/view?usp=sharing

    Gauthier Ambard

    Acknowledged

    Open in Gerrit

    Related details

    Attention is currently required from:
    • Benjamin Williams
    • Karis Li
    • Sylvain Defresne
    • Éric Noyau
    Submit Requirements:
    • requirement satisfiedCode-Coverage
    • requirement 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: I68a0156e80954f2326b76dbe8f7c3bb35058034e
    Gerrit-Change-Number: 7663108
    Gerrit-PatchSet: 7
    Gerrit-Owner: Karis Li <li...@microsoft.com>
    Gerrit-Reviewer: Gauthier Ambard <gam...@chromium.org>
    Gerrit-Reviewer: Karis Li <li...@microsoft.com>
    Gerrit-Reviewer: Sylvain Defresne <sdef...@chromium.org>
    Gerrit-Reviewer: Éric Noyau <no...@chromium.org>
    Gerrit-CC: Benjamin Williams <bwwil...@google.com>
    Gerrit-Attention: Éric Noyau <no...@chromium.org>
    Gerrit-Attention: Karis Li <li...@microsoft.com>
    Gerrit-Attention: Sylvain Defresne <sdef...@chromium.org>
    Gerrit-Attention: Benjamin Williams <bwwil...@google.com>
    Gerrit-Comment-Date: Mon, 16 Mar 2026 09:19:12 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: Yes
    Comment-In-Reply-To: Karis Li <li...@microsoft.com>
    Comment-In-Reply-To: Gauthier Ambard <gam...@chromium.org>
    satisfied_requirement
    unsatisfied_requirement
    open
    diffy

    Éric Noyau (Gerrit)

    unread,
    Mar 16, 2026, 5:36:41 AM (8 days ago) Mar 16
    to Karis Li, Gauthier Ambard, Benjamin Williams, Sylvain Defresne, Chromium LUCI CQ, chromium...@chromium.org, AyeAye, ios-revie...@chromium.org, ios-r...@chromium.org, browser-comp...@chromium.org, marq+...@chromium.org
    Attention needed from Benjamin Williams, Karis Li and Sylvain Defresne

    Éric Noyau added 6 comments

    File ios/chrome/browser/bookmarks/ui_bundled/home/bookmarks_coordinator.mm
    Line 555, Patchset 7 (Latest): [_reminderNotificationsCoordinator stop];
    Éric Noyau . unresolved

    Should this be `[coordinator stop]`? Or at a minimum a `CHECK` that `coordinator` and `_reminderNotificationsCoordinator` are the same object?

    Is it possible for two ReminderNotificationsCoordinator to be active at the same time? The place where the `_reminderNotificationsCoordinator` is set doesn't check if it is nil first, and doesn't try to remove itself as a delegate…

    Line 555, Patchset 7 (Latest): [_reminderNotificationsCoordinator stop];
    Éric Noyau . unresolved

    So the first thing that happens in a method named `-reminderNotificationsCoordinatorDidStop:` is a call to `-stop` on the aforementioned coordinator? How can this be `DidStop` if it has not stopped before? According to its name, the call to `-stop` must be done by the coordinator before calling its delegate, otherwise this makes no sense.

    File ios/chrome/browser/browser_view/ui_bundled/browser_coordinator.mm
    Line 5074, Patchset 7 (Latest): [self stopReminderNotificationsCoordinator];
    Éric Noyau . unresolved

    Same here, a `DidStop` method is invoked for something that has not been stopped yet.

    File ios/chrome/browser/reminder_notifications/coordinator/reminder_notifications_coordinator.h
    Line 10, Patchset 7 (Latest):@protocol ReminderNotificationsCoordinatorDelegate;
    Éric Noyau . unresolved

    Forward declarations of types are avoided, just import the relevant headers where needed. Our internal ObjectiveC style guide explicitly requires it, but I just noticed this hasn't made it into the public facing style guide yet. I've asked for it to be refreshed.

    File ios/chrome/browser/reminder_notifications/coordinator/reminder_notifications_coordinator.mm
    Line 121, Patchset 7 (Latest): [self.delegate reminderNotificationsCoordinatorDidStop:self];
    Éric Noyau . unresolved
    This should probably be:
    ```
    {
    [self stop];
    [self.delegate reminderNotificationsCoordinatorDidStop:self];
    }
    ```
    File ios/chrome/browser/reminder_notifications/coordinator/reminder_notifications_coordinator_delegate.h
    Line 8, Patchset 7 (Latest):@class ReminderNotificationsCoordinator;
    Éric Noyau . unresolved

    Delegate protocols are usually declared in the same header as the delegating class, as it is part of the API of the class. This removes the need for a forward declaration (There is internal guidance for this: go/objc-delegate#heading=h.zedb0g579btl).

    Open in Gerrit

    Related details

    Attention is currently required from:
    • Benjamin Williams
    • Karis Li
    • Sylvain Defresne
    Submit Requirements:
    • requirement satisfiedCode-Coverage
    • requirement 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: I68a0156e80954f2326b76dbe8f7c3bb35058034e
    Gerrit-Change-Number: 7663108
    Gerrit-PatchSet: 7
    Gerrit-Owner: Karis Li <li...@microsoft.com>
    Gerrit-Reviewer: Gauthier Ambard <gam...@chromium.org>
    Gerrit-Reviewer: Karis Li <li...@microsoft.com>
    Gerrit-Reviewer: Sylvain Defresne <sdef...@chromium.org>
    Gerrit-Reviewer: Éric Noyau <no...@chromium.org>
    Gerrit-CC: Benjamin Williams <bwwil...@google.com>
    Gerrit-Attention: Karis Li <li...@microsoft.com>
    Gerrit-Attention: Sylvain Defresne <sdef...@chromium.org>
    Gerrit-Attention: Benjamin Williams <bwwil...@google.com>
    Gerrit-Comment-Date: Mon, 16 Mar 2026 09:36:26 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: No
    satisfied_requirement
    unsatisfied_requirement
    open
    diffy

    Gauthier Ambard (Gerrit)

    unread,
    Mar 16, 2026, 5:43:53 AM (8 days ago) Mar 16
    to Karis Li, Benjamin Williams, Éric Noyau, Sylvain Defresne, Chromium LUCI CQ, chromium...@chromium.org, AyeAye, ios-revie...@chromium.org, ios-r...@chromium.org, browser-comp...@chromium.org, marq+...@chromium.org
    Attention needed from Benjamin Williams, Karis Li and Sylvain Defresne

    Gauthier Ambard added 1 comment

    File ios/chrome/browser/reminder_notifications/coordinator/reminder_notifications_coordinator.mm
    Line 121, Patchset 7 (Latest): [self.delegate reminderNotificationsCoordinatorDidStop:self];
    Éric Noyau . unresolved
    This should probably be:
    ```
    {
    [self stop];
    [self.delegate reminderNotificationsCoordinatorDidStop:self];
    }
    ```
    Gauthier Ambard

    Coordinators are not supposed to call stop on themselves. It is the parent that is calling -stop.

    Gerrit-Comment-Date: Mon, 16 Mar 2026 09:43:36 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: No
    Comment-In-Reply-To: Éric Noyau <no...@chromium.org>
    satisfied_requirement
    unsatisfied_requirement
    open
    diffy

    Benjamin Williams (Gerrit)

    unread,
    Mar 16, 2026, 5:48:29 AM (8 days ago) Mar 16
    to Karis Li, Gauthier Ambard, Éric Noyau, Sylvain Defresne, Chromium LUCI CQ, chromium...@chromium.org, AyeAye, ios-revie...@chromium.org, ios-r...@chromium.org, browser-comp...@chromium.org, marq+...@chromium.org
    Attention needed from Karis Li and Sylvain Defresne

    Benjamin Williams added 2 comments

    Commit Message
    Line 7, Patchset 6:[iOS] Use delegate pattern for ReminderNotificationsCoordinator lifecycle
    Gauthier Ambard . unresolved

    Super interesting question!
    Adding @bwwil...@google.com as author of the todo

    Benjamin Williams

    Thanks for flagging! For add'l context, this feature is still in development (not code complete yet.)

    File ios/chrome/browser/reminder_notifications/coordinator/reminder_notifications_coordinator.mm
    Line 125, Patchset 6 (Parent): [handler dismissSetTabReminderUI];
    Gauthier Ambard . unresolved

    How did that work when it was presented from the bookmarks?

    Benjamin Williams

    This project was never code complete, so not entirely sure the current state. I'd say it's 80-85% complete.

    Open in Gerrit

    Related details

    Attention is currently required from:
    • Karis Li
    • Sylvain Defresne
    Gerrit-Comment-Date: Mon, 16 Mar 2026 09:48:20 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: No
    Comment-In-Reply-To: Gauthier Ambard <gam...@chromium.org>
    satisfied_requirement
    unsatisfied_requirement
    open
    diffy

    Sylvain Defresne (Gerrit)

    unread,
    Mar 16, 2026, 6:20:12 AM (7 days ago) Mar 16
    to Karis Li, Gauthier Ambard, Benjamin Williams, Éric Noyau, Chromium LUCI CQ, chromium...@chromium.org, AyeAye, ios-revie...@chromium.org, ios-r...@chromium.org, browser-comp...@chromium.org, marq+...@chromium.org
    Attention needed from Karis Li

    Sylvain Defresne added 2 comments

    Patchset-level comments
    File-level comment, Patchset 7 (Latest):
    Sylvain Defresne . resolved

    I agree with other points by Éric (besides the forward-declaration).

    File ios/chrome/browser/reminder_notifications/coordinator/reminder_notifications_coordinator.h
    Line 10, Patchset 7 (Latest):@protocol ReminderNotificationsCoordinatorDelegate;
    Éric Noyau . unresolved

    Forward declarations of types are avoided, just import the relevant headers where needed. Our internal ObjectiveC style guide explicitly requires it, but I just noticed this hasn't made it into the public facing style guide yet. I've asked for it to be refreshed.

    Sylvain Defresne

    The Chromium style guide explicitly states that forward-declarations are preferred to includes/imports because forward-declarations can significantly reduce compilation times.

    The reason is that not everyone is able to use distributed build (and thus forward-declaration is really helpful for them), and even when using distributed build we have to upload all the included files (in case there are local modifications) which is less performant than just forward-declaration.

    This is true for both C++ and Objective-C++ file.

    https://chromium.googlesource.com/chromium/src/+/main/styleguide/c++/c++.md#forward-declarations-vs_includes

    Open in Gerrit

    Related details

    Attention is currently required from:
    • Karis Li
    Submit Requirements:
    • requirement satisfiedCode-Coverage
    • requirement 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: I68a0156e80954f2326b76dbe8f7c3bb35058034e
    Gerrit-Change-Number: 7663108
    Gerrit-PatchSet: 7
    Gerrit-Owner: Karis Li <li...@microsoft.com>
    Gerrit-Reviewer: Gauthier Ambard <gam...@chromium.org>
    Gerrit-Reviewer: Karis Li <li...@microsoft.com>
    Gerrit-Reviewer: Sylvain Defresne <sdef...@chromium.org>
    Gerrit-Reviewer: Éric Noyau <no...@chromium.org>
    Gerrit-CC: Benjamin Williams <bwwil...@google.com>
    Gerrit-Attention: Karis Li <li...@microsoft.com>
    Gerrit-Comment-Date: Mon, 16 Mar 2026 10:19:57 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: No
    Comment-In-Reply-To: Éric Noyau <no...@chromium.org>
    satisfied_requirement
    unsatisfied_requirement
    open
    diffy

    Karis Li (Gerrit)

    unread,
    2:19 AM (16 hours ago) 2:19 AM
    to Gauthier Ambard, Benjamin Williams, Éric Noyau, Sylvain Defresne, Chromium LUCI CQ, chromium...@chromium.org, AyeAye, ios-revie...@chromium.org, ios-r...@chromium.org, browser-comp...@chromium.org, marq+...@chromium.org
    Attention needed from Benjamin Williams, Gauthier Ambard, Sylvain Defresne and Éric Noyau

    Karis Li added 6 comments

    Patchset-level comments
    File-level comment, Patchset 9 (Latest):
    Karis Li . resolved

    Hi reviewers, could you please help review again? Thank you very much.

    Commit Message
    Line 7, Patchset 6:[iOS] Use delegate pattern for ReminderNotificationsCoordinator lifecycle
    Gauthier Ambard . resolved

    Super interesting question!
    Adding @bwwil...@google.com as author of the todo

    Benjamin Williams

    Thanks for flagging! For add'l context, this feature is still in development (not code complete yet.)

    Karis Li

    Marked as resolved.

    File ios/chrome/browser/bookmarks/ui_bundled/home/bookmarks_coordinator.mm
    Line 555, Patchset 7: [_reminderNotificationsCoordinator stop];
    Éric Noyau . resolved

    Should this be `[coordinator stop]`? Or at a minimum a `CHECK` that `coordinator` and `_reminderNotificationsCoordinator` are the same object?

    Is it possible for two ReminderNotificationsCoordinator to be active at the same time? The place where the `_reminderNotificationsCoordinator` is set doesn't check if it is nil first, and doesn't try to remove itself as a delegate…

    Karis Li

    Marked as resolved.

    File ios/chrome/browser/reminder_notifications/coordinator/reminder_notifications_coordinator.h
    Line 10, Patchset 7:@protocol ReminderNotificationsCoordinatorDelegate;
    Éric Noyau . resolved

    Forward declarations of types are avoided, just import the relevant headers where needed. Our internal ObjectiveC style guide explicitly requires it, but I just noticed this hasn't made it into the public facing style guide yet. I've asked for it to be refreshed.

    Sylvain Defresne

    The Chromium style guide explicitly states that forward-declarations are preferred to includes/imports because forward-declarations can significantly reduce compilation times.

    The reason is that not everyone is able to use distributed build (and thus forward-declaration is really helpful for them), and even when using distributed build we have to upload all the included files (in case there are local modifications) which is less performant than just forward-declaration.

    This is true for both C++ and Objective-C++ file.

    https://chromium.googlesource.com/chromium/src/+/main/styleguide/c++/c++.md#forward-declarations-vs_includes

    Karis Li

    Marked as resolved.

    File ios/chrome/browser/reminder_notifications/coordinator/reminder_notifications_coordinator.mm
    Line 125, Patchset 6 (Parent): [handler dismissSetTabReminderUI];
    Gauthier Ambard . resolved

    How did that work when it was presented from the bookmarks?

    Benjamin Williams

    This project was never code complete, so not entirely sure the current state. I'd say it's 80-85% complete.

    Karis Li

    Acknowledged

    File ios/chrome/browser/reminder_notifications/coordinator/reminder_notifications_coordinator_delegate.h
    Line 8, Patchset 7:@class ReminderNotificationsCoordinator;
    Éric Noyau . resolved

    Delegate protocols are usually declared in the same header as the delegating class, as it is part of the API of the class. This removes the need for a forward declaration (There is internal guidance for this: go/objc-delegate#heading=h.zedb0g579btl).

    Karis Li

    Thanks,fixed

    Open in Gerrit

    Related details

    Attention is currently required from:
    • Benjamin Williams
    • Gauthier Ambard
    • Sylvain Defresne
    • Éric Noyau
    Submit Requirements:
    • requirement satisfiedCode-Coverage
    • requirement 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: I68a0156e80954f2326b76dbe8f7c3bb35058034e
    Gerrit-Change-Number: 7663108
    Gerrit-PatchSet: 9
    Gerrit-Owner: Karis Li <li...@microsoft.com>
    Gerrit-Reviewer: Gauthier Ambard <gam...@chromium.org>
    Gerrit-Reviewer: Karis Li <li...@microsoft.com>
    Gerrit-Reviewer: Sylvain Defresne <sdef...@chromium.org>
    Gerrit-Reviewer: Éric Noyau <no...@chromium.org>
    Gerrit-CC: Benjamin Williams <bwwil...@google.com>
    Gerrit-Attention: Éric Noyau <no...@chromium.org>
    Gerrit-Attention: Sylvain Defresne <sdef...@chromium.org>
    Gerrit-Attention: Benjamin Williams <bwwil...@google.com>
    Gerrit-Attention: Gauthier Ambard <gam...@chromium.org>
    Gerrit-Comment-Date: Mon, 23 Mar 2026 06:19:03 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: No
    Comment-In-Reply-To: Éric Noyau <no...@chromium.org>
    Comment-In-Reply-To: Sylvain Defresne <sdef...@chromium.org>
    Comment-In-Reply-To: Benjamin Williams <bwwil...@google.com>
    Comment-In-Reply-To: Gauthier Ambard <gam...@chromium.org>
    satisfied_requirement
    unsatisfied_requirement
    open
    diffy

    Karis Li (Gerrit)

    unread,
    2:20 AM (16 hours ago) 2:20 AM
    to Gauthier Ambard, Benjamin Williams, Éric Noyau, Sylvain Defresne, Chromium LUCI CQ, chromium...@chromium.org, AyeAye, ios-revie...@chromium.org, ios-r...@chromium.org, browser-comp...@chromium.org, marq+...@chromium.org
    Attention needed from Benjamin Williams, Gauthier Ambard, Sylvain Defresne and Éric Noyau

    Karis Li added 3 comments

    File ios/chrome/browser/bookmarks/ui_bundled/home/bookmarks_coordinator.mm
    Line 555, Patchset 7: [_reminderNotificationsCoordinator stop];
    Éric Noyau . resolved

    So the first thing that happens in a method named `-reminderNotificationsCoordinatorDidStop:` is a call to `-stop` on the aforementioned coordinator? How can this be `DidStop` if it has not stopped before? According to its name, the call to `-stop` must be done by the coordinator before calling its delegate, otherwise this makes no sense.

    Karis Li

    Acknowledged

    File ios/chrome/browser/browser_view/ui_bundled/browser_coordinator.mm
    Line 5074, Patchset 7: [self stopReminderNotificationsCoordinator];
    Éric Noyau . resolved

    Same here, a `DidStop` method is invoked for something that has not been stopped yet.

    Karis Li

    Marked as resolved.

    File ios/chrome/browser/reminder_notifications/coordinator/reminder_notifications_coordinator.mm
    Line 121, Patchset 7: [self.delegate reminderNotificationsCoordinatorDidStop:self];
    Éric Noyau . resolved
    This should probably be:
    ```
    {
    [self stop];
    [self.delegate reminderNotificationsCoordinatorDidStop:self];
    }
    ```
    Gauthier Ambard

    Coordinators are not supposed to call stop on themselves. It is the parent that is calling -stop.

    Karis Li

    Thanks,done

    Open in Gerrit

    Related details

    Attention is currently required from:
    • Benjamin Williams
    • Gauthier Ambard
    • Sylvain Defresne
    • Éric Noyau
    Submit Requirements:
      • requirement satisfiedCode-Coverage
      • requirement satisfiedCode-Owners
      • requirement is not satisfiedCode-Review
      • requirement is not satisfiedReview-Enforcement
      Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
      Gerrit-MessageType: comment
      Gerrit-Project: chromium/src
      Gerrit-Branch: main
      Gerrit-Change-Id: I68a0156e80954f2326b76dbe8f7c3bb35058034e
      Gerrit-Change-Number: 7663108
      Gerrit-PatchSet: 9
      Gerrit-Owner: Karis Li <li...@microsoft.com>
      Gerrit-Reviewer: Gauthier Ambard <gam...@chromium.org>
      Gerrit-Reviewer: Karis Li <li...@microsoft.com>
      Gerrit-Reviewer: Sylvain Defresne <sdef...@chromium.org>
      Gerrit-Reviewer: Éric Noyau <no...@chromium.org>
      Gerrit-CC: Benjamin Williams <bwwil...@google.com>
      Gerrit-Attention: Éric Noyau <no...@chromium.org>
      Gerrit-Attention: Sylvain Defresne <sdef...@chromium.org>
      Gerrit-Attention: Benjamin Williams <bwwil...@google.com>
      Gerrit-Attention: Gauthier Ambard <gam...@chromium.org>
      Gerrit-Comment-Date: Mon, 23 Mar 2026 06:20:07 +0000
      Gerrit-HasComments: Yes
      Gerrit-Has-Labels: No
      Comment-In-Reply-To: Éric Noyau <no...@chromium.org>
      Comment-In-Reply-To: Gauthier Ambard <gam...@chromium.org>
      satisfied_requirement
      unsatisfied_requirement
      open
      diffy

      Éric Noyau (Gerrit)

      unread,
      5:43 AM (12 hours ago) 5:43 AM
      to Karis Li, Gauthier Ambard, Benjamin Williams, Sylvain Defresne, Chromium LUCI CQ, chromium...@chromium.org, AyeAye, ios-revie...@chromium.org, ios-r...@chromium.org, browser-comp...@chromium.org, marq+...@chromium.org
      Attention needed from Benjamin Williams, Gauthier Ambard, Karis Li and Sylvain Defresne

      Éric Noyau added 1 comment

      File ios/chrome/browser/reminder_notifications/coordinator/reminder_notifications_coordinator.h
      Line 10, Patchset 7:@protocol ReminderNotificationsCoordinatorDelegate;
      Éric Noyau . resolved

      Forward declarations of types are avoided, just import the relevant headers where needed. Our internal ObjectiveC style guide explicitly requires it, but I just noticed this hasn't made it into the public facing style guide yet. I've asked for it to be refreshed.

      Sylvain Defresne

      The Chromium style guide explicitly states that forward-declarations are preferred to includes/imports because forward-declarations can significantly reduce compilation times.

      The reason is that not everyone is able to use distributed build (and thus forward-declaration is really helpful for them), and even when using distributed build we have to upload all the included files (in case there are local modifications) which is less performant than just forward-declaration.

      This is true for both C++ and Objective-C++ file.

      https://chromium.googlesource.com/chromium/src/+/main/styleguide/c++/c++.md#forward-declarations-vs_includes

      Éric Noyau

      Ah, sorry, I spend too much of my review time on non Chromium code.

      Open in Gerrit

      Related details

      Attention is currently required from:
      • Benjamin Williams
      • Gauthier Ambard
      • Karis Li
      • Sylvain Defresne
      Submit Requirements:
      • requirement satisfiedCode-Coverage
      • requirement satisfiedCode-Owners
      • requirement is not satisfiedCode-Review
      • requirement is not satisfiedReview-Enforcement
      Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
      Gerrit-MessageType: comment
      Gerrit-Project: chromium/src
      Gerrit-Branch: main
      Gerrit-Change-Id: I68a0156e80954f2326b76dbe8f7c3bb35058034e
      Gerrit-Change-Number: 7663108
      Gerrit-PatchSet: 9
      Gerrit-Owner: Karis Li <li...@microsoft.com>
      Gerrit-Reviewer: Gauthier Ambard <gam...@chromium.org>
      Gerrit-Reviewer: Karis Li <li...@microsoft.com>
      Gerrit-Reviewer: Sylvain Defresne <sdef...@chromium.org>
      Gerrit-Reviewer: Éric Noyau <no...@chromium.org>
      Gerrit-CC: Benjamin Williams <bwwil...@google.com>
      Gerrit-Attention: Karis Li <li...@microsoft.com>
      Gerrit-Attention: Sylvain Defresne <sdef...@chromium.org>
      Gerrit-Attention: Benjamin Williams <bwwil...@google.com>
      Gerrit-Attention: Gauthier Ambard <gam...@chromium.org>
      Gerrit-Comment-Date: Mon, 23 Mar 2026 09:43:40 +0000
      Gerrit-HasComments: Yes
      Gerrit-Has-Labels: No
      Comment-In-Reply-To: Éric Noyau <no...@chromium.org>
      Comment-In-Reply-To: Sylvain Defresne <sdef...@chromium.org>
      satisfied_requirement
      unsatisfied_requirement
      open
      diffy

      Gauthier Ambard (Gerrit)

      unread,
      10:08 AM (8 hours ago) 10:08 AM
      to Karis Li, Sylvain Defresne, Benjamin Williams, Éric Noyau, Chromium LUCI CQ, chromium...@chromium.org, AyeAye, ios-revie...@chromium.org, ios-r...@chromium.org, browser-comp...@chromium.org, marq+...@chromium.org
      Attention needed from Benjamin Williams and Karis Li

      Gauthier Ambard voted Code-Review+1

      Code-Review+1
      Open in Gerrit

      Related details

      Attention is currently required from:
      • Benjamin Williams
      • Karis Li
      Submit Requirements:
        • requirement satisfiedCode-Coverage
        • requirement satisfiedCode-Owners
        • requirement satisfiedCode-Review
        • requirement is not satisfiedReview-Enforcement
        Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
        Gerrit-MessageType: comment
        Gerrit-Project: chromium/src
        Gerrit-Branch: main
        Gerrit-Change-Id: I68a0156e80954f2326b76dbe8f7c3bb35058034e
        Gerrit-Change-Number: 7663108
        Gerrit-PatchSet: 9
        Gerrit-Owner: Karis Li <li...@microsoft.com>
        Gerrit-Reviewer: Gauthier Ambard <gam...@chromium.org>
        Gerrit-Reviewer: Karis Li <li...@microsoft.com>
        Gerrit-Reviewer: Éric Noyau <no...@chromium.org>
        Gerrit-CC: Benjamin Williams <bwwil...@google.com>
        Gerrit-CC: Sylvain Defresne <sdef...@chromium.org>
        Gerrit-Attention: Karis Li <li...@microsoft.com>
        Gerrit-Attention: Benjamin Williams <bwwil...@google.com>
        Gerrit-Comment-Date: Mon, 23 Mar 2026 14:08:46 +0000
        Gerrit-HasComments: No
        Gerrit-Has-Labels: Yes
        satisfied_requirement
        unsatisfied_requirement
        open
        diffy
        Reply all
        Reply to author
        Forward
        0 new messages