[Sync] Add user actionable error for bookmarks limit exceeded [chromium/src : main]

0 views
Skip to first unread message

Michael Tatarski (Gerrit)

unread,
Oct 21, 2025, 5:15:46 AMOct 21
to Marc Treib, Chromium Metrics Reviews, AyeAye, Chromium LUCI CQ, feature-me...@chromium.org, marq+...@chromium.org, ios-r...@chromium.org, ios-revie...@chromium.org, srahim...@chromium.org, asvitkine...@chromium.org
Attention needed from Marc Treib

Michael Tatarski added 1 comment

Patchset-level comments
File-level comment, Patchset 14 (Latest):
Michael Tatarski . resolved

Hi Marc, it's just a WIP but could you glimpse over these files to tell me if I'm on the right track:

components/sync/service/data_type_manager_impl.cc
components/sync/service/sync_service_impl.cc
components/sync/service/sync_error.cc
components/sync/service/sync_service_impl.cc

Open in Gerrit

Related details

Attention is currently required from:
  • Marc Treib
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: I49c6804f76b83a7506e4216017f117a549480147
Gerrit-Change-Number: 7054925
Gerrit-PatchSet: 14
Gerrit-Owner: Michael Tatarski <mtat...@google.com>
Gerrit-Reviewer: Marc Treib <tr...@chromium.org>
Gerrit-Reviewer: Michael Tatarski <mtat...@google.com>
Gerrit-CC: Chromium Metrics Reviews <chromium-met...@google.com>
Gerrit-Attention: Marc Treib <tr...@chromium.org>
Gerrit-Comment-Date: Tue, 21 Oct 2025 09:15:33 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: No
satisfied_requirement
unsatisfied_requirement
open
diffy

Marc Treib (Gerrit)

unread,
Oct 21, 2025, 7:33:35 AMOct 21
to Michael Tatarski, Marc Treib, Chromium Metrics Reviews, AyeAye, Chromium LUCI CQ, feature-me...@chromium.org, marq+...@chromium.org, ios-r...@chromium.org, ios-revie...@chromium.org, srahim...@chromium.org, asvitkine...@chromium.org
Attention needed from Michael Tatarski

Marc Treib added 4 comments

Patchset-level comments
Michael Tatarski . resolved

Hi Marc, it's just a WIP but could you glimpse over these files to tell me if I'm on the right track:

components/sync/service/data_type_manager_impl.cc
components/sync/service/sync_service_impl.cc
components/sync/service/sync_error.cc
components/sync/service/sync_service_impl.cc

Marc Treib

Yeah, overall approach seems okay. Some thoughts below.

File chrome/app/settings_google_chrome_strings.grdp
Line 328, Patchset 14 (Latest): </message>
Marc Treib . unresolved

These strings are identical between the Chromium and GoogleChrome versions, right? Then there's a common settings_strings.grdp file where they should go.

File components/sync/service/sync_error.h
Line 42, Patchset 14 (Latest): // `MODEL_ERROR`.
Marc Treib . unresolved

Hm, maybe in that case we should make the ctor private and introduce static factory functions instead? Like `CreateModelError`, `CreateConfigurationError`, etc. Then each can take exactly the params it needs.
(This is a detail though, not a high-level concern.)

File components/sync/service/sync_service_impl.cc
Line 971, Patchset 14 (Latest): }
Marc Treib . unresolved

I'm not thrilled about putting so much data-type-specific logic into SyncService - ideally we'd find a way to put this logic closer to the bookmarks code.

Open in Gerrit

Related details

Attention is currently required from:
  • Michael Tatarski
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: I49c6804f76b83a7506e4216017f117a549480147
    Gerrit-Change-Number: 7054925
    Gerrit-PatchSet: 14
    Gerrit-Owner: Michael Tatarski <mtat...@google.com>
    Gerrit-Reviewer: Marc Treib <tr...@chromium.org>
    Gerrit-Reviewer: Michael Tatarski <mtat...@google.com>
    Gerrit-CC: Chromium Metrics Reviews <chromium-met...@google.com>
    Gerrit-Attention: Michael Tatarski <mtat...@google.com>
    Gerrit-Comment-Date: Tue, 21 Oct 2025 11:33:18 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: No
    Comment-In-Reply-To: Michael Tatarski <mtat...@google.com>
    satisfied_requirement
    unsatisfied_requirement
    open
    diffy

    Michael Tatarski (Gerrit)

    unread,
    Nov 6, 2025, 10:05:39 AM (6 days ago) Nov 6
    to Ankush Singh, Marc Treib, Chromium Metrics Reviews, AyeAye, Chromium LUCI CQ, feature-me...@chromium.org, marq+...@chromium.org, ios-r...@chromium.org, ios-revie...@chromium.org, srahim...@chromium.org, asvitkine...@chromium.org
    Attention needed from Ankush Singh and Marc Treib

    Michael Tatarski voted and added 2 comments

    Votes added by Michael Tatarski

    Commit-Queue+1

    2 comments

    File chrome/app/settings_google_chrome_strings.grdp
    Line 328, Patchset 14: </message>
    Marc Treib . resolved

    These strings are identical between the Chromium and GoogleChrome versions, right? Then there's a common settings_strings.grdp file where they should go.

    Michael Tatarski

    Thanks

    File components/sync/service/sync_service_impl.cc
    Marc Treib . unresolved

    I'm not thrilled about putting so much data-type-specific logic into SyncService - ideally we'd find a way to put this logic closer to the bookmarks code.

    Michael Tatarski

    True. I created a free function that encapsulates the logic for the bookmark related model errors. WDYT about it?

    Open in Gerrit

    Related details

    Attention is currently required from:
    • Ankush Singh
    • Marc Treib
    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: I49c6804f76b83a7506e4216017f117a549480147
    Gerrit-Change-Number: 7054925
    Gerrit-PatchSet: 20
    Gerrit-Owner: Michael Tatarski <mtat...@google.com>
    Gerrit-Reviewer: Ankush Singh <ankus...@google.com>
    Gerrit-Reviewer: Marc Treib <tr...@chromium.org>
    Gerrit-Reviewer: Michael Tatarski <mtat...@google.com>
    Gerrit-CC: Chromium Metrics Reviews <chromium-met...@google.com>
    Gerrit-Attention: Ankush Singh <ankus...@google.com>
    Gerrit-Attention: Marc Treib <tr...@chromium.org>
    Gerrit-Comment-Date: Thu, 06 Nov 2025 15:05:25 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: Yes
    Comment-In-Reply-To: Marc Treib <tr...@chromium.org>
    satisfied_requirement
    unsatisfied_requirement
    open
    diffy

    Ankush Singh (Gerrit)

    unread,
    Nov 6, 2025, 10:54:05 AM (6 days ago) Nov 6
    to Michael Tatarski, Marc Treib, Chromium Metrics Reviews, AyeAye, Chromium LUCI CQ, feature-me...@chromium.org, marq+...@chromium.org, ios-r...@chromium.org, ios-revie...@chromium.org, srahim...@chromium.org, asvitkine...@chromium.org
    Attention needed from Michael Tatarski

    Ankush Singh added 7 comments

    Patchset-level comments
    File-level comment, Patchset 21 (Latest):
    Ankush Singh . unresolved

    Thanks! If possible, please split the current CL into atleast 3:
    1. Model error to user actionable error part (maybe you can even skip introducing a new user actionable error in this CL since that'd require updating the switch statements).
    2. Using the user actionable error on the UI side.
    3. ios code.
    WDYT?

    File chrome/app/settings_strings.grdp
    Line 4467, Patchset 20: <!-- Sync Page / Account Settings Page -->
    <message name="IDS_SETTINGS_ERROR_BOOKMARKS_LIMIT_EXCEEDED_USER_ERROR_DESCRIPTION" desc="Error message to resolve the error that the bookmarks limit has been exceeded.">
    To continue syncing, reduce the number of bookmarks
    </message>
    <message name="IDS_SETTINGS_BOOKMARKS_LIMIT_EXCEEDED_ERROR_BUTTON" desc="Label for a button that opens a help article about the bookmarks limit.">
    Learn more
    </message>
    Ankush Singh . unresolved

    I'll recommend we use some pre-existing strings for now, instead of introducing temporary strings.

    File chrome/browser/sync/sync_ui_util.cc
    Line 136, Patchset 20: return IDS_SETTINGS_BOOKMARKS_LIMIT_EXCEEDED_ERROR_BUTTON;
    Ankush Singh . unresolved

    Can you a TODO to update this later?

    Line 215, Patchset 20: SyncStatusMessageType::kSyncError,
    IDS_SETTINGS_ERROR_BOOKMARKS_LIMIT_EXCEEDED_USER_ERROR_DESCRIPTION,
    IDS_SETTINGS_BOOKMARKS_LIMIT_EXCEEDED_ERROR_BUTTON,
    IDS_SETTINGS_SIGN_OUT, SyncStatusActionType::kNoAction};
    Ankush Singh . unresolved

    Can you a TODO to update this later?

    Line 260, Patchset 20: case syncer::SyncService::UserActionableError::kBookmarksLimitExceeded:
    Ankush Singh . unresolved

    Can you a TODO to update this later and other similar places in other files?

    File chrome/browser/ui/views/profiles/profile_menu_view.cc
    Line 380, Patchset 20: chrome::ShowSettingsSubPage(&browser(), chrome::kSyncSetupSubPage);
    Ankush Singh . unresolved

    Can you add a TODO to fix this to instead point to an HC article?

    File ios/chrome/browser/settings/model/sync/utils/account_error_ui_info.h
    Line 23, Patchset 20: // User needs to manager their bookmarks.
    kManageBookmarks,
    Ankush Singh . unresolved

    Can we add the ios logic in a separate CL?

    Open in Gerrit

    Related details

    Attention is currently required from:
    • Michael Tatarski
    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: I49c6804f76b83a7506e4216017f117a549480147
    Gerrit-Change-Number: 7054925
    Gerrit-PatchSet: 21
    Gerrit-Owner: Michael Tatarski <mtat...@google.com>
    Gerrit-Reviewer: Ankush Singh <ankus...@google.com>
    Gerrit-Reviewer: Marc Treib <tr...@chromium.org>
    Gerrit-Reviewer: Michael Tatarski <mtat...@google.com>
    Gerrit-CC: Chromium Metrics Reviews <chromium-met...@google.com>
    Gerrit-Attention: Michael Tatarski <mtat...@google.com>
    Gerrit-Comment-Date: Thu, 06 Nov 2025 15:53:51 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: No
    satisfied_requirement
    unsatisfied_requirement
    open
    diffy

    Marc Treib (Gerrit)

    unread,
    Nov 6, 2025, 10:56:12 AM (6 days ago) Nov 6
    to Michael Tatarski, Ankush Singh, Marc Treib, Chromium Metrics Reviews, AyeAye, Chromium LUCI CQ, feature-me...@chromium.org, marq+...@chromium.org, ios-r...@chromium.org, ios-revie...@chromium.org, srahim...@chromium.org, asvitkine...@chromium.org
    Attention needed from Michael Tatarski

    Marc Treib added 13 comments

    File chrome/app/settings_strings.grdp
    Line 4473, Patchset 21 (Latest): </message>
    Marc Treib . unresolved

    Are the strings final? If not, it's best practice to add `translateable="false"` to avoid unnecessary translation churn.

    File chrome/browser/ui/views/profiles/profile_menu_view.cc
    Line 122, Patchset 21 (Latest):// Returns the button text for a given sync error.
    Marc Treib . unresolved

    nit: I think this comment doesn't really add anything; it just repeats the function name in more words

    Line 380, Patchset 21 (Latest): chrome::ShowSettingsSubPage(&browser(), chrome::kSyncSetupSubPage);
    Marc Treib . unresolved

    Is this the right action? What can the user do on that page?

    File components/sync/service/bookmark_sync_error_util.h
    Line 1, Patchset 21 (Latest):// Copyright 2024 The Chromium Authors
    Marc Treib . unresolved

    2025

    File components/sync/service/bookmark_sync_error_util.cc
    Line 1, Patchset 21 (Latest):// Copyright 2024 The Chromium Authors
    Marc Treib . unresolved

    2025

    File components/sync/service/sync_error.h
    Line 42, Patchset 14: // `MODEL_ERROR`.
    Marc Treib . unresolved

    Hm, maybe in that case we should make the ctor private and introduce static factory functions instead? Like `CreateModelError`, `CreateConfigurationError`, etc. Then each can take exactly the params it needs.
    (This is a detail though, not a high-level concern.)

    Marc Treib

    (still open)

    File components/sync/service/sync_service_impl.cc
    Line 947, Patchset 21 (Latest): // type specific errors.
    Marc Treib . unresolved

    I guess we could introduce something like a `map<ModelError::Type, UserActionableError>` but that would only make sense once there's maybe 3 such errors. I'm not sure it's worth adding a TODO for this already, if there are no plans to address it in the foreseeable future. (One way to look at this: You can't close the bug until the TODO is addressed!)

    Line 971, Patchset 14: }
    Marc Treib . resolved

    I'm not thrilled about putting so much data-type-specific logic into SyncService - ideally we'd find a way to put this logic closer to the bookmarks code.

    Michael Tatarski

    True. I created a free function that encapsulates the logic for the bookmark related model errors. WDYT about it?

    Marc Treib

    SG for now. Ideally this can at some point move out of components/sync, when GetUserActionableError() moves to its own service, but until then this seems like more or less the best we can do.

    File components/sync/test/data_type_manager_mock.h
    Line 31, Patchset 21 (Latest): MOCK_METHOD(void, ResetDataTypeErrors, (), (override));
    Marc Treib . unresolved

    Does this work? ResetDataTypeErrors is private

    File ios/chrome/app/strings/ios_chromium_strings.grd
    Line 198, Patchset 21 (Latest): You have reached the limit for the number of bookmarks. To add more, you’ll need to delete some.
    Marc Treib . unresolved

    1) Please unify "chromium" and "google_chrome" strings since they're identical.
    2) These are different from the desktop strings - is that intentional?

    File ios/chrome/browser/authentication/account_menu/coordinator/account_menu_mediator.mm
    Line 368, Patchset 21 (Latest): case syncer::SyncService::UserActionableError::kBookmarksLimitExceeded:
    Marc Treib . unresolved

    I don't think this is really NOTREACHED?!

    File ios/chrome/browser/settings/model/sync/utils/account_error_ui_info.h
    Line 23, Patchset 21 (Latest): // User needs to manager their bookmarks.
    Marc Treib . unresolved

    `manage`

    File ios/chrome/browser/settings/model/sync/utils/sync_util.mm
    Line 234, Patchset 21 (Latest): case syncer::SyncService::UserActionableError::kNeedsClientUpgrade:

    case syncer::SyncService::UserActionableError::kBookmarksLimitExceeded:
    // UI not implemented for this case.
    Marc Treib . unresolved

    Should it be? (Which UI does this correspond to?)

    Similar for the instances below.

    Gerrit-Comment-Date: Thu, 06 Nov 2025 15:56:00 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: No
    Comment-In-Reply-To: Marc Treib <tr...@chromium.org>
    Comment-In-Reply-To: Michael Tatarski <mtat...@google.com>
    satisfied_requirement
    unsatisfied_requirement
    open
    diffy

    Michael Tatarski (Gerrit)

    unread,
    Nov 10, 2025, 5:37:52 AM (3 days ago) Nov 10
    to Ankush Singh, Marc Treib, Chromium Metrics Reviews, AyeAye, Chromium LUCI CQ, feature-me...@chromium.org, marq+...@chromium.org, ios-r...@chromium.org, ios-revie...@chromium.org, srahim...@chromium.org, asvitkine...@chromium.org
    Attention needed from Ankush Singh and Marc Treib

    Michael Tatarski voted and added 14 comments

    Votes added by Michael Tatarski

    Commit-Queue+1

    14 comments

    Patchset-level comments
    File-level comment, Patchset 21:
    Ankush Singh . resolved

    Thanks! If possible, please split the current CL into atleast 3:
    1. Model error to user actionable error part (maybe you can even skip introducing a new user actionable error in this CL since that'd require updating the switch statements).
    2. Using the user actionable error on the UI side.
    3. ios code.
    WDYT?

    Michael Tatarski

    Yes, it definitely makes sense.

    File chrome/app/settings_strings.grdp
    Line 4467, Patchset 20: <!-- Sync Page / Account Settings Page -->
    <message name="IDS_SETTINGS_ERROR_BOOKMARKS_LIMIT_EXCEEDED_USER_ERROR_DESCRIPTION" desc="Error message to resolve the error that the bookmarks limit has been exceeded.">
    To continue syncing, reduce the number of bookmarks
    </message>
    <message name="IDS_SETTINGS_BOOKMARKS_LIMIT_EXCEEDED_ERROR_BUTTON" desc="Label for a button that opens a help article about the bookmarks limit.">
    Learn more
    </message>
    Ankush Singh . resolved

    I'll recommend we use some pre-existing strings for now, instead of introducing temporary strings.

    Michael Tatarski

    Done

    Line 4473, Patchset 21: </message>
    Marc Treib . resolved

    Are the strings final? If not, it's best practice to add `translateable="false"` to avoid unnecessary translation churn.

    Michael Tatarski

    Thanks

    File chrome/browser/sync/sync_ui_util.cc
    Line 136, Patchset 20: return IDS_SETTINGS_BOOKMARKS_LIMIT_EXCEEDED_ERROR_BUTTON;
    Ankush Singh . resolved

    Can you a TODO to update this later?

    Michael Tatarski

    Done

    Line 215, Patchset 20: SyncStatusMessageType::kSyncError,
    IDS_SETTINGS_ERROR_BOOKMARKS_LIMIT_EXCEEDED_USER_ERROR_DESCRIPTION,
    IDS_SETTINGS_BOOKMARKS_LIMIT_EXCEEDED_ERROR_BUTTON,
    IDS_SETTINGS_SIGN_OUT, SyncStatusActionType::kNoAction};
    Ankush Singh . resolved

    Can you a TODO to update this later?

    Michael Tatarski

    Done

    Line 260, Patchset 20: case syncer::SyncService::UserActionableError::kBookmarksLimitExceeded:
    Ankush Singh . resolved

    Can you a TODO to update this later and other similar places in other files?

    Michael Tatarski

    Done

    File chrome/browser/ui/views/profiles/profile_menu_view.cc
    Line 122, Patchset 21:// Returns the button text for a given sync error.
    Marc Treib . resolved

    nit: I think this comment doesn't really add anything; it just repeats the function name in more words

    Michael Tatarski

    Done

    Line 380, Patchset 20: chrome::ShowSettingsSubPage(&browser(), chrome::kSyncSetupSubPage);
    Ankush Singh . resolved

    Can you add a TODO to fix this to instead point to an HC article?

    Michael Tatarski

    Done

    Line 380, Patchset 21: chrome::ShowSettingsSubPage(&browser(), chrome::kSyncSetupSubPage);
    Marc Treib . resolved

    Is this the right action? What can the user do on that page?

    Michael Tatarski

    No, it was just a placeholder, I added a TODO instead

    File components/sync/service/bookmark_sync_error_util.h
    Line 1, Patchset 21:// Copyright 2024 The Chromium Authors
    Marc Treib . resolved

    2025

    Michael Tatarski

    Done

    File components/sync/service/bookmark_sync_error_util.cc
    Line 1, Patchset 21:// Copyright 2024 The Chromium Authors
    Marc Treib . resolved

    2025

    Michael Tatarski

    Done

    File components/sync/service/sync_error.h
    Line 42, Patchset 14: // `MODEL_ERROR`.
    Marc Treib . resolved

    Hm, maybe in that case we should make the ctor private and introduce static factory functions instead? Like `CreateModelError`, `CreateConfigurationError`, etc. Then each can take exactly the params it needs.
    (This is a detail though, not a high-level concern.)

    Marc Treib

    (still open)

    Michael Tatarski

    Moved the discussion to the precursor CL. Therefore, I will resolve the suggestion.

    File components/sync/service/sync_service_impl.cc
    Line 947, Patchset 21: // type specific errors.
    Marc Treib . resolved

    I guess we could introduce something like a `map<ModelError::Type, UserActionableError>` but that would only make sense once there's maybe 3 such errors. I'm not sure it's worth adding a TODO for this already, if there are no plans to address it in the foreseeable future. (One way to look at this: You can't close the bug until the TODO is addressed!)

    Michael Tatarski

    Acknowledged

    File components/sync/test/data_type_manager_mock.h
    Line 31, Patchset 21: MOCK_METHOD(void, ResetDataTypeErrors, (), (override));
    Marc Treib . resolved

    Does this work? ResetDataTypeErrors is private

    Michael Tatarski

    Done

    Open in Gerrit

    Related details

    Attention is currently required from:
    • Ankush Singh
    • Marc Treib
    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: I49c6804f76b83a7506e4216017f117a549480147
    Gerrit-Change-Number: 7054925
    Gerrit-PatchSet: 31
    Gerrit-Owner: Michael Tatarski <mtat...@google.com>
    Gerrit-Reviewer: Ankush Singh <ankus...@google.com>
    Gerrit-Reviewer: Marc Treib <tr...@chromium.org>
    Gerrit-Reviewer: Michael Tatarski <mtat...@google.com>
    Gerrit-CC: Chromium Metrics Reviews <chromium-met...@google.com>
    Gerrit-Attention: Ankush Singh <ankus...@google.com>
    Gerrit-Attention: Marc Treib <tr...@chromium.org>
    Gerrit-Comment-Date: Mon, 10 Nov 2025 10:37:36 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: Yes
    Comment-In-Reply-To: Ankush Singh <ankus...@google.com>
    Comment-In-Reply-To: Marc Treib <tr...@chromium.org>
    satisfied_requirement
    unsatisfied_requirement
    open
    diffy

    Marc Treib (Gerrit)

    unread,
    Nov 10, 2025, 5:55:33 AM (3 days ago) Nov 10
    to Michael Tatarski, Ankush Singh, Marc Treib, Chromium Metrics Reviews, AyeAye, Chromium LUCI CQ, feature-me...@chromium.org, marq+...@chromium.org, ios-r...@chromium.org, ios-revie...@chromium.org, srahim...@chromium.org, asvitkine...@chromium.org
    Attention needed from Ankush Singh and Michael Tatarski

    Marc Treib added 7 comments

    File chrome/app/settings_strings.grdp
    Line 4468, Patchset 31: <message name="IDS_SETTINGS_ERROR_BOOKMARKS_LIMIT_EXCEEDED_USER_ERROR_DESCRIPTION" desc="When Chrome shows a toast notification after the user turned off the Enhanced Protection setting, this is the text on the toast letting the user know that the Enhanced Protection setting is off." translateable="false">
    Marc Treib . unresolved

    Please update the description

    Line 4471, Patchset 31: <message name="IDS_SETTINGS_BOOKMARKS_LIMIT_EXCEEDED_ERROR_BUTTON" desc="When Chrome shows a toast notification after the user turned off the Enhanced Protection setting, this is the text on the toast letting the user know that the Enhanced Protection setting is off." translateable="false">
    Marc Treib . unresolved

    Also here

    File chrome/browser/sync/sync_ui_util.cc
    Line 136, Patchset 31: // TODO(crbug.com/452968646): Update this when the string is finalized.
    Marc Treib . unresolved

    Update what?

    Line 215, Patchset 31: // TODO(crbug.com/452968646): Update this when the string is finalized.
    Marc Treib . unresolved

    Update what?

    Line 219, Patchset 31: IDS_SETTINGS_BOOKMARKS_LIMIT_EXCEEDED_ERROR_BUTTON,
    Marc Treib . unresolved

    `button_string_id`?

    File chrome/browser/ui/toolbar/app_menu_model.cc
    Line 674, Patchset 31: // Only shown for "Sync-the-feature".
    Marc Treib . unresolved

    This comment doesn't seem correct here? Certainly not for the new error code, but I think also already not for kUnrecoverableError. I think it refers to kNeedsSettingsConfirmation only?

    File chrome/browser/ui/views/profiles/profile_menu_view.cc
    Line 379, Patchset 31: // TODO(crbug.com/452968646): Update this when action is finalized.
    Marc Treib . unresolved

    If you're planning to land an incomplete implementation, it should be behind a feature flag, so that we don't accidentally roll out a partial implementation.

    Open in Gerrit

    Related details

    Attention is currently required from:
    • Ankush Singh
    • Michael Tatarski
    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: I49c6804f76b83a7506e4216017f117a549480147
    Gerrit-Change-Number: 7054925
    Gerrit-PatchSet: 31
    Gerrit-Owner: Michael Tatarski <mtat...@google.com>
    Gerrit-Reviewer: Ankush Singh <ankus...@google.com>
    Gerrit-Reviewer: Marc Treib <tr...@chromium.org>
    Gerrit-Reviewer: Michael Tatarski <mtat...@google.com>
    Gerrit-CC: Chromium Metrics Reviews <chromium-met...@google.com>
    Gerrit-Attention: Ankush Singh <ankus...@google.com>
    Gerrit-Attention: Michael Tatarski <mtat...@google.com>
    Gerrit-Comment-Date: Mon, 10 Nov 2025 10:55:10 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: No
    satisfied_requirement
    unsatisfied_requirement
    open
    diffy

    Michael Tatarski (Gerrit)

    unread,
    Nov 10, 2025, 6:11:49 AM (3 days ago) Nov 10
    to Ankush Singh, Marc Treib, Chromium Metrics Reviews, AyeAye, Chromium LUCI CQ, feature-me...@chromium.org, marq+...@chromium.org, ios-r...@chromium.org, ios-revie...@chromium.org, srahim...@chromium.org, asvitkine...@chromium.org
    Attention needed from Ankush Singh and Marc Treib

    Michael Tatarski voted and added 7 comments

    Votes added by Michael Tatarski

    Commit-Queue+1

    7 comments

    File chrome/app/settings_strings.grdp
    Line 4468, Patchset 31: <message name="IDS_SETTINGS_ERROR_BOOKMARKS_LIMIT_EXCEEDED_USER_ERROR_DESCRIPTION" desc="When Chrome shows a toast notification after the user turned off the Enhanced Protection setting, this is the text on the toast letting the user know that the Enhanced Protection setting is off." translateable="false">
    Marc Treib . unresolved

    Please update the description

    Michael Tatarski

    Ankush suggested we should use some existing strings. We are still waiting for the actual strings that should be surfaced.

    Line 4471, Patchset 31: <message name="IDS_SETTINGS_BOOKMARKS_LIMIT_EXCEEDED_ERROR_BUTTON" desc="When Chrome shows a toast notification after the user turned off the Enhanced Protection setting, this is the text on the toast letting the user know that the Enhanced Protection setting is off." translateable="false">
    Marc Treib . unresolved

    Also here

    Michael Tatarski

    Same.

    File chrome/browser/sync/sync_ui_util.cc
    Line 136, Patchset 31: // TODO(crbug.com/452968646): Update this when the string is finalized.
    Marc Treib . resolved

    Update what?

    Michael Tatarski

    Done

    Line 215, Patchset 31: // TODO(crbug.com/452968646): Update this when the string is finalized.
    Marc Treib . resolved

    Update what?

    Michael Tatarski

    Done

    Line 219, Patchset 31: IDS_SETTINGS_BOOKMARKS_LIMIT_EXCEEDED_ERROR_BUTTON,
    Marc Treib . resolved

    `button_string_id`?

    Michael Tatarski

    Done

    File chrome/browser/ui/toolbar/app_menu_model.cc
    Line 674, Patchset 31: // Only shown for "Sync-the-feature".
    Marc Treib . resolved

    This comment doesn't seem correct here? Certainly not for the new error code, but I think also already not for kUnrecoverableError. I think it refers to kNeedsSettingsConfirmation only?

    Michael Tatarski

    Done

    File chrome/browser/ui/views/profiles/profile_menu_view.cc
    Line 379, Patchset 31: // TODO(crbug.com/452968646): Update this when action is finalized.
    Marc Treib . resolved

    If you're planning to land an incomplete implementation, it should be behind a feature flag, so that we don't accidentally roll out a partial implementation.

    Michael Tatarski

    I'm not planning to land it. I just want to get the patch reviewed :) But thanks for the information, might be useful in the future.

    Open in Gerrit

    Related details

    Attention is currently required from:
    • Ankush Singh
    • Marc Treib
    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: I49c6804f76b83a7506e4216017f117a549480147
    Gerrit-Change-Number: 7054925
    Gerrit-PatchSet: 33
    Gerrit-Owner: Michael Tatarski <mtat...@google.com>
    Gerrit-Reviewer: Ankush Singh <ankus...@google.com>
    Gerrit-Reviewer: Marc Treib <tr...@chromium.org>
    Gerrit-Reviewer: Michael Tatarski <mtat...@google.com>
    Gerrit-CC: Chromium Metrics Reviews <chromium-met...@google.com>
    Gerrit-Attention: Ankush Singh <ankus...@google.com>
    Gerrit-Attention: Marc Treib <tr...@chromium.org>
    Gerrit-Comment-Date: Mon, 10 Nov 2025 11:11:35 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: Yes
    Comment-In-Reply-To: Marc Treib <tr...@chromium.org>
    satisfied_requirement
    unsatisfied_requirement
    open
    diffy

    Marc Treib (Gerrit)

    unread,
    Nov 10, 2025, 6:16:21 AM (3 days ago) Nov 10
    to Michael Tatarski, Ankush Singh, Marc Treib, Chromium Metrics Reviews, AyeAye, Chromium LUCI CQ, feature-me...@chromium.org, marq+...@chromium.org, ios-r...@chromium.org, ios-revie...@chromium.org, srahim...@chromium.org, asvitkine...@chromium.org
    Attention needed from Ankush Singh and Michael Tatarski

    Marc Treib added 1 comment

    File chrome/app/settings_strings.grdp
    Line 4468, Patchset 31: <message name="IDS_SETTINGS_ERROR_BOOKMARKS_LIMIT_EXCEEDED_USER_ERROR_DESCRIPTION" desc="When Chrome shows a toast notification after the user turned off the Enhanced Protection setting, this is the text on the toast letting the user know that the Enhanced Protection setting is off." translateable="false">
    Marc Treib . unresolved

    Please update the description

    Michael Tatarski

    Ankush suggested we should use some existing strings. We are still waiting for the actual strings that should be surfaced.

    Marc Treib

    use some existing strings

    But that's not what you did..?
    Introducing a new string, but with a mismatched description, definitely doesn't make sense.

    @ankus...@google.com Why did you suggest not introducing new strings? If it's to avoid translation churn, that's IMO better achieved by "translateable=false".

    Open in Gerrit

    Related details

    Attention is currently required from:
    • Ankush Singh
    • Michael Tatarski
    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: I49c6804f76b83a7506e4216017f117a549480147
    Gerrit-Change-Number: 7054925
    Gerrit-PatchSet: 33
    Gerrit-Owner: Michael Tatarski <mtat...@google.com>
    Gerrit-Reviewer: Ankush Singh <ankus...@google.com>
    Gerrit-Reviewer: Marc Treib <tr...@chromium.org>
    Gerrit-Reviewer: Michael Tatarski <mtat...@google.com>
    Gerrit-CC: Chromium Metrics Reviews <chromium-met...@google.com>
    Gerrit-Attention: Ankush Singh <ankus...@google.com>
    Gerrit-Attention: Michael Tatarski <mtat...@google.com>
    Gerrit-Comment-Date: Mon, 10 Nov 2025 11:16:07 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: No
    satisfied_requirement
    unsatisfied_requirement
    open
    diffy

    Ankush Singh (Gerrit)

    unread,
    Nov 10, 2025, 6:16:44 AM (3 days ago) Nov 10
    to Michael Tatarski, Marc Treib, Chromium Metrics Reviews, AyeAye, Chromium LUCI CQ, feature-me...@chromium.org, marq+...@chromium.org, ios-r...@chromium.org, ios-revie...@chromium.org, srahim...@chromium.org, asvitkine...@chromium.org
    Attention needed from Michael Tatarski

    Ankush Singh added 4 comments

    Patchset-level comments
    Ankush Singh . resolved

    Thanks!

    File components/sync/service/data_type_manager_impl.cc
    Line 156, Patchset 32: ModelError::Type::kModelLoadManagerDataTypeInFailedState));
    File components/sync/service/sync_service_impl.cc
    Line 946, Patchset 32: const std::map<DataType, SyncError> data_type_errors =
    data_type_manager_->GetDataTypeErrors();
    auto it = data_type_errors.find(BOOKMARKS);
    if (it != data_type_errors.end() &&
    IsBookmarksLimitExceededError(it->second)) {
    return UserActionableError::kBookmarksLimitExceeded;
    }
    Ankush Singh . unresolved

    +1 to Marc's comment about this being behind a feature flag. And second, we also want to show the error only if the user hasn't already "resolved" it: https://docs.google.com/document/d/1ykLyqhMV1aPNOHtAhGlT-nMrkJqwX23RfsjkeQIBhjg/edit?tab=t.0#bookmark=id.gx1z1nndmj5e (sorry, Googlers-only).

    Line 946, Patchset 32: const std::map<DataType, SyncError> data_type_errors =
    data_type_manager_->GetDataTypeErrors();
    auto it = data_type_errors.find(BOOKMARKS);
    if (it != data_type_errors.end() &&
    IsBookmarksLimitExceededError(it->second)) {
    return UserActionableError::kBookmarksLimitExceeded;
    }
    Ankush Singh . unresolved

    Please add tests for this.

    Open in Gerrit

    Related details

    Attention is currently required from:
    • Michael Tatarski
    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: I49c6804f76b83a7506e4216017f117a549480147
    Gerrit-Change-Number: 7054925
    Gerrit-PatchSet: 32
    Gerrit-Owner: Michael Tatarski <mtat...@google.com>
    Gerrit-Reviewer: Ankush Singh <ankus...@google.com>
    Gerrit-Reviewer: Marc Treib <tr...@chromium.org>
    Gerrit-Reviewer: Michael Tatarski <mtat...@google.com>
    Gerrit-CC: Chromium Metrics Reviews <chromium-met...@google.com>
    Gerrit-Attention: Michael Tatarski <mtat...@google.com>
    Gerrit-Comment-Date: Mon, 10 Nov 2025 11:16:27 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: No
    satisfied_requirement
    unsatisfied_requirement
    open
    diffy

    Ankush Singh (Gerrit)

    unread,
    Nov 10, 2025, 6:23:16 AM (2 days ago) Nov 10
    to Michael Tatarski, Marc Treib, Chromium Metrics Reviews, AyeAye, Chromium LUCI CQ, feature-me...@chromium.org, marq+...@chromium.org, ios-r...@chromium.org, ios-revie...@chromium.org, srahim...@chromium.org, asvitkine...@chromium.org
    Attention needed from Michael Tatarski

    Ankush Singh added 1 comment

    File chrome/app/settings_strings.grdp
    Line 4468, Patchset 31: <message name="IDS_SETTINGS_ERROR_BOOKMARKS_LIMIT_EXCEEDED_USER_ERROR_DESCRIPTION" desc="When Chrome shows a toast notification after the user turned off the Enhanced Protection setting, this is the text on the toast letting the user know that the Enhanced Protection setting is off." translateable="false">
    Marc Treib . unresolved

    Please update the description

    Michael Tatarski

    Ankush suggested we should use some existing strings. We are still waiting for the actual strings that should be surfaced.

    Marc Treib

    use some existing strings

    But that's not what you did..?
    Introducing a new string, but with a mismatched description, definitely doesn't make sense.

    @ankus...@google.com Why did you suggest not introducing new strings? If it's to avoid translation churn, that's IMO better achieved by "translateable=false".

    Ankush Singh

    TBH I didn't know about translateable=false. If that's the recommended approach, then np!

    Open in Gerrit

    Related details

    Attention is currently required from:
    • Michael Tatarski
    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: I49c6804f76b83a7506e4216017f117a549480147
    Gerrit-Change-Number: 7054925
    Gerrit-PatchSet: 33
    Gerrit-Owner: Michael Tatarski <mtat...@google.com>
    Gerrit-Reviewer: Ankush Singh <ankus...@google.com>
    Gerrit-Reviewer: Marc Treib <tr...@chromium.org>
    Gerrit-Reviewer: Michael Tatarski <mtat...@google.com>
    Gerrit-CC: Chromium Metrics Reviews <chromium-met...@google.com>
    Gerrit-Attention: Michael Tatarski <mtat...@google.com>
    Gerrit-Comment-Date: Mon, 10 Nov 2025 11:23:02 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: No
    satisfied_requirement
    unsatisfied_requirement
    open
    diffy

    Ankush Singh (Gerrit)

    unread,
    Nov 10, 2025, 6:39:30 AM (2 days ago) Nov 10
    to Michael Tatarski, Marc Treib, Chromium Metrics Reviews, AyeAye, Chromium LUCI CQ, feature-me...@chromium.org, marq+...@chromium.org, ios-r...@chromium.org, ios-revie...@chromium.org, srahim...@chromium.org, asvitkine...@chromium.org
    Attention needed from Michael Tatarski

    Ankush Singh added 1 comment

    Commit Message
    Line 18, Patchset 33:Bug: 452968646
    Ankush Singh . unresolved

    Please use crbug.com/452813642 as the tracking bug, the other one linked is not in Chromium bug tracker. Same for the other CLs you're sending out. Thanks!

    Gerrit-Comment-Date: Mon, 10 Nov 2025 11:39:11 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: No
    satisfied_requirement
    unsatisfied_requirement
    open
    diffy

    Michael Tatarski (Gerrit)

    unread,
    6:00 AM (12 hours ago) 6:00 AM
    to Ankush Singh, Marc Treib, Chromium Metrics Reviews, AyeAye, Chromium LUCI CQ, feature-me...@chromium.org, marq+...@chromium.org, ios-r...@chromium.org, ios-revie...@chromium.org, srahim...@chromium.org, asvitkine...@chromium.org
    Attention needed from Ankush Singh and Marc Treib

    Michael Tatarski voted and added 9 comments

    Votes added by Michael Tatarski

    Commit-Queue+1

    9 comments

    Commit Message
    Line 18, Patchset 33:Bug: 452968646
    Ankush Singh . resolved

    Please use crbug.com/452813642 as the tracking bug, the other one linked is not in Chromium bug tracker. Same for the other CLs you're sending out. Thanks!

    Michael Tatarski

    Thank you, I used crbug.com/452968646 instead since it is more descriptive and closed the one you mentioned as a duplicate.

    File chrome/app/settings_strings.grdp
    Line 4468, Patchset 31: <message name="IDS_SETTINGS_ERROR_BOOKMARKS_LIMIT_EXCEEDED_USER_ERROR_DESCRIPTION" desc="When Chrome shows a toast notification after the user turned off the Enhanced Protection setting, this is the text on the toast letting the user know that the Enhanced Protection setting is off." translateable="false">
    Marc Treib . resolved

    Please update the description

    Michael Tatarski

    Ankush suggested we should use some existing strings. We are still waiting for the actual strings that should be surfaced.

    Marc Treib

    use some existing strings

    But that's not what you did..?
    Introducing a new string, but with a mismatched description, definitely doesn't make sense.

    @ankus...@google.com Why did you suggest not introducing new strings? If it's to avoid translation churn, that's IMO better achieved by "translateable=false".

    Ankush Singh

    TBH I didn't know about translateable=false. If that's the recommended approach, then np!

    Michael Tatarski

    Done

    Line 4471, Patchset 31: <message name="IDS_SETTINGS_BOOKMARKS_LIMIT_EXCEEDED_ERROR_BUTTON" desc="When Chrome shows a toast notification after the user turned off the Enhanced Protection setting, this is the text on the toast letting the user know that the Enhanced Protection setting is off." translateable="false">
    Marc Treib . resolved

    Also here

    Michael Tatarski

    Same.

    Michael Tatarski

    Done

    File components/sync/service/data_type_manager_impl.cc
    Line 156, Patchset 32: ModelError::Type::kModelLoadManagerDataTypeInFailedState));
    Ankush Singh . resolved
    Michael Tatarski

    It was adjusted in the previous CL such that the actual model error is propagated. :)

    File components/sync/service/sync_service_impl.cc
    Line 946, Patchset 32: const std::map<DataType, SyncError> data_type_errors =
    data_type_manager_->GetDataTypeErrors();
    auto it = data_type_errors.find(BOOKMARKS);
    if (it != data_type_errors.end() &&
    IsBookmarksLimitExceededError(it->second)) {
    return UserActionableError::kBookmarksLimitExceeded;
    }
    Ankush Singh . resolved

    Please add tests for this.

    Michael Tatarski

    Done

    Line 946, Patchset 32: const std::map<DataType, SyncError> data_type_errors =
    data_type_manager_->GetDataTypeErrors();
    auto it = data_type_errors.find(BOOKMARKS);
    if (it != data_type_errors.end() &&
    IsBookmarksLimitExceededError(it->second)) {
    return UserActionableError::kBookmarksLimitExceeded;
    }
    Ankush Singh . resolved

    +1 to Marc's comment about this being behind a feature flag. And second, we also want to show the error only if the user hasn't already "resolved" it: https://docs.google.com/document/d/1ykLyqhMV1aPNOHtAhGlT-nMrkJqwX23RfsjkeQIBhjg/edit?tab=t.0#bookmark=id.gx1z1nndmj5e (sorry, Googlers-only).

    Michael Tatarski

    Done

    File ios/chrome/browser/authentication/account_menu/coordinator/account_menu_mediator.mm
    Line 368, Patchset 21: case syncer::SyncService::UserActionableError::kBookmarksLimitExceeded:
    Marc Treib . resolved

    I don't think this is really NOTREACHED?!

    Michael Tatarski

    Done

    File ios/chrome/browser/settings/model/sync/utils/account_error_ui_info.h
    Line 23, Patchset 21: // User needs to manager their bookmarks.
    Marc Treib . resolved

    `manage`

    Michael Tatarski

    Done

    Line 23, Patchset 20: // User needs to manager their bookmarks.
    kManageBookmarks,
    Ankush Singh . resolved

    Can we add the ios logic in a separate CL?

    Michael Tatarski

    Done

    Open in Gerrit

    Related details

    Attention is currently required from:
    • Ankush Singh
    • Marc Treib
    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: I49c6804f76b83a7506e4216017f117a549480147
    Gerrit-Change-Number: 7054925
    Gerrit-PatchSet: 41
    Gerrit-Owner: Michael Tatarski <mtat...@google.com>
    Gerrit-Reviewer: Ankush Singh <ankus...@google.com>
    Gerrit-Reviewer: Marc Treib <tr...@chromium.org>
    Gerrit-Reviewer: Michael Tatarski <mtat...@google.com>
    Gerrit-CC: Chromium Metrics Reviews <chromium-met...@google.com>
    Gerrit-Attention: Ankush Singh <ankus...@google.com>
    Gerrit-Attention: Marc Treib <tr...@chromium.org>
    Gerrit-Comment-Date: Wed, 12 Nov 2025 11:00:17 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: Yes
    Comment-In-Reply-To: Ankush Singh <ankus...@google.com>
    satisfied_requirement
    unsatisfied_requirement
    open
    diffy

    Marc Treib (Gerrit)

    unread,
    6:17 AM (12 hours ago) 6:17 AM
    to Michael Tatarski, Ankush Singh, Marc Treib, Chromium Metrics Reviews, AyeAye, Chromium LUCI CQ, feature-me...@chromium.org, marq+...@chromium.org, ios-r...@chromium.org, ios-revie...@chromium.org, srahim...@chromium.org, asvitkine...@chromium.org
    Attention needed from Ankush Singh and Michael Tatarski

    Marc Treib added 8 comments

    File chrome/browser/sync/sync_ui_util.cc
    Line 138, Patchset 41 (Latest): NOTREACHED();
    Marc Treib . unresolved

    Out of curiosity: Why add this NOTREACHED? I think we usually don't add it after a `switch` with `return`s - e.g. `GetAvatarSyncErrorLabelsForSettings` below doesn't have it.

    Line 256, Patchset 41 (Latest): base::UTF8ToUTF16(user_email));
    case syncer::SyncService::UserActionableError::kNeedsSettingsConfirmation:
    case syncer::SyncService::UserActionableError::kUnrecoverableError:

    case syncer::SyncService::UserActionableError::kBookmarksLimitExceeded:
    Marc Treib . unresolved

    This is changing the string for these existing errors

    File chrome/browser/ui/toolbar/app_menu_model.cc
    Line 674, Patchset 41 (Latest): case syncer::SyncService::UserActionableError::kUnrecoverableError:

    case syncer::SyncService::UserActionableError::kBookmarksLimitExceeded:
    command_id = IDC_SHOW_SYNC_SETTINGS;
    Marc Treib . unresolved

    Is this the correct action for the new error? If not, please add a separate case for it and add a TODO.

    File chrome/browser/ui/views/profiles/profile_menu_view.cc
    Line 379, Patchset 41 (Latest): // TODO(crbug.com/452968646): Update this to the correct help center link.
    Marc Treib . unresolved

    `CHECK(base::FeatureList::IsEnabled(kSyncShowBookmarksLimitExceededError));`?

    File components/sync/service/sync_internals_util.cc
    Line 217, Patchset 41 (Latest): // TODO(crbug.com/452968646): Update this when the string is finalized.
    Marc Treib . unresolved

    This is just a debug string, I don't think it needs to be updated.

    File components/sync/service/sync_prefs.h
    Line 239, Patchset 41 (Latest): void ClearBookmarksLimitExceededErrorAcknowledged();
    Marc Treib . unresolved

    Do we actually need this? AFAIK the PRD doesn't contain anything about acknowledging/silencing the error.

    File components/sync/service/sync_service.h
    Line 558, Patchset 41 (Latest): virtual void AcknowledgeBookmarksLimitExceededError() = 0;
    Marc Treib . unresolved

    If we need this API at all (see other comment), it should probably be on `SyncUserSettings` rather than on the service directly.

    Line 556, Patchset 41 (Latest): // GetUserActionableError() will not return kBookmarksLimitExceeded until the
    // next browser restart.
    Marc Treib . unresolved

    If it's just until the next restart, why persist it in prefs?

    Open in Gerrit

    Related details

    Attention is currently required from:
    • Ankush Singh
    • Michael Tatarski
    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: I49c6804f76b83a7506e4216017f117a549480147
    Gerrit-Change-Number: 7054925
    Gerrit-PatchSet: 41
    Gerrit-Owner: Michael Tatarski <mtat...@google.com>
    Gerrit-Reviewer: Ankush Singh <ankus...@google.com>
    Gerrit-Reviewer: Marc Treib <tr...@chromium.org>
    Gerrit-Reviewer: Michael Tatarski <mtat...@google.com>
    Gerrit-CC: Chromium Metrics Reviews <chromium-met...@google.com>
    Gerrit-Attention: Ankush Singh <ankus...@google.com>
    Gerrit-Attention: Michael Tatarski <mtat...@google.com>
    Gerrit-Comment-Date: Wed, 12 Nov 2025 11:17:14 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: No
    satisfied_requirement
    unsatisfied_requirement
    open
    diffy

    Michael Tatarski (Gerrit)

    unread,
    7:31 AM (11 hours ago) 7:31 AM
    to Ankush Singh, Marc Treib, Chromium Metrics Reviews, AyeAye, Chromium LUCI CQ, feature-me...@chromium.org, marq+...@chromium.org, ios-r...@chromium.org, ios-revie...@chromium.org, srahim...@chromium.org, asvitkine...@chromium.org
    Attention needed from Ankush Singh and Marc Treib

    Michael Tatarski voted and added 9 comments

    Votes added by Michael Tatarski

    Commit-Queue+1

    9 comments

    Patchset-level comments
    File-level comment, Patchset 48 (Latest):
    Michael Tatarski . resolved

    Thanks

    File chrome/browser/sync/sync_ui_util.cc
    Line 138, Patchset 41: NOTREACHED();
    Marc Treib . resolved

    Out of curiosity: Why add this NOTREACHED? I think we usually don't add it after a `switch` with `return`s - e.g. `GetAvatarSyncErrorLabelsForSettings` below doesn't have it.

    Michael Tatarski

    Done

    Line 256, Patchset 41: base::UTF8ToUTF16(user_email));

    case syncer::SyncService::UserActionableError::kNeedsSettingsConfirmation:
    case syncer::SyncService::UserActionableError::kUnrecoverableError:
    case syncer::SyncService::UserActionableError::kBookmarksLimitExceeded:
    Marc Treib . resolved

    This is changing the string for these existing errors

    Michael Tatarski

    Done

    File chrome/browser/ui/toolbar/app_menu_model.cc
    Line 674, Patchset 41: case syncer::SyncService::UserActionableError::kUnrecoverableError:

    case syncer::SyncService::UserActionableError::kBookmarksLimitExceeded:
    command_id = IDC_SHOW_SYNC_SETTINGS;
    Marc Treib . resolved

    Is this the correct action for the new error? If not, please add a separate case for it and add a TODO.

    Michael Tatarski

    Done

    File chrome/browser/ui/views/profiles/profile_menu_view.cc
    Line 379, Patchset 41: // TODO(crbug.com/452968646): Update this to the correct help center link.
    Marc Treib . resolved

    `CHECK(base::FeatureList::IsEnabled(kSyncShowBookmarksLimitExceededError));`?

    Michael Tatarski

    Done

    File components/sync/service/sync_internals_util.cc
    Line 217, Patchset 41: // TODO(crbug.com/452968646): Update this when the string is finalized.
    Marc Treib . resolved

    This is just a debug string, I don't think it needs to be updated.

    Michael Tatarski

    Done

    File components/sync/service/sync_prefs.h
    Line 239, Patchset 41: void ClearBookmarksLimitExceededErrorAcknowledged();
    Marc Treib . resolved

    Do we actually need this? AFAIK the PRD doesn't contain anything about acknowledging/silencing the error.

    Michael Tatarski

    As discussed via chat, there is a specific section mentioning that the error can be silenced:

    https://docs.google.com/document/d/1ykLyqhMV1aPNOHtAhGlT-nMrkJqwX23RfsjkeQIBhjg/edit?tab=t.0#bookmark=id.gx1z1nndmj5e

    File components/sync/service/sync_service.h
    Line 558, Patchset 41: virtual void AcknowledgeBookmarksLimitExceededError() = 0;
    Marc Treib . resolved

    If we need this API at all (see other comment), it should probably be on `SyncUserSettings` rather than on the service directly.

    Michael Tatarski

    Done

    Line 556, Patchset 41: // GetUserActionableError() will not return kBookmarksLimitExceeded until the
    // next browser restart.
    Marc Treib . resolved

    If it's just until the next restart, why persist it in prefs?

    Michael Tatarski

    Yeah, true. I now saved in memory within a boolean flag. This should be fine, correct?

    Open in Gerrit

    Related details

    Attention is currently required from:
    • Ankush Singh
    • Marc Treib
    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: I49c6804f76b83a7506e4216017f117a549480147
    Gerrit-Change-Number: 7054925
    Gerrit-PatchSet: 48
    Gerrit-Owner: Michael Tatarski <mtat...@google.com>
    Gerrit-Reviewer: Ankush Singh <ankus...@google.com>
    Gerrit-Reviewer: Marc Treib <tr...@chromium.org>
    Gerrit-Reviewer: Michael Tatarski <mtat...@google.com>
    Gerrit-CC: Chromium Metrics Reviews <chromium-met...@google.com>
    Gerrit-Attention: Ankush Singh <ankus...@google.com>
    Gerrit-Attention: Marc Treib <tr...@chromium.org>
    Gerrit-Comment-Date: Wed, 12 Nov 2025 12:30:43 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: Yes
    Comment-In-Reply-To: Marc Treib <tr...@chromium.org>
    satisfied_requirement
    unsatisfied_requirement
    open
    diffy

    Marc Treib (Gerrit)

    unread,
    7:43 AM (11 hours ago) 7:43 AM
    to Michael Tatarski, Ankush Singh, Marc Treib, Chromium Metrics Reviews, AyeAye, Chromium LUCI CQ, feature-me...@chromium.org, marq+...@chromium.org, ios-r...@chromium.org, ios-revie...@chromium.org, srahim...@chromium.org, asvitkine...@chromium.org
    Attention needed from Ankush Singh and Michael Tatarski

    Marc Treib added 2 comments

    File chrome/browser/ui/toolbar/app_menu_model.cc
    Line 680, Patchset 48 (Latest): command_id = IDC_HELP_PAGE_VIA_MENU;
    Marc Treib . unresolved

    Is this the right ID? It's already used elsewhere in this class for a different purpose.

    File components/sync/service/sync_user_settings_impl.cc
    Line 375, Patchset 48 (Latest): prefs_->AcknowledgeBookmarksLimitExceededError();
    Marc Treib . unresolved

    Can we store the flag directly in SyncUserSettings? I don't see a reason to go to SyncPrefs now (and it seems somewhat misleading to store in-memory-only state in SyncPrefs).

    Open in Gerrit

    Related details

    Attention is currently required from:
    • Ankush Singh
    • Michael Tatarski
    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: I49c6804f76b83a7506e4216017f117a549480147
    Gerrit-Change-Number: 7054925
    Gerrit-PatchSet: 48
    Gerrit-Owner: Michael Tatarski <mtat...@google.com>
    Gerrit-Reviewer: Ankush Singh <ankus...@google.com>
    Gerrit-Reviewer: Marc Treib <tr...@chromium.org>
    Gerrit-Reviewer: Michael Tatarski <mtat...@google.com>
    Gerrit-CC: Chromium Metrics Reviews <chromium-met...@google.com>
    Gerrit-Attention: Ankush Singh <ankus...@google.com>
    Gerrit-Attention: Michael Tatarski <mtat...@google.com>
    Gerrit-Comment-Date: Wed, 12 Nov 2025 12:43:19 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: No
    satisfied_requirement
    unsatisfied_requirement
    open
    diffy

    Ankush Singh (Gerrit)

    unread,
    7:53 AM (10 hours ago) 7:53 AM
    to Michael Tatarski, Marc Treib, Chromium Metrics Reviews, AyeAye, Chromium LUCI CQ, feature-me...@chromium.org, marq+...@chromium.org, ios-r...@chromium.org, ios-revie...@chromium.org, srahim...@chromium.org, asvitkine...@chromium.org
    Attention needed from Michael Tatarski

    Ankush Singh added 6 comments

    Patchset-level comments
    Ankush Singh . resolved

    Thanks!

    File chrome/browser/ui/toolbar/app_menu_model.cc
    command_id = IDC_HELP_PAGE_VIA_MENU;
    icon = &vector_icons::kErrorOutlineIcon;
    Ankush Singh . unresolved

    Let's implement this in a separate CL?

    Line 1159, Patchset 48 (Latest): CHECK(base::FeatureList::IsEnabled(
    syncer::kSyncShowBookmarksLimitExceededError));
    syncer::SyncService* const service =
    SyncServiceFactory::GetForProfile(browser_->profile());
    if (service && service->GetUserActionableError() ==
    syncer::SyncService::UserActionableError::
    kBookmarksLimitExceeded) {
    service->GetUserSettings()->AcknowledgeBookmarksLimitExceededError();
    }
    Ankush Singh . unresolved

    Let's implement in a separate CL?

    File components/sync/service/data_type_manager_impl.h
    Line 57, Patchset 48 (Latest): std::map<DataType, SyncError> GetDataTypeErrors() const override;
    Ankush Singh . unresolved

    very optional nit: use `DataTypeStatusTable::TypeErrorMap` instead.

    File components/sync/service/sync_prefs.h
    Line 327, Patchset 48 (Latest): bool bookmarks_limit_exceeded_error_acknowledged_ = false;
    Ankush Singh . unresolved

    I don't think this has anything to do with SyncPrefs? Same for the above methods.
    One idea can be that we introduce a class like BookmarkLimitErrorHandler - or maybe we can thinking about giving it a more generic name (which is ideally better tbh)
    WDYT?

    File components/sync/service/sync_user_settings.h
    Line 188, Patchset 48 (Latest): virtual void AcknowledgeBookmarksLimitExceededError() = 0;
    Ankush Singh . unresolved

    Same as commented for SyncPrefs, this doesn't really have anything to do with the sync user settings right?

    Open in Gerrit

    Related details

    Attention is currently required from:
    • Michael Tatarski
    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: I49c6804f76b83a7506e4216017f117a549480147
    Gerrit-Change-Number: 7054925
    Gerrit-PatchSet: 48
    Gerrit-Owner: Michael Tatarski <mtat...@google.com>
    Gerrit-Reviewer: Ankush Singh <ankus...@google.com>
    Gerrit-Reviewer: Marc Treib <tr...@chromium.org>
    Gerrit-Reviewer: Michael Tatarski <mtat...@google.com>
    Gerrit-CC: Chromium Metrics Reviews <chromium-met...@google.com>
    Gerrit-Attention: Michael Tatarski <mtat...@google.com>
    Gerrit-Comment-Date: Wed, 12 Nov 2025 12:53:12 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: No
    satisfied_requirement
    unsatisfied_requirement
    open
    diffy

    Ankush Singh (Gerrit)

    unread,
    7:54 AM (10 hours ago) 7:54 AM
    to Michael Tatarski, Marc Treib, Chromium Metrics Reviews, AyeAye, Chromium LUCI CQ, feature-me...@chromium.org, marq+...@chromium.org, ios-r...@chromium.org, ios-revie...@chromium.org, srahim...@chromium.org, asvitkine...@chromium.org
    Attention needed from Michael Tatarski

    Ankush Singh added 1 comment

    Patchset-level comments
    Ankush Singh . unresolved

    Let's implement the actions part in follow-up CLs. Thanks!

    Gerrit-Comment-Date: Wed, 12 Nov 2025 12:54:09 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: No
    satisfied_requirement
    unsatisfied_requirement
    open
    diffy

    Marc Treib (Gerrit)

    unread,
    7:57 AM (10 hours ago) 7:57 AM
    to Michael Tatarski, Ankush Singh, Marc Treib, Chromium Metrics Reviews, AyeAye, Chromium LUCI CQ, feature-me...@chromium.org, marq+...@chromium.org, ios-r...@chromium.org, ios-revie...@chromium.org, srahim...@chromium.org, asvitkine...@chromium.org
    Attention needed from Michael Tatarski

    Marc Treib added 1 comment

    File components/sync/service/sync_prefs.h
    Line 327, Patchset 48 (Latest): bool bookmarks_limit_exceeded_error_acknowledged_ = false;
    Ankush Singh . unresolved

    I don't think this has anything to do with SyncPrefs? Same for the above methods.
    One idea can be that we introduce a class like BookmarkLimitErrorHandler - or maybe we can thinking about giving it a more generic name (which is ideally better tbh)
    WDYT?

    Marc Treib

    Certainly not related to prefs; I commented something similar.

    Would you introduce a new class basically just to store this one bool? I guess it could at least then also contain the "is bookmarks limit error" logic...

    Who would own it?

    Gerrit-Comment-Date: Wed, 12 Nov 2025 12:57:36 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: No
    Comment-In-Reply-To: Ankush Singh <ankus...@google.com>
    satisfied_requirement
    unsatisfied_requirement
    open
    diffy

    Ankush Singh (Gerrit)

    unread,
    8:02 AM (10 hours ago) 8:02 AM
    to Michael Tatarski, Marc Treib, Chromium Metrics Reviews, AyeAye, Chromium LUCI CQ, feature-me...@chromium.org, marq+...@chromium.org, ios-r...@chromium.org, ios-revie...@chromium.org, srahim...@chromium.org, asvitkine...@chromium.org
    Attention needed from Michael Tatarski

    Ankush Singh added 2 comments

    Patchset-level comments
    Ankush Singh . resolved

    Thanks!

    File components/sync/service/sync_prefs.h
    Line 327, Patchset 48 (Latest): bool bookmarks_limit_exceeded_error_acknowledged_ = false;
    Ankush Singh . unresolved

    I don't think this has anything to do with SyncPrefs? Same for the above methods.
    One idea can be that we introduce a class like BookmarkLimitErrorHandler - or maybe we can thinking about giving it a more generic name (which is ideally better tbh)
    WDYT?

    Marc Treib

    Certainly not related to prefs; I commented something similar.

    Would you introduce a new class basically just to store this one bool? I guess it could at least then also contain the "is bookmarks limit error" logic...

    Who would own it?

    Ankush Singh

    SyncService should own that.

    Would you introduce a new class basically just to store this one bool? I guess it could at least then also contain the "is bookmarks limit error" logic...

    Yes, that will encapsulate the different logic we have spread out: maintaining this bool, clearing it, the logic in bookmark_sync_error_util.h. It might be even better if we can name it DataTypeErrorHandler to make it more generic but that needs more thought.

    Gerrit-Comment-Date: Wed, 12 Nov 2025 13:01:56 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: No
    Comment-In-Reply-To: Ankush Singh <ankus...@google.com>
    Comment-In-Reply-To: Marc Treib <tr...@chromium.org>
    satisfied_requirement
    unsatisfied_requirement
    open
    diffy
    Reply all
    Reply to author
    Forward
    0 new messages