#include "components/sync_driver/sync_prefs.h"
-#include "base/command_line.h"
#include "base/logging.h"
#include "base/prefs/pref_member.h"
#include "base/prefs/pref_service.h"
#include "base/strings/string_number_conversions.h"
#include "base/values.h"
#include "build/build_config.h"
+#include "components/pref_registry/pref_registry_syncable.h"
#include "components/sync_driver/pref_names.h"
-#include "components/user_prefs/pref_registry_syncable.h"
namespace sync_driver {
base::Bind(&SyncPrefs::OnSyncManagedPrefChanged, base::Unretained(this)));
}
+SyncPrefs::SyncPrefs() : pref_service_(NULL) {}
+
SyncPrefs::~SyncPrefs() { DCHECK(CalledOnValidThread()); }
// static
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
// although they don't have sync representations.
user_types.PutAll(syncer::ProxyTypes());
- // Treat bookmarks specially.
+ // Treat bookmarks and device info specially.
RegisterDataTypePreferredPref(registry, syncer::BOOKMARKS, true);
+ RegisterDataTypePreferredPref(registry, syncer::DEVICE_INFO, true);
user_types.Remove(syncer::BOOKMARKS);
+ user_types.Remove(syncer::DEVICE_INFO);
// These two prefs are set from sync experiment to enable enhanced bookmarks.
registry->RegisterIntegerPref(
registry->RegisterListPref(prefs::kSyncAcknowledgedSyncTypes,
syncer::ModelTypeSetToValue(model_set),
user_prefs::PrefRegistrySyncable::UNSYNCABLE_PREF);
+
+ registry->RegisterIntegerPref(
+ prefs::kSyncRemainingRollbackTries, 0,
+ user_prefs::PrefRegistrySyncable::UNSYNCABLE_PREF);
}
void SyncPrefs::AddSyncPrefObserver(SyncPrefObserver* sync_pref_observer) {
return prefs::kSyncFaviconImages;
case syncer::FAVICON_TRACKING:
return prefs::kSyncFaviconTracking;
- case syncer::MANAGED_USER_SETTINGS:
- return prefs::kSyncManagedUserSettings;
+ case syncer::SUPERVISED_USER_SETTINGS:
+ return prefs::kSyncSupervisedUserSettings;
case syncer::PROXY_TABS:
return prefs::kSyncTabs;
case syncer::PRIORITY_PREFERENCES:
return prefs::kSyncPriorityPreferences;
- case syncer::MANAGED_USERS:
- return prefs::kSyncManagedUsers;
+ case syncer::SUPERVISED_USERS:
+ return prefs::kSyncSupervisedUsers;
case syncer::ARTICLES:
return prefs::kSyncArticles;
- case syncer::MANAGED_USER_SHARED_SETTINGS:
- return prefs::kSyncManagedUserSharedSettings;
+ case syncer::SUPERVISED_USER_SHARED_SETTINGS:
+ return prefs::kSyncSupervisedUserSharedSettings;
+ case syncer::DEVICE_INFO:
+ return prefs::kSyncDeviceInfo;
default:
break;
}
- NOTREACHED();
+ NOTREACHED() << "Type is " << data_type;
return NULL;
}
pref_service_->Set(prefs::kSyncAcknowledgedSyncTypes, *value);
}
+int SyncPrefs::GetRemainingRollbackTries() const {
+ return pref_service_->GetInteger(prefs::kSyncRemainingRollbackTries);
+}
+
+void SyncPrefs::SetRemainingRollbackTries(int times) {
+ pref_service_->SetInteger(prefs::kSyncRemainingRollbackTries, times);
+}
+
void SyncPrefs::OnSyncManagedPrefChanged() {
DCHECK(CalledOnValidThread());
FOR_EACH_OBSERVER(SyncPrefObserver,
pref_groups_[syncer::PROXY_TABS].Put(syncer::FAVICON_IMAGES);
pref_groups_[syncer::PROXY_TABS].Put(syncer::FAVICON_TRACKING);
- pref_groups_[syncer::MANAGED_USER_SETTINGS].Put(syncer::SESSIONS);
-
// TODO(zea): put favicons in the bookmarks group as well once it handles
// those favicons.
}
NOTREACHED();
return false;
}
+
+ // Device info is always enabled.
+ if (pref_name == prefs::kSyncDeviceInfo)
+ return true;
+
if (type == syncer::PROXY_TABS &&
pref_service_->GetUserPrefValue(pref_name) == NULL &&
pref_service_->IsUserModifiablePreference(pref_name)) {
NOTREACHED();
return;
}
+
+ // Device info is always preferred.
+ if (type == syncer::DEVICE_INFO)
+ return;
+
pref_service_->SetBoolean(pref_name, is_preferred);
}
return types_with_groups;
}
-} // namespace browser_sync
+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 sync_driver