| Index: chrome/browser/sync/profile_sync_service.cc
|
| diff --git a/chrome/browser/sync/profile_sync_service.cc b/chrome/browser/sync/profile_sync_service.cc
|
| index d46a0e76b7e51b138b82b8af42ef9d996ab8c120..19624b0d5dd53ecf0b3b9533c89b0f645ab2f70a 100644
|
| --- a/chrome/browser/sync/profile_sync_service.cc
|
| +++ b/chrome/browser/sync/profile_sync_service.cc
|
| @@ -26,7 +26,6 @@
|
| #include "chrome/browser/bookmarks/enhanced_bookmarks_features.h"
|
| #include "chrome/browser/browser_process.h"
|
| #include "chrome/browser/browsing_data/browsing_data_helper.h"
|
| -#include "chrome/browser/browsing_data/browsing_data_remover.h"
|
| #include "chrome/browser/chrome_notification_types.h"
|
| #include "chrome/browser/defaults.h"
|
| #include "chrome/browser/invalidation/profile_invalidation_provider_factory.h"
|
| @@ -171,10 +170,15 @@ static const base::FilePath::CharType kSyncBackupDataFolderName[] =
|
|
|
| namespace {
|
|
|
| -void ClearBrowsingData(Profile* profile, base::Time start, base::Time end) {
|
| +void ClearBrowsingData(BrowsingDataRemover::Observer* observer,
|
| + Profile* profile,
|
| + base::Time start,
|
| + base::Time end) {
|
| // BrowsingDataRemover deletes itself when it's done.
|
| BrowsingDataRemover* remover = BrowsingDataRemover::CreateForRange(
|
| profile, start, end);
|
| + if (observer)
|
| + remover->AddObserver(observer);
|
| remover->Remove(BrowsingDataRemover::REMOVE_ALL,
|
| BrowsingDataHelper::ALL);
|
|
|
| @@ -243,7 +247,8 @@ ProfileSyncService::ProfileSyncService(
|
| backend_mode_(IDLE),
|
| need_backup_(false),
|
| backup_finished_(false),
|
| - clear_browsing_data_(base::Bind(&ClearBrowsingData)) {
|
| + clear_browsing_data_(base::Bind(&ClearBrowsingData)),
|
| + browsing_data_remover_observer_(NULL) {
|
| DCHECK(profile);
|
| syncer::SyncableService::StartSyncFlare flare(
|
| sync_start_util::GetFlareForSyncableService(profile->GetPath()));
|
| @@ -725,6 +730,8 @@ void ProfileSyncService::StartUpSlowBackendComponents(
|
| InitializeBackend(ShouldDeleteSyncFolder());
|
|
|
| UpdateFirstSyncTimePref();
|
| +
|
| + NotifyObservers();
|
| }
|
|
|
| void ProfileSyncService::OnGetTokenSuccess(
|
| @@ -2670,11 +2677,22 @@ void ProfileSyncService::ClearBrowsingDataSinceFirstSync() {
|
| if (first_sync_time.is_null())
|
| return;
|
|
|
| - clear_browsing_data_.Run(profile_, first_sync_time, base::Time::Now());
|
| + clear_browsing_data_.Run(browsing_data_remover_observer_,
|
| + profile_,
|
| + first_sync_time,
|
| + base::Time::Now());
|
| +}
|
| +
|
| +void ProfileSyncService::SetBrowsingDataRemoverObserverForTesting(
|
| + BrowsingDataRemover::Observer* observer) {
|
| + browsing_data_remover_observer_ = observer;
|
| }
|
|
|
| void ProfileSyncService::SetClearingBrowseringDataForTesting(
|
| - base::Callback<void(Profile*, base::Time, base::Time)> c) {
|
| + base::Callback<void(BrowsingDataRemover::Observer* observer,
|
| + Profile*,
|
| + base::Time,
|
| + base::Time)> c) {
|
| clear_browsing_data_ = c;
|
| }
|
|
|
|
|