| Index: sync/syncable/model_type.cc
|
| diff --git a/sync/syncable/model_type.cc b/sync/syncable/model_type.cc
|
| index 59be6f2de881fca8262d026febacd9ecc03dae3e..5b92c786fc4d2f290387629155bbb0dbed72d189 100644
|
| --- a/sync/syncable/model_type.cc
|
| +++ b/sync/syncable/model_type.cc
|
| @@ -25,6 +25,28 @@
|
|
|
| namespace syncer {
|
|
|
| +// Notes:
|
| +// 1) This list must contain exactly the same elements as the set returned by
|
| +// UserSelectableTypes().
|
| +// 2) This list must be in the same order as the respective values in the
|
| +// ModelType enum.
|
| +const char* kUserSelectableDataTypeNames[] = {
|
| + "bookmarks",
|
| + "preferences",
|
| + "passwords",
|
| + "autofill",
|
| + "themes",
|
| + "typedUrls",
|
| + "extensions",
|
| + "apps",
|
| + "wifiCredentials",
|
| + "tabs",
|
| +};
|
| +
|
| +COMPILE_ASSERT(
|
| + 33 == MODEL_TYPE_COUNT,
|
| + update_kUserSelectableDataTypeNames_to_match_UserSelectableTypes);
|
| +
|
| void AddDefaultFieldValue(ModelType datatype,
|
| sync_pb::EntitySpecifics* specifics) {
|
| if (!ProtocolTypes().Has(datatype)) {
|
| @@ -119,6 +141,9 @@ void AddDefaultFieldValue(ModelType datatype,
|
| case ARTICLES:
|
| specifics->mutable_article();
|
| break;
|
| + case WIFI_CREDENTIALS:
|
| + specifics->mutable_wifi_credential();
|
| + break;
|
| default:
|
| NOTREACHED() << "No known extension for model type.";
|
| }
|
| @@ -196,6 +221,8 @@ int GetSpecificsFieldNumberFromModelType(ModelType model_type) {
|
| return sync_pb::EntitySpecifics::kManagedUserSharedSettingFieldNumber;
|
| case ARTICLES:
|
| return sync_pb::EntitySpecifics::kArticleFieldNumber;
|
| + case WIFI_CREDENTIALS:
|
| + return sync_pb::EntitySpecifics::kWifiCredentialFieldNumber;
|
| default:
|
| NOTREACHED() << "No known extension for model type.";
|
| return 0;
|
| @@ -324,6 +351,9 @@ ModelType GetModelTypeFromSpecifics(const sync_pb::EntitySpecifics& specifics) {
|
| if (specifics.has_article())
|
| return ARTICLES;
|
|
|
| + if (specifics.has_wifi_credential())
|
| + return WIFI_CREDENTIALS;
|
| +
|
| return UNSPECIFIED;
|
| }
|
|
|
| @@ -356,6 +386,7 @@ ModelTypeSet UserSelectableTypes() {
|
| set.Put(TYPED_URLS);
|
| set.Put(EXTENSIONS);
|
| set.Put(APPS);
|
| + set.Put(WIFI_CREDENTIALS);
|
| set.Put(PROXY_TABS);
|
| return set;
|
| }
|
| @@ -364,6 +395,18 @@ bool IsUserSelectableType(ModelType model_type) {
|
| return UserSelectableTypes().Has(model_type);
|
| }
|
|
|
| +ModelTypeNameMap GetUserSelectableTypeNameMap() {
|
| + ModelTypeNameMap type_names;
|
| + ModelTypeSet type_set = UserSelectableTypes();
|
| + ModelTypeSet::Iterator it = type_set.First();
|
| + DCHECK_EQ(arraysize(kUserSelectableDataTypeNames), type_set.Size());
|
| + for (size_t i = 0; i < arraysize(kUserSelectableDataTypeNames) && it.Good();
|
| + ++i, it.Inc()) {
|
| + type_names[it.Get()] = kUserSelectableDataTypeNames[i];
|
| + }
|
| + return type_names;
|
| +}
|
| +
|
| ModelTypeSet EncryptableUserTypes() {
|
| ModelTypeSet encryptable_user_types = UserTypes();
|
| // We never encrypt history delete directives.
|
| @@ -524,6 +567,8 @@ const char* ModelTypeToString(ModelType model_type) {
|
| return "Managed User Shared Settings";
|
| case ARTICLES:
|
| return "Articles";
|
| + case WIFI_CREDENTIALS:
|
| + return "WiFi Credentials";
|
| case PROXY_TABS:
|
| return "Tabs";
|
| default:
|
| @@ -603,6 +648,8 @@ int ModelTypeToHistogramInt(ModelType model_type) {
|
| return 30;
|
| case SYNCED_NOTIFICATION_APP_INFO:
|
| return 31;
|
| + case WIFI_CREDENTIALS:
|
| + return 32;
|
| // Silence a compiler warning.
|
| case MODEL_TYPE_COUNT:
|
| return 0;
|
| @@ -696,6 +743,8 @@ ModelType ModelTypeFromString(const std::string& model_type_string) {
|
| return SUPERVISED_USER_SHARED_SETTINGS;
|
| else if (model_type_string == "Articles")
|
| return ARTICLES;
|
| + else if (model_type_string == "WiFi Credentials")
|
| + return WIFI_CREDENTIALS;
|
| else if (model_type_string == "Tabs")
|
| return PROXY_TABS;
|
| else
|
| @@ -820,6 +869,8 @@ std::string ModelTypeToRootTag(ModelType type) {
|
| return "google_chrome_managed_user_shared_settings";
|
| case ARTICLES:
|
| return "google_chrome_articles";
|
| + case WIFI_CREDENTIALS:
|
| + return "google_chrome_wifi_credentials";
|
| case PROXY_TABS:
|
| return std::string();
|
| default:
|
|
|