[sync] Enable bookmarks by default on desktop depending on flags [chromium/src : main]

0 views
Skip to first unread message

Mikel Astiz (Gerrit)

unread,
Jun 11, 2025, 11:04:05 AM6/11/25
to David Roger, Chromium LUCI CQ, chromium...@chromium.org
Attention needed from David Roger

Mikel Astiz voted and added 3 comments

Votes added by Mikel Astiz

Commit-Queue+1

3 comments

Patchset-level comments
File-level comment, Patchset 3:
Mikel Astiz . resolved

droger@: is this work on your radar? Is there an existing bug I can link the patch and TODO against?

Given than SiginPrefs was chosen to implement opt ins on desktop, we will now need to carefully migrate them all to SyncPrefs as done here for bookmarks.

(this patch started with a test-only change following your comment in a previous review, but I ran into this missing functionality)

David Roger

Thank you for looking into this.

You can use https://crbug.com/424124636

I have a question (see my other comment).

Mikel Astiz

Acknowledged

File-level comment, Patchset 13 (Latest):
Mikel Astiz . resolved

Thanks! (bots will confirm if this is fine, but tests pass locally at least)

File components/sync/service/sync_prefs.cc
Line 928, Patchset 4: .GetBookmarksExplicitBrowserSignin(gaia_id);
David Roger . unresolved

I think we do not generally force the preference to ON when signing in through a promo. We instead just reset it to the default value (which is ON).

Code pointer:
https://source.chromium.org/chromium/chromium/src/+/main:components/sync/service/sync_service_impl.cc;drc=f673a07393abb644b28575e8c8cac9052a44183e;l=2402

I asked Amelie why it was done that way, and she said it was done to make rollback simpler.

Maybe we should have the same behavior in both cases? If so, which one is the right behavior?

Mikel Astiz

This topic was indeed discussed with treib@ in https://chromium-review.googlesource.com/c/chromium/src/+/6308817/comment/8ea81371_360470b2/ and reportedly via vc too, so there must be good reasons for it.

A relevant requirement here could be that, for B4Bookmarks (and before kReplaceSyncPromosWithSignInPromos), the desire is that the opt-in (prefs::kExplicitBrowserSignin) gets cleared upon signout.

With the implementation I proposed originally here, I believe this requirement could break if kReplaceSyncPromosWithSignInPromos rolls out and then rolls back again. This is because [SyncPrefs::GetSelectedTypesForAccount() ignores](https://source.chromium.org/chromium/chromium/src/+/main:components/sync/service/sync_prefs.cc;l=290;drc=612cb630bd07b9c11393dc910998d9e113ad321d) prefs::kExplicitBrowserSignin if the value is explicitly populated (instead of cleared).

Changing this also means we would be modifying the behavior on mobile, but the risk is low IMO and it seems better than having platform-specific quirks.

This is what I did in patchset 9, together with a comment capturing the rationale above.

HOWEVER: I took a look at the PRD for desktop and noticed my assumption was wrong: the desired behavior is actually to apply the defaults regardless of prior state. From that PoV, the discussion in this thread is moot. I now updated the patch to disable all migration logic on desktop and enable bookmarks for all signed-in users.

Open in Gerrit

Related details

Attention is currently required from:
  • David Roger
Submit Requirements:
  • requirement satisfiedCode-Coverage
  • requirement is not satisfiedCode-Review
  • requirement is not satisfiedNo-Unresolved-Comments
Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
Gerrit-MessageType: comment
Gerrit-Project: chromium/src
Gerrit-Branch: main
Gerrit-Change-Id: I189b6f2c8eec58ef69bf74216bbcf885c575c72b
Gerrit-Change-Number: 6632630
Gerrit-PatchSet: 13
Gerrit-Owner: Mikel Astiz <mas...@chromium.org>
Gerrit-Reviewer: David Roger <dro...@chromium.org>
Gerrit-Reviewer: Mikel Astiz <mas...@chromium.org>
Gerrit-Attention: David Roger <dro...@chromium.org>
Gerrit-Comment-Date: Wed, 11 Jun 2025 15:03:51 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: Yes
Comment-In-Reply-To: Mikel Astiz <mas...@chromium.org>
Comment-In-Reply-To: David Roger <dro...@chromium.org>
satisfied_requirement
unsatisfied_requirement
open
diffy

David Roger (Gerrit)

unread,
Jun 11, 2025, 12:42:53 PM6/11/25
to Mikel Astiz, Chromium LUCI CQ, chromium...@chromium.org
Attention needed from Mikel Astiz

David Roger voted and added 4 comments

Votes added by David Roger

Code-Review+1

4 comments

File components/sync/service/sync_prefs.cc
Line 894, Patchset 13 (Latest): kMigratedPart1ButNot2);
David Roger . unresolved

Do this whole migration and steps make sense on desktop? Should we keep them, or bypass the entire migration on desktop?

Line 928, Patchset 4: .GetBookmarksExplicitBrowserSignin(gaia_id);
David Roger . resolved

I think we do not generally force the preference to ON when signing in through a promo. We instead just reset it to the default value (which is ON).

Code pointer:
https://source.chromium.org/chromium/chromium/src/+/main:components/sync/service/sync_service_impl.cc;drc=f673a07393abb644b28575e8c8cac9052a44183e;l=2402

I asked Amelie why it was done that way, and she said it was done to make rollback simpler.

Maybe we should have the same behavior in both cases? If so, which one is the right behavior?

Mikel Astiz

This topic was indeed discussed with treib@ in https://chromium-review.googlesource.com/c/chromium/src/+/6308817/comment/8ea81371_360470b2/ and reportedly via vc too, so there must be good reasons for it.

A relevant requirement here could be that, for B4Bookmarks (and before kReplaceSyncPromosWithSignInPromos), the desire is that the opt-in (prefs::kExplicitBrowserSignin) gets cleared upon signout.

With the implementation I proposed originally here, I believe this requirement could break if kReplaceSyncPromosWithSignInPromos rolls out and then rolls back again. This is because [SyncPrefs::GetSelectedTypesForAccount() ignores](https://source.chromium.org/chromium/chromium/src/+/main:components/sync/service/sync_prefs.cc;l=290;drc=612cb630bd07b9c11393dc910998d9e113ad321d) prefs::kExplicitBrowserSignin if the value is explicitly populated (instead of cleared).

Changing this also means we would be modifying the behavior on mobile, but the risk is low IMO and it seems better than having platform-specific quirks.

This is what I did in patchset 9, together with a comment capturing the rationale above.

HOWEVER: I took a look at the PRD for desktop and noticed my assumption was wrong: the desired behavior is actually to apply the defaults regardless of prior state. From that PoV, the discussion in this thread is moot. I now updated the patch to disable all migration logic on desktop and enable bookmarks for all signed-in users.

David Roger

Indeed, the plan on desktop is to enable all features to all signed in users, and show an IPH as notification. This is maybe different from what was done on mobile.

Given this context, the CL now does what I was expecting: only change the default value. Then we can just delete the SigninPref value once kReplaceSyncPromosWithSignInPromos is launched.

If you don't have any concerns with this approach this LGTM.

File components/sync/service/sync_prefs_unittest.cc
Line 1277, Patchset 13 (Latest): // On desktop, preferences should've been turned off in the account-scoped
David Roger . unresolved

This probably needs to be updated. Example:

// On desktop, preferences are not changed.

Line 1376, Patchset 13 (Latest): // Om desktop, after the migration, the types should be disabled.
David Roger . unresolved

same here

Open in Gerrit

Related details

Attention is currently required from:
  • Mikel Astiz
Submit Requirements:
  • requirement satisfiedCode-Coverage
  • requirement satisfiedCode-Review
  • requirement is not satisfiedNo-Unresolved-Comments
Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
Gerrit-MessageType: comment
Gerrit-Project: chromium/src
Gerrit-Branch: main
Gerrit-Change-Id: I189b6f2c8eec58ef69bf74216bbcf885c575c72b
Gerrit-Change-Number: 6632630
Gerrit-PatchSet: 13
Gerrit-Owner: Mikel Astiz <mas...@chromium.org>
Gerrit-Reviewer: David Roger <dro...@chromium.org>
Gerrit-Reviewer: Mikel Astiz <mas...@chromium.org>
Gerrit-Attention: Mikel Astiz <mas...@chromium.org>
Gerrit-Comment-Date: Wed, 11 Jun 2025 16:42:32 +0000
satisfied_requirement
unsatisfied_requirement
open
diffy

Mikel Astiz (Gerrit)

unread,
Jun 12, 2025, 7:51:22 AM6/12/25
to Marc Treib, David Roger, Chromium LUCI CQ, chromium...@chromium.org
Attention needed from David Roger and Marc Treib

Mikel Astiz added 4 comments

Patchset-level comments
File-level comment, Patchset 14 (Latest):
Mikel Astiz . resolved

Thanks! treib@ too for another pair of eyes.

File components/sync/service/sync_prefs.cc
Line 894, Patchset 13: kMigratedPart1ButNot2);
David Roger . unresolved

Do this whole migration and steps make sense on desktop? Should we keep them, or bypass the entire migration on desktop?

Mikel Astiz

I think we will be lucky if there's literally nothing to migrate.

Adding @tr...@chromium.org for overall review too and this topic specifically.

File components/sync/service/sync_prefs_unittest.cc
Line 1277, Patchset 13: // On desktop, preferences should've been turned off in the account-scoped
David Roger . resolved

This probably needs to be updated. Example:

// On desktop, preferences are not changed.

Mikel Astiz

Done

Line 1376, Patchset 13: // Om desktop, after the migration, the types should be disabled.
David Roger . resolved

same here

Mikel Astiz

Done

Open in Gerrit

Related details

Attention is currently required from:
  • David Roger
  • Marc Treib
Submit Requirements:
  • requirement satisfiedCode-Coverage
  • requirement satisfiedCode-Review
  • requirement is not satisfiedNo-Unresolved-Comments
Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
Gerrit-MessageType: comment
Gerrit-Project: chromium/src
Gerrit-Branch: main
Gerrit-Change-Id: I189b6f2c8eec58ef69bf74216bbcf885c575c72b
Gerrit-Change-Number: 6632630
Gerrit-PatchSet: 14
Gerrit-Owner: Mikel Astiz <mas...@chromium.org>
Gerrit-Reviewer: David Roger <dro...@chromium.org>
Gerrit-Reviewer: Marc Treib <tr...@chromium.org>
Gerrit-Reviewer: Mikel Astiz <mas...@chromium.org>
Gerrit-Attention: Marc Treib <tr...@chromium.org>
Gerrit-Attention: David Roger <dro...@chromium.org>
Gerrit-Comment-Date: Thu, 12 Jun 2025 11:51:07 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: No
Comment-In-Reply-To: David Roger <dro...@chromium.org>
satisfied_requirement
unsatisfied_requirement
open
diffy

Marc Treib (Gerrit)

unread,
Jun 12, 2025, 8:53:32 AM6/12/25
to Mikel Astiz, Marc Treib, David Roger, Chromium LUCI CQ, chromium...@chromium.org
Attention needed from Mikel Astiz

Marc Treib added 3 comments

Patchset-level comments
File-level comment, Patchset 16 (Latest):
Marc Treib . resolved

Initial response, haven't looked at the tests yet

File components/sync/service/sync_prefs.cc
Line 320, Patchset 15: base::FeatureList::IsEnabled(kReplaceSyncPromosWithSignInPromos) ||
Marc Treib . unresolved

I've lost the overview of how all the various prefs and flags should work together on desktop...

Should we also check `prefs::kExplicitBrowserSignin` here?
Or does `kReplaceSyncPromosWithSignInPromos` basically deprecate `prefs::kExplicitBrowserSignin`? And in that case, should the pref checks for passwords and extensions also be ORed with a `kReplaceSyncPromosWithSignInPromos` flag check?

Line 894, Patchset 13: kMigratedPart1ButNot2);
David Roger . unresolved

Do this whole migration and steps make sense on desktop? Should we keep them, or bypass the entire migration on desktop?

Mikel Astiz

I think we will be lucky if there's literally nothing to migrate.

Adding @tr...@chromium.org for overall review too and this topic specifically.

Marc Treib

I don't entirely know how the whole user/settings migration will work on desktop, so I can't say whether there'll be anything to migrate. But for simplicity, I'd suggest keeping the method for now, even if it's all ifdef'd out. (IIUC, "Part2" is still needed on desktop, and it'd be more hassle/complication than it's worth to pull that out into a separate thing.)

Open in Gerrit

Related details

Attention is currently required from:
  • Mikel Astiz
Submit Requirements:
  • requirement satisfiedCode-Coverage
  • requirement satisfiedCode-Review
  • requirement is not satisfiedNo-Unresolved-Comments
Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
Gerrit-MessageType: comment
Gerrit-Project: chromium/src
Gerrit-Branch: main
Gerrit-Change-Id: I189b6f2c8eec58ef69bf74216bbcf885c575c72b
Gerrit-Change-Number: 6632630
Gerrit-PatchSet: 16
Gerrit-Owner: Mikel Astiz <mas...@chromium.org>
Gerrit-Reviewer: David Roger <dro...@chromium.org>
Gerrit-Reviewer: Marc Treib <tr...@chromium.org>
Gerrit-Reviewer: Mikel Astiz <mas...@chromium.org>
Gerrit-Attention: Mikel Astiz <mas...@chromium.org>
Gerrit-Comment-Date: Thu, 12 Jun 2025 12:53:15 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: No
satisfied_requirement
unsatisfied_requirement
open
diffy

Mikel Astiz (Gerrit)

unread,
Jun 12, 2025, 8:57:56 AM6/12/25
to Marc Treib, David Roger, Chromium LUCI CQ, chromium...@chromium.org
Attention needed from Marc Treib

Mikel Astiz added 3 comments

Patchset-level comments
Mikel Astiz . resolved

Thanks!

File components/sync/service/sync_prefs.cc
Line 320, Patchset 15: base::FeatureList::IsEnabled(kReplaceSyncPromosWithSignInPromos) ||
Marc Treib . unresolved

I've lost the overview of how all the various prefs and flags should work together on desktop...

Should we also check `prefs::kExplicitBrowserSignin` here?
Or does `kReplaceSyncPromosWithSignInPromos` basically deprecate `prefs::kExplicitBrowserSignin`? And in that case, should the pref checks for passwords and extensions also be ORed with a `kReplaceSyncPromosWithSignInPromos` flag check?

Mikel Astiz

This is a good question!

I think you are right that we shouldn't assume kExplicitBrowserSignin is irrelevant, just in case. I will see if the code, as written here, would enable the types for implicit cases too and write a browser test for it, then fix if needed.

Line 894, Patchset 13: kMigratedPart1ButNot2);
David Roger . unresolved

Do this whole migration and steps make sense on desktop? Should we keep them, or bypass the entire migration on desktop?

Mikel Astiz

I think we will be lucky if there's literally nothing to migrate.

Adding @tr...@chromium.org for overall review too and this topic specifically.

Marc Treib

I don't entirely know how the whole user/settings migration will work on desktop, so I can't say whether there'll be anything to migrate. But for simplicity, I'd suggest keeping the method for now, even if it's all ifdef'd out. (IIUC, "Part2" is still needed on desktop, and it'd be more hassle/complication than it's worth to pull that out into a separate thing.)

Mikel Astiz

I believe the main question is whether prefs::internal::kSyncToSigninMigrationState should be updated or not.

Open in Gerrit

Related details

Attention is currently required from:
  • Marc Treib
Submit Requirements:
  • requirement satisfiedCode-Coverage
  • requirement satisfiedCode-Review
  • requirement is not satisfiedNo-Unresolved-Comments
Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
Gerrit-MessageType: comment
Gerrit-Project: chromium/src
Gerrit-Branch: main
Gerrit-Change-Id: I189b6f2c8eec58ef69bf74216bbcf885c575c72b
Gerrit-Change-Number: 6632630
Gerrit-PatchSet: 16
Gerrit-Owner: Mikel Astiz <mas...@chromium.org>
Gerrit-Reviewer: David Roger <dro...@chromium.org>
Gerrit-Reviewer: Marc Treib <tr...@chromium.org>
Gerrit-Reviewer: Mikel Astiz <mas...@chromium.org>
Gerrit-Attention: Marc Treib <tr...@chromium.org>
Gerrit-Comment-Date: Thu, 12 Jun 2025 12:57:41 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: No
Comment-In-Reply-To: Mikel Astiz <mas...@chromium.org>
Comment-In-Reply-To: Marc Treib <tr...@chromium.org>
Comment-In-Reply-To: David Roger <dro...@chromium.org>
satisfied_requirement
unsatisfied_requirement
open
diffy

David Roger (Gerrit)

unread,
Jun 12, 2025, 9:01:56 AM6/12/25
to Mikel Astiz, Marc Treib, Chromium LUCI CQ, chromium...@chromium.org
Attention needed from Marc Treib

David Roger voted and added 1 comment

Votes added by David Roger

Code-Review+1

1 comment

File components/sync/service/sync_prefs.cc
Line 320, Patchset 15: base::FeatureList::IsEnabled(kReplaceSyncPromosWithSignInPromos) ||
Marc Treib . unresolved

I've lost the overview of how all the various prefs and flags should work together on desktop...

Should we also check `prefs::kExplicitBrowserSignin` here?
Or does `kReplaceSyncPromosWithSignInPromos` basically deprecate `prefs::kExplicitBrowserSignin`? And in that case, should the pref checks for passwords and extensions also be ORed with a `kReplaceSyncPromosWithSignInPromos` flag check?

David Roger

Good catch, you're right that checking for kExplicitBrowserSignin would be more correct. So that would be something like (pseudo code):

(kExplicitBrowserSignin && kReplaceSyncPromosWithSignInPromos) ||
GetBookmarksExplicitBrowserSignin() ||
kEnableBookmarksSelectedTypeOnSigninForTesting

Maybe kExplicitBrowserSignin will be gone by the time we enable UNO Phase 2 (that requires migration of Dice users to UNO), but it's not guaranteed in any way.

Open in Gerrit

Related details

Attention is currently required from:
  • Marc Treib
Submit Requirements:
  • requirement satisfiedCode-Coverage
  • requirement satisfiedCode-Review
  • requirement is not satisfiedNo-Unresolved-Comments
Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
Gerrit-MessageType: comment
Gerrit-Project: chromium/src
Gerrit-Branch: main
Gerrit-Change-Id: I189b6f2c8eec58ef69bf74216bbcf885c575c72b
Gerrit-Change-Number: 6632630
Gerrit-PatchSet: 16
Gerrit-Owner: Mikel Astiz <mas...@chromium.org>
Gerrit-Reviewer: David Roger <dro...@chromium.org>
Gerrit-Reviewer: Marc Treib <tr...@chromium.org>
Gerrit-Reviewer: Mikel Astiz <mas...@chromium.org>
Gerrit-Attention: Marc Treib <tr...@chromium.org>
Gerrit-Comment-Date: Thu, 12 Jun 2025 13:01:41 +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,
Jun 12, 2025, 9:02:10 AM6/12/25
to Mikel Astiz, Marc Treib, David Roger, Chromium LUCI CQ, chromium...@chromium.org
Attention needed from Mikel Astiz

Marc Treib added 4 comments

File chrome/browser/sync/test/integration/single_client_standalone_transport_sync_test.cc
Line 119, Patchset 16 (Latest): // `syncer::kReplaceSyncPromosWithSignInPromos.
Marc Treib . unresolved

nit: Missing closing `

Line 152, Patchset 16 (Latest): // `syncer::kReplaceSyncPromosWithSignInPromos.
Marc Treib . unresolved

Same here

Line 166, Patchset 16 (Latest): // got activated.
ASSERT_FALSE(AllowedTypesInStandaloneTransportMode().Has(
kDataTypeExcludedInTransportMode));
Marc Treib . unresolved

nit: This is already CHECKed above, no need to assert it again

File components/sync/service/sync_prefs.cc
Line 894, Patchset 13: kMigratedPart1ButNot2);
David Roger . unresolved

Do this whole migration and steps make sense on desktop? Should we keep them, or bypass the entire migration on desktop?

Mikel Astiz

I think we will be lucky if there's literally nothing to migrate.

Adding @tr...@chromium.org for overall review too and this topic specifically.

Marc Treib

I don't entirely know how the whole user/settings migration will work on desktop, so I can't say whether there'll be anything to migrate. But for simplicity, I'd suggest keeping the method for now, even if it's all ifdef'd out. (IIUC, "Part2" is still needed on desktop, and it'd be more hassle/complication than it's worth to pull that out into a separate thing.)

Mikel Astiz

I believe the main question is whether prefs::internal::kSyncToSigninMigrationState should be updated or not.

Marc Treib

If we keep the shape of the migration logic (with the two parts), then the pref does need to be updated, otherwise part 2 wouldn't run.

Open in Gerrit

Related details

Attention is currently required from:
  • Mikel Astiz
Submit Requirements:
  • requirement satisfiedCode-Coverage
  • requirement satisfiedCode-Review
  • requirement is not satisfiedNo-Unresolved-Comments
Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
Gerrit-MessageType: comment
Gerrit-Project: chromium/src
Gerrit-Branch: main
Gerrit-Change-Id: I189b6f2c8eec58ef69bf74216bbcf885c575c72b
Gerrit-Change-Number: 6632630
Gerrit-PatchSet: 16
Gerrit-Owner: Mikel Astiz <mas...@chromium.org>
Gerrit-Reviewer: David Roger <dro...@chromium.org>
Gerrit-Reviewer: Marc Treib <tr...@chromium.org>
Gerrit-Reviewer: Mikel Astiz <mas...@chromium.org>
Gerrit-Attention: Mikel Astiz <mas...@chromium.org>
Gerrit-Comment-Date: Thu, 12 Jun 2025 13:01:55 +0000
satisfied_requirement
unsatisfied_requirement
open
diffy

Mikel Astiz (Gerrit)

unread,
Jun 19, 2025, 10:54:49 AM6/19/25
to AyeAye, Marc Treib, David Roger, Chromium LUCI CQ, chromium...@chromium.org, asvitki...@chromium.org, jmedle...@chromium.org
Attention needed from David Roger and Marc Treib

Mikel Astiz voted and added 6 comments

Votes added by Mikel Astiz

Commit-Queue+1

6 comments

Patchset-level comments
File-level comment, Patchset 25 (Latest):
Mikel Astiz . resolved

Sorry for the delay; this uncovered a couple of rabbit holes and I had to improve tests first before proceeding. PTAL!

File chrome/browser/sync/test/integration/single_client_standalone_transport_sync_test.cc
Line 119, Patchset 16: // `syncer::kReplaceSyncPromosWithSignInPromos.
Marc Treib . resolved

nit: Missing closing `

Mikel Astiz

Obsolete.

Line 152, Patchset 16: // `syncer::kReplaceSyncPromosWithSignInPromos.
Marc Treib . resolved

Same here

Mikel Astiz

Done

Line 166, Patchset 16: // got activated.
ASSERT_FALSE(AllowedTypesInStandaloneTransportMode().Has(
kDataTypeExcludedInTransportMode));
Marc Treib . resolved

nit: This is already CHECKed above, no need to assert it again

Mikel Astiz

Done

File components/sync/service/sync_prefs.cc
Line 320, Patchset 15: base::FeatureList::IsEnabled(kReplaceSyncPromosWithSignInPromos) ||
Marc Treib . resolved

I've lost the overview of how all the various prefs and flags should work together on desktop...

Should we also check `prefs::kExplicitBrowserSignin` here?
Or does `kReplaceSyncPromosWithSignInPromos` basically deprecate `prefs::kExplicitBrowserSignin`? And in that case, should the pref checks for passwords and extensions also be ORed with a `kReplaceSyncPromosWithSignInPromos` flag check?

David Roger

Good catch, you're right that checking for kExplicitBrowserSignin would be more correct. So that would be something like (pseudo code):

(kExplicitBrowserSignin && kReplaceSyncPromosWithSignInPromos) ||
GetBookmarksExplicitBrowserSignin() ||
kEnableBookmarksSelectedTypeOnSigninForTesting

Maybe kExplicitBrowserSignin will be gone by the time we enable UNO Phase 2 (that requires migration of Dice users to UNO), but it's not guaranteed in any way.

Mikel Astiz

I've landed some related browser tests in https://crrev.com/c/6650987 and updated the logic here to consider the explicitness of signin.

Line 894, Patchset 13: kMigratedPart1ButNot2);
David Roger . resolved

Do this whole migration and steps make sense on desktop? Should we keep them, or bypass the entire migration on desktop?

Mikel Astiz

I think we will be lucky if there's literally nothing to migrate.

Adding @tr...@chromium.org for overall review too and this topic specifically.

Marc Treib

I don't entirely know how the whole user/settings migration will work on desktop, so I can't say whether there'll be anything to migrate. But for simplicity, I'd suggest keeping the method for now, even if it's all ifdef'd out. (IIUC, "Part2" is still needed on desktop, and it'd be more hassle/complication than it's worth to pull that out into a separate thing.)

Mikel Astiz

I believe the main question is whether prefs::internal::kSyncToSigninMigrationState should be updated or not.

Marc Treib

If we keep the shape of the migration logic (with the two parts), then the pref does need to be updated, otherwise part 2 wouldn't run.

Mikel Astiz

I will look into this separately.

Open in Gerrit

Related details

Attention is currently required from:
  • David Roger
  • Marc Treib
Submit Requirements:
  • requirement satisfiedCode-Coverage
  • requirement is not satisfiedCode-Review
Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
Gerrit-MessageType: comment
Gerrit-Project: chromium/src
Gerrit-Branch: main
Gerrit-Change-Id: I189b6f2c8eec58ef69bf74216bbcf885c575c72b
Gerrit-Change-Number: 6632630
Gerrit-PatchSet: 25
Gerrit-Owner: Mikel Astiz <mas...@chromium.org>
Gerrit-Reviewer: David Roger <dro...@chromium.org>
Gerrit-Reviewer: Marc Treib <tr...@chromium.org>
Gerrit-Reviewer: Mikel Astiz <mas...@chromium.org>
Gerrit-Attention: Marc Treib <tr...@chromium.org>
Gerrit-Attention: David Roger <dro...@chromium.org>
Gerrit-Comment-Date: Thu, 19 Jun 2025 14:54:34 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: Yes
satisfied_requirement
unsatisfied_requirement
open
diffy

David Roger (Gerrit)

unread,
Jun 19, 2025, 11:58:19 AM6/19/25
to Mikel Astiz, AyeAye, Marc Treib, Chromium LUCI CQ, chromium...@chromium.org, asvitki...@chromium.org, jmedle...@chromium.org
Attention needed from Marc Treib and Mikel Astiz

David Roger added 1 comment

File chrome/browser/about_flags.cc
Line 11807, Patchset 25 (Parent): syncer::kEnableBookmarksSelectedTypeOnSigninForTesting)},
David Roger . unresolved

We need this flag until end of July, even on Canary. It was communicated to extension developpers to test the bookmarks API changes.

If we want to remove the base::Feature associated with it, could we somehow plug this flag on the new feature?

Open in Gerrit

Related details

Attention is currently required from:
  • Marc Treib
  • Mikel Astiz
Submit Requirements:
    • requirement satisfiedCode-Coverage
    • requirement is not satisfiedCode-Review
    • requirement is not satisfiedNo-Unresolved-Comments
    Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
    Gerrit-MessageType: comment
    Gerrit-Project: chromium/src
    Gerrit-Branch: main
    Gerrit-Change-Id: I189b6f2c8eec58ef69bf74216bbcf885c575c72b
    Gerrit-Change-Number: 6632630
    Gerrit-PatchSet: 25
    Gerrit-Owner: Mikel Astiz <mas...@chromium.org>
    Gerrit-Reviewer: David Roger <dro...@chromium.org>
    Gerrit-Reviewer: Marc Treib <tr...@chromium.org>
    Gerrit-Reviewer: Mikel Astiz <mas...@chromium.org>
    Gerrit-Attention: Mikel Astiz <mas...@chromium.org>
    Gerrit-Attention: Marc Treib <tr...@chromium.org>
    Gerrit-Comment-Date: Thu, 19 Jun 2025 15:58:04 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: No
    satisfied_requirement
    unsatisfied_requirement
    open
    diffy

    Mikel Astiz (Gerrit)

    unread,
    Jun 20, 2025, 3:10:40 AM6/20/25
    to AyeAye, Marc Treib, David Roger, Chromium LUCI CQ, chromium...@chromium.org, asvitki...@chromium.org, jmedle...@chromium.org
    Attention needed from David Roger and Marc Treib

    Mikel Astiz added 2 comments

    Patchset-level comments
    File-level comment, Patchset 30 (Latest):
    Mikel Astiz . resolved

    Thanks, PTAL! I rebased it on top of https://crrev.com/c/6654789.

    File chrome/browser/about_flags.cc
    Line 11807, Patchset 25 (Parent): syncer::kEnableBookmarksSelectedTypeOnSigninForTesting)},
    David Roger . resolved

    We need this flag until end of July, even on Canary. It was communicated to extension developpers to test the bookmarks API changes.

    If we want to remove the base::Feature associated with it, could we somehow plug this flag on the new feature?

    Mikel Astiz

    Good point, I wasn't aware of it. Reverted.

    Open in Gerrit

    Related details

    Attention is currently required from:
    • David Roger
    • Marc Treib
    Submit Requirements:
    • requirement satisfiedCode-Coverage
    • requirement is not satisfiedCode-Review
    Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
    Gerrit-MessageType: comment
    Gerrit-Project: chromium/src
    Gerrit-Branch: main
    Gerrit-Change-Id: I189b6f2c8eec58ef69bf74216bbcf885c575c72b
    Gerrit-Change-Number: 6632630
    Gerrit-PatchSet: 30
    Gerrit-Owner: Mikel Astiz <mas...@chromium.org>
    Gerrit-Reviewer: David Roger <dro...@chromium.org>
    Gerrit-Reviewer: Marc Treib <tr...@chromium.org>
    Gerrit-Reviewer: Mikel Astiz <mas...@chromium.org>
    Gerrit-Attention: Marc Treib <tr...@chromium.org>
    Gerrit-Attention: David Roger <dro...@chromium.org>
    Gerrit-Comment-Date: Fri, 20 Jun 2025 07:10:22 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: No
    Comment-In-Reply-To: David Roger <dro...@chromium.org>
    satisfied_requirement
    unsatisfied_requirement
    open
    diffy

    David Roger (Gerrit)

    unread,
    Jun 20, 2025, 3:25:54 AM6/20/25
    to Mikel Astiz, AyeAye, Marc Treib, Chromium LUCI CQ, chromium...@chromium.org, asvitki...@chromium.org, jmedle...@chromium.org
    Attention needed from Marc Treib and Mikel Astiz

    David Roger voted and added 1 comment

    Votes added by David Roger

    Code-Review+1

    1 comment

    File chrome/browser/about_flags.cc
    Line 11807, Patchset 25 (Parent): syncer::kEnableBookmarksSelectedTypeOnSigninForTesting)},
    David Roger . resolved

    We need this flag until end of July, even on Canary. It was communicated to extension developpers to test the bookmarks API changes.

    If we want to remove the base::Feature associated with it, could we somehow plug this flag on the new feature?

    Mikel Astiz

    Good point, I wasn't aware of it. Reverted.

    David Roger

    If we want to simplify the code further, we could connect this chrome flag internally to the kReplaceSyncPromosWithSignInPromos feature. That can be done later if needed.

    Open in Gerrit

    Related details

    Attention is currently required from:
    • Marc Treib
    • Mikel Astiz
    Submit Requirements:
    • requirement satisfiedCode-Coverage
    • requirement satisfiedCode-Review
    Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
    Gerrit-MessageType: comment
    Gerrit-Project: chromium/src
    Gerrit-Branch: main
    Gerrit-Change-Id: I189b6f2c8eec58ef69bf74216bbcf885c575c72b
    Gerrit-Change-Number: 6632630
    Gerrit-PatchSet: 30
    Gerrit-Owner: Mikel Astiz <mas...@chromium.org>
    Gerrit-Reviewer: David Roger <dro...@chromium.org>
    Gerrit-Reviewer: Marc Treib <tr...@chromium.org>
    Gerrit-Reviewer: Mikel Astiz <mas...@chromium.org>
    Gerrit-Attention: Mikel Astiz <mas...@chromium.org>
    Gerrit-Attention: Marc Treib <tr...@chromium.org>
    Gerrit-Comment-Date: Fri, 20 Jun 2025 07:25:39 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: Yes
    Comment-In-Reply-To: Mikel Astiz <mas...@chromium.org>
    Comment-In-Reply-To: David Roger <dro...@chromium.org>
    satisfied_requirement
    open
    diffy

    Mikel Astiz (Gerrit)

    unread,
    Jun 20, 2025, 3:26:59 AM6/20/25
    to David Roger, AyeAye, Marc Treib, Chromium LUCI CQ, chromium...@chromium.org, asvitki...@chromium.org, jmedle...@chromium.org
    Attention needed from Marc Treib

    Mikel Astiz added 1 comment

    File chrome/browser/about_flags.cc
    Line 11807, Patchset 25 (Parent): syncer::kEnableBookmarksSelectedTypeOnSigninForTesting)},
    David Roger . resolved

    We need this flag until end of July, even on Canary. It was communicated to extension developpers to test the bookmarks API changes.

    If we want to remove the base::Feature associated with it, could we somehow plug this flag on the new feature?

    Mikel Astiz

    Good point, I wasn't aware of it. Reverted.

    David Roger

    If we want to simplify the code further, we could connect this chrome flag internally to the kReplaceSyncPromosWithSignInPromos feature. That can be done later if needed.

    Mikel Astiz

    Ack.

    Open in Gerrit

    Related details

    Attention is currently required from:
    • Marc Treib
    Submit Requirements:
    • requirement satisfiedCode-Coverage
    • requirement satisfiedCode-Review
    Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
    Gerrit-MessageType: comment
    Gerrit-Project: chromium/src
    Gerrit-Branch: main
    Gerrit-Change-Id: I189b6f2c8eec58ef69bf74216bbcf885c575c72b
    Gerrit-Change-Number: 6632630
    Gerrit-PatchSet: 30
    Gerrit-Owner: Mikel Astiz <mas...@chromium.org>
    Gerrit-Reviewer: David Roger <dro...@chromium.org>
    Gerrit-Reviewer: Marc Treib <tr...@chromium.org>
    Gerrit-Reviewer: Mikel Astiz <mas...@chromium.org>
    Gerrit-Attention: Marc Treib <tr...@chromium.org>
    Gerrit-Comment-Date: Fri, 20 Jun 2025 07:26:43 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: No
    satisfied_requirement
    open
    diffy

    Marc Treib (Gerrit)

    unread,
    Jun 20, 2025, 5:52:18 AM6/20/25
    to Mikel Astiz, David Roger, AyeAye, Marc Treib, Chromium LUCI CQ, chromium...@chromium.org, asvitki...@chromium.org, jmedle...@chromium.org
    Attention needed from Mikel Astiz

    Marc Treib added 1 comment

    File chrome/browser/sync/test/integration/single_client_standalone_transport_sync_test.cc
    Line 92, Patchset 30 (Latest): kSyncEnableContactInfoDataTypeForCustomPassphraseUsers,
    switches::kSyncEnableBookmarksInTransportMode,
    #if !BUILDFLAG(IS_ANDROID)
    syncer::
    kReadingListEnableSyncTransportModeUponSignIn,
    #endif // !BUILDFLAG(IS_ANDROID)
    syncer::kReplaceSyncPromosWithSignInPromos},
    /*disabled_features=*/{});
    } else {
    // TODO(crbug.com/424698545): The special-casing below for CromeOS may not
    // be needed once the underlying bug is solved. Before that, enabling
    // those flags on ChromeOS influences the behavior upon dashboard reset.
    override_features_.InitWithFeatures(
    #if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_CHROMEOS)
    /*enabled_features=*/{},
    #else // BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_CHROMEOS)
    /*enabled_features=*/
    {switches::kSyncEnableBookmarksInTransportMode,
    syncer::kReadingListEnableSyncTransportModeUponSignIn},
    #endif // BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_CHROMEOS)
    Marc Treib . unresolved

    I find all this pretty confusing. Why do these features need to be enabled/disabled based on the param ("UNOp2"), and the platform? Why is the bookmarks flag treated differently from the ReadingList one?

    Open in Gerrit

    Related details

    Attention is currently required from:
    • Mikel Astiz
    Submit Requirements:
      • requirement satisfiedCode-Coverage
      • requirement satisfiedCode-Review
      • requirement is not satisfiedNo-Unresolved-Comments
      Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
      Gerrit-MessageType: comment
      Gerrit-Project: chromium/src
      Gerrit-Branch: main
      Gerrit-Change-Id: I189b6f2c8eec58ef69bf74216bbcf885c575c72b
      Gerrit-Change-Number: 6632630
      Gerrit-PatchSet: 30
      Gerrit-Owner: Mikel Astiz <mas...@chromium.org>
      Gerrit-Reviewer: David Roger <dro...@chromium.org>
      Gerrit-Reviewer: Marc Treib <tr...@chromium.org>
      Gerrit-Reviewer: Mikel Astiz <mas...@chromium.org>
      Gerrit-Attention: Mikel Astiz <mas...@chromium.org>
      Gerrit-Comment-Date: Fri, 20 Jun 2025 09:52:05 +0000
      Gerrit-HasComments: Yes
      Gerrit-Has-Labels: No
      satisfied_requirement
      unsatisfied_requirement
      open
      diffy

      Mikel Astiz (Gerrit)

      unread,
      Jun 20, 2025, 6:03:01 AM6/20/25
      to David Roger, AyeAye, Marc Treib, Chromium LUCI CQ, chromium...@chromium.org, asvitki...@chromium.org, jmedle...@chromium.org
      Attention needed from Marc Treib

      Mikel Astiz added 2 comments

      Patchset-level comments
      Mikel Astiz . resolved

      Thanks!

      File chrome/browser/sync/test/integration/single_client_standalone_transport_sync_test.cc
      Line 92, Patchset 30 (Latest): kSyncEnableContactInfoDataTypeForCustomPassphraseUsers,
      switches::kSyncEnableBookmarksInTransportMode,
      #if !BUILDFLAG(IS_ANDROID)
      syncer::
      kReadingListEnableSyncTransportModeUponSignIn,
      #endif // !BUILDFLAG(IS_ANDROID)
      syncer::kReplaceSyncPromosWithSignInPromos},
      /*disabled_features=*/{});
      } else {
      // TODO(crbug.com/424698545): The special-casing below for CromeOS may not
      // be needed once the underlying bug is solved. Before that, enabling
      // those flags on ChromeOS influences the behavior upon dashboard reset.
      override_features_.InitWithFeatures(
      #if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_CHROMEOS)
      /*enabled_features=*/{},
      #else // BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_CHROMEOS)
      /*enabled_features=*/
      {switches::kSyncEnableBookmarksInTransportMode,
      syncer::kReadingListEnableSyncTransportModeUponSignIn},
      #endif // BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_CHROMEOS)
      Marc Treib . unresolved

      I find all this pretty confusing. Why do these features need to be enabled/disabled based on the param ("UNOp2"), and the platform? Why is the bookmarks flag treated differently from the ReadingList one?

      Mikel Astiz

      I find all this pretty confusing. Why do these features need to be enabled/disabled based on the param ("UNOp2"),

      The general idea is that UNOp2 is expected to roll out only after all UNOp1 are fully enabled. From that PoV is seems appropriate to explicitly enable P1 flags if GetParam()==true, which is done here.

      The GetParam()==false (i.e. before phase 2) is a little unclear: we could either force disable all flags or lean on defaults. Here I have decided to use the most relevant scenario today, which is that phase 1 flags are enabled (but see next point below).

      and the platform?

      The main quirk is ChromeOS, which already has a TODO. Given that we don't immediately intend to roll out these UNOp1 flags on ChromeOS, it seems better to stick to the defaults.

      Why is the bookmarks flag treated differently from the ReadingList one?

      The reading list feature flag is ifdef-ed out on Android (i.e. always enabled), so it wouldn't build otherwise. See https://source.chromium.org/chromium/chromium/src/+/main:components/sync/base/features.cc;l=91;drc=429377981b2c1f9d30d1a04ad1abe6ca562d4b48

      Open in Gerrit

      Related details

      Attention is currently required from:
      • Marc Treib
      Submit Requirements:
      • requirement satisfiedCode-Coverage
      • requirement satisfiedCode-Review
      • requirement is not satisfiedNo-Unresolved-Comments
      Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
      Gerrit-MessageType: comment
      Gerrit-Project: chromium/src
      Gerrit-Branch: main
      Gerrit-Change-Id: I189b6f2c8eec58ef69bf74216bbcf885c575c72b
      Gerrit-Change-Number: 6632630
      Gerrit-PatchSet: 30
      Gerrit-Owner: Mikel Astiz <mas...@chromium.org>
      Gerrit-Reviewer: David Roger <dro...@chromium.org>
      Gerrit-Reviewer: Marc Treib <tr...@chromium.org>
      Gerrit-Reviewer: Mikel Astiz <mas...@chromium.org>
      Gerrit-Attention: Marc Treib <tr...@chromium.org>
      Gerrit-Comment-Date: Fri, 20 Jun 2025 10:02:44 +0000
      Gerrit-HasComments: Yes
      Gerrit-Has-Labels: No
      Comment-In-Reply-To: Marc Treib <tr...@chromium.org>
      satisfied_requirement
      unsatisfied_requirement
      open
      diffy

      Marc Treib (Gerrit)

      unread,
      Jun 20, 2025, 6:08:52 AM6/20/25
      to Mikel Astiz, David Roger, AyeAye, Marc Treib, Chromium LUCI CQ, chromium...@chromium.org, asvitki...@chromium.org, jmedle...@chromium.org
      Attention needed from Mikel Astiz

      Marc Treib added 1 comment

      File components/sync/service/sync_prefs.cc
      Line 237, Patchset 30 (Latest): return pref_service_->GetBoolean(::prefs::kExplicitBrowserSignin);
      Marc Treib . unresolved

      Pre-existing, but for Sync-the-feature users, `IsExplicitBrowserSignin()` should probably also return true?

      Open in Gerrit

      Related details

      Attention is currently required from:
      • Mikel Astiz
      Submit Requirements:
      • requirement satisfiedCode-Coverage
      • requirement satisfiedCode-Review
      • requirement is not satisfiedNo-Unresolved-Comments
      Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
      Gerrit-MessageType: comment
      Gerrit-Project: chromium/src
      Gerrit-Branch: main
      Gerrit-Change-Id: I189b6f2c8eec58ef69bf74216bbcf885c575c72b
      Gerrit-Change-Number: 6632630
      Gerrit-PatchSet: 30
      Gerrit-Owner: Mikel Astiz <mas...@chromium.org>
      Gerrit-Reviewer: David Roger <dro...@chromium.org>
      Gerrit-Reviewer: Marc Treib <tr...@chromium.org>
      Gerrit-Reviewer: Mikel Astiz <mas...@chromium.org>
      Gerrit-Attention: Mikel Astiz <mas...@chromium.org>
      Gerrit-Comment-Date: Fri, 20 Jun 2025 10:08:38 +0000
      Gerrit-HasComments: Yes
      Gerrit-Has-Labels: No
      satisfied_requirement
      unsatisfied_requirement
      open
      diffy

      Mikel Astiz (Gerrit)

      unread,
      Jun 20, 2025, 6:32:50 AM6/20/25
      to David Roger, AyeAye, Marc Treib, Chromium LUCI CQ, chromium...@chromium.org, asvitki...@chromium.org, jmedle...@chromium.org
      Attention needed from David Roger and Marc Treib

      Mikel Astiz added 2 comments

      File chrome/browser/sync/test/integration/single_client_standalone_transport_sync_test.cc
      Mikel Astiz

      @tr...@chromium.org gentle ping, thanks.

      File components/sync/service/sync_prefs.cc
      Line 237, Patchset 30 (Latest): return pref_service_->GetBoolean(::prefs::kExplicitBrowserSignin);
      Marc Treib . unresolved

      Pre-existing, but for Sync-the-feature users, `IsExplicitBrowserSignin()` should probably also return true?

      Attention is currently required from:
      • David Roger
      • Marc Treib
      Submit Requirements:
      • requirement satisfiedCode-Coverage
      • requirement satisfiedCode-Review
      • requirement is not satisfiedNo-Unresolved-Comments
      Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
      Gerrit-MessageType: comment
      Gerrit-Project: chromium/src
      Gerrit-Branch: main
      Gerrit-Change-Id: I189b6f2c8eec58ef69bf74216bbcf885c575c72b
      Gerrit-Change-Number: 6632630
      Gerrit-PatchSet: 30
      Gerrit-Owner: Mikel Astiz <mas...@chromium.org>
      Gerrit-Reviewer: David Roger <dro...@chromium.org>
      Gerrit-Reviewer: Marc Treib <tr...@chromium.org>
      Gerrit-Reviewer: Mikel Astiz <mas...@chromium.org>
      Gerrit-Attention: Marc Treib <tr...@chromium.org>
      Gerrit-Attention: David Roger <dro...@chromium.org>
      Gerrit-Comment-Date: Fri, 20 Jun 2025 10:32:38 +0000
      Gerrit-HasComments: Yes
      Gerrit-Has-Labels: No
      Comment-In-Reply-To: Mikel Astiz <mas...@chromium.org>
      Comment-In-Reply-To: Marc Treib <tr...@chromium.org>
      satisfied_requirement
      unsatisfied_requirement
      open
      diffy

      David Roger (Gerrit)

      unread,
      Jun 20, 2025, 7:40:21 AM6/20/25
      to Mikel Astiz, AyeAye, Marc Treib, Chromium LUCI CQ, chromium...@chromium.org, asvitki...@chromium.org, jmedle...@chromium.org
      Attention needed from Marc Treib and Mikel Astiz

      David Roger added 1 comment

      File components/sync/service/sync_prefs.cc
      Line 237, Patchset 30 (Latest): return pref_service_->GetBoolean(::prefs::kExplicitBrowserSignin);
      Marc Treib . resolved

      Pre-existing, but for Sync-the-feature users, `IsExplicitBrowserSignin()` should probably also return true?

      Mikel Astiz

      I believe this is already the case, e.g. https://source.chromium.org/chromium/chromium/src/+/main:components/signin/internal/identity_manager/primary_account_manager.cc;l=281;drc=b49c254c612709bbf6efee73667c827613f1876a

      @dro...@chromium.org can you confirm?

      David Roger

      Yes I confirm.

      Open in Gerrit

      Related details

      Attention is currently required from:
      • Marc Treib
      • Mikel Astiz
      Submit Requirements:
      • requirement satisfiedCode-Coverage
      • requirement satisfiedCode-Review
      • requirement is not satisfiedNo-Unresolved-Comments
      Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
      Gerrit-MessageType: comment
      Gerrit-Project: chromium/src
      Gerrit-Branch: main
      Gerrit-Change-Id: I189b6f2c8eec58ef69bf74216bbcf885c575c72b
      Gerrit-Change-Number: 6632630
      Gerrit-PatchSet: 30
      Gerrit-Owner: Mikel Astiz <mas...@chromium.org>
      Gerrit-Reviewer: David Roger <dro...@chromium.org>
      Gerrit-Reviewer: Marc Treib <tr...@chromium.org>
      Gerrit-Reviewer: Mikel Astiz <mas...@chromium.org>
      Gerrit-Attention: Mikel Astiz <mas...@chromium.org>
      Gerrit-Attention: Marc Treib <tr...@chromium.org>
      Gerrit-Comment-Date: Fri, 20 Jun 2025 11:40:06 +0000
      satisfied_requirement
      unsatisfied_requirement
      open
      diffy

      Marc Treib (Gerrit)

      unread,
      Jun 20, 2025, 7:48:20 AM6/20/25
      to Mikel Astiz, Marc Treib, David Roger, AyeAye, Chromium LUCI CQ, chromium...@chromium.org, asvitki...@chromium.org, jmedle...@chromium.org
      Attention needed from Mikel Astiz

      Marc Treib voted and added 2 comments

      Votes added by Marc Treib

      Code-Review+1

      2 comments

      Patchset-level comments
      Marc Treib . resolved

      LGTM with an optional suggestion

      File chrome/browser/sync/test/integration/single_client_standalone_transport_sync_test.cc
      Marc Treib

      Maybe part of what makes this hard to follow, is that it's IMO not really clear what the `GetParam()==false` state is supposed to represent - right now some (arbitrary?) phase 1 flags are enabled, but others are not (extensions, prefs, etc).

      One idea to maybe simplify this a bit: Android doesn't even run the "phase 1" branch. So maybe we can do something like
      ```
      #if BUILDFLAG(IS_ANDROID)
      NOTREACHED();
      #else
      ...
      ```
      ?

      I might also help to create a wrapper around `GetParam()` with a better name.

      Open in Gerrit

      Related details

      Attention is currently required from:
      • Mikel Astiz
      Submit Requirements:
      • requirement satisfiedCode-Coverage
      • requirement satisfiedCode-Review
      • requirement is not satisfiedNo-Unresolved-Comments
      Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
      Gerrit-MessageType: comment
      Gerrit-Project: chromium/src
      Gerrit-Branch: main
      Gerrit-Change-Id: I189b6f2c8eec58ef69bf74216bbcf885c575c72b
      Gerrit-Change-Number: 6632630
      Gerrit-PatchSet: 30
      Gerrit-Owner: Mikel Astiz <mas...@chromium.org>
      Gerrit-Reviewer: David Roger <dro...@chromium.org>
      Gerrit-Reviewer: Marc Treib <tr...@chromium.org>
      Gerrit-Reviewer: Mikel Astiz <mas...@chromium.org>
      Gerrit-Attention: Mikel Astiz <mas...@chromium.org>
      Gerrit-Comment-Date: Fri, 20 Jun 2025 11:48:02 +0000
      Gerrit-HasComments: Yes
      Gerrit-Has-Labels: Yes
      satisfied_requirement
      unsatisfied_requirement
      open
      diffy

      Mikel Astiz (Gerrit)

      unread,
      Jun 20, 2025, 8:22:26 AM6/20/25
      to Marc Treib, David Roger, AyeAye, Chromium LUCI CQ, chromium...@chromium.org, asvitki...@chromium.org, jmedle...@chromium.org

      Mikel Astiz voted and added 1 comment

      Votes added by Mikel Astiz

      Commit-Queue+2

      1 comment

      File chrome/browser/sync/test/integration/single_client_standalone_transport_sync_test.cc
      Line 92, Patchset 30 (Latest): kSyncEnableContactInfoDataTypeForCustomPassphraseUsers,
      switches::kSyncEnableBookmarksInTransportMode,
      #if !BUILDFLAG(IS_ANDROID)
      syncer::
      kReadingListEnableSyncTransportModeUponSignIn,
      #endif // !BUILDFLAG(IS_ANDROID)
      syncer::kReplaceSyncPromosWithSignInPromos},
      /*disabled_features=*/{});
      } else {
      // TODO(crbug.com/424698545): The special-casing below for CromeOS may not
      // be needed once the underlying bug is solved. Before that, enabling
      // those flags on ChromeOS influences the behavior upon dashboard reset.
      override_features_.InitWithFeatures(
      #if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_CHROMEOS)
      /*enabled_features=*/{},
      #else // BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_CHROMEOS)
      /*enabled_features=*/
      {switches::kSyncEnableBookmarksInTransportMode,
      syncer::kReadingListEnableSyncTransportModeUponSignIn},
      #endif // BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_CHROMEOS)
      Marc Treib . resolved

      I find all this pretty confusing. Why do these features need to be enabled/disabled based on the param ("UNOp2"), and the platform? Why is the bookmarks flag treated differently from the ReadingList one?

      Mikel Astiz

      I find all this pretty confusing. Why do these features need to be enabled/disabled based on the param ("UNOp2"),

      The general idea is that UNOp2 is expected to roll out only after all UNOp1 are fully enabled. From that PoV is seems appropriate to explicitly enable P1 flags if GetParam()==true, which is done here.

      The GetParam()==false (i.e. before phase 2) is a little unclear: we could either force disable all flags or lean on defaults. Here I have decided to use the most relevant scenario today, which is that phase 1 flags are enabled (but see next point below).

      and the platform?

      The main quirk is ChromeOS, which already has a TODO. Given that we don't immediately intend to roll out these UNOp1 flags on ChromeOS, it seems better to stick to the defaults.

      Why is the bookmarks flag treated differently from the ReadingList one?

      The reading list feature flag is ifdef-ed out on Android (i.e. always enabled), so it wouldn't build otherwise. See https://source.chromium.org/chromium/chromium/src/+/main:components/sync/base/features.cc;l=91;drc=429377981b2c1f9d30d1a04ad1abe6ca562d4b48

      Mikel Astiz

      @tr...@chromium.org gentle ping, thanks.

      Marc Treib

      Maybe part of what makes this hard to follow, is that it's IMO not really clear what the `GetParam()==false` state is supposed to represent - right now some (arbitrary?) phase 1 flags are enabled, but others are not (extensions, prefs, etc).

      One idea to maybe simplify this a bit: Android doesn't even run the "phase 1" branch. So maybe we can do something like
      ```
      #if BUILDFLAG(IS_ANDROID)
      NOTREACHED();
      #else
      ...
      ```
      ?

      I might also help to create a wrapper around `GetParam()` with a better name.

      Mikel Astiz

      If you don't mind, let me revisit this in the next patch, because some more changes are needed.

      Open in Gerrit

      Related details

      Attention set is empty
      Submit Requirements:
      • requirement satisfiedCode-Coverage
      • requirement satisfiedCode-Review
      Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
      Gerrit-MessageType: comment
      Gerrit-Project: chromium/src
      Gerrit-Branch: main
      Gerrit-Change-Id: I189b6f2c8eec58ef69bf74216bbcf885c575c72b
      Gerrit-Change-Number: 6632630
      Gerrit-PatchSet: 30
      Gerrit-Owner: Mikel Astiz <mas...@chromium.org>
      Gerrit-Reviewer: David Roger <dro...@chromium.org>
      Gerrit-Reviewer: Marc Treib <tr...@chromium.org>
      Gerrit-Reviewer: Mikel Astiz <mas...@chromium.org>
      Gerrit-Comment-Date: Fri, 20 Jun 2025 12:22:06 +0000
      satisfied_requirement
      open
      diffy

      Chromium LUCI CQ (Gerrit)

      unread,
      Jun 20, 2025, 8:25:05 AM6/20/25
      to Mikel Astiz, Marc Treib, David Roger, AyeAye, chromium...@chromium.org, asvitki...@chromium.org, jmedle...@chromium.org

      Chromium LUCI CQ submitted the change

      Change information

      Commit message:
      [sync] Enable bookmarks by default on desktop depending on flags

      Namely, if `kReplaceSyncPromosWithSignInPromos` is enabled (it isn't
      currently).
      Change-Id: I189b6f2c8eec58ef69bf74216bbcf885c575c72b
      Bug: 424124636
      Commit-Queue: Mikel Astiz <mas...@chromium.org>
      Reviewed-by: David Roger <dro...@chromium.org>
      Reviewed-by: Marc Treib <tr...@chromium.org>
      Cr-Commit-Position: refs/heads/main@{#1476446}
      Files:
      • M chrome/browser/sync/test/integration/single_client_standalone_transport_sync_test.cc
      • M components/sync/service/sync_prefs.cc
      • M components/sync/service/sync_prefs_unittest.cc
      • M components/sync/service/sync_user_settings_impl_unittest.cc
      Change size: M
      Delta: 4 files changed, 36 insertions(+), 51 deletions(-)
      Branch: refs/heads/main
      Submit Requirements:
      • requirement satisfiedCode-Review: +1 by David Roger, +1 by Marc Treib
      Open in Gerrit
      Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
      Gerrit-MessageType: merged
      Gerrit-Project: chromium/src
      Gerrit-Branch: main
      Gerrit-Change-Id: I189b6f2c8eec58ef69bf74216bbcf885c575c72b
      Gerrit-Change-Number: 6632630
      Gerrit-PatchSet: 31
      Gerrit-Owner: Mikel Astiz <mas...@chromium.org>
      Gerrit-Reviewer: Chromium LUCI CQ <chromiu...@luci-project-accounts.iam.gserviceaccount.com>
      Gerrit-Reviewer: David Roger <dro...@chromium.org>
      Gerrit-Reviewer: Marc Treib <tr...@chromium.org>
      Gerrit-Reviewer: Mikel Astiz <mas...@chromium.org>
      open
      diffy
      satisfied_requirement
      Reply all
      Reply to author
      Forward
      0 new messages