Commit de2a0999 authored by Mikel Astiz's avatar Mikel Astiz Committed by Commit Bot

[sync] Remove GetSyncableServiceForType() from SyncClient

This historic mechanism to inject dependencies into ProfileSyncService
doesn't belong in SyncClient (dependencies to core sync logic / engine
itself), and it's questionable whether it should remain in this form in
BrowserSyncClient, where feature-specific dependencies are injected, and
where multiple similar approaches coexist.

Arguably, the most elegant and universal way to inject a dependency
to a sync controller is to have full access to the KeyedService that
owns the local model. Most controllers are simple and don't actually
need this: all they need is a SyncableService or
ModelTypeControllerDelegate. However, that introduces code
inconsistencies that can be confusing.

In this patch, the approach is unified for the remaining
SyncableService types, after migrating history delete directives and
preferences). The corresponding keyed services are directly injected via
BrowserSyncClient and hence SyncClient::GetSyncableServiceForType() can
be deleted.

Change-Id: I8e80482e8657624dc7c1e15b6bcf0409ae4d1336
Bug: 915154
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2463617Reviewed-by: default avatarMarc Treib <treib@chromium.org>
Commit-Queue: Mikel Astiz <mastiz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#816550}
parent f0801207
...@@ -65,6 +65,7 @@ ...@@ -65,6 +65,7 @@
#include "components/invalidation/impl/invalidation_switches.h" #include "components/invalidation/impl/invalidation_switches.h"
#include "components/invalidation/impl/profile_invalidation_provider.h" #include "components/invalidation/impl/profile_invalidation_provider.h"
#include "components/password_manager/core/browser/password_store.h" #include "components/password_manager/core/browser/password_store.h"
#include "components/prefs/pref_service.h"
#include "components/search_engines/template_url_service.h" #include "components/search_engines/template_url_service.h"
#include "components/send_tab_to_self/send_tab_to_self_sync_service.h" #include "components/send_tab_to_self/send_tab_to_self_sync_service.h"
#include "components/spellcheck/spellcheck_buildflags.h" #include "components/spellcheck/spellcheck_buildflags.h"
...@@ -310,6 +311,11 @@ ChromeSyncClient::GetSendTabToSelfSyncService() { ...@@ -310,6 +311,11 @@ ChromeSyncClient::GetSendTabToSelfSyncService() {
return SendTabToSelfSyncServiceFactory::GetForProfile(profile_); return SendTabToSelfSyncServiceFactory::GetForProfile(profile_);
} }
sync_preferences::PrefServiceSyncable*
ChromeSyncClient::GetPrefServiceSyncable() {
return PrefServiceSyncableFromProfile(profile_);
}
sync_sessions::SessionSyncService* ChromeSyncClient::GetSessionSyncService() { sync_sessions::SessionSyncService* ChromeSyncClient::GetSessionSyncService() {
DCHECK_CURRENTLY_ON(BrowserThread::UI); DCHECK_CURRENTLY_ON(BrowserThread::UI);
return SessionSyncServiceFactory::GetForProfile(profile_); return SessionSyncServiceFactory::GetForProfile(profile_);
...@@ -568,14 +574,6 @@ ChromeSyncClient::GetExtensionsActivity() { ...@@ -568,14 +574,6 @@ ChromeSyncClient::GetExtensionsActivity() {
base::WeakPtr<syncer::SyncableService> base::WeakPtr<syncer::SyncableService>
ChromeSyncClient::GetSyncableServiceForType(syncer::ModelType type) { ChromeSyncClient::GetSyncableServiceForType(syncer::ModelType type) {
switch (type) { switch (type) {
case syncer::PREFERENCES:
return PrefServiceSyncableFromProfile(profile_)
->GetSyncableService(syncer::PREFERENCES)
->AsWeakPtr();
case syncer::PRIORITY_PREFERENCES:
return PrefServiceSyncableFromProfile(profile_)
->GetSyncableService(syncer::PRIORITY_PREFERENCES)
->AsWeakPtr();
case syncer::SEARCH_ENGINES: case syncer::SEARCH_ENGINES:
return GetWeakPtrOrNull( return GetWeakPtrOrNull(
TemplateURLServiceFactory::GetForProfile(profile_)); TemplateURLServiceFactory::GetForProfile(profile_));
...@@ -594,10 +592,6 @@ ChromeSyncClient::GetSyncableServiceForType(syncer::ModelType type) { ...@@ -594,10 +592,6 @@ ChromeSyncClient::GetSyncableServiceForType(syncer::ModelType type) {
return ThemeServiceFactory::GetForProfile(profile_)-> return ThemeServiceFactory::GetForProfile(profile_)->
GetThemeSyncableService()->AsWeakPtr(); GetThemeSyncableService()->AsWeakPtr();
#endif // !defined(OS_ANDROID) #endif // !defined(OS_ANDROID)
case syncer::HISTORY_DELETE_DIRECTIVES: {
history::HistoryService* history = GetHistoryService();
return history ? history->GetDeleteDirectivesSyncableService() : nullptr;
}
#if BUILDFLAG(ENABLE_SPELLCHECK) #if BUILDFLAG(ENABLE_SPELLCHECK)
case syncer::DICTIONARY: { case syncer::DICTIONARY: {
SpellcheckService* spellcheck_service = SpellcheckService* spellcheck_service =
......
...@@ -9,6 +9,7 @@ ...@@ -9,6 +9,7 @@
#include <vector> #include <vector>
#include "base/macros.h" #include "base/macros.h"
#include "base/memory/weak_ptr.h"
#include "base/sequenced_task_runner.h" #include "base/sequenced_task_runner.h"
#include "chrome/browser/sync/glue/extensions_activity_monitor.h" #include "chrome/browser/sync/glue/extensions_activity_monitor.h"
#include "components/browser_sync/browser_sync_client.h" #include "components/browser_sync/browser_sync_client.h"
...@@ -19,16 +20,17 @@ class Profile; ...@@ -19,16 +20,17 @@ class Profile;
namespace autofill { namespace autofill {
class AutofillWebDataService; class AutofillWebDataService;
} } // namespace autofill
namespace password_manager { namespace password_manager {
class PasswordStore; class PasswordStore;
} } // namespace password_manager
namespace syncer { namespace syncer {
class ModelTypeController; class ModelTypeController;
class SyncService; class SyncService;
} class SyncableService;
} // namespace syncer
namespace browser_sync { namespace browser_sync {
...@@ -51,6 +53,7 @@ class ChromeSyncClient : public browser_sync::BrowserSyncClient { ...@@ -51,6 +53,7 @@ class ChromeSyncClient : public browser_sync::BrowserSyncClient {
send_tab_to_self::SendTabToSelfSyncService* GetSendTabToSelfSyncService() send_tab_to_self::SendTabToSelfSyncService* GetSendTabToSelfSyncService()
override; override;
sync_sessions::SessionSyncService* GetSessionSyncService() override; sync_sessions::SessionSyncService* GetSessionSyncService() override;
sync_preferences::PrefServiceSyncable* GetPrefServiceSyncable() override;
base::Closure GetPasswordStateChangedCallback() override; base::Closure GetPasswordStateChangedCallback() override;
syncer::DataTypeController::TypeVector CreateDataTypeControllers( syncer::DataTypeController::TypeVector CreateDataTypeControllers(
syncer::SyncService* sync_service) override; syncer::SyncService* sync_service) override;
...@@ -59,8 +62,6 @@ class ChromeSyncClient : public browser_sync::BrowserSyncClient { ...@@ -59,8 +62,6 @@ class ChromeSyncClient : public browser_sync::BrowserSyncClient {
syncer::SyncInvalidationsService* GetSyncInvalidationsService() override; syncer::SyncInvalidationsService* GetSyncInvalidationsService() override;
BookmarkUndoService* GetBookmarkUndoService() override; BookmarkUndoService* GetBookmarkUndoService() override;
scoped_refptr<syncer::ExtensionsActivity> GetExtensionsActivity() override; scoped_refptr<syncer::ExtensionsActivity> GetExtensionsActivity() override;
base::WeakPtr<syncer::SyncableService> GetSyncableServiceForType(
syncer::ModelType type) override;
base::WeakPtr<syncer::ModelTypeControllerDelegate> base::WeakPtr<syncer::ModelTypeControllerDelegate>
GetControllerDelegateForModelType(syncer::ModelType type) override; GetControllerDelegateForModelType(syncer::ModelType type) override;
scoped_refptr<syncer::ModelSafeWorker> CreateModelWorkerForGroup( scoped_refptr<syncer::ModelSafeWorker> CreateModelWorkerForGroup(
...@@ -69,6 +70,10 @@ class ChromeSyncClient : public browser_sync::BrowserSyncClient { ...@@ -69,6 +70,10 @@ class ChromeSyncClient : public browser_sync::BrowserSyncClient {
syncer::SyncTypePreferenceProvider* GetPreferenceProvider() override; syncer::SyncTypePreferenceProvider* GetPreferenceProvider() override;
private: private:
// Convenience function used during controller creation.
base::WeakPtr<syncer::SyncableService> GetSyncableServiceForType(
syncer::ModelType type);
#if BUILDFLAG(ENABLE_EXTENSIONS) #if BUILDFLAG(ENABLE_EXTENSIONS)
// Creates the ModelTypeController for syncer::APPS. // Creates the ModelTypeController for syncer::APPS.
std::unique_ptr<syncer::ModelTypeController> CreateAppsModelTypeController( std::unique_ptr<syncer::ModelTypeController> CreateAppsModelTypeController(
......
...@@ -29,6 +29,7 @@ static_library("browser_sync") { ...@@ -29,6 +29,7 @@ static_library("browser_sync") {
"//components/send_tab_to_self", "//components/send_tab_to_self",
"//components/sync/invalidations", "//components/sync/invalidations",
"//components/sync_bookmarks", "//components/sync_bookmarks",
"//components/sync_preferences",
"//components/sync_sessions", "//components/sync_sessions",
"//components/sync_user_events", "//components/sync_user_events",
"//components/version_info", "//components/version_info",
...@@ -60,10 +61,6 @@ source_set("unit_tests") { ...@@ -60,10 +61,6 @@ source_set("unit_tests") {
"//components/sync:test_support", "//components/sync:test_support",
"//components/sync_bookmarks", "//components/sync_bookmarks",
"//components/sync_device_info", "//components/sync_device_info",
"//components/sync_preferences",
"//components/sync_preferences:test_support",
"//components/sync_sessions",
"//components/sync_sessions:test_support",
"//components/version_info", "//components/version_info",
"//components/version_info:generate_version_info", "//components/version_info:generate_version_info",
"//components/webdata/common", "//components/webdata/common",
......
...@@ -30,6 +30,10 @@ namespace send_tab_to_self { ...@@ -30,6 +30,10 @@ namespace send_tab_to_self {
class SendTabToSelfSyncService; class SendTabToSelfSyncService;
} // namespace send_tab_to_self } // namespace send_tab_to_self
namespace sync_preferences {
class PrefServiceSyncable;
} // namespace sync_preferences
namespace sync_sessions { namespace sync_sessions {
class SessionSyncService; class SessionSyncService;
} // namespace sync_sessions } // namespace sync_sessions
...@@ -63,6 +67,7 @@ class BrowserSyncClient : public syncer::SyncClient { ...@@ -63,6 +67,7 @@ class BrowserSyncClient : public syncer::SyncClient {
virtual bookmarks::BookmarkModel* GetBookmarkModel() = 0; virtual bookmarks::BookmarkModel* GetBookmarkModel() = 0;
virtual favicon::FaviconService* GetFaviconService() = 0; virtual favicon::FaviconService* GetFaviconService() = 0;
virtual history::HistoryService* GetHistoryService() = 0; virtual history::HistoryService* GetHistoryService() = 0;
virtual sync_preferences::PrefServiceSyncable* GetPrefServiceSyncable() = 0;
virtual sync_sessions::SessionSyncService* GetSessionSyncService() = 0; virtual sync_sessions::SessionSyncService* GetSessionSyncService() = 0;
virtual send_tab_to_self::SendTabToSelfSyncService* virtual send_tab_to_self::SendTabToSelfSyncService*
GetSendTabToSelfSyncService() = 0; GetSendTabToSelfSyncService() = 0;
......
...@@ -41,6 +41,7 @@ ...@@ -41,6 +41,7 @@
#include "components/sync/model_impl/proxy_model_type_controller_delegate.h" #include "components/sync/model_impl/proxy_model_type_controller_delegate.h"
#include "components/sync_bookmarks/bookmark_sync_service.h" #include "components/sync_bookmarks/bookmark_sync_service.h"
#include "components/sync_device_info/device_info_sync_service.h" #include "components/sync_device_info/device_info_sync_service.h"
#include "components/sync_preferences/pref_service_syncable.h"
#include "components/sync_sessions/proxy_tabs_data_type_controller.h" #include "components/sync_sessions/proxy_tabs_data_type_controller.h"
#include "components/sync_sessions/session_model_type_controller.h" #include "components/sync_sessions/session_model_type_controller.h"
#include "components/sync_sessions/session_sync_service.h" #include "components/sync_sessions/session_sync_service.h"
...@@ -104,6 +105,14 @@ AutofillWalletOfferDelegateFromDataService( ...@@ -104,6 +105,14 @@ AutofillWalletOfferDelegateFromDataService(
->GetControllerDelegate(); ->GetControllerDelegate();
} }
// Helper function that deals will null (e.g. tests, iOS webview).
base::WeakPtr<syncer::SyncableService> SyncableServiceForPrefs(
sync_preferences::PrefServiceSyncable* prefs_service,
syncer::ModelType type) {
return prefs_service ? prefs_service->GetSyncableService(type)->AsWeakPtr()
: nullptr;
}
} // namespace } // namespace
ProfileSyncComponentsFactoryImpl::ProfileSyncComponentsFactoryImpl( ProfileSyncComponentsFactoryImpl::ProfileSyncComponentsFactoryImpl(
...@@ -254,9 +263,10 @@ ProfileSyncComponentsFactoryImpl::CreateCommonDataTypeControllers( ...@@ -254,9 +263,10 @@ ProfileSyncComponentsFactoryImpl::CreateCommonDataTypeControllers(
// Delete directive sync is enabled by default. // Delete directive sync is enabled by default.
if (!disabled_types.Has(syncer::HISTORY_DELETE_DIRECTIVES)) { if (!disabled_types.Has(syncer::HISTORY_DELETE_DIRECTIVES)) {
controllers.push_back( controllers.push_back(
std::make_unique<HistoryDeleteDirectivesModelTypeController>( std::make_unique<history::HistoryDeleteDirectivesModelTypeController>(
dump_stack, sync_service, dump_stack, sync_service,
sync_client_->GetModelTypeStoreService(), sync_client_)); sync_client_->GetModelTypeStoreService(),
sync_client_->GetHistoryService()));
} }
// Session sync is enabled by default. This is disabled if history is // Session sync is enabled by default. This is disabled if history is
...@@ -301,7 +311,8 @@ ProfileSyncComponentsFactoryImpl::CreateCommonDataTypeControllers( ...@@ -301,7 +311,8 @@ ProfileSyncComponentsFactoryImpl::CreateCommonDataTypeControllers(
std::make_unique<SyncableServiceBasedModelTypeController>( std::make_unique<SyncableServiceBasedModelTypeController>(
syncer::PREFERENCES, syncer::PREFERENCES,
sync_client_->GetModelTypeStoreService()->GetStoreFactory(), sync_client_->GetModelTypeStoreService()->GetStoreFactory(),
sync_client_->GetSyncableServiceForType(syncer::PREFERENCES), SyncableServiceForPrefs(sync_client_->GetPrefServiceSyncable(),
syncer::PREFERENCES),
dump_stack)); dump_stack));
} }
...@@ -310,7 +321,7 @@ ProfileSyncComponentsFactoryImpl::CreateCommonDataTypeControllers( ...@@ -310,7 +321,7 @@ ProfileSyncComponentsFactoryImpl::CreateCommonDataTypeControllers(
std::make_unique<SyncableServiceBasedModelTypeController>( std::make_unique<SyncableServiceBasedModelTypeController>(
syncer::PRIORITY_PREFERENCES, syncer::PRIORITY_PREFERENCES,
sync_client_->GetModelTypeStoreService()->GetStoreFactory(), sync_client_->GetModelTypeStoreService()->GetStoreFactory(),
sync_client_->GetSyncableServiceForType( SyncableServiceForPrefs(sync_client_->GetPrefServiceSyncable(),
syncer::PRIORITY_PREFERENCES), syncer::PRIORITY_PREFERENCES),
dump_stack)); dump_stack));
} }
......
...@@ -7,24 +7,36 @@ ...@@ -7,24 +7,36 @@
#include <utility> #include <utility>
#include "base/bind.h" #include "base/bind.h"
#include "components/sync/driver/sync_client.h" #include "base/memory/weak_ptr.h"
#include "components/history/core/browser/history_service.h"
#include "components/sync/driver/sync_service.h" #include "components/sync/driver/sync_service.h"
#include "components/sync/driver/sync_user_settings.h" #include "components/sync/driver/sync_user_settings.h"
#include "components/sync/model/model_type_store_service.h" #include "components/sync/model/model_type_store_service.h"
namespace browser_sync { namespace history {
namespace {
base::WeakPtr<syncer::SyncableService> GetSyncableServiceFromHistoryService(
HistoryService* history_service) {
if (history_service) {
return history_service->GetDeleteDirectivesSyncableService();
}
return nullptr;
}
} // namespace
HistoryDeleteDirectivesModelTypeController:: HistoryDeleteDirectivesModelTypeController::
HistoryDeleteDirectivesModelTypeController( HistoryDeleteDirectivesModelTypeController(
const base::RepeatingClosure& dump_stack, const base::RepeatingClosure& dump_stack,
syncer::SyncService* sync_service, syncer::SyncService* sync_service,
syncer::ModelTypeStoreService* model_type_store_service, syncer::ModelTypeStoreService* model_type_store_service,
syncer::SyncClient* sync_client) HistoryService* history_service)
: SyncableServiceBasedModelTypeController( : SyncableServiceBasedModelTypeController(
syncer::HISTORY_DELETE_DIRECTIVES, syncer::HISTORY_DELETE_DIRECTIVES,
model_type_store_service->GetStoreFactory(), model_type_store_service->GetStoreFactory(),
sync_client->GetSyncableServiceForType( GetSyncableServiceFromHistoryService(history_service),
syncer::HISTORY_DELETE_DIRECTIVES),
dump_stack), dump_stack),
sync_service_(sync_service) {} sync_service_(sync_service) {}
...@@ -68,4 +80,4 @@ void HistoryDeleteDirectivesModelTypeController::OnStateChanged( ...@@ -68,4 +80,4 @@ void HistoryDeleteDirectivesModelTypeController::OnStateChanged(
sync_service_->DataTypePreconditionChanged(type()); sync_service_->DataTypePreconditionChanged(type());
} }
} // namespace browser_sync } // namespace history
...@@ -12,11 +12,12 @@ ...@@ -12,11 +12,12 @@
namespace syncer { namespace syncer {
class ModelTypeStoreService; class ModelTypeStoreService;
class SyncClient;
class SyncService; class SyncService;
} // namespace syncer } // namespace syncer
namespace browser_sync { namespace history {
class HistoryService;
// A controller for delete directives, which cannot sync when full encryption // A controller for delete directives, which cannot sync when full encryption
// is enabled. // is enabled.
...@@ -24,13 +25,13 @@ class HistoryDeleteDirectivesModelTypeController ...@@ -24,13 +25,13 @@ class HistoryDeleteDirectivesModelTypeController
: public syncer::SyncableServiceBasedModelTypeController, : public syncer::SyncableServiceBasedModelTypeController,
public syncer::SyncServiceObserver { public syncer::SyncServiceObserver {
public: public:
// |sync_service| and |sync_client| must not be null and must outlive this // |sync_service| and |history_service| must not be null and must outlive this
// object. // object.
HistoryDeleteDirectivesModelTypeController( HistoryDeleteDirectivesModelTypeController(
const base::RepeatingClosure& dump_stack, const base::RepeatingClosure& dump_stack,
syncer::SyncService* sync_service, syncer::SyncService* sync_service,
syncer::ModelTypeStoreService* model_type_store_service, syncer::ModelTypeStoreService* model_type_store_service,
syncer::SyncClient* sync_client); HistoryService* history_service);
~HistoryDeleteDirectivesModelTypeController() override; ~HistoryDeleteDirectivesModelTypeController() override;
// DataTypeController overrides. // DataTypeController overrides.
...@@ -49,6 +50,6 @@ class HistoryDeleteDirectivesModelTypeController ...@@ -49,6 +50,6 @@ class HistoryDeleteDirectivesModelTypeController
DISALLOW_COPY_AND_ASSIGN(HistoryDeleteDirectivesModelTypeController); DISALLOW_COPY_AND_ASSIGN(HistoryDeleteDirectivesModelTypeController);
}; };
} // namespace browser_sync } // namespace history
#endif // COMPONENTS_HISTORY_CORE_BROWSER_SYNC_HISTORY_DELETE_DIRECTIVES_MODEL_TYPE_CONTROLLER_H_ #endif // COMPONENTS_HISTORY_CORE_BROWSER_SYNC_HISTORY_DELETE_DIRECTIVES_MODEL_TYPE_CONTROLLER_H_
...@@ -7,9 +7,7 @@ ...@@ -7,9 +7,7 @@
#include "base/callback_forward.h" #include "base/callback_forward.h"
#include "base/files/file_path.h" #include "base/files/file_path.h"
#include "base/macros.h"
#include "base/memory/ref_counted.h" #include "base/memory/ref_counted.h"
#include "base/memory/weak_ptr.h"
#include "components/sync/base/extensions_activity.h" #include "components/sync/base/extensions_activity.h"
#include "components/sync/base/model_type.h" #include "components/sync/base/model_type.h"
#include "components/sync/driver/data_type_controller.h" #include "components/sync/driver/data_type_controller.h"
...@@ -28,7 +26,6 @@ class IdentityManager; ...@@ -28,7 +26,6 @@ class IdentityManager;
namespace syncer { namespace syncer {
class SyncApiComponentFactory; class SyncApiComponentFactory;
class SyncableService;
class SyncInvalidationsService; class SyncInvalidationsService;
class SyncService; class SyncService;
class SyncTypePreferenceProvider; class SyncTypePreferenceProvider;
...@@ -43,6 +40,8 @@ class TrustedVaultClient; ...@@ -43,6 +40,8 @@ class TrustedVaultClient;
class SyncClient { class SyncClient {
public: public:
SyncClient() = default; SyncClient() = default;
SyncClient(const SyncClient&) = delete;
SyncClient& operator=(const SyncClient&) = delete;
virtual ~SyncClient() = default; virtual ~SyncClient() = default;
// Returns the current profile's preference service. // Returns the current profile's preference service.
...@@ -65,12 +64,6 @@ class SyncClient { ...@@ -65,12 +64,6 @@ class SyncClient {
virtual TrustedVaultClient* GetTrustedVaultClient() = 0; virtual TrustedVaultClient* GetTrustedVaultClient() = 0;
virtual scoped_refptr<ExtensionsActivity> GetExtensionsActivity() = 0; virtual scoped_refptr<ExtensionsActivity> GetExtensionsActivity() = 0;
// Returns a weak pointer to the syncable service specified by |type|.
// Weak pointer may be unset if service is already destroyed.
// Note: Should only be dereferenced from the model type thread.
virtual base::WeakPtr<SyncableService> GetSyncableServiceForType(
ModelType type) = 0;
// Creates and returns a new ModelSafeWorker for the group, or null if one // Creates and returns a new ModelSafeWorker for the group, or null if one
// cannot be created. // cannot be created.
// TODO(maxbogue): Move this inside SyncApiComponentFactory. // TODO(maxbogue): Move this inside SyncApiComponentFactory.
...@@ -82,9 +75,6 @@ class SyncClient { ...@@ -82,9 +75,6 @@ class SyncClient {
// Returns the preference provider, or null if none exists. // Returns the preference provider, or null if none exists.
virtual SyncTypePreferenceProvider* GetPreferenceProvider() = 0; virtual SyncTypePreferenceProvider* GetPreferenceProvider() = 0;
private:
DISALLOW_COPY_AND_ASSIGN(SyncClient);
}; };
} // namespace syncer } // namespace syncer
......
...@@ -29,8 +29,6 @@ class SyncClientMock : public SyncClient { ...@@ -29,8 +29,6 @@ class SyncClientMock : public SyncClient {
syncer::SyncInvalidationsService*()); syncer::SyncInvalidationsService*());
MOCK_METHOD0(GetTrustedVaultClient, TrustedVaultClient*()); MOCK_METHOD0(GetTrustedVaultClient, TrustedVaultClient*());
MOCK_METHOD0(GetExtensionsActivity, scoped_refptr<ExtensionsActivity>()); MOCK_METHOD0(GetExtensionsActivity, scoped_refptr<ExtensionsActivity>());
MOCK_METHOD1(GetSyncableServiceForType,
base::WeakPtr<SyncableService>(ModelType type));
MOCK_METHOD1(CreateModelWorkerForGroup, MOCK_METHOD1(CreateModelWorkerForGroup,
scoped_refptr<ModelSafeWorker>(ModelSafeGroup group)); scoped_refptr<ModelSafeWorker>(ModelSafeGroup group));
MOCK_METHOD0(GetSyncApiComponentFactory, SyncApiComponentFactory*()); MOCK_METHOD0(GetSyncApiComponentFactory, SyncApiComponentFactory*());
......
...@@ -82,8 +82,6 @@ class PrefServiceSyncable : public PrefService { ...@@ -82,8 +82,6 @@ class PrefServiceSyncable : public PrefService {
void AddObserver(PrefServiceSyncableObserver* observer); void AddObserver(PrefServiceSyncableObserver* observer);
void RemoveObserver(PrefServiceSyncableObserver* observer); void RemoveObserver(PrefServiceSyncableObserver* observer);
// TODO(zea): Have PrefServiceSyncable implement
// syncer::SyncableService directly.
syncer::SyncableService* GetSyncableService(const syncer::ModelType& type); syncer::SyncableService* GetSyncableService(const syncer::ModelType& type);
// Do not call this after having derived an incognito or per tab pref service. // Do not call this after having derived an incognito or per tab pref service.
......
...@@ -43,6 +43,7 @@ class IOSChromeSyncClient : public browser_sync::BrowserSyncClient { ...@@ -43,6 +43,7 @@ class IOSChromeSyncClient : public browser_sync::BrowserSyncClient {
bookmarks::BookmarkModel* GetBookmarkModel() override; bookmarks::BookmarkModel* GetBookmarkModel() override;
favicon::FaviconService* GetFaviconService() override; favicon::FaviconService* GetFaviconService() override;
history::HistoryService* GetHistoryService() override; history::HistoryService* GetHistoryService() override;
sync_preferences::PrefServiceSyncable* GetPrefServiceSyncable() override;
sync_sessions::SessionSyncService* GetSessionSyncService() override; sync_sessions::SessionSyncService* GetSessionSyncService() override;
base::Closure GetPasswordStateChangedCallback() override; base::Closure GetPasswordStateChangedCallback() override;
syncer::DataTypeController::TypeVector CreateDataTypeControllers( syncer::DataTypeController::TypeVector CreateDataTypeControllers(
...@@ -52,8 +53,6 @@ class IOSChromeSyncClient : public browser_sync::BrowserSyncClient { ...@@ -52,8 +53,6 @@ class IOSChromeSyncClient : public browser_sync::BrowserSyncClient {
syncer::TrustedVaultClient* GetTrustedVaultClient() override; syncer::TrustedVaultClient* GetTrustedVaultClient() override;
BookmarkUndoService* GetBookmarkUndoService() override; BookmarkUndoService* GetBookmarkUndoService() override;
scoped_refptr<syncer::ExtensionsActivity> GetExtensionsActivity() override; scoped_refptr<syncer::ExtensionsActivity> GetExtensionsActivity() override;
base::WeakPtr<syncer::SyncableService> GetSyncableServiceForType(
syncer::ModelType type) override;
base::WeakPtr<syncer::ModelTypeControllerDelegate> base::WeakPtr<syncer::ModelTypeControllerDelegate>
GetControllerDelegateForModelType(syncer::ModelType type) override; GetControllerDelegateForModelType(syncer::ModelType type) override;
scoped_refptr<syncer::ModelSafeWorker> CreateModelWorkerForGroup( scoped_refptr<syncer::ModelSafeWorker> CreateModelWorkerForGroup(
......
...@@ -35,7 +35,6 @@ ...@@ -35,7 +35,6 @@
#include "components/sync/driver/sync_api_component_factory.h" #include "components/sync/driver/sync_api_component_factory.h"
#include "components/sync/driver/sync_service.h" #include "components/sync/driver/sync_service.h"
#include "components/sync/engine/passive_model_worker.h" #include "components/sync/engine/passive_model_worker.h"
#include "components/sync_preferences/pref_service_syncable.h"
#include "components/sync_sessions/session_sync_service.h" #include "components/sync_sessions/session_sync_service.h"
#include "components/sync_user_events/user_event_service.h" #include "components/sync_user_events/user_event_service.h"
#include "ios/chrome/browser/bookmarks/bookmark_model_factory.h" #include "ios/chrome/browser/bookmarks/bookmark_model_factory.h"
...@@ -162,6 +161,12 @@ history::HistoryService* IOSChromeSyncClient::GetHistoryService() { ...@@ -162,6 +161,12 @@ history::HistoryService* IOSChromeSyncClient::GetHistoryService() {
browser_state_, ServiceAccessType::EXPLICIT_ACCESS); browser_state_, ServiceAccessType::EXPLICIT_ACCESS);
} }
sync_preferences::PrefServiceSyncable*
IOSChromeSyncClient::GetPrefServiceSyncable() {
DCHECK_CURRENTLY_ON(web::WebThread::UI);
return browser_state_->GetSyncablePrefs();
}
sync_sessions::SessionSyncService* sync_sessions::SessionSyncService*
IOSChromeSyncClient::GetSessionSyncService() { IOSChromeSyncClient::GetSessionSyncService() {
DCHECK_CURRENTLY_ON(web::WebThread::UI); DCHECK_CURRENTLY_ON(web::WebThread::UI);
...@@ -210,30 +215,6 @@ IOSChromeSyncClient::GetExtensionsActivity() { ...@@ -210,30 +215,6 @@ IOSChromeSyncClient::GetExtensionsActivity() {
return nullptr; return nullptr;
} }
base::WeakPtr<syncer::SyncableService>
IOSChromeSyncClient::GetSyncableServiceForType(syncer::ModelType type) {
switch (type) {
case syncer::PREFERENCES:
return browser_state_->GetSyncablePrefs()
->GetSyncableService(syncer::PREFERENCES)
->AsWeakPtr();
case syncer::PRIORITY_PREFERENCES:
return browser_state_->GetSyncablePrefs()
->GetSyncableService(syncer::PRIORITY_PREFERENCES)
->AsWeakPtr();
case syncer::HISTORY_DELETE_DIRECTIVES: {
history::HistoryService* history =
ios::HistoryServiceFactory::GetForBrowserState(
browser_state_, ServiceAccessType::EXPLICIT_ACCESS);
return history ? history->GetDeleteDirectivesSyncableService()
: base::WeakPtr<syncer::SyncableService>();
}
default:
NOTREACHED();
return base::WeakPtr<syncer::SyncableService>();
}
}
base::WeakPtr<syncer::ModelTypeControllerDelegate> base::WeakPtr<syncer::ModelTypeControllerDelegate>
IOSChromeSyncClient::GetControllerDelegateForModelType(syncer::ModelType type) { IOSChromeSyncClient::GetControllerDelegateForModelType(syncer::ModelType type) {
switch (type) { switch (type) {
......
...@@ -47,6 +47,7 @@ class WebViewSyncClient : public browser_sync::BrowserSyncClient { ...@@ -47,6 +47,7 @@ class WebViewSyncClient : public browser_sync::BrowserSyncClient {
history::HistoryService* GetHistoryService() override; history::HistoryService* GetHistoryService() override;
send_tab_to_self::SendTabToSelfSyncService* GetSendTabToSelfSyncService() send_tab_to_self::SendTabToSelfSyncService* GetSendTabToSelfSyncService()
override; override;
sync_preferences::PrefServiceSyncable* GetPrefServiceSyncable() override;
sync_sessions::SessionSyncService* GetSessionSyncService() override; sync_sessions::SessionSyncService* GetSessionSyncService() override;
base::RepeatingClosure GetPasswordStateChangedCallback() override; base::RepeatingClosure GetPasswordStateChangedCallback() override;
syncer::DataTypeController::TypeVector CreateDataTypeControllers( syncer::DataTypeController::TypeVector CreateDataTypeControllers(
...@@ -56,8 +57,6 @@ class WebViewSyncClient : public browser_sync::BrowserSyncClient { ...@@ -56,8 +57,6 @@ class WebViewSyncClient : public browser_sync::BrowserSyncClient {
syncer::TrustedVaultClient* GetTrustedVaultClient() override; syncer::TrustedVaultClient* GetTrustedVaultClient() override;
BookmarkUndoService* GetBookmarkUndoService() override; BookmarkUndoService* GetBookmarkUndoService() override;
scoped_refptr<syncer::ExtensionsActivity> GetExtensionsActivity() override; scoped_refptr<syncer::ExtensionsActivity> GetExtensionsActivity() override;
base::WeakPtr<syncer::SyncableService> GetSyncableServiceForType(
syncer::ModelType type) override;
base::WeakPtr<syncer::ModelTypeControllerDelegate> base::WeakPtr<syncer::ModelTypeControllerDelegate>
GetControllerDelegateForModelType(syncer::ModelType type) override; GetControllerDelegateForModelType(syncer::ModelType type) override;
scoped_refptr<syncer::ModelSafeWorker> CreateModelWorkerForGroup( scoped_refptr<syncer::ModelSafeWorker> CreateModelWorkerForGroup(
......
...@@ -147,6 +147,11 @@ history::HistoryService* WebViewSyncClient::GetHistoryService() { ...@@ -147,6 +147,11 @@ history::HistoryService* WebViewSyncClient::GetHistoryService() {
return nullptr; return nullptr;
} }
sync_preferences::PrefServiceSyncable*
WebViewSyncClient::GetPrefServiceSyncable() {
return nullptr;
}
sync_sessions::SessionSyncService* WebViewSyncClient::GetSessionSyncService() { sync_sessions::SessionSyncService* WebViewSyncClient::GetSessionSyncService() {
return nullptr; return nullptr;
} }
...@@ -189,12 +194,6 @@ WebViewSyncClient::GetExtensionsActivity() { ...@@ -189,12 +194,6 @@ WebViewSyncClient::GetExtensionsActivity() {
return nullptr; return nullptr;
} }
base::WeakPtr<syncer::SyncableService>
WebViewSyncClient::GetSyncableServiceForType(syncer::ModelType type) {
NOTREACHED();
return base::WeakPtr<syncer::SyncableService>();
}
base::WeakPtr<syncer::ModelTypeControllerDelegate> base::WeakPtr<syncer::ModelTypeControllerDelegate>
WebViewSyncClient::GetControllerDelegateForModelType(syncer::ModelType type) { WebViewSyncClient::GetControllerDelegateForModelType(syncer::ModelType type) {
NOTREACHED(); NOTREACHED();
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment