summaryrefslogtreecommitdiffstats
path: root/components/sync_driver
diff options
context:
space:
mode:
authorhaitaol@chromium.org <haitaol@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-06-05 21:16:28 +0000
committerhaitaol@chromium.org <haitaol@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-06-05 21:16:28 +0000
commitff08e5c278d265f7a1f407e9aa4c09201d009af5 (patch)
treee76f7313cfd1f01581ff91fa3e157e69edca6bdc /components/sync_driver
parent6e7737988af7c5217d8b66877aae39221b80d198 (diff)
downloadchromium_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.cc3
-rw-r--r--components/sync_driver/pref_names.h1
-rw-r--r--components/sync_driver/sync_prefs.cc17
-rw-r--r--components/sync_driver/sync_prefs.h6
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);