From b58c962811f0b4d41647c4b43f4ebcbbb9024e04 Mon Sep 17 00:00:00 2001 From: AlexeyBarabash Date: Sat, 20 Jan 2024 11:28:27 +0200 Subject: [PATCH] Uplift of #21597 (squashed) to release --- .../sync/service/brave_sync_service_impl.cc | 7 ++++++ .../brave_sync_service_impl_unittest.cc | 25 +++++++++++++++++++ 2 files changed, 32 insertions(+) diff --git a/components/sync/service/brave_sync_service_impl.cc b/components/sync/service/brave_sync_service_impl.cc index d47304406893..d680a10138a3 100644 --- a/components/sync/service/brave_sync_service_impl.cc +++ b/components/sync/service/brave_sync_service_impl.cc @@ -144,6 +144,13 @@ void BraveSyncServiceImpl::OnBraveSyncPrefsChanged(const std::string& path) { if (!seed.empty()) { GetBraveSyncAuthManager()->DeriveSigningKeys(seed); // Default enabled types: Bookmarks + + // Related Chromium change: 33441a0f3f9a591693157f2fd16852ce072e6f9d + // We need to acquire setup handle before change selected types. + // See changes at |SyncServiceImpl::GetSyncAccountStateForPrefs| and + // |SyncUserSettingsImpl::SetSelectedTypes| + auto sync_blocker = GetSetupInProgressHandle(); + syncer::UserSelectableTypeSet selected_types; selected_types.Put(UserSelectableType::kBookmarks); GetUserSettings()->SetSelectedTypes(false, selected_types); diff --git a/components/sync/service/brave_sync_service_impl_unittest.cc b/components/sync/service/brave_sync_service_impl_unittest.cc index 5b28b2fbdb32..02100ac6eaad 100644 --- a/components/sync/service/brave_sync_service_impl_unittest.cc +++ b/components/sync/service/brave_sync_service_impl_unittest.cc @@ -567,4 +567,29 @@ TEST_F(BraveSyncServiceImplTest, HistoryPreconditions) { OSCryptMocker::TearDown(); } +TEST_F(BraveSyncServiceImplTest, OnlyBookmarksAfterSetup) { + OSCryptMocker::SetUp(); + CreateSyncService(); + + brave_sync_service_impl()->Initialize(); + EXPECT_FALSE(engine()); + brave_sync_service_impl()->SetSyncCode(kValidSyncCode); + task_environment_.RunUntilIdle(); + + brave_sync_service_impl() + ->GetUserSettings() + ->SetInitialSyncFeatureSetupComplete( + syncer::SyncFirstSetupCompleteSource::ADVANCED_FLOW_CONFIRM); + EXPECT_TRUE(engine()); + + EXPECT_FALSE( + brave_sync_service_impl()->GetUserSettings()->IsSyncEverythingEnabled()); + auto selected_types = + brave_sync_service_impl()->GetUserSettings()->GetSelectedTypes(); + EXPECT_EQ(selected_types.Size(), 1u); + EXPECT_TRUE(selected_types.Has(UserSelectableType::kBookmarks)); + + OSCryptMocker::TearDown(); +} + } // namespace syncer