| 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 0ff67bdb8d5f4463a2741b5daaeb3ab603fd9aa9..b9e42e20ddc0927c051703569547cd9d9e6e69e6 100644
|
| --- a/chrome/browser/sync/syncable/model_type.cc
|
| +++ b/chrome/browser/sync/syncable/model_type.cc
|
| @@ -261,13 +261,54 @@ ListValue* ModelTypeBitSetToValue(const ModelTypeBitSet& model_types) {
|
| for (int i = FIRST_REAL_MODEL_TYPE; i < MODEL_TYPE_COUNT; ++i) {
|
| if (model_types[i]) {
|
| value->Append(
|
| - Value::CreateStringValue(
|
| - ModelTypeToString(ModelTypeFromInt(i))));
|
| + Value::CreateStringValue(ModelTypeToString(ModelTypeFromInt(i))));
|
| }
|
| }
|
| return value;
|
| }
|
|
|
| +ListValue* ModelTypeSetToValue(const ModelTypeSet& model_types) {
|
| + ListValue* value = new ListValue();
|
| + for (ModelTypeSet::const_iterator i = model_types.begin();
|
| + i != model_types.end(); ++i) {
|
| + value->Append(Value::CreateStringValue(ModelTypeToString(*i)));
|
| + }
|
| + return value;
|
| +}
|
| +
|
| +// TODO(zea): remove all hardcoded tags in model associators and have them use
|
| +// this instead.
|
| +std::string ModelTypeToRootTag(ModelType type) {
|
| + switch (type) {
|
| + case BOOKMARKS:
|
| + return "google_chrome_bookmarks";
|
| + case PREFERENCES:
|
| + return "google_chrome_preferences";
|
| + case PASSWORDS:
|
| + return "google_chrome_passwords";
|
| + case AUTOFILL:
|
| + return "google_chrome_autofill";
|
| + case THEMES:
|
| + return "google_chrome_themes";
|
| + case TYPED_URLS:
|
| + return "google_chrome_typed_urls";
|
| + case EXTENSIONS:
|
| + return "google_chrome_extensions";
|
| + case NIGORI:
|
| + return "google_chrome_nigori";
|
| + case SESSIONS:
|
| + return "google_chrome_sessions";
|
| + case APPS:
|
| + return "google_chrome_apps";
|
| + case AUTOFILL_PROFILE:
|
| + return "google_chrome_autofill_profiles";
|
| + default:
|
| + break;
|
| + }
|
| + NOTREACHED() << "No known extension for model type.";
|
| + return "INVALID";
|
| +}
|
| +
|
| // For now, this just implements UMA_HISTOGRAM_LONG_TIMES. This can be adjusted
|
| // if we feel the min, max, or bucket count amount are not appropriate.
|
| #define SYNC_FREQ_HISTOGRAM(name, time) UMA_HISTOGRAM_CUSTOM_TIMES( \
|
|
|