Commit 08c03bc5 authored by vitaliii's avatar vitaliii Committed by Commit Bot

[Sync] Enable consents when sync is enabled.

Previously "Sync Everything" settings switch disabled user consents
datatype. In this CL, the datatype is always enabled (like device info).

Bug: 859825
Change-Id: I345465be97d8b2d95c503130bb2e1274a96f48e1
Reviewed-on: https://chromium-review.googlesource.com/1124330
Commit-Queue: vitaliii <vitaliii@chromium.org>
Reviewed-by: default avatarMikel Astiz <mastiz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#572542}
parent a6db9de7
...@@ -224,6 +224,11 @@ constexpr ModelTypeSet UserTypes() { ...@@ -224,6 +224,11 @@ constexpr ModelTypeSet UserTypes() {
return ModelTypeSet::FromRange(FIRST_USER_MODEL_TYPE, LAST_USER_MODEL_TYPE); return ModelTypeSet::FromRange(FIRST_USER_MODEL_TYPE, LAST_USER_MODEL_TYPE);
} }
// User types, which are not user-controlled.
constexpr ModelTypeSet AlwaysPreferredUserTypes() {
return ModelTypeSet(DEVICE_INFO, USER_CONSENTS);
}
// These are the user-selectable data types. // These are the user-selectable data types.
constexpr ModelTypeSet UserSelectableTypes() { constexpr ModelTypeSet UserSelectableTypes() {
return ModelTypeSet(BOOKMARKS, PREFERENCES, PASSWORDS, AUTOFILL, THEMES, return ModelTypeSet(BOOKMARKS, PREFERENCES, PASSWORDS, AUTOFILL, THEMES,
......
...@@ -64,16 +64,13 @@ void SyncPrefs::RegisterProfilePrefs( ...@@ -64,16 +64,13 @@ void SyncPrefs::RegisterProfilePrefs(
// although they don't have sync representations. // although they don't have sync representations.
user_types.PutAll(ProxyTypes()); user_types.PutAll(ProxyTypes());
// Treat device info specially. // All types except the always-preferred ones are set to off by default, which
RegisterDataTypePreferredPref(registry, DEVICE_INFO, true); // forces a configuration to explicitly enable them. GetPreferredTypes() will
user_types.Remove(DEVICE_INFO); // ensure that any new implicit types are enabled when their pref group is, or
// via KeepEverythingSynced.
// All types are set to off by default, which forces a configuration to
// explicitly enable them. GetPreferredTypes() will ensure that any new
// implicit types are enabled when their pref group is, or via
// KeepEverythingSynced.
for (ModelTypeSet::Iterator it = user_types.First(); it.Good(); it.Inc()) { for (ModelTypeSet::Iterator it = user_types.First(); it.Good(); it.Inc()) {
RegisterDataTypePreferredPref(registry, it.Get(), false); RegisterDataTypePreferredPref(registry, it.Get(),
AlwaysPreferredUserTypes().Has(it.Get()));
} }
registry->RegisterBooleanPref(prefs::kSyncManaged, false); registry->RegisterBooleanPref(prefs::kSyncManaged, false);
...@@ -451,8 +448,7 @@ bool SyncPrefs::GetDataTypePreferred(ModelType type) const { ...@@ -451,8 +448,7 @@ bool SyncPrefs::GetDataTypePreferred(ModelType type) const {
return false; return false;
} }
// Device info is always enabled. if (AlwaysPreferredUserTypes().Has(type))
if (pref_name == prefs::kSyncDeviceInfo)
return true; return true;
if (type == PROXY_TABS && if (type == PROXY_TABS &&
...@@ -474,8 +470,7 @@ void SyncPrefs::SetDataTypePreferred(ModelType type, bool is_preferred) { ...@@ -474,8 +470,7 @@ void SyncPrefs::SetDataTypePreferred(ModelType type, bool is_preferred) {
return; return;
} }
// Device info is always preferred. if (AlwaysPreferredUserTypes().Has(type))
if (type == DEVICE_INFO)
return; return;
pref_service_->SetBoolean(pref_name, is_preferred); pref_service_->SetBoolean(pref_name, is_preferred);
......
...@@ -66,10 +66,8 @@ TEST_F(SyncPrefsTest, DefaultTypes) { ...@@ -66,10 +66,8 @@ TEST_F(SyncPrefsTest, DefaultTypes) {
SyncPrefs sync_prefs(&pref_service_); SyncPrefs sync_prefs(&pref_service_);
sync_prefs.SetKeepEverythingSynced(false); sync_prefs.SetKeepEverythingSynced(false);
// Only device info is enabled by default.
ModelTypeSet expected(DEVICE_INFO);
ModelTypeSet preferred_types = sync_prefs.GetPreferredDataTypes(UserTypes()); ModelTypeSet preferred_types = sync_prefs.GetPreferredDataTypes(UserTypes());
EXPECT_EQ(expected, preferred_types); EXPECT_EQ(AlwaysPreferredUserTypes(), preferred_types);
// Simulate an upgrade to delete directives + proxy tabs support. None of the // Simulate an upgrade to delete directives + proxy tabs support. None of the
// new types or their pref group types should be registering, ensuring they // new types or their pref group types should be registering, ensuring they
...@@ -165,8 +163,7 @@ TEST_F(SyncPrefsTest, PreferredTypesNotKeepEverythingSynced) { ...@@ -165,8 +163,7 @@ TEST_F(SyncPrefsTest, PreferredTypesNotKeepEverythingSynced) {
expected_preferred_types.Put(FAVICON_TRACKING); expected_preferred_types.Put(FAVICON_TRACKING);
} }
// Device info is always preferred. expected_preferred_types.PutAll(AlwaysPreferredUserTypes());
expected_preferred_types.Put(DEVICE_INFO);
sync_prefs.SetPreferredDataTypes(user_types, preferred_types); sync_prefs.SetPreferredDataTypes(user_types, preferred_types);
EXPECT_EQ(expected_preferred_types, EXPECT_EQ(expected_preferred_types,
...@@ -229,6 +226,24 @@ TEST_F(SyncPrefsTest, DeviceInfo) { ...@@ -229,6 +226,24 @@ TEST_F(SyncPrefsTest, DeviceInfo) {
EXPECT_TRUE(sync_prefs.GetPreferredDataTypes(UserTypes()).Has(DEVICE_INFO)); EXPECT_TRUE(sync_prefs.GetPreferredDataTypes(UserTypes()).Has(DEVICE_INFO));
sync_prefs.SetKeepEverythingSynced(false); sync_prefs.SetKeepEverythingSynced(false);
EXPECT_TRUE(sync_prefs.GetPreferredDataTypes(UserTypes()).Has(DEVICE_INFO)); EXPECT_TRUE(sync_prefs.GetPreferredDataTypes(UserTypes()).Has(DEVICE_INFO));
sync_prefs.SetPreferredDataTypes(
/*registered_types=*/ModelTypeSet(DEVICE_INFO),
/*preferred_types=*/ModelTypeSet());
EXPECT_TRUE(sync_prefs.GetPreferredDataTypes(UserTypes()).Has(DEVICE_INFO));
}
// User Consents should always be enabled.
TEST_F(SyncPrefsTest, UserConsents) {
SyncPrefs sync_prefs(&pref_service_);
EXPECT_TRUE(sync_prefs.GetPreferredDataTypes(UserTypes()).Has(USER_CONSENTS));
sync_prefs.SetKeepEverythingSynced(true);
EXPECT_TRUE(sync_prefs.GetPreferredDataTypes(UserTypes()).Has(USER_CONSENTS));
sync_prefs.SetKeepEverythingSynced(false);
EXPECT_TRUE(sync_prefs.GetPreferredDataTypes(UserTypes()).Has(USER_CONSENTS));
sync_prefs.SetPreferredDataTypes(
/*registered_types=*/ModelTypeSet(USER_CONSENTS),
/*preferred_types=*/ModelTypeSet());
EXPECT_TRUE(sync_prefs.GetPreferredDataTypes(UserTypes()).Has(USER_CONSENTS));
} }
// Verify that invalidation versions are persisted and loaded correctly. // Verify that invalidation versions are persisted and loaded correctly.
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment