Index: chrome/browser/sync/syncable/model_type.cc |
diff --git a/chrome/browser/sync/syncable/model_type.cc b/chrome/browser/sync/syncable/model_type.cc |
index 8d4227d6d72c40c8a24ec45330d5ed946c309c9d..9c186ebd74769305b6bc88e3ba62064e5731e1c6 100644 |
--- a/chrome/browser/sync/syncable/model_type.cc |
+++ b/chrome/browser/sync/syncable/model_type.cc |
@@ -11,6 +11,7 @@ |
#include "chrome/browser/sync/protocol/app_specifics.pb.h" |
#include "chrome/browser/sync/protocol/autofill_specifics.pb.h" |
#include "chrome/browser/sync/protocol/bookmark_specifics.pb.h" |
+#include "chrome/browser/sync/protocol/extension_setting_specifics.pb.h" |
#include "chrome/browser/sync/protocol/extension_specifics.pb.h" |
#include "chrome/browser/sync/protocol/nigori_specifics.pb.h" |
#include "chrome/browser/sync/protocol/password_specifics.pb.h" |
@@ -62,6 +63,9 @@ void AddDefaultExtensionValue(syncable::ModelType datatype, |
case APPS: |
specifics->MutableExtension(sync_pb::app); |
break; |
+ case EXTENSION_SETTINGS: |
+ specifics->MutableExtension(sync_pb::extension_setting); |
+ break; |
default: |
NOTREACHED() << "No known extension for model type."; |
} |
@@ -115,6 +119,9 @@ int GetExtensionFieldNumberFromModelType(ModelType model_type) { |
case APPS: |
return sync_pb::kAppFieldNumber; |
break; |
+ case EXTENSION_SETTINGS: |
+ return sync_pb::kExtensionSettingFieldNumber; |
+ break; |
default: |
NOTREACHED() << "No known extension for model type."; |
return 0; |
@@ -192,6 +199,9 @@ ModelType GetModelTypeFromSpecifics(const sync_pb::EntitySpecifics& specifics) { |
if (specifics.HasExtension(sync_pb::session)) |
return SESSIONS; |
+ if (specifics.HasExtension(sync_pb::extension_setting)) |
+ return EXTENSION_SETTINGS; |
+ |
return UNSPECIFIED; |
} |
@@ -225,6 +235,8 @@ std::string ModelTypeToString(ModelType model_type) { |
return "Apps"; |
case AUTOFILL_PROFILE: |
return "Autofill Profiles"; |
+ case EXTENSION_SETTINGS: |
+ return "Extension settings"; |
default: |
break; |
} |
@@ -295,6 +307,8 @@ ModelType ModelTypeFromString(const std::string& model_type_string) { |
return SESSIONS; |
else if (model_type_string == "Apps") |
return APPS; |
+ else if (model_type_string == "Extension settings") |
+ return EXTENSION_SETTINGS; |
else |
NOTREACHED() << "No known model type corresponding to " |
<< model_type_string << "."; |
@@ -387,6 +401,8 @@ std::string ModelTypeToRootTag(ModelType type) { |
return "google_chrome_apps"; |
case AUTOFILL_PROFILE: |
return "google_chrome_autofill_profiles"; |
+ case EXTENSION_SETTINGS: |
+ return "google_chrome_extension_settings"; |
default: |
break; |
} |
@@ -450,6 +466,10 @@ void PostTimeToTypeHistogram(ModelType model_type, base::TimeDelta time) { |
SYNC_FREQ_HISTOGRAM("Sync.FreqApps", time); |
return; |
} |
+ case EXTENSION_SETTINGS: { |
+ SYNC_FREQ_HISTOGRAM("Sync.FreqExtensionSettings", time); |
+ return; |
+ } |
default: |
LOG(ERROR) << "No known extension for model type."; |
} |
@@ -467,6 +487,7 @@ const char kAutofillNotificationType[] = "AUTOFILL"; |
const char kThemeNotificationType[] = "THEME"; |
const char kTypedUrlNotificationType[] = "TYPED_URL"; |
const char kExtensionNotificationType[] = "EXTENSION"; |
+const char kExtensionSettingNotificationType[] = "EXTENSION_SETTING"; |
const char kNigoriNotificationType[] = "NIGORI"; |
const char kAppNotificationType[] = "APP"; |
const char kSearchEngineNotificationType[] = "SEARCH_ENGINE"; |
@@ -513,6 +534,9 @@ bool RealModelTypeToNotificationType(ModelType model_type, |
case AUTOFILL_PROFILE: |
*notification_type = kAutofillProfileNotificationType; |
return true; |
+ case EXTENSION_SETTINGS: |
+ *notification_type = kExtensionSettingNotificationType; |
+ return true; |
default: |
break; |
} |
@@ -558,6 +582,9 @@ bool NotificationTypeToRealModelType(const std::string& notification_type, |
} else if (notification_type == kAutofillProfileNotificationType) { |
*model_type = AUTOFILL_PROFILE; |
return true; |
+ } else if (notification_type == kExtensionSettingNotificationType) { |
+ *model_type = EXTENSION_SETTINGS; |
+ return true; |
} |
*model_type = UNSPECIFIED; |
return false; |