| OLD | NEW |
| 1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "ios/chrome/browser/sync/ios_chrome_sync_client.h" | 5 #include "ios/chrome/browser/sync/ios_chrome_sync_client.h" |
| 6 | 6 |
| 7 #include "base/bind.h" | 7 #include "base/bind.h" |
| 8 #include "base/command_line.h" | 8 #include "base/command_line.h" |
| 9 #include "components/autofill/core/browser/webdata/autocomplete_syncable_service
.h" | 9 #include "components/autofill/core/browser/webdata/autocomplete_syncable_service
.h" |
| 10 #include "components/autofill/core/browser/webdata/autofill_profile_syncable_ser
vice.h" | 10 #include "components/autofill/core/browser/webdata/autofill_profile_syncable_ser
vice.h" |
| (...skipping 116 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 127 IOSChromeSyncClient::IOSChromeSyncClient(ios::ChromeBrowserState* browser_state) | 127 IOSChromeSyncClient::IOSChromeSyncClient(ios::ChromeBrowserState* browser_state) |
| 128 : browser_state_(browser_state), | 128 : browser_state_(browser_state), |
| 129 sync_sessions_client_(new SyncSessionsClientImpl(browser_state)), | 129 sync_sessions_client_(new SyncSessionsClientImpl(browser_state)), |
| 130 dummy_extensions_activity_(new syncer::ExtensionsActivity()), | 130 dummy_extensions_activity_(new syncer::ExtensionsActivity()), |
| 131 weak_ptr_factory_(this) {} | 131 weak_ptr_factory_(this) {} |
| 132 | 132 |
| 133 IOSChromeSyncClient::~IOSChromeSyncClient() {} | 133 IOSChromeSyncClient::~IOSChromeSyncClient() {} |
| 134 | 134 |
| 135 void IOSChromeSyncClient::Initialize(sync_driver::SyncService* sync_service) { | 135 void IOSChromeSyncClient::Initialize(sync_driver::SyncService* sync_service) { |
| 136 DCHECK_CURRENTLY_ON_WEB_THREAD(web::WebThread::UI); | 136 DCHECK_CURRENTLY_ON_WEB_THREAD(web::WebThread::UI); |
| 137 |
| 138 web_data_service_ = |
| 139 ios::WebDataServiceFactory::GetAutofillWebDataForBrowserState( |
| 140 browser_state_, ServiceAccessType::EXPLICIT_ACCESS); |
| 141 // TODO(crbug.com/558320) Is EXPLICIT_ACCESS appropriate here? |
| 142 password_store_ = IOSChromePasswordStoreFactory::GetForBrowserState( |
| 143 browser_state_, ServiceAccessType::EXPLICIT_ACCESS); |
| 144 |
| 137 // Component factory may already be set in tests. | 145 // Component factory may already be set in tests. |
| 138 if (!GetSyncApiComponentFactory()) { | 146 if (!GetSyncApiComponentFactory()) { |
| 139 const GURL sync_service_url = GetSyncServiceURL( | 147 const GURL sync_service_url = GetSyncServiceURL( |
| 140 *base::CommandLine::ForCurrentProcess(), ::GetChannel()); | 148 *base::CommandLine::ForCurrentProcess(), ::GetChannel()); |
| 141 ProfileOAuth2TokenService* token_service = | 149 ProfileOAuth2TokenService* token_service = |
| 142 OAuth2TokenServiceFactory::GetForBrowserState(browser_state_); | 150 OAuth2TokenServiceFactory::GetForBrowserState(browser_state_); |
| 143 | 151 |
| 144 net::URLRequestContextGetter* url_request_context_getter = | 152 net::URLRequestContextGetter* url_request_context_getter = |
| 145 browser_state_->GetRequestContext(); | 153 browser_state_->GetRequestContext(); |
| 146 | 154 |
| 147 component_factory_.reset(new ProfileSyncComponentsFactoryImpl( | 155 component_factory_.reset(new ProfileSyncComponentsFactoryImpl( |
| 148 this, ::GetChannel(), ::GetVersionString(), | 156 this, ::GetChannel(), ::GetVersionString(), |
| 149 ui::GetDeviceFormFactor() == ui::DEVICE_FORM_FACTOR_TABLET, | 157 ui::GetDeviceFormFactor() == ui::DEVICE_FORM_FACTOR_TABLET, |
| 150 *base::CommandLine::ForCurrentProcess(), | 158 *base::CommandLine::ForCurrentProcess(), |
| 151 prefs::kSavingBrowserHistoryDisabled, sync_service_url, | 159 prefs::kSavingBrowserHistoryDisabled, sync_service_url, |
| 152 web::WebThread::GetTaskRunnerForThread(web::WebThread::UI), | 160 web::WebThread::GetTaskRunnerForThread(web::WebThread::UI), |
| 153 web::WebThread::GetTaskRunnerForThread(web::WebThread::DB), | 161 web::WebThread::GetTaskRunnerForThread(web::WebThread::DB), |
| 154 token_service, url_request_context_getter)); | 162 token_service, url_request_context_getter, web_data_service_, |
| 163 password_store_)); |
| 155 } | 164 } |
| 156 sync_service_ = sync_service; | 165 sync_service_ = sync_service; |
| 157 web_data_service_ = GetWebDataService(); | |
| 158 password_store_ = GetPasswordStore(); | |
| 159 } | 166 } |
| 160 | 167 |
| 161 sync_driver::SyncService* IOSChromeSyncClient::GetSyncService() { | 168 sync_driver::SyncService* IOSChromeSyncClient::GetSyncService() { |
| 162 // TODO(crbug.com/558298): bring back this DCHECK after Typed URLs are | 169 // TODO(crbug.com/558298): bring back this DCHECK after Typed URLs are |
| 163 // converted to SyncableService. | 170 // converted to SyncableService. |
| 164 // DCHECK_CURRENTLY_ON_WEB_THREAD(web::WebThread::UI); | 171 // DCHECK_CURRENTLY_ON_WEB_THREAD(web::WebThread::UI); |
| 165 return sync_service_; | 172 return sync_service_; |
| 166 } | 173 } |
| 167 | 174 |
| 168 PrefService* IOSChromeSyncClient::GetPrefService() { | 175 PrefService* IOSChromeSyncClient::GetPrefService() { |
| (...skipping 16 matching lines...) Expand all Loading... |
| 185 DCHECK_CURRENTLY_ON_WEB_THREAD(web::WebThread::UI); | 192 DCHECK_CURRENTLY_ON_WEB_THREAD(web::WebThread::UI); |
| 186 return ios::HistoryServiceFactory::GetForBrowserState( | 193 return ios::HistoryServiceFactory::GetForBrowserState( |
| 187 browser_state_, ServiceAccessType::EXPLICIT_ACCESS); | 194 browser_state_, ServiceAccessType::EXPLICIT_ACCESS); |
| 188 } | 195 } |
| 189 | 196 |
| 190 autofill::PersonalDataManager* IOSChromeSyncClient::GetPersonalDataManager() { | 197 autofill::PersonalDataManager* IOSChromeSyncClient::GetPersonalDataManager() { |
| 191 DCHECK_CURRENTLY_ON_WEB_THREAD(web::WebThread::UI); | 198 DCHECK_CURRENTLY_ON_WEB_THREAD(web::WebThread::UI); |
| 192 return PersonalDataManagerFactory::GetForBrowserState(browser_state_); | 199 return PersonalDataManagerFactory::GetForBrowserState(browser_state_); |
| 193 } | 200 } |
| 194 | 201 |
| 195 scoped_refptr<password_manager::PasswordStore> | |
| 196 IOSChromeSyncClient::GetPasswordStore() { | |
| 197 DCHECK_CURRENTLY_ON_WEB_THREAD(web::WebThread::UI); | |
| 198 // TODO(crbug.com/558320) Is EXPLICIT_ACCESS appropriate here? | |
| 199 return IOSChromePasswordStoreFactory::GetForBrowserState( | |
| 200 browser_state_, ServiceAccessType::EXPLICIT_ACCESS); | |
| 201 } | |
| 202 | |
| 203 sync_driver::ClearBrowsingDataCallback | 202 sync_driver::ClearBrowsingDataCallback |
| 204 IOSChromeSyncClient::GetClearBrowsingDataCallback() { | 203 IOSChromeSyncClient::GetClearBrowsingDataCallback() { |
| 205 return base::Bind(&IOSChromeSyncClient::ClearBrowsingData, | 204 return base::Bind(&IOSChromeSyncClient::ClearBrowsingData, |
| 206 base::Unretained(this)); | 205 base::Unretained(this)); |
| 207 } | 206 } |
| 208 | 207 |
| 209 base::Closure IOSChromeSyncClient::GetPasswordStateChangedCallback() { | 208 base::Closure IOSChromeSyncClient::GetPasswordStateChangedCallback() { |
| 210 return base::Bind( | 209 return base::Bind( |
| 211 &IOSChromePasswordStoreFactory::OnPasswordsSyncedStatePotentiallyChanged, | 210 &IOSChromePasswordStoreFactory::OnPasswordsSyncedStatePotentiallyChanged, |
| 212 base::Unretained(browser_state_)); | 211 base::Unretained(browser_state_)); |
| 213 } | 212 } |
| 214 | 213 |
| 215 sync_driver::SyncApiComponentFactory::RegisterDataTypesMethod | 214 sync_driver::SyncApiComponentFactory::RegisterDataTypesMethod |
| 216 IOSChromeSyncClient::GetRegisterPlatformTypesCallback() { | 215 IOSChromeSyncClient::GetRegisterPlatformTypesCallback() { |
| 217 // The iOS port does not have any platform-specific datatypes. | 216 // The iOS port does not have any platform-specific datatypes. |
| 218 return sync_driver::SyncApiComponentFactory::RegisterDataTypesMethod(); | 217 return sync_driver::SyncApiComponentFactory::RegisterDataTypesMethod(); |
| 219 } | 218 } |
| 220 | 219 |
| 221 scoped_refptr<autofill::AutofillWebDataService> | |
| 222 IOSChromeSyncClient::GetWebDataService() { | |
| 223 DCHECK_CURRENTLY_ON_WEB_THREAD(web::WebThread::UI); | |
| 224 return ios::WebDataServiceFactory::GetAutofillWebDataForBrowserState( | |
| 225 browser_state_, ServiceAccessType::EXPLICIT_ACCESS); | |
| 226 } | |
| 227 | |
| 228 BookmarkUndoService* IOSChromeSyncClient::GetBookmarkUndoServiceIfExists() { | 220 BookmarkUndoService* IOSChromeSyncClient::GetBookmarkUndoServiceIfExists() { |
| 229 return ios::BookmarkUndoServiceFactory::GetForBrowserStateIfExists( | 221 return ios::BookmarkUndoServiceFactory::GetForBrowserStateIfExists( |
| 230 browser_state_); | 222 browser_state_); |
| 231 } | 223 } |
| 232 | 224 |
| 233 invalidation::InvalidationService* | 225 invalidation::InvalidationService* |
| 234 IOSChromeSyncClient::GetInvalidationService() { | 226 IOSChromeSyncClient::GetInvalidationService() { |
| 235 invalidation::ProfileInvalidationProvider* provider = | 227 invalidation::ProfileInvalidationProvider* provider = |
| 236 IOSChromeProfileInvalidationProviderFactory::GetForBrowserState( | 228 IOSChromeProfileInvalidationProviderFactory::GetForBrowserState( |
| 237 browser_state_); | 229 browser_state_); |
| (...skipping 121 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 359 return new syncer::PassiveModelWorker(observer); | 351 return new syncer::PassiveModelWorker(observer); |
| 360 case syncer::GROUP_HISTORY: { | 352 case syncer::GROUP_HISTORY: { |
| 361 history::HistoryService* history_service = GetHistoryService(); | 353 history::HistoryService* history_service = GetHistoryService(); |
| 362 if (!history_service) | 354 if (!history_service) |
| 363 return nullptr; | 355 return nullptr; |
| 364 return new browser_sync::HistoryModelWorker( | 356 return new browser_sync::HistoryModelWorker( |
| 365 history_service->AsWeakPtr(), | 357 history_service->AsWeakPtr(), |
| 366 web::WebThread::GetTaskRunnerForThread(web::WebThread::UI), observer); | 358 web::WebThread::GetTaskRunnerForThread(web::WebThread::UI), observer); |
| 367 } | 359 } |
| 368 case syncer::GROUP_PASSWORD: { | 360 case syncer::GROUP_PASSWORD: { |
| 369 scoped_refptr<password_manager::PasswordStore> password_store = | 361 if (!password_store_) |
| 370 GetPasswordStore(); | |
| 371 if (!password_store) | |
| 372 return nullptr; | 362 return nullptr; |
| 373 return new browser_sync::PasswordModelWorker(password_store, observer); | 363 return new browser_sync::PasswordModelWorker(password_store_, observer); |
| 374 } | 364 } |
| 375 default: | 365 default: |
| 376 return nullptr; | 366 return nullptr; |
| 377 } | 367 } |
| 378 } | 368 } |
| 379 | 369 |
| 380 sync_driver::SyncApiComponentFactory* | 370 sync_driver::SyncApiComponentFactory* |
| 381 IOSChromeSyncClient::GetSyncApiComponentFactory() { | 371 IOSChromeSyncClient::GetSyncApiComponentFactory() { |
| 382 return component_factory_.get(); | 372 return component_factory_.get(); |
| 383 } | 373 } |
| 384 | 374 |
| 385 void IOSChromeSyncClient::ClearBrowsingData(base::Time start, base::Time end) { | 375 void IOSChromeSyncClient::ClearBrowsingData(base::Time start, base::Time end) { |
| 386 // This method should never be called on iOS. | 376 // This method should never be called on iOS. |
| 387 NOTREACHED(); | 377 NOTREACHED(); |
| 388 } | 378 } |
| 389 | 379 |
| 390 void IOSChromeSyncClient::SetSyncApiComponentFactoryForTesting( | 380 void IOSChromeSyncClient::SetSyncApiComponentFactoryForTesting( |
| 391 scoped_ptr<sync_driver::SyncApiComponentFactory> component_factory) { | 381 scoped_ptr<sync_driver::SyncApiComponentFactory> component_factory) { |
| 392 component_factory_ = component_factory.Pass(); | 382 component_factory_ = component_factory.Pass(); |
| 393 } | 383 } |
| OLD | NEW |