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 |