diff --git a/chrome/browser/sync/chrome_sync_client.cc b/chrome/browser/sync/chrome_sync_client.cc index 1b23cb4fa5d5c..d5f07f7c417c4 100644 --- a/chrome/browser/sync/chrome_sync_client.cc +++ b/chrome/browser/sync/chrome_sync_client.cc @@ -292,14 +292,14 @@ ChromeSyncClient::CreateDataTypeControllers(syncer::SyncService* sync_service) { SecurityEventRecorderFactory::GetForProfile(profile_) ->GetControllerDelegate() .get(); - // Forward both on-disk and in-memory storage modes to the same delegate, + // Forward both full-sync and transport-only modes to the same delegate, // since behavior for SECURITY_EVENTS does not differ. controllers.push_back(std::make_unique<syncer::ModelTypeController>( syncer::SECURITY_EVENTS, - /*delegate_on_disk=*/ + /*delegate_for_full_sync_mode=*/ std::make_unique<syncer::ForwardingModelTypeControllerDelegate>( delegate), - /*delegate_in_memory=*/ + /*delegate_for_transport_mode=*/ std::make_unique<syncer::ForwardingModelTypeControllerDelegate>( delegate))); } diff --git a/components/autofill/core/browser/payments/autofill_wallet_model_type_controller.cc b/components/autofill/core/browser/payments/autofill_wallet_model_type_controller.cc index 787a9e3428d31..263b8d890251f 100644 --- a/components/autofill/core/browser/payments/autofill_wallet_model_type_controller.cc +++ b/components/autofill/core/browser/payments/autofill_wallet_model_type_controller.cc @@ -18,10 +18,11 @@ namespace browser_sync { AutofillWalletModelTypeController::AutofillWalletModelTypeController( syncer::ModelType type, - std::unique_ptr<syncer::ModelTypeControllerDelegate> delegate_on_disk, + std::unique_ptr<syncer::ModelTypeControllerDelegate> + delegate_for_full_sync_mode, PrefService* pref_service, syncer::SyncService* sync_service) - : ModelTypeController(type, std::move(delegate_on_disk)), + : ModelTypeController(type, std::move(delegate_for_full_sync_mode)), pref_service_(pref_service), sync_service_(sync_service) { DCHECK(type == syncer::AUTOFILL_WALLET_DATA || @@ -34,13 +35,15 @@ AutofillWalletModelTypeController::AutofillWalletModelTypeController( AutofillWalletModelTypeController::AutofillWalletModelTypeController( syncer::ModelType type, - std::unique_ptr<syncer::ModelTypeControllerDelegate> delegate_on_disk, - std::unique_ptr<syncer::ModelTypeControllerDelegate> delegate_in_memory, + std::unique_ptr<syncer::ModelTypeControllerDelegate> + delegate_for_full_sync_mode, + std::unique_ptr<syncer::ModelTypeControllerDelegate> + delegate_for_transport_mode, PrefService* pref_service, syncer::SyncService* sync_service) : ModelTypeController(type, - std::move(delegate_on_disk), - std::move(delegate_in_memory)), + std::move(delegate_for_full_sync_mode), + std::move(delegate_for_transport_mode)), pref_service_(pref_service), sync_service_(sync_service) { DCHECK(type == syncer::AUTOFILL_WALLET_DATA || diff --git a/components/autofill/core/browser/payments/autofill_wallet_model_type_controller.h b/components/autofill/core/browser/payments/autofill_wallet_model_type_controller.h index 6cc8addad3b8d..03d0312c09481 100644 --- a/components/autofill/core/browser/payments/autofill_wallet_model_type_controller.h +++ b/components/autofill/core/browser/payments/autofill_wallet_model_type_controller.h @@ -29,13 +29,16 @@ class AutofillWalletModelTypeController : public syncer::ModelTypeController, // |sync_client| must outlive this object. AutofillWalletModelTypeController( syncer::ModelType type, - std::unique_ptr<syncer::ModelTypeControllerDelegate> delegate_on_disk, + std::unique_ptr<syncer::ModelTypeControllerDelegate> + delegate_for_full_sync_mode, PrefService* pref_service, syncer::SyncService* sync_service); AutofillWalletModelTypeController( syncer::ModelType type, - std::unique_ptr<syncer::ModelTypeControllerDelegate> delegate_on_disk, - std::unique_ptr<syncer::ModelTypeControllerDelegate> delegate_in_memory, + std::unique_ptr<syncer::ModelTypeControllerDelegate> + delegate_for_full_sync_mode, + std::unique_ptr<syncer::ModelTypeControllerDelegate> + delegate_for_transport_mode, PrefService* pref_service, syncer::SyncService* sync_service); ~AutofillWalletModelTypeController() override; diff --git a/components/autofill/core/browser/webdata/autofill_profile_model_type_controller.cc b/components/autofill/core/browser/webdata/autofill_profile_model_type_controller.cc index eeda7a580d956..d2489486839a1 100644 --- a/components/autofill/core/browser/webdata/autofill_profile_model_type_controller.cc +++ b/components/autofill/core/browser/webdata/autofill_profile_model_type_controller.cc @@ -14,11 +14,12 @@ namespace browser_sync { AutofillProfileModelTypeController::AutofillProfileModelTypeController( - std::unique_ptr<syncer::ModelTypeControllerDelegate> delegate_on_disk, + std::unique_ptr<syncer::ModelTypeControllerDelegate> + delegate_for_full_sync_mode, PrefService* pref_service, syncer::SyncService* sync_service) : ModelTypeController(syncer::AUTOFILL_PROFILE, - std::move(delegate_on_disk)), + std::move(delegate_for_full_sync_mode)), pref_service_(pref_service), sync_service_(sync_service) { pref_registrar_.Init(pref_service_); diff --git a/components/autofill/core/browser/webdata/autofill_profile_model_type_controller.h b/components/autofill/core/browser/webdata/autofill_profile_model_type_controller.h index ed684b9e63eee..9ff3493d283b3 100644 --- a/components/autofill/core/browser/webdata/autofill_profile_model_type_controller.h +++ b/components/autofill/core/browser/webdata/autofill_profile_model_type_controller.h @@ -24,7 +24,8 @@ namespace browser_sync { class AutofillProfileModelTypeController : public syncer::ModelTypeController { public: AutofillProfileModelTypeController( - std::unique_ptr<syncer::ModelTypeControllerDelegate> delegate_on_disk, + std::unique_ptr<syncer::ModelTypeControllerDelegate> + delegate_for_full_sync_mode, PrefService* pref_service, syncer::SyncService* sync_service); ~AutofillProfileModelTypeController() override; diff --git a/components/browser_sync/profile_sync_components_factory_impl.cc b/components/browser_sync/profile_sync_components_factory_impl.cc index c454cc8957f0e..fd7d7467a76e9 100644 --- a/components/browser_sync/profile_sync_components_factory_impl.cc +++ b/components/browser_sync/profile_sync_components_factory_impl.cc @@ -361,14 +361,14 @@ ProfileSyncComponentsFactoryImpl::CreateCommonDataTypeControllers( .get()))); } - // Forward both on-disk and in-memory storage modes to the same delegate, + // Forward both full-sync and transport-only modes to the same delegate, // since behavior for USER_CONSENTS does not differ (they are always // persisted). controllers.push_back(std::make_unique<ModelTypeController>( syncer::USER_CONSENTS, - /*delegate_on_disk=*/ + /*delegate_for_full_sync_mode=*/ CreateForwardingControllerDelegate(syncer::USER_CONSENTS), - /*delegate_in_memory=*/ + /*delegate_for_transport_mode=*/ CreateForwardingControllerDelegate(syncer::USER_CONSENTS))); return controllers; @@ -459,12 +459,12 @@ std::unique_ptr<ModelTypeController> ProfileSyncComponentsFactoryImpl:: autofill::AutofillWebDataService*)>& delegate_from_web_data, syncer::SyncService* sync_service) { return std::make_unique<AutofillWalletModelTypeController>( - type, /*delegate_on_disk=*/ + type, /*delegate_for_full_sync_mode=*/ std::make_unique<syncer::ProxyModelTypeControllerDelegate>( db_thread_, base::BindRepeating(delegate_from_web_data, base::RetainedRef(web_data_service_on_disk_))), - /*delegate_in_memory=*/ + /*delegate_for_transport_mode=*/ std::make_unique<syncer::ProxyModelTypeControllerDelegate>( db_thread_, base::BindRepeating(delegate_from_web_data, diff --git a/components/password_manager/core/browser/sync/password_model_type_controller.cc b/components/password_manager/core/browser/sync/password_model_type_controller.cc index 558f3bc9ab1b8..07485b33ba327 100644 --- a/components/password_manager/core/browser/sync/password_model_type_controller.cc +++ b/components/password_manager/core/browser/sync/password_model_type_controller.cc @@ -14,13 +14,15 @@ namespace password_manager { PasswordModelTypeController::PasswordModelTypeController( - std::unique_ptr<syncer::ModelTypeControllerDelegate> delegate_on_disk, - std::unique_ptr<syncer::ModelTypeControllerDelegate> delegate_in_memory, + std::unique_ptr<syncer::ModelTypeControllerDelegate> + delegate_for_full_sync_mode, + std::unique_ptr<syncer::ModelTypeControllerDelegate> + delegate_for_transport_mode, syncer::SyncService* sync_service, const base::RepeatingClosure& state_changed_callback) : ModelTypeController(syncer::PASSWORDS, - std::move(delegate_on_disk), - std::move(delegate_in_memory)), + std::move(delegate_for_full_sync_mode), + std::move(delegate_for_transport_mode)), sync_service_(sync_service), state_changed_callback_(state_changed_callback) {} @@ -31,7 +33,7 @@ void PasswordModelTypeController::LoadModels( const ModelLoadCallback& model_load_callback) { DCHECK(CalledOnValidThread()); sync_service_->AddObserver(this); - storage_option_ = configure_context.storage_option; + sync_mode_ = configure_context.sync_mode; ModelTypeController::LoadModels(configure_context, model_load_callback); state_changed_callback_.Run(); } @@ -40,12 +42,12 @@ void PasswordModelTypeController::Stop(syncer::ShutdownReason shutdown_reason, StopCallback callback) { DCHECK(CalledOnValidThread()); sync_service_->RemoveObserver(this); - // The account storage should be cleared if Sync is stopped for any reason - // (other than just browser shutdown). One common case it switching from - // Sync-the-transport to Sync-the-feature; in that case we don't want to end - // up with two copied of the passwords (one in the profile DB, one in the - // account DB). - if (storage_option_ == syncer::STORAGE_IN_MEMORY) { + // In transport-only mode, our storage is scoped to the Gaia account. That + // means it should be cleared if Sync is stopped for any reason (other than + // just browser shutdown). E.g. when switching to full-Sync mode, we don't + // want to end up with two copies of the passwords (one in the profile DB, one + // in the account DB). + if (sync_mode_ == syncer::SyncMode::kTransportOnly) { switch (shutdown_reason) { case syncer::STOP_SYNC: shutdown_reason = syncer::DISABLE_SYNC; diff --git a/components/password_manager/core/browser/sync/password_model_type_controller.h b/components/password_manager/core/browser/sync/password_model_type_controller.h index bc13f2611a6dd..8c6f8aff2c9f3 100644 --- a/components/password_manager/core/browser/sync/password_model_type_controller.h +++ b/components/password_manager/core/browser/sync/password_model_type_controller.h @@ -24,8 +24,10 @@ class PasswordModelTypeController : public syncer::ModelTypeController, public syncer::SyncServiceObserver { public: PasswordModelTypeController( - std::unique_ptr<syncer::ModelTypeControllerDelegate> delegate_on_disk, - std::unique_ptr<syncer::ModelTypeControllerDelegate> delegate_in_memory, + std::unique_ptr<syncer::ModelTypeControllerDelegate> + delegate_for_full_sync_mode, + std::unique_ptr<syncer::ModelTypeControllerDelegate> + delegate_for_transport_mode, syncer::SyncService* sync_service, const base::RepeatingClosure& state_changed_callback); ~PasswordModelTypeController() override; @@ -44,7 +46,7 @@ class PasswordModelTypeController : public syncer::ModelTypeController, const base::RepeatingClosure state_changed_callback_; // Passed in to LoadModels(), and cached here for later use in Stop(). - syncer::StorageOption storage_option_ = syncer::STORAGE_ON_DISK; + syncer::SyncMode sync_mode_ = syncer::SyncMode::kFull; DISALLOW_COPY_AND_ASSIGN(PasswordModelTypeController); }; diff --git a/components/sync/base/BUILD.gn b/components/sync/base/BUILD.gn index cd73fed196331..6bf51a7cc1ba0 100644 --- a/components/sync/base/BUILD.gn +++ b/components/sync/base/BUILD.gn @@ -43,9 +43,9 @@ jumbo_static_library("base") { "report_unrecoverable_error.cc", "report_unrecoverable_error.h", "stop_source.h", - "storage_option.h", "sync_base_switches.cc", "sync_base_switches.h", + "sync_mode.h", "sync_prefs.cc", "sync_prefs.h", "sync_stop_metadata_fate.cc", diff --git a/components/sync/base/storage_option.h b/components/sync/base/storage_option.h deleted file mode 100644 index 4a1c671fa8477..0000000000000 --- a/components/sync/base/storage_option.h +++ /dev/null @@ -1,15 +0,0 @@ -// Copyright 2018 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#ifndef COMPONENTS_SYNC_BASE_STORAGE_OPTION_H_ -#define COMPONENTS_SYNC_BASE_STORAGE_OPTION_H_ - -namespace syncer { - -// Passed as an argument when configuring sync / individual data types. -enum StorageOption { STORAGE_ON_DISK, STORAGE_IN_MEMORY }; - -} // namespace syncer - -#endif // COMPONENTS_SYNC_BASE_STORAGE_OPTION_H_ diff --git a/components/sync/base/sync_mode.h b/components/sync/base/sync_mode.h new file mode 100644 index 0000000000000..fc2d6b5c62e6b --- /dev/null +++ b/components/sync/base/sync_mode.h @@ -0,0 +1,18 @@ +// Copyright 2018 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef COMPONENTS_SYNC_BASE_SYNC_MODE_H_ +#define COMPONENTS_SYNC_BASE_SYNC_MODE_H_ + +namespace syncer { + +// Specifies whether the sync machinery is running in full-Sync mode (aka +// Sync-the-feature) or transport-only mode. In transport-only mode, only a +// subset of data types is allowed, and any local data is removed on sign-out. +// Passed as an argument when configuring sync / individual data types. +enum class SyncMode { kTransportOnly, kFull }; + +} // namespace syncer + +#endif // COMPONENTS_SYNC_BASE_SYNC_MODE_H_ diff --git a/components/sync/driver/async_directory_type_controller.cc b/components/sync/driver/async_directory_type_controller.cc index b9fe01617ff78..626458f856657 100644 --- a/components/sync/driver/async_directory_type_controller.cc +++ b/components/sync/driver/async_directory_type_controller.cc @@ -50,7 +50,7 @@ void AsyncDirectoryTypeController::LoadModels( const ConfigureContext& configure_context, const ModelLoadCallback& model_load_callback) { DCHECK(CalledOnValidThread()); - DCHECK_EQ(configure_context.storage_option, STORAGE_ON_DISK) + DCHECK_EQ(configure_context.sync_mode, SyncMode::kFull) << " for type " << ModelTypeToString(type()); model_load_callback_ = model_load_callback; diff --git a/components/sync/driver/configure_context.h b/components/sync/driver/configure_context.h index b144a52651bd3..ffd931509b60c 100644 --- a/components/sync/driver/configure_context.h +++ b/components/sync/driver/configure_context.h @@ -7,7 +7,7 @@ #include <string> -#include "components/sync/base/storage_option.h" +#include "components/sync/base/sync_mode.h" #include "components/sync/engine/configure_reason.h" #include "google_apis/gaia/core_account_id.h" @@ -22,7 +22,7 @@ namespace syncer { struct ConfigureContext { CoreAccountId authenticated_account_id; std::string cache_guid; - StorageOption storage_option = STORAGE_ON_DISK; + SyncMode sync_mode = SyncMode::kFull; ConfigureReason reason = CONFIGURE_REASON_UNKNOWN; base::Time configuration_start_time; // TODO(mastiz): Consider adding |requested_types| here, but currently there diff --git a/components/sync/driver/data_type_manager_impl.cc b/components/sync/driver/data_type_manager_impl.cc index 1fee09601bcbd..1e15945f5bbbf 100644 --- a/components/sync/driver/data_type_manager_impl.cc +++ b/components/sync/driver/data_type_manager_impl.cc @@ -623,11 +623,11 @@ ModelTypeSet DataTypeManagerImpl::PrepareConfigureParams( // response will be sent. ModelTypeSet types_to_purge; - // If we're using in-memory storage, don't clear any old data. The reason is + // If we're using transport-only mode, don't clear any old data. The reason is // that if a user temporarily disables Sync, we don't want to wipe (and later // redownload) all their data, just because Sync restarted in transport-only // mode. - if (last_requested_context_.storage_option == STORAGE_ON_DISK) { + if (last_requested_context_.sync_mode == SyncMode::kFull) { types_to_purge = Difference(ModelTypeSet::All(), downloaded_types_); // Include clean_types in types_to_purge, they are part of // |downloaded_types_|, but still need to be cleared. @@ -663,7 +663,7 @@ ModelTypeSet DataTypeManagerImpl::PrepareConfigureParams( base::Bind(&DataTypeManagerImpl::DownloadReady, weak_ptr_factory_.GetWeakPtr(), download_types_queue_.front()); params->is_sync_feature_enabled = - last_requested_context_.storage_option == STORAGE_ON_DISK; + last_requested_context_.sync_mode == SyncMode::kFull; DCHECK(Intersection(active_types, types_to_purge).Empty()); DCHECK(Intersection(active_types, fatal_types).Empty()); diff --git a/components/sync/driver/data_type_manager_impl_unittest.cc b/components/sync/driver/data_type_manager_impl_unittest.cc index 9f521fec9e51b..9985f1127e0d7 100644 --- a/components/sync/driver/data_type_manager_impl_unittest.cc +++ b/components/sync/driver/data_type_manager_impl_unittest.cc @@ -11,7 +11,7 @@ #include "base/test/metrics/histogram_tester.h" #include "base/test/task_environment.h" #include "components/sync/base/model_type.h" -#include "components/sync/base/storage_option.h" +#include "components/sync/base/sync_mode.h" #include "components/sync/driver/configure_context.h" #include "components/sync/driver/data_type_encryption_handler.h" #include "components/sync/driver/data_type_manager_observer.h" @@ -34,12 +34,11 @@ ModelTypeSet AddControlTypesTo(ModelTypeSet types) { return Union(ControlTypes(), types); } -ConfigureContext BuildConfigureContext( - ConfigureReason reason, - StorageOption storage_option = STORAGE_ON_DISK) { +ConfigureContext BuildConfigureContext(ConfigureReason reason, + SyncMode sync_mode = SyncMode::kFull) { ConfigureContext context; context.reason = reason; - context.storage_option = storage_option; + context.sync_mode = sync_mode; return context; } @@ -276,10 +275,9 @@ class SyncDataTypeManagerImplTest : public testing::Test { } void Configure(ModelTypeSet desired_types, - StorageOption storage_option, + SyncMode sync_mode, ConfigureReason reason = CONFIGURE_REASON_RECONFIGURATION) { - dtm_->Configure(desired_types, - BuildConfigureContext(reason, storage_option)); + dtm_->Configure(desired_types, BuildConfigureContext(reason, sync_mode)); } // Finish downloading for the given DTM. Should be done only after @@ -1889,7 +1887,7 @@ TEST_F(SyncDataTypeManagerImplTest, PurgeDataOnStartingPersistent) { SetConfigureStartExpectation(); SetConfigureDoneExpectation(DataTypeManager::OK, DataTypeStatusTable()); - Configure(ModelTypeSet(BOOKMARKS, AUTOFILL_WALLET_DATA), STORAGE_ON_DISK); + Configure(ModelTypeSet(BOOKMARKS, AUTOFILL_WALLET_DATA), SyncMode::kFull); ASSERT_EQ(DataTypeManager::CONFIGURING, dtm_->state()); FinishDownload(ModelTypeSet(), ModelTypeSet()); @@ -1910,7 +1908,7 @@ TEST_F(SyncDataTypeManagerImplTest, PurgeDataOnStartingPersistent) { // Now we restart with a reduced set of data types. SetConfigureStartExpectation(); SetConfigureDoneExpectation(DataTypeManager::OK, DataTypeStatusTable()); - Configure(ModelTypeSet(AUTOFILL_WALLET_DATA), STORAGE_ON_DISK); + Configure(ModelTypeSet(AUTOFILL_WALLET_DATA), SyncMode::kFull); ASSERT_EQ(DataTypeManager::CONFIGURING, dtm_->state()); FinishDownload(ModelTypeSet(), ModelTypeSet()); @@ -1937,7 +1935,7 @@ TEST_F(SyncDataTypeManagerImplTest, DontPurgeDataOnStartingEphemeral) { SetConfigureStartExpectation(); SetConfigureDoneExpectation(DataTypeManager::OK, DataTypeStatusTable()); - Configure(ModelTypeSet(BOOKMARKS, AUTOFILL_WALLET_DATA), STORAGE_ON_DISK); + Configure(ModelTypeSet(BOOKMARKS, AUTOFILL_WALLET_DATA), SyncMode::kFull); ASSERT_EQ(DataTypeManager::CONFIGURING, dtm_->state()); FinishDownload(ModelTypeSet(), ModelTypeSet()); @@ -1958,7 +1956,7 @@ TEST_F(SyncDataTypeManagerImplTest, DontPurgeDataOnStartingEphemeral) { // Now we restart in ephemeral mode, with a reduced set of data types. SetConfigureStartExpectation(); SetConfigureDoneExpectation(DataTypeManager::OK, DataTypeStatusTable()); - Configure(ModelTypeSet(AUTOFILL_WALLET_DATA), STORAGE_IN_MEMORY); + Configure(ModelTypeSet(AUTOFILL_WALLET_DATA), SyncMode::kTransportOnly); ASSERT_EQ(DataTypeManager::CONFIGURING, dtm_->state()); FinishDownload(ModelTypeSet(), ModelTypeSet()); @@ -1982,7 +1980,7 @@ TEST_F(SyncDataTypeManagerImplTest, PurgeDataOnReconfiguringPersistent) { SetConfigureStartExpectation(); SetConfigureDoneExpectation(DataTypeManager::OK, DataTypeStatusTable()); - Configure(ModelTypeSet(BOOKMARKS, AUTOFILL_WALLET_DATA), STORAGE_ON_DISK); + Configure(ModelTypeSet(BOOKMARKS, AUTOFILL_WALLET_DATA), SyncMode::kFull); ASSERT_EQ(DataTypeManager::CONFIGURING, dtm_->state()); FinishDownload(ModelTypeSet(), ModelTypeSet()); @@ -1997,7 +1995,7 @@ TEST_F(SyncDataTypeManagerImplTest, PurgeDataOnReconfiguringPersistent) { // Now we reconfigure with a reduced set of data types. SetConfigureStartExpectation(); SetConfigureDoneExpectation(DataTypeManager::OK, DataTypeStatusTable()); - Configure(ModelTypeSet(AUTOFILL_WALLET_DATA), STORAGE_ON_DISK); + Configure(ModelTypeSet(AUTOFILL_WALLET_DATA), SyncMode::kFull); ASSERT_EQ(DataTypeManager::CONFIGURING, dtm_->state()); FinishDownload(ModelTypeSet(), ModelTypeSet()); @@ -2020,7 +2018,7 @@ TEST_F(SyncDataTypeManagerImplTest, DontPurgeDataOnReconfiguringEphemeral) { SetConfigureStartExpectation(); SetConfigureDoneExpectation(DataTypeManager::OK, DataTypeStatusTable()); - Configure(ModelTypeSet(BOOKMARKS, AUTOFILL_WALLET_DATA), STORAGE_ON_DISK); + Configure(ModelTypeSet(BOOKMARKS, AUTOFILL_WALLET_DATA), SyncMode::kFull); ASSERT_EQ(DataTypeManager::CONFIGURING, dtm_->state()); FinishDownload(ModelTypeSet(), ModelTypeSet()); @@ -2035,7 +2033,7 @@ TEST_F(SyncDataTypeManagerImplTest, DontPurgeDataOnReconfiguringEphemeral) { // Now we reconfigure into ephemeral mode, with a reduced set of data types. SetConfigureStartExpectation(); SetConfigureDoneExpectation(DataTypeManager::OK, DataTypeStatusTable()); - Configure(ModelTypeSet(AUTOFILL_WALLET_DATA), STORAGE_IN_MEMORY); + Configure(ModelTypeSet(AUTOFILL_WALLET_DATA), SyncMode::kTransportOnly); ASSERT_EQ(DataTypeManager::CONFIGURING, dtm_->state()); FinishDownload(ModelTypeSet(), ModelTypeSet()); @@ -2060,7 +2058,7 @@ TEST_F(SyncDataTypeManagerImplTest, ShouldRecordInitialConfigureTimeHistogram) { SetConfigureStartExpectation(); SetConfigureDoneExpectation(DataTypeManager::OK, DataTypeStatusTable()); - Configure(ModelTypeSet(BOOKMARKS), STORAGE_ON_DISK, + Configure(ModelTypeSet(BOOKMARKS), SyncMode::kFull, CONFIGURE_REASON_NEW_CLIENT); FinishDownload(ModelTypeSet(), ModelTypeSet()); @@ -2078,7 +2076,7 @@ TEST_F(SyncDataTypeManagerImplTest, SetConfigureStartExpectation(); SetConfigureDoneExpectation(DataTypeManager::OK, DataTypeStatusTable()); - Configure(ModelTypeSet(BOOKMARKS), STORAGE_ON_DISK, + Configure(ModelTypeSet(BOOKMARKS), SyncMode::kFull, CONFIGURE_REASON_RECONFIGURATION); FinishDownload(ModelTypeSet(), ModelTypeSet()); diff --git a/components/sync/driver/frontend_data_type_controller.cc b/components/sync/driver/frontend_data_type_controller.cc index 55a5c9b5adb7f..5ab8d202c0fa8 100644 --- a/components/sync/driver/frontend_data_type_controller.cc +++ b/components/sync/driver/frontend_data_type_controller.cc @@ -31,7 +31,7 @@ void FrontendDataTypeController::LoadModels( const ConfigureContext& configure_context, const ModelLoadCallback& model_load_callback) { DCHECK(CalledOnValidThread()); - DCHECK_EQ(configure_context.storage_option, STORAGE_ON_DISK); + DCHECK_EQ(configure_context.sync_mode, SyncMode::kFull); model_load_callback_ = model_load_callback; diff --git a/components/sync/driver/glue/sync_engine_backend.cc b/components/sync/driver/glue/sync_engine_backend.cc index 2469a387d7528..450752454e38e 100644 --- a/components/sync/driver/glue/sync_engine_backend.cc +++ b/components/sync/driver/glue/sync_engine_backend.cc @@ -696,8 +696,8 @@ void SyncEngineBackend::LoadAndConnectNigoriController() { configure_context.authenticated_account_id = authenticated_account_id_; configure_context.cache_guid = sync_manager_->cache_guid(); // TODO(crbug.com/922900): investigate whether we want to use - // STORAGE_IN_MEMORY in Butter mode. - configure_context.storage_option = STORAGE_ON_DISK; + // kTransportOnly in Butter mode. + configure_context.sync_mode = SyncMode::kFull; configure_context.configuration_start_time = base::Time::Now(); nigori_controller_->LoadModels(configure_context, base::DoNothing()); DCHECK_EQ(nigori_controller_->state(), DataTypeController::MODEL_LOADED); diff --git a/components/sync/driver/model_association_manager.cc b/components/sync/driver/model_association_manager.cc index 2ad4465197729..895f4762c50d4 100644 --- a/components/sync/driver/model_association_manager.cc +++ b/components/sync/driver/model_association_manager.cc @@ -114,8 +114,7 @@ void ModelAssociationManager::Initialize(ModelTypeSet desired_types, // |desired_types| must be a subset of |preferred_types|. DCHECK(preferred_types.HasAll(desired_types)); - bool storage_option_changed = - configure_context_.storage_option != context.storage_option; + bool sync_mode_changed = configure_context_.sync_mode != context.sync_mode; configure_context_ = context; @@ -145,8 +144,7 @@ void ModelAssociationManager::Initialize(ModelTypeSet desired_types, // We generally stop all data types which are not desired. When the storage // option changes, we need to restart all data types so that they can // re-wire to the correct storage. - bool should_stop = - !desired_types_.Has(dtc->type()) || storage_option_changed; + bool should_stop = !desired_types_.Has(dtc->type()) || sync_mode_changed; // If the datatype is already STOPPING, we also wait for it to stop, to make // sure it's ready to start again (if appropriate). if ((should_stop && dtc->state() != DataTypeController::NOT_RUNNING) || @@ -155,12 +153,12 @@ void ModelAssociationManager::Initialize(ModelTypeSet desired_types, // means we'll clear it. ShutdownReason reason = preferred_types.Has(dtc->type()) ? STOP_SYNC : DISABLE_SYNC; - // If we're switchingt o in-memory storage, don't clear any old data. The - // reason is that if a user temporarily disables Sync, we don't want to - // wipe (and later redownload) all their data, just because Sync restarted - // in transport-only mode. - if (storage_option_changed && - configure_context_.storage_option == STORAGE_IN_MEMORY) { + // If we're switching to transport-only mode, don't clear any old data. + // The reason is that if a user temporarily disables Sync, we don't want + // to wipe (and later redownload) all their data, just because Sync + // restarted in transport-only mode. + if (sync_mode_changed && + configure_context_.sync_mode == SyncMode::kTransportOnly) { reason = STOP_SYNC; } types_to_stop[dtc] = reason; diff --git a/components/sync/driver/model_association_manager_unittest.cc b/components/sync/driver/model_association_manager_unittest.cc index f845304801a61..56e98215374fd 100644 --- a/components/sync/driver/model_association_manager_unittest.cc +++ b/components/sync/driver/model_association_manager_unittest.cc @@ -733,7 +733,7 @@ TEST_F(SyncModelAssociationManagerTest, ModelTypeSet desired_types = preferred_types; ConfigureContext configure_context; - configure_context.storage_option = STORAGE_ON_DISK; + configure_context.sync_mode = SyncMode::kFull; EXPECT_CALL(delegate_, OnSingleDataTypeWillStart(BOOKMARKS)); EXPECT_CALL(delegate_, OnSingleDataTypeWillStart(APPS)); @@ -757,7 +757,7 @@ TEST_F(SyncModelAssociationManagerTest, testing::Mock::VerifyAndClearExpectations(&delegate_); // Switch to in-memory storage. - configure_context.storage_option = STORAGE_IN_MEMORY; + configure_context.sync_mode = SyncMode::kTransportOnly; desired_types.Remove(APPS); preferred_types.Remove(APPS); @@ -786,7 +786,7 @@ TEST_F(SyncModelAssociationManagerTest, } TEST_F(SyncModelAssociationManagerTest, - SwitchFromInMemoryToOnDiskRestartsTypes) { + SwitchFromTransportOnlyToFullSyncRestartsTypes) { // Associate model with two data types. controllers_[BOOKMARKS] = std::make_unique<FakeDataTypeController>(BOOKMARKS); controllers_[APPS] = std::make_unique<FakeDataTypeController>(APPS); @@ -795,7 +795,7 @@ TEST_F(SyncModelAssociationManagerTest, ModelTypeSet desired_types = preferred_types; ConfigureContext configure_context; - configure_context.storage_option = STORAGE_IN_MEMORY; + configure_context.sync_mode = SyncMode::kTransportOnly; EXPECT_CALL(delegate_, OnSingleDataTypeWillStart(BOOKMARKS)); EXPECT_CALL(delegate_, OnSingleDataTypeWillStart(APPS)); @@ -818,8 +818,8 @@ TEST_F(SyncModelAssociationManagerTest, DataTypeController::RUNNING); testing::Mock::VerifyAndClearExpectations(&delegate_); - // Switch to on-disk storage. - configure_context.storage_option = STORAGE_ON_DISK; + // Switch to full-sync mode. + configure_context.sync_mode = SyncMode::kFull; desired_types.Remove(APPS); preferred_types.Remove(APPS); diff --git a/components/sync/driver/model_type_controller.cc b/components/sync/driver/model_type_controller.cc index 04caaec7c326e..1fbf4f155c5f0 100644 --- a/components/sync/driver/model_type_controller.cc +++ b/components/sync/driver/model_type_controller.cc @@ -45,17 +45,19 @@ SyncStopMetadataFate TakeStrictestMetadataFate(SyncStopMetadataFate fate1, ModelTypeController::ModelTypeController( ModelType type, - std::unique_ptr<ModelTypeControllerDelegate> delegate_on_disk) + std::unique_ptr<ModelTypeControllerDelegate> delegate_for_full_sync_mode) : DataTypeController(type) { - delegate_map_.emplace(STORAGE_ON_DISK, std::move(delegate_on_disk)); + delegate_map_.emplace(SyncMode::kFull, + std::move(delegate_for_full_sync_mode)); } ModelTypeController::ModelTypeController( ModelType type, - std::unique_ptr<ModelTypeControllerDelegate> delegate_on_disk, - std::unique_ptr<ModelTypeControllerDelegate> delegate_in_memory) - : ModelTypeController(type, std::move(delegate_on_disk)) { - delegate_map_.emplace(STORAGE_IN_MEMORY, std::move(delegate_in_memory)); + std::unique_ptr<ModelTypeControllerDelegate> delegate_for_full_sync_mode, + std::unique_ptr<ModelTypeControllerDelegate> delegate_for_transport_mode) + : ModelTypeController(type, std::move(delegate_for_full_sync_mode)) { + delegate_map_.emplace(SyncMode::kTransportOnly, + std::move(delegate_for_transport_mode)); } ModelTypeController::~ModelTypeController() {} @@ -84,7 +86,7 @@ void ModelTypeController::LoadModels( DCHECK(model_load_callback); DCHECK_EQ(NOT_RUNNING, state_); - auto it = delegate_map_.find(configure_context.storage_option); + auto it = delegate_map_.find(configure_context.sync_mode); DCHECK(it != delegate_map_.end()); delegate_ = it->second.get(); DCHECK(delegate_); @@ -100,7 +102,7 @@ void ModelTypeController::LoadModels( base::AsWeakPtr(this), SyncError::DATATYPE_ERROR)); request.authenticated_account_id = configure_context.authenticated_account_id; request.cache_guid = configure_context.cache_guid; - request.storage_option = configure_context.storage_option; + request.sync_mode = configure_context.sync_mode; request.configuration_start_time = configure_context.configuration_start_time; // Note that |request.authenticated_account_id| may be empty for local sync. diff --git a/components/sync/driver/model_type_controller.h b/components/sync/driver/model_type_controller.h index 8787373d00cbf..4f29a348e779c 100644 --- a/components/sync/driver/model_type_controller.h +++ b/components/sync/driver/model_type_controller.h @@ -14,7 +14,7 @@ #include "base/macros.h" #include "base/memory/weak_ptr.h" #include "components/sync/base/model_type.h" -#include "components/sync/base/storage_option.h" +#include "components/sync/base/sync_mode.h" #include "components/sync/driver/configure_context.h" #include "components/sync/driver/data_type_controller.h" #include "components/sync/model/model_error.h" @@ -30,12 +30,12 @@ class ModelTypeController : public DataTypeController { public: ModelTypeController( ModelType type, - std::unique_ptr<ModelTypeControllerDelegate> delegate_on_disk); + std::unique_ptr<ModelTypeControllerDelegate> delegate_for_full_sync_mode); // For datatypes that have support for STORAGE_IN_MEMORY. ModelTypeController( ModelType type, - std::unique_ptr<ModelTypeControllerDelegate> delegate_on_disk, - std::unique_ptr<ModelTypeControllerDelegate> delegate_in_memory); + std::unique_ptr<ModelTypeControllerDelegate> delegate_for_full_sync_mode, + std::unique_ptr<ModelTypeControllerDelegate> delegate_for_transport_mode); ~ModelTypeController() override; // Steals the activation response, only used for Nigori. @@ -71,7 +71,7 @@ class ModelTypeController : public DataTypeController { std::unique_ptr<DataTypeActivationResponse> activation_response); void TriggerCompletionCallbacks(const SyncError& error); - base::flat_map<StorageOption, std::unique_ptr<ModelTypeControllerDelegate>> + base::flat_map<SyncMode, std::unique_ptr<ModelTypeControllerDelegate>> delegate_map_; // State of this datatype controller. diff --git a/components/sync/driver/model_type_controller_unittest.cc b/components/sync/driver/model_type_controller_unittest.cc index 53c6f9652ad9d..d4c99d6950271 100644 --- a/components/sync/driver/model_type_controller_unittest.cc +++ b/components/sync/driver/model_type_controller_unittest.cc @@ -132,8 +132,9 @@ class TestModelTypeConfigurer : public ModelTypeConfigurer { class TestModelTypeController : public ModelTypeController { public: explicit TestModelTypeController( - std::unique_ptr<ModelTypeControllerDelegate> delegate_on_disk) - : ModelTypeController(kTestModelType, std::move(delegate_on_disk)) {} + std::unique_ptr<ModelTypeControllerDelegate> delegate_for_full_sync_mode) + : ModelTypeController(kTestModelType, + std::move(delegate_for_full_sync_mode)) {} ~TestModelTypeController() override {} using ModelTypeController::ReportModelError; @@ -555,19 +556,19 @@ TEST_F(ModelTypeControllerTest, StopAndReportErrorWhileStarting) { EXPECT_EQ(DataTypeController::FAILED, controller()->state()); } -// Tests that StorageOption is honored when the controller has been constructed +// Tests that SyncMode is honored when the controller has been constructed // with two delegates. -TEST(ModelTypeControllerWithMultiDelegateTest, ToggleStorageOption) { +TEST(ModelTypeControllerWithMultiDelegateTest, ToggleSyncMode) { base::test::SingleThreadTaskEnvironment task_environment; - NiceMock<MockDelegate> delegate_on_disk; - NiceMock<MockDelegate> delegate_in_memory; + NiceMock<MockDelegate> delegate_for_full_sync_mode; + NiceMock<MockDelegate> delegate_for_transport_mode; ModelTypeController controller( kTestModelType, std::make_unique<ForwardingModelTypeControllerDelegate>( - &delegate_on_disk), + &delegate_for_full_sync_mode), std::make_unique<ForwardingModelTypeControllerDelegate>( - &delegate_in_memory)); + &delegate_for_transport_mode)); ConfigureContext context; context.authenticated_account_id = kAccountId; @@ -575,14 +576,14 @@ TEST(ModelTypeControllerWithMultiDelegateTest, ToggleStorageOption) { ModelTypeControllerDelegate::StartCallback start_callback; - // Start sync with STORAGE_IN_MEMORY. - EXPECT_CALL(delegate_on_disk, OnSyncStarting(_, _)).Times(0); - EXPECT_CALL(delegate_in_memory, OnSyncStarting(_, _)) + // Start sync with SyncMode::kTransportOnly. + EXPECT_CALL(delegate_for_full_sync_mode, OnSyncStarting(_, _)).Times(0); + EXPECT_CALL(delegate_for_transport_mode, OnSyncStarting(_, _)) .WillOnce([&](const DataTypeActivationRequest& request, ModelTypeControllerDelegate::StartCallback callback) { start_callback = std::move(callback); }); - context.storage_option = STORAGE_IN_MEMORY; + context.sync_mode = SyncMode::kTransportOnly; controller.LoadModels(context, base::DoNothing()); ASSERT_EQ(DataTypeController::MODEL_STARTING, controller.state()); @@ -593,19 +594,19 @@ TEST(ModelTypeControllerWithMultiDelegateTest, ToggleStorageOption) { ASSERT_EQ(DataTypeController::MODEL_LOADED, controller.state()); // Stop sync. - EXPECT_CALL(delegate_on_disk, OnSyncStopping(_)).Times(0); - EXPECT_CALL(delegate_in_memory, OnSyncStopping(_)); + EXPECT_CALL(delegate_for_full_sync_mode, OnSyncStopping(_)).Times(0); + EXPECT_CALL(delegate_for_transport_mode, OnSyncStopping(_)); controller.Stop(DISABLE_SYNC, base::DoNothing()); ASSERT_EQ(DataTypeController::NOT_RUNNING, controller.state()); - // Start sync with STORAGE_ON_DISK. - EXPECT_CALL(delegate_in_memory, OnSyncStarting(_, _)).Times(0); - EXPECT_CALL(delegate_on_disk, OnSyncStarting(_, _)) + // Start sync with SyncMode::kFull. + EXPECT_CALL(delegate_for_transport_mode, OnSyncStarting(_, _)).Times(0); + EXPECT_CALL(delegate_for_full_sync_mode, OnSyncStarting(_, _)) .WillOnce([&](const DataTypeActivationRequest& request, ModelTypeControllerDelegate::StartCallback callback) { start_callback = std::move(callback); }); - context.storage_option = STORAGE_ON_DISK; + context.sync_mode = SyncMode::kFull; controller.LoadModels(context, base::DoNothing()); ASSERT_EQ(DataTypeController::MODEL_STARTING, controller.state()); @@ -616,8 +617,8 @@ TEST(ModelTypeControllerWithMultiDelegateTest, ToggleStorageOption) { ASSERT_EQ(DataTypeController::MODEL_LOADED, controller.state()); // Stop sync. - EXPECT_CALL(delegate_in_memory, OnSyncStopping(_)).Times(0); - EXPECT_CALL(delegate_on_disk, OnSyncStopping(_)); + EXPECT_CALL(delegate_for_transport_mode, OnSyncStopping(_)).Times(0); + EXPECT_CALL(delegate_for_full_sync_mode, OnSyncStopping(_)); controller.Stop(DISABLE_SYNC, base::DoNothing()); ASSERT_EQ(DataTypeController::NOT_RUNNING, controller.state()); } diff --git a/components/sync/driver/profile_sync_service.cc b/components/sync/driver/profile_sync_service.cc index 558194cd0482a..61b71b88aac9a 100644 --- a/components/sync/driver/profile_sync_service.cc +++ b/components/sync/driver/profile_sync_service.cc @@ -1230,7 +1230,7 @@ void ProfileSyncService::ConfigureDataTypeManager(ConfigureReason reason) { configure_context.authenticated_account_id = GetAuthenticatedAccountInfo().account_id; configure_context.cache_guid = sync_prefs_.GetCacheGuid(); - configure_context.storage_option = STORAGE_ON_DISK; + configure_context.sync_mode = SyncMode::kFull; configure_context.reason = reason; configure_context.configuration_start_time = base::Time::Now(); @@ -1283,7 +1283,7 @@ void ProfileSyncService::ConfigureDataTypeManager(ConfigureReason reason) { } types = Intersection(types, allowed_types); - configure_context.storage_option = STORAGE_IN_MEMORY; + configure_context.sync_mode = SyncMode::kTransportOnly; } data_type_manager_->Configure(types, configure_context); diff --git a/components/sync/model/data_type_activation_request.h b/components/sync/model/data_type_activation_request.h index 75f01306d2042..e7098e7abaca8 100644 --- a/components/sync/model/data_type_activation_request.h +++ b/components/sync/model/data_type_activation_request.h @@ -8,7 +8,7 @@ #include <string> #include "base/time/time.h" -#include "components/sync/base/storage_option.h" +#include "components/sync/base/sync_mode.h" #include "components/sync/model/model_error.h" #include "google_apis/gaia/core_account_id.h" @@ -29,7 +29,7 @@ struct DataTypeActivationRequest { ModelErrorHandler error_handler; CoreAccountId authenticated_account_id; std::string cache_guid; - StorageOption storage_option = STORAGE_ON_DISK; + SyncMode sync_mode = SyncMode::kFull; // The start time of the confuguration this activation is part of. base::Time configuration_start_time; diff --git a/components/sync/model_impl/client_tag_based_model_type_processor.cc b/components/sync/model_impl/client_tag_based_model_type_processor.cc index 1a9e868eacac2..60e2e06d59078 100644 --- a/components/sync/model_impl/client_tag_based_model_type_processor.cc +++ b/components/sync/model_impl/client_tag_based_model_type_processor.cc @@ -738,7 +738,7 @@ void ClientTagBasedModelTypeProcessor::OnUpdateReceived( base::UmaHistogramCustomTimes( base::StringPrintf( "Sync.ModelTypeConfigurationTime.%s.%s", - (activation_request_.storage_option == STORAGE_IN_MEMORY) + (activation_request_.sync_mode == SyncMode::kTransportOnly) ? "Ephemeral" : "Persistent", ModelTypeToHistogramSuffix(type_)), diff --git a/components/sync/model_impl/client_tag_based_model_type_processor_unittest.cc b/components/sync/model_impl/client_tag_based_model_type_processor_unittest.cc index 830df0152ef7f..a75e70ba57b1e 100644 --- a/components/sync/model_impl/client_tag_based_model_type_processor_unittest.cc +++ b/components/sync/model_impl/client_tag_based_model_type_processor_unittest.cc @@ -17,7 +17,7 @@ #include "base/test/task_environment.h" #include "base/threading/platform_thread.h" #include "components/sync/base/model_type.h" -#include "components/sync/base/storage_option.h" +#include "components/sync/base/sync_mode.h" #include "components/sync/base/time.h" #include "components/sync/engine/data_type_activation_response.h" #include "components/sync/model/data_type_activation_request.h" @@ -234,14 +234,14 @@ class ClientTagBasedModelTypeProcessorTest : public ::testing::Test { void OnSyncStarting( const std::string& authenticated_account_id = "SomeAccountId", const std::string& cache_guid = "TestCacheGuid", - StorageOption storage_option = STORAGE_ON_DISK) { + SyncMode sync_mode = SyncMode::kFull) { DataTypeActivationRequest request; request.error_handler = base::BindRepeating( &ClientTagBasedModelTypeProcessorTest::ErrorReceived, base::Unretained(this)); request.cache_guid = cache_guid; request.authenticated_account_id = authenticated_account_id; - request.storage_option = storage_option; + request.sync_mode = sync_mode; request.configuration_start_time = base::Time::Now(); type_processor()->OnSyncStarting( request, @@ -1793,12 +1793,12 @@ TEST_F(ClientTagBasedModelTypeProcessorTest, EXPECT_EQ(0U, db()->data_count()); } -// Tests that initial updates for ephemeral storage result in reporting setup -// duration. +// Tests that initial updates for transport-only mode (called "ephemeral +// storage" for historical reasons) result in reporting setup duration. TEST_F(ClientTagBasedModelTypeProcessorTest, ShouldReportEphemeralConfigurationTime) { InitializeToMetadataLoaded(/*initial_sync_done=*/false); - OnSyncStarting("SomeAccountId", "TestCacheGuid", STORAGE_IN_MEMORY); + OnSyncStarting("SomeAccountId", "TestCacheGuid", SyncMode::kTransportOnly); base::HistogramTester histogram_tester; @@ -1817,12 +1817,12 @@ TEST_F(ClientTagBasedModelTypeProcessorTest, /*count=*/0); } -// Tests that initial updates for persistent storage do not result in reporting -// setup duration. +// Tests that initial updates for full-sync mode (called "persistent storage" +// for historical reasons) do not result in reporting setup duration. TEST_F(ClientTagBasedModelTypeProcessorTest, ShouldReportPersistentConfigurationTime) { InitializeToMetadataLoaded(/*initial_sync_done=*/false); - OnSyncStarting("SomeAccountId", "TestCacheGuid", STORAGE_ON_DISK); + OnSyncStarting("SomeAccountId", "TestCacheGuid", SyncMode::kFull); base::HistogramTester histogram_tester; @@ -1886,13 +1886,12 @@ TEST_F(FullUpdateClientTagBasedModelTypeProcessorTest, EXPECT_EQ(0U, db()->metadata_count()); EXPECT_EQ(0U, worker()->GetNumPendingCommits()); } - -// Tests that full updates for ephemeral storage result in reporting setup -// duration. +// Tests that full updates for transport-only mode (called "ephemeral storage" +// for historical reasons) result in reporting setup duration. TEST_F(FullUpdateClientTagBasedModelTypeProcessorTest, ShouldReportEphemeralConfigurationTimeOnlyForFirstFullUpdate) { InitializeToMetadataLoaded(/*initial_sync_done=*/false); - OnSyncStarting("SomeAccountId", "TestCacheGuid", STORAGE_IN_MEMORY); + OnSyncStarting("SomeAccountId", "TestCacheGuid", SyncMode::kTransportOnly); UpdateResponseDataList updates1; updates1.push_back(worker()->GenerateUpdateData( diff --git a/components/sync_sessions/proxy_tabs_data_type_controller.cc b/components/sync_sessions/proxy_tabs_data_type_controller.cc index cea10db7e1bc6..1eea69983269c 100644 --- a/components/sync_sessions/proxy_tabs_data_type_controller.cc +++ b/components/sync_sessions/proxy_tabs_data_type_controller.cc @@ -40,7 +40,7 @@ void ProxyTabsDataTypeController::LoadModels( const syncer::ConfigureContext& configure_context, const ModelLoadCallback& model_load_callback) { DCHECK(CalledOnValidThread()); - DCHECK_EQ(configure_context.storage_option, syncer::STORAGE_ON_DISK); + DCHECK_EQ(configure_context.sync_mode, syncer::SyncMode::kFull); state_ = MODEL_LOADED; state_changed_cb_.Run(state_); model_load_callback.Run(type(), syncer::SyncError()); diff --git a/components/sync_user_events/user_event_model_type_controller.cc b/components/sync_user_events/user_event_model_type_controller.cc index 5c22457cdbccc..4574e7bee1429 100644 --- a/components/sync_user_events/user_event_model_type_controller.cc +++ b/components/sync_user_events/user_event_model_type_controller.cc @@ -16,8 +16,9 @@ namespace syncer { UserEventModelTypeController::UserEventModelTypeController( SyncService* sync_service, - std::unique_ptr<ModelTypeControllerDelegate> delegate_on_disk) - : ModelTypeController(syncer::USER_EVENTS, std::move(delegate_on_disk)), + std::unique_ptr<ModelTypeControllerDelegate> delegate_for_full_sync_mode) + : ModelTypeController(syncer::USER_EVENTS, + std::move(delegate_for_full_sync_mode)), sync_service_(sync_service) { DCHECK(sync_service_); sync_service_->AddObserver(this); diff --git a/components/sync_user_events/user_event_model_type_controller.h b/components/sync_user_events/user_event_model_type_controller.h index fd4d79648a264..b6c8bcf8db4e9 100644 --- a/components/sync_user_events/user_event_model_type_controller.h +++ b/components/sync_user_events/user_event_model_type_controller.h @@ -21,7 +21,7 @@ class UserEventModelTypeController : public syncer::ModelTypeController, // |sync_service| must not be null and must outlive this object. UserEventModelTypeController( SyncService* sync_service, - std::unique_ptr<ModelTypeControllerDelegate> delegate_on_disk); + std::unique_ptr<ModelTypeControllerDelegate> delegate_for_full_sync_mode); ~UserEventModelTypeController() override; // syncer::DataTypeController implementation.