| 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 "chrome/browser/sync/chrome_sync_client.h" | 5 #include "chrome/browser/sync/chrome_sync_client.h" |
| 6 | 6 |
| 7 #include <utility> | 7 #include <utility> |
| 8 | 8 |
| 9 #include "base/bind.h" | 9 #include "base/bind.h" |
| 10 #include "base/command_line.h" | 10 #include "base/command_line.h" |
| (...skipping 122 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 133 ~SyncSessionsClientImpl() override {} | 133 ~SyncSessionsClientImpl() override {} |
| 134 | 134 |
| 135 // SyncSessionsClient implementation. | 135 // SyncSessionsClient implementation. |
| 136 bookmarks::BookmarkModel* GetBookmarkModel() override { | 136 bookmarks::BookmarkModel* GetBookmarkModel() override { |
| 137 DCHECK_CURRENTLY_ON(content::BrowserThread::UI); | 137 DCHECK_CURRENTLY_ON(content::BrowserThread::UI); |
| 138 return BookmarkModelFactory::GetForProfile(profile_); | 138 return BookmarkModelFactory::GetForProfile(profile_); |
| 139 } | 139 } |
| 140 favicon::FaviconService* GetFaviconService() override { | 140 favicon::FaviconService* GetFaviconService() override { |
| 141 DCHECK_CURRENTLY_ON(content::BrowserThread::UI); | 141 DCHECK_CURRENTLY_ON(content::BrowserThread::UI); |
| 142 return FaviconServiceFactory::GetForProfile( | 142 return FaviconServiceFactory::GetForProfile( |
| 143 profile_, ServiceAccessType::EXPLICIT_ACCESS); | 143 profile_, ServiceAccessType::IMPLICIT_ACCESS); |
| 144 } | 144 } |
| 145 history::HistoryService* GetHistoryService() override { | 145 history::HistoryService* GetHistoryService() override { |
| 146 DCHECK_CURRENTLY_ON(content::BrowserThread::UI); | 146 DCHECK_CURRENTLY_ON(content::BrowserThread::UI); |
| 147 return HistoryServiceFactory::GetForProfile( | 147 return HistoryServiceFactory::GetForProfile( |
| 148 profile_, ServiceAccessType::EXPLICIT_ACCESS); | 148 profile_, ServiceAccessType::EXPLICIT_ACCESS); |
| 149 } | 149 } |
| 150 bool ShouldSyncURL(const GURL& url) const override { | 150 bool ShouldSyncURL(const GURL& url) const override { |
| 151 if (url == GURL(chrome::kChromeUIHistoryURL)) { | 151 if (url == GURL(chrome::kChromeUIHistoryURL)) { |
| 152 // The history page is treated specially as we want it to trigger syncable | 152 // The history page is treated specially as we want it to trigger syncable |
| 153 // events for UI purposes. | 153 // events for UI purposes. |
| (...skipping 28 matching lines...) Expand all Loading... |
| 182 browsing_data_remover_observer_(NULL), | 182 browsing_data_remover_observer_(NULL), |
| 183 weak_ptr_factory_(this) {} | 183 weak_ptr_factory_(this) {} |
| 184 | 184 |
| 185 ChromeSyncClient::~ChromeSyncClient() { | 185 ChromeSyncClient::~ChromeSyncClient() { |
| 186 } | 186 } |
| 187 | 187 |
| 188 void ChromeSyncClient::Initialize() { | 188 void ChromeSyncClient::Initialize() { |
| 189 DCHECK_CURRENTLY_ON(BrowserThread::UI); | 189 DCHECK_CURRENTLY_ON(BrowserThread::UI); |
| 190 | 190 |
| 191 web_data_service_ = WebDataServiceFactory::GetAutofillWebDataForProfile( | 191 web_data_service_ = WebDataServiceFactory::GetAutofillWebDataForProfile( |
| 192 profile_, ServiceAccessType::EXPLICIT_ACCESS); | 192 profile_, ServiceAccessType::IMPLICIT_ACCESS); |
| 193 // TODO(crbug.com/558320) Is EXPLICIT_ACCESS appropriate here? | |
| 194 password_store_ = PasswordStoreFactory::GetForProfile( | 193 password_store_ = PasswordStoreFactory::GetForProfile( |
| 195 profile_, ServiceAccessType::EXPLICIT_ACCESS); | 194 profile_, ServiceAccessType::IMPLICIT_ACCESS); |
| 196 | 195 |
| 197 // Component factory may already be set in tests. | 196 // Component factory may already be set in tests. |
| 198 if (!GetSyncApiComponentFactory()) { | 197 if (!GetSyncApiComponentFactory()) { |
| 199 const GURL sync_service_url = GetSyncServiceURL( | 198 const GURL sync_service_url = GetSyncServiceURL( |
| 200 *base::CommandLine::ForCurrentProcess(), chrome::GetChannel()); | 199 *base::CommandLine::ForCurrentProcess(), chrome::GetChannel()); |
| 201 ProfileOAuth2TokenService* token_service = | 200 ProfileOAuth2TokenService* token_service = |
| 202 ProfileOAuth2TokenServiceFactory::GetForProfile(profile_); | 201 ProfileOAuth2TokenServiceFactory::GetForProfile(profile_); |
| 203 net::URLRequestContextGetter* url_request_context_getter = | 202 net::URLRequestContextGetter* url_request_context_getter = |
| 204 profile_->GetRequestContext(); | 203 profile_->GetRequestContext(); |
| 205 | 204 |
| (...skipping 22 matching lines...) Expand all Loading... |
| 228 } | 227 } |
| 229 | 228 |
| 230 bookmarks::BookmarkModel* ChromeSyncClient::GetBookmarkModel() { | 229 bookmarks::BookmarkModel* ChromeSyncClient::GetBookmarkModel() { |
| 231 DCHECK_CURRENTLY_ON(BrowserThread::UI); | 230 DCHECK_CURRENTLY_ON(BrowserThread::UI); |
| 232 return BookmarkModelFactory::GetForProfile(profile_); | 231 return BookmarkModelFactory::GetForProfile(profile_); |
| 233 } | 232 } |
| 234 | 233 |
| 235 favicon::FaviconService* ChromeSyncClient::GetFaviconService() { | 234 favicon::FaviconService* ChromeSyncClient::GetFaviconService() { |
| 236 DCHECK_CURRENTLY_ON(BrowserThread::UI); | 235 DCHECK_CURRENTLY_ON(BrowserThread::UI); |
| 237 return FaviconServiceFactory::GetForProfile( | 236 return FaviconServiceFactory::GetForProfile( |
| 238 profile_, ServiceAccessType::EXPLICIT_ACCESS); | 237 profile_, ServiceAccessType::IMPLICIT_ACCESS); |
| 239 } | 238 } |
| 240 | 239 |
| 241 history::HistoryService* ChromeSyncClient::GetHistoryService() { | 240 history::HistoryService* ChromeSyncClient::GetHistoryService() { |
| 242 DCHECK_CURRENTLY_ON(BrowserThread::UI); | 241 DCHECK_CURRENTLY_ON(BrowserThread::UI); |
| 243 return HistoryServiceFactory::GetForProfile( | 242 return HistoryServiceFactory::GetForProfile( |
| 244 profile_, ServiceAccessType::EXPLICIT_ACCESS); | 243 profile_, ServiceAccessType::EXPLICIT_ACCESS); |
| 245 } | 244 } |
| 246 | 245 |
| 247 autofill::PersonalDataManager* ChromeSyncClient::GetPersonalDataManager() { | 246 autofill::PersonalDataManager* ChromeSyncClient::GetPersonalDataManager() { |
| 248 DCHECK_CURRENTLY_ON(BrowserThread::UI); | 247 DCHECK_CURRENTLY_ON(BrowserThread::UI); |
| (...skipping 101 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 350 case syncer::THEMES: | 349 case syncer::THEMES: |
| 351 return ThemeServiceFactory::GetForProfile(profile_)-> | 350 return ThemeServiceFactory::GetForProfile(profile_)-> |
| 352 GetThemeSyncableService()->AsWeakPtr(); | 351 GetThemeSyncableService()->AsWeakPtr(); |
| 353 #endif | 352 #endif |
| 354 case syncer::HISTORY_DELETE_DIRECTIVES: { | 353 case syncer::HISTORY_DELETE_DIRECTIVES: { |
| 355 history::HistoryService* history = GetHistoryService(); | 354 history::HistoryService* history = GetHistoryService(); |
| 356 return history ? history->AsWeakPtr() | 355 return history ? history->AsWeakPtr() |
| 357 : base::WeakPtr<history::HistoryService>(); | 356 : base::WeakPtr<history::HistoryService>(); |
| 358 } | 357 } |
| 359 case syncer::TYPED_URLS: { | 358 case syncer::TYPED_URLS: { |
| 359 // We request history service with explicit access here because this |
| 360 // codepath is executed on backend thread while HistoryServiceFactory |
| 361 // checks preference value in implicit mode and PrefService expectes calls |
| 362 // only from UI thread. |
| 360 history::HistoryService* history = HistoryServiceFactory::GetForProfile( | 363 history::HistoryService* history = HistoryServiceFactory::GetForProfile( |
| 361 profile_, ServiceAccessType::EXPLICIT_ACCESS); | 364 profile_, ServiceAccessType::EXPLICIT_ACCESS); |
| 362 if (!history) | 365 if (!history) |
| 363 return base::WeakPtr<history::TypedUrlSyncableService>(); | 366 return base::WeakPtr<history::TypedUrlSyncableService>(); |
| 364 return history->GetTypedUrlSyncableService()->AsWeakPtr(); | 367 return history->GetTypedUrlSyncableService()->AsWeakPtr(); |
| 365 } | 368 } |
| 366 #if defined(ENABLE_SPELLCHECK) | 369 #if defined(ENABLE_SPELLCHECK) |
| 367 case syncer::DICTIONARY: | 370 case syncer::DICTIONARY: |
| 368 return SpellcheckServiceFactory::GetForContext(profile_)-> | 371 return SpellcheckServiceFactory::GetForContext(profile_)-> |
| 369 GetCustomDictionary()->AsWeakPtr(); | 372 GetCustomDictionary()->AsWeakPtr(); |
| (...skipping 98 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 468 ChromeSyncClient::GetSyncApiComponentFactory() { | 471 ChromeSyncClient::GetSyncApiComponentFactory() { |
| 469 return component_factory_.get(); | 472 return component_factory_.get(); |
| 470 } | 473 } |
| 471 | 474 |
| 472 void ChromeSyncClient::ClearBrowsingData(base::Time start, base::Time end) { | 475 void ChromeSyncClient::ClearBrowsingData(base::Time start, base::Time end) { |
| 473 BrowsingDataRemover* remover = | 476 BrowsingDataRemover* remover = |
| 474 BrowsingDataRemoverFactory::GetForBrowserContext(profile_); | 477 BrowsingDataRemoverFactory::GetForBrowserContext(profile_); |
| 475 remover->Remove(BrowsingDataRemover::TimeRange(start, end), | 478 remover->Remove(BrowsingDataRemover::TimeRange(start, end), |
| 476 BrowsingDataRemover::REMOVE_ALL, BrowsingDataHelper::ALL); | 479 BrowsingDataRemover::REMOVE_ALL, BrowsingDataHelper::ALL); |
| 477 | 480 |
| 478 scoped_refptr<password_manager::PasswordStore> password = | 481 password_store_->RemoveLoginsSyncedBetween(start, end); |
| 479 PasswordStoreFactory::GetForProfile(profile_, | |
| 480 ServiceAccessType::EXPLICIT_ACCESS); | |
| 481 password->RemoveLoginsSyncedBetween(start, end); | |
| 482 } | 482 } |
| 483 | 483 |
| 484 void ChromeSyncClient::SetBrowsingDataRemoverObserverForTesting( | 484 void ChromeSyncClient::SetBrowsingDataRemoverObserverForTesting( |
| 485 BrowsingDataRemover::Observer* observer) { | 485 BrowsingDataRemover::Observer* observer) { |
| 486 BrowsingDataRemover* remover = | 486 BrowsingDataRemover* remover = |
| 487 BrowsingDataRemoverFactory::GetForBrowserContext(profile_); | 487 BrowsingDataRemoverFactory::GetForBrowserContext(profile_); |
| 488 if (browsing_data_remover_observer_) | 488 if (browsing_data_remover_observer_) |
| 489 remover->RemoveObserver(browsing_data_remover_observer_); | 489 remover->RemoveObserver(browsing_data_remover_observer_); |
| 490 | 490 |
| 491 if (observer) | 491 if (observer) |
| (...skipping 124 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 616 sync_service->RegisterDataTypeController( | 616 sync_service->RegisterDataTypeController( |
| 617 new SupervisedUserSyncDataTypeController(syncer::SUPERVISED_USER_SETTINGS, | 617 new SupervisedUserSyncDataTypeController(syncer::SUPERVISED_USER_SETTINGS, |
| 618 error_callback, this, profile_)); | 618 error_callback, this, profile_)); |
| 619 sync_service->RegisterDataTypeController( | 619 sync_service->RegisterDataTypeController( |
| 620 new SupervisedUserSyncDataTypeController( | 620 new SupervisedUserSyncDataTypeController( |
| 621 syncer::SUPERVISED_USER_WHITELISTS, error_callback, this, profile_)); | 621 syncer::SUPERVISED_USER_WHITELISTS, error_callback, this, profile_)); |
| 622 #endif | 622 #endif |
| 623 } | 623 } |
| 624 | 624 |
| 625 } // namespace browser_sync | 625 } // namespace browser_sync |
| OLD | NEW |