diff options
author | haitaol@chromium.org <haitaol@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-06-05 21:16:28 +0000 |
---|---|---|
committer | haitaol@chromium.org <haitaol@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-06-05 21:16:28 +0000 |
commit | ff08e5c278d265f7a1f407e9aa4c09201d009af5 (patch) | |
tree | e76f7313cfd1f01581ff91fa3e157e69edca6bdc /components/sync_driver | |
parent | 6e7737988af7c5217d8b66877aae39221b80d198 (diff) | |
download | chromium_src-ff08e5c278d265f7a1f407e9aa4c09201d009af5.zip chromium_src-ff08e5c278d265f7a1f407e9aa4c09201d009af5.tar.gz chromium_src-ff08e5c278d265f7a1f407e9aa4c09201d009af5.tar.bz2 |
Record first sync time and clear browsing data since first sync time during
rollback.
BUG=362679
Review URL: https://codereview.chromium.org/316563003
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@275243 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'components/sync_driver')
-rw-r--r-- | components/sync_driver/pref_names.cc | 3 | ||||
-rw-r--r-- | components/sync_driver/pref_names.h | 1 | ||||
-rw-r--r-- | components/sync_driver/sync_prefs.cc | 17 | ||||
-rw-r--r-- | components/sync_driver/sync_prefs.h | 6 |
4 files changed, 27 insertions, 0 deletions
diff --git a/components/sync_driver/pref_names.cc b/components/sync_driver/pref_names.cc index c8cafc2..c542c64 100644 --- a/components/sync_driver/pref_names.cc +++ b/components/sync_driver/pref_names.cc @@ -98,6 +98,9 @@ const char kSyncSpareBootstrapToken[] = "sync.spare_bootstrap_token"; // Stores how many times to try rollback before giving up. const char kSyncRemainingRollbackTries[] = "sync.remaining_rollback_tries"; +// Stores the timestamp of first sync. +const char kSyncFirstSyncTime[] = "sync.first_sync_time"; + } // namespace prefs } // namespace sync_driver diff --git a/components/sync_driver/pref_names.h b/components/sync_driver/pref_names.h index f31f8e3..d7e8f80 100644 --- a/components/sync_driver/pref_names.h +++ b/components/sync_driver/pref_names.h @@ -62,6 +62,7 @@ extern const char kSyncSpareBootstrapToken[]; #endif // defined(OS_CHROMEOS) extern const char kSyncRemainingRollbackTries[]; +extern const char kSyncFirstSyncTime[]; } // namespace prefs diff --git a/components/sync_driver/sync_prefs.cc b/components/sync_driver/sync_prefs.cc index 272915d..2a9f590 100644 --- a/components/sync_driver/sync_prefs.cc +++ b/components/sync_driver/sync_prefs.cc @@ -48,6 +48,10 @@ void SyncPrefs::RegisterProfilePrefs( prefs::kSyncLastSyncedTime, 0, user_prefs::PrefRegistrySyncable::UNSYNCABLE_PREF); + registry->RegisterInt64Pref( + prefs::kSyncFirstSyncTime, + 0, + user_prefs::PrefRegistrySyncable::UNSYNCABLE_PREF); // All datatypes are on by default, but this gets set explicitly // when you configure sync (when turning it on), in @@ -485,4 +489,17 @@ syncer::ModelTypeSet SyncPrefs::ResolvePrefGroups( return types_with_groups; } +base::Time SyncPrefs::GetFirstSyncTime() const { + return base::Time::FromInternalValue( + pref_service_->GetInt64(prefs::kSyncFirstSyncTime)); +} + +void SyncPrefs::SetFirstSyncTime(base::Time time) { + pref_service_->SetInt64(prefs::kSyncFirstSyncTime, time.ToInternalValue()); +} + +void SyncPrefs::ClearFirstSyncTime() { + pref_service_->ClearPref(prefs::kSyncFirstSyncTime); +} + } // namespace browser_sync diff --git a/components/sync_driver/sync_prefs.h b/components/sync_driver/sync_prefs.h index da94c5b..3400824 100644 --- a/components/sync_driver/sync_prefs.h +++ b/components/sync_driver/sync_prefs.h @@ -131,6 +131,12 @@ class SyncPrefs : NON_EXPORTED_BASE(public base::NonThreadSafe), virtual int GetRemainingRollbackTries() const; virtual void SetRemainingRollbackTries(int times); + // Get/set/clear first sync time of current user. Used to roll back browsing + // data later when user signs out. + base::Time GetFirstSyncTime() const; + void SetFirstSyncTime(base::Time time); + void ClearFirstSyncTime(); + // For testing. void SetManagedForTest(bool is_managed); |