Index: ios/chrome/browser/sync/ios_chrome_sync_client.mm |
diff --git a/ios/chrome/browser/sync/ios_chrome_sync_client.mm b/ios/chrome/browser/sync/ios_chrome_sync_client.mm |
index 7309de7c4f8c9d76a0452ae7f3ea4de60ace94c7..0a61212fbd82bb293e4ff6f5903cbff556298840 100644 |
--- a/ios/chrome/browser/sync/ios_chrome_sync_client.mm |
+++ b/ios/chrome/browser/sync/ios_chrome_sync_client.mm |
@@ -69,45 +69,7 @@ |
#error "This file requires ARC support." |
#endif |
-using autofill::AutocompleteSyncableService; |
-using autofill::AutofillProfileSyncableService; |
-using autofill::AutofillWalletMetadataSyncableService; |
-using autofill::AutofillWalletSyncableService; |
-using base::Callback; |
-using base::WeakPtr; |
-using syncer::SyncableService; |
- |
-using ServiceProvider = syncer::SyncClient::ServiceProvider; |
- |
namespace { |
- |
-template <typename T> |
-T Trampoline(T arg) { |
- return arg; |
-} |
- |
-template <typename T> |
-Callback<T()> WrapInCallback(T arg) { |
- return base::Bind(&Trampoline<T>, arg); |
-} |
- |
-WeakPtr<SyncableService> ServiceAsWeakPtr(SyncableService* ptr) { |
- return ptr ? ptr->AsWeakPtr() : WeakPtr<SyncableService>(); |
-} |
- |
-ServiceProvider WrapInProvider(SyncableService* service) { |
- return WrapInCallback(ServiceAsWeakPtr(service)); |
-} |
- |
-template <typename T> |
-WeakPtr<SyncableService> CallbackResultAsWeakPtr(Callback<T()> callback) { |
- return ServiceAsWeakPtr(callback.Run()); |
-} |
- |
-template <typename T> |
-ServiceProvider WrapInWeakPtrCallback(Callback<T()> callback) { |
- return base::Bind(&CallbackResultAsWeakPtr<T>, callback); |
-} |
// iOS implementation of SyncSessionsClient. Needs to be in a separate class |
// due to possible multiple inheritance issues, wherein IOSChromeSyncClient |
@@ -300,78 +262,87 @@ |
return sync_sessions_client_.get(); |
} |
-ServiceProvider IOSChromeSyncClient::GetSyncableServiceForType( |
- syncer::ModelType type) { |
+base::WeakPtr<syncer::SyncableService> |
+IOSChromeSyncClient::GetSyncableServiceForType(syncer::ModelType type) { |
switch (type) { |
case syncer::DEVICE_INFO: |
- return WrapInProvider( |
- IOSChromeProfileSyncServiceFactory::GetForBrowserState(browser_state_) |
- ->GetDeviceInfoSyncableService()); |
+ return IOSChromeProfileSyncServiceFactory::GetForBrowserState( |
+ browser_state_) |
+ ->GetDeviceInfoSyncableService() |
+ ->AsWeakPtr(); |
case syncer::PREFERENCES: |
+ return browser_state_->GetSyncablePrefs() |
+ ->GetSyncableService(syncer::PREFERENCES) |
+ ->AsWeakPtr(); |
case syncer::PRIORITY_PREFERENCES: |
- return WrapInProvider( |
- browser_state_->GetSyncablePrefs()->GetSyncableService(type)); |
+ return browser_state_->GetSyncablePrefs() |
+ ->GetSyncableService(syncer::PRIORITY_PREFERENCES) |
+ ->AsWeakPtr(); |
case syncer::AUTOFILL: |
case syncer::AUTOFILL_PROFILE: |
case syncer::AUTOFILL_WALLET_DATA: |
case syncer::AUTOFILL_WALLET_METADATA: { |
if (!web_data_service_) |
- return WrapInProvider(nullptr); |
+ return base::WeakPtr<syncer::SyncableService>(); |
if (type == syncer::AUTOFILL) { |
- return WrapInWeakPtrCallback( |
- base::Bind(&AutocompleteSyncableService::FromWebDataService, |
- base::RetainedRef(web_data_service_))); |
+ return autofill::AutocompleteSyncableService::FromWebDataService( |
+ web_data_service_.get()) |
+ ->AsWeakPtr(); |
} else if (type == syncer::AUTOFILL_PROFILE) { |
- return WrapInWeakPtrCallback( |
- base::Bind(&AutofillProfileSyncableService::FromWebDataService, |
- base::RetainedRef(web_data_service_))); |
+ return autofill::AutofillProfileSyncableService::FromWebDataService( |
+ web_data_service_.get()) |
+ ->AsWeakPtr(); |
} else if (type == syncer::AUTOFILL_WALLET_METADATA) { |
- return WrapInWeakPtrCallback(base::Bind( |
- &AutofillWalletMetadataSyncableService::FromWebDataService, |
- base::RetainedRef(web_data_service_))); |
+ return autofill::AutofillWalletMetadataSyncableService:: |
+ FromWebDataService(web_data_service_.get()) |
+ ->AsWeakPtr(); |
} |
- return WrapInWeakPtrCallback( |
- base::Bind(&AutofillWalletSyncableService::FromWebDataService, |
- base::RetainedRef(web_data_service_))); |
+ return autofill::AutofillWalletSyncableService::FromWebDataService( |
+ web_data_service_.get()) |
+ ->AsWeakPtr(); |
} |
case syncer::HISTORY_DELETE_DIRECTIVES: { |
- return WrapInProvider(ios::HistoryServiceFactory::GetForBrowserState( |
- browser_state_, ServiceAccessType::EXPLICIT_ACCESS)); |
+ history::HistoryService* history = |
+ ios::HistoryServiceFactory::GetForBrowserState( |
+ browser_state_, ServiceAccessType::EXPLICIT_ACCESS); |
+ return history ? history->AsWeakPtr() |
+ : base::WeakPtr<history::HistoryService>(); |
} |
case syncer::TYPED_URLS: { |
history::HistoryService* history = |
ios::HistoryServiceFactory::GetForBrowserState( |
browser_state_, ServiceAccessType::EXPLICIT_ACCESS); |
- return WrapInProvider(history ? history->GetTypedUrlSyncableService() |
- : nullptr); |
+ return history ? history->GetTypedUrlSyncableService()->AsWeakPtr() |
+ : base::WeakPtr<syncer::SyncableService>(); |
} |
case syncer::FAVICON_IMAGES: |
case syncer::FAVICON_TRACKING: { |
- return WrapInProvider( |
+ sync_sessions::FaviconCache* favicons = |
IOSChromeProfileSyncServiceFactory::GetForBrowserState(browser_state_) |
- ->GetFaviconCache()); |
+ ->GetFaviconCache(); |
+ return favicons ? favicons->AsWeakPtr() |
+ : base::WeakPtr<syncer::SyncableService>(); |
} |
case syncer::ARTICLES: { |
// DomDistillerService is used in iOS ReadingList. The distilled articles |
// are saved separately and must not be synced. |
// Add a not reached to avoid having ARTICLES sync be enabled silently. |
NOTREACHED(); |
- return WrapInProvider(nullptr); |
+ return base::WeakPtr<syncer::SyncableService>(); |
} |
case syncer::SESSIONS: { |
- return WrapInProvider( |
- IOSChromeProfileSyncServiceFactory::GetForBrowserState(browser_state_) |
- ->GetSessionsSyncableService()); |
+ return IOSChromeProfileSyncServiceFactory::GetForBrowserState( |
+ browser_state_) |
+ ->GetSessionsSyncableService() |
+ ->AsWeakPtr(); |
} |
case syncer::PASSWORDS: { |
- return password_store_ ? base::Bind(&password_manager::PasswordStore:: |
- GetPasswordSyncableService, |
- base::RetainedRef(password_store_)) |
- : WrapInProvider(nullptr); |
+ return password_store_ ? password_store_->GetPasswordSyncableService() |
+ : base::WeakPtr<syncer::SyncableService>(); |
} |
default: |
NOTREACHED(); |
- return WrapInProvider(nullptr); |
+ return base::WeakPtr<syncer::SyncableService>(); |
} |
} |