Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(7)

Side by Side Diff: sync/syncable/model_type.cc

Issue 11445002: Sync user's custom spellcheck dictionary (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: Add server-side size limit tests Created 7 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "sync/internal_api/public/base/model_type.h" 5 #include "sync/internal_api/public/base/model_type.h"
6 6
7 #include "base/string_split.h" 7 #include "base/string_split.h"
8 #include "base/values.h" 8 #include "base/values.h"
9 #include "sync/protocol/app_notification_specifics.pb.h" 9 #include "sync/protocol/app_notification_specifics.pb.h"
10 #include "sync/protocol/app_setting_specifics.pb.h" 10 #include "sync/protocol/app_setting_specifics.pb.h"
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after
78 break; 78 break;
79 case SYNCED_NOTIFICATIONS: 79 case SYNCED_NOTIFICATIONS:
80 specifics->mutable_synced_notification(); 80 specifics->mutable_synced_notification();
81 break; 81 break;
82 case DEVICE_INFO: 82 case DEVICE_INFO:
83 specifics->mutable_device_info(); 83 specifics->mutable_device_info();
84 break; 84 break;
85 case EXPERIMENTS: 85 case EXPERIMENTS:
86 specifics->mutable_experiments(); 86 specifics->mutable_experiments();
87 break; 87 break;
88 case DICTIONARY:
89 specifics->mutable_dictionary();
90 break;
88 default: 91 default:
89 NOTREACHED() << "No known extension for model type."; 92 NOTREACHED() << "No known extension for model type.";
90 } 93 }
91 } 94 }
92 95
93 ModelType GetModelTypeFromSpecificsFieldNumber(int field_number) { 96 ModelType GetModelTypeFromSpecificsFieldNumber(int field_number) {
94 for (int i = FIRST_REAL_MODEL_TYPE; i < MODEL_TYPE_COUNT; ++i) { 97 for (int i = FIRST_REAL_MODEL_TYPE; i < MODEL_TYPE_COUNT; ++i) {
95 ModelType model_type = ModelTypeFromInt(i); 98 ModelType model_type = ModelTypeFromInt(i);
96 if (GetSpecificsFieldNumberFromModelType(model_type) == field_number) 99 if (GetSpecificsFieldNumberFromModelType(model_type) == field_number)
97 return model_type; 100 return model_type;
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after
149 case HISTORY_DELETE_DIRECTIVES: 152 case HISTORY_DELETE_DIRECTIVES:
150 return sync_pb::EntitySpecifics::kHistoryDeleteDirectiveFieldNumber; 153 return sync_pb::EntitySpecifics::kHistoryDeleteDirectiveFieldNumber;
151 case SYNCED_NOTIFICATIONS: 154 case SYNCED_NOTIFICATIONS:
152 return sync_pb::EntitySpecifics::kSyncedNotificationFieldNumber; 155 return sync_pb::EntitySpecifics::kSyncedNotificationFieldNumber;
153 case DEVICE_INFO: 156 case DEVICE_INFO:
154 return sync_pb::EntitySpecifics::kDeviceInfoFieldNumber; 157 return sync_pb::EntitySpecifics::kDeviceInfoFieldNumber;
155 break; 158 break;
156 case EXPERIMENTS: 159 case EXPERIMENTS:
157 return sync_pb::EntitySpecifics::kExperimentsFieldNumber; 160 return sync_pb::EntitySpecifics::kExperimentsFieldNumber;
158 break; 161 break;
162 case DICTIONARY:
163 return sync_pb::EntitySpecifics::kDictionaryFieldNumber;
164 break;
159 default: 165 default:
160 NOTREACHED() << "No known extension for model type."; 166 NOTREACHED() << "No known extension for model type.";
161 return 0; 167 return 0;
162 } 168 }
163 NOTREACHED() << "Needed for linux_keep_shadow_stacks because of " 169 NOTREACHED() << "Needed for linux_keep_shadow_stacks because of "
164 << "http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20681"; 170 << "http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20681";
165 return 0; 171 return 0;
166 } 172 }
167 173
168 FullModelTypeSet ToFullModelTypeSet(ModelTypeSet in) { 174 FullModelTypeSet ToFullModelTypeSet(ModelTypeSet in) {
(...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after
253 259
254 if (specifics.has_synced_notification()) 260 if (specifics.has_synced_notification())
255 return SYNCED_NOTIFICATIONS; 261 return SYNCED_NOTIFICATIONS;
256 262
257 if (specifics.has_device_info()) 263 if (specifics.has_device_info())
258 return DEVICE_INFO; 264 return DEVICE_INFO;
259 265
260 if (specifics.has_experiments()) 266 if (specifics.has_experiments())
261 return EXPERIMENTS; 267 return EXPERIMENTS;
262 268
269 if (specifics.has_dictionary())
270 return DICTIONARY;
271
263 return UNSPECIFIED; 272 return UNSPECIFIED;
264 } 273 }
265 274
266 bool ShouldMaintainPosition(ModelType model_type) { 275 bool ShouldMaintainPosition(ModelType model_type) {
267 return model_type == BOOKMARKS; 276 return model_type == BOOKMARKS;
268 } 277 }
269 278
270 ModelTypeSet UserTypes() { 279 ModelTypeSet UserTypes() {
271 ModelTypeSet set; 280 ModelTypeSet set;
272 for (int i = FIRST_USER_MODEL_TYPE; i <= LAST_USER_MODEL_TYPE; ++i) { 281 for (int i = FIRST_USER_MODEL_TYPE; i <= LAST_USER_MODEL_TYPE; ++i) {
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after
337 case APP_NOTIFICATIONS: 346 case APP_NOTIFICATIONS:
338 return "App Notifications"; 347 return "App Notifications";
339 case HISTORY_DELETE_DIRECTIVES: 348 case HISTORY_DELETE_DIRECTIVES:
340 return "History Delete Directives"; 349 return "History Delete Directives";
341 case SYNCED_NOTIFICATIONS: 350 case SYNCED_NOTIFICATIONS:
342 return "Synced Notifications"; 351 return "Synced Notifications";
343 case DEVICE_INFO: 352 case DEVICE_INFO:
344 return "Device Info"; 353 return "Device Info";
345 case EXPERIMENTS: 354 case EXPERIMENTS:
346 return "Experiments"; 355 return "Experiments";
356 case DICTIONARY:
357 return "Dictionary";
347 default: 358 default:
348 break; 359 break;
349 } 360 }
350 NOTREACHED() << "No known extension for model type."; 361 NOTREACHED() << "No known extension for model type.";
351 return "INVALID"; 362 return "INVALID";
352 } 363 }
353 364
354 StringValue* ModelTypeToValue(ModelType model_type) { 365 StringValue* ModelTypeToValue(ModelType model_type) {
355 if (model_type >= FIRST_REAL_MODEL_TYPE) { 366 if (model_type >= FIRST_REAL_MODEL_TYPE) {
356 return Value::CreateStringValue(ModelTypeToString(model_type)); 367 return Value::CreateStringValue(ModelTypeToString(model_type));
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after
410 else if (model_type_string == "App Notifications") 421 else if (model_type_string == "App Notifications")
411 return APP_NOTIFICATIONS; 422 return APP_NOTIFICATIONS;
412 else if (model_type_string == "History Delete Directives") 423 else if (model_type_string == "History Delete Directives")
413 return HISTORY_DELETE_DIRECTIVES; 424 return HISTORY_DELETE_DIRECTIVES;
414 else if (model_type_string == "Synced Notifications") 425 else if (model_type_string == "Synced Notifications")
415 return SYNCED_NOTIFICATIONS; 426 return SYNCED_NOTIFICATIONS;
416 else if (model_type_string == "Device Info") 427 else if (model_type_string == "Device Info")
417 return DEVICE_INFO; 428 return DEVICE_INFO;
418 else if (model_type_string == "Experiments") 429 else if (model_type_string == "Experiments")
419 return EXPERIMENTS; 430 return EXPERIMENTS;
431 else if (model_type_string == "Dictionary")
432 return DICTIONARY;
420 else 433 else
421 NOTREACHED() << "No known model type corresponding to " 434 NOTREACHED() << "No known model type corresponding to "
422 << model_type_string << "."; 435 << model_type_string << ".";
423 return UNSPECIFIED; 436 return UNSPECIFIED;
424 } 437 }
425 438
426 std::string ModelTypeSetToString(ModelTypeSet model_types) { 439 std::string ModelTypeSetToString(ModelTypeSet model_types) {
427 std::string result; 440 std::string result;
428 for (ModelTypeSet::Iterator it = model_types.First(); it.Good(); it.Inc()) { 441 for (ModelTypeSet::Iterator it = model_types.First(); it.Good(); it.Inc()) {
429 if (!result.empty()) { 442 if (!result.empty()) {
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after
486 case APP_NOTIFICATIONS: 499 case APP_NOTIFICATIONS:
487 return "google_chrome_app_notifications"; 500 return "google_chrome_app_notifications";
488 case HISTORY_DELETE_DIRECTIVES: 501 case HISTORY_DELETE_DIRECTIVES:
489 return "google_chrome_history_delete_directives"; 502 return "google_chrome_history_delete_directives";
490 case SYNCED_NOTIFICATIONS: 503 case SYNCED_NOTIFICATIONS:
491 return "google_chrome_synced_notifications"; 504 return "google_chrome_synced_notifications";
492 case DEVICE_INFO: 505 case DEVICE_INFO:
493 return "google_chrome_device_info"; 506 return "google_chrome_device_info";
494 case EXPERIMENTS: 507 case EXPERIMENTS:
495 return "google_chrome_experiments"; 508 return "google_chrome_experiments";
509 case DICTIONARY:
510 return "google_chrome_dictionary";
496 default: 511 default:
497 break; 512 break;
498 } 513 }
499 NOTREACHED() << "No known extension for model type."; 514 NOTREACHED() << "No known extension for model type.";
500 return "INVALID"; 515 return "INVALID";
501 } 516 }
502 517
503 // TODO(akalin): Figure out a better way to do these mappings. 518 // TODO(akalin): Figure out a better way to do these mappings.
504 519
505 namespace { 520 namespace {
(...skipping 10 matching lines...) Expand all
516 const char kAppNotificationType[] = "APP"; 531 const char kAppNotificationType[] = "APP";
517 const char kSearchEngineNotificationType[] = "SEARCH_ENGINE"; 532 const char kSearchEngineNotificationType[] = "SEARCH_ENGINE";
518 const char kSessionNotificationType[] = "SESSION"; 533 const char kSessionNotificationType[] = "SESSION";
519 const char kAutofillProfileNotificationType[] = "AUTOFILL_PROFILE"; 534 const char kAutofillProfileNotificationType[] = "AUTOFILL_PROFILE";
520 const char kAppNotificationNotificationType[] = "APP_NOTIFICATION"; 535 const char kAppNotificationNotificationType[] = "APP_NOTIFICATION";
521 const char kHistoryDeleteDirectiveNotificationType[] = 536 const char kHistoryDeleteDirectiveNotificationType[] =
522 "HISTORY_DELETE_DIRECTIVE"; 537 "HISTORY_DELETE_DIRECTIVE";
523 const char kSyncedNotificationType[] = "SYNCED_NOTIFICATION"; 538 const char kSyncedNotificationType[] = "SYNCED_NOTIFICATION";
524 const char kDeviceInfoNotificationType[] = "DEVICE_INFO"; 539 const char kDeviceInfoNotificationType[] = "DEVICE_INFO";
525 const char kExperimentsNotificationType[] = "EXPERIMENTS"; 540 const char kExperimentsNotificationType[] = "EXPERIMENTS";
541 const char kDictionaryNotificationType[] = "DICTIONARY";
526 } // namespace 542 } // namespace
527 543
528 bool RealModelTypeToNotificationType(ModelType model_type, 544 bool RealModelTypeToNotificationType(ModelType model_type,
529 std::string* notification_type) { 545 std::string* notification_type) {
530 switch (model_type) { 546 switch (model_type) {
531 case BOOKMARKS: 547 case BOOKMARKS:
532 *notification_type = kBookmarkNotificationType; 548 *notification_type = kBookmarkNotificationType;
533 return true; 549 return true;
534 case PREFERENCES: 550 case PREFERENCES:
535 *notification_type = kPreferenceNotificationType; 551 *notification_type = kPreferenceNotificationType;
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
576 case HISTORY_DELETE_DIRECTIVES: 592 case HISTORY_DELETE_DIRECTIVES:
577 *notification_type = kHistoryDeleteDirectiveNotificationType; 593 *notification_type = kHistoryDeleteDirectiveNotificationType;
578 case SYNCED_NOTIFICATIONS: 594 case SYNCED_NOTIFICATIONS:
579 *notification_type = kSyncedNotificationType; 595 *notification_type = kSyncedNotificationType;
580 case DEVICE_INFO: 596 case DEVICE_INFO:
581 *notification_type = kDeviceInfoNotificationType; 597 *notification_type = kDeviceInfoNotificationType;
582 return true; 598 return true;
583 case EXPERIMENTS: 599 case EXPERIMENTS:
584 *notification_type = kExperimentsNotificationType; 600 *notification_type = kExperimentsNotificationType;
585 return true; 601 return true;
602 case DICTIONARY:
603 *notification_type = kDictionaryNotificationType;
604 return true;
586 default: 605 default:
587 break; 606 break;
588 } 607 }
589 notification_type->clear(); 608 notification_type->clear();
590 return false; 609 return false;
591 } 610 }
592 611
593 bool NotificationTypeToRealModelType(const std::string& notification_type, 612 bool NotificationTypeToRealModelType(const std::string& notification_type,
594 ModelType* model_type) { 613 ModelType* model_type) {
595 if (notification_type == kBookmarkNotificationType) { 614 if (notification_type == kBookmarkNotificationType) {
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
637 } else if (notification_type == kAppNotificationNotificationType) { 656 } else if (notification_type == kAppNotificationNotificationType) {
638 *model_type = APP_NOTIFICATIONS; 657 *model_type = APP_NOTIFICATIONS;
639 return true; 658 return true;
640 } else if (notification_type == kHistoryDeleteDirectiveNotificationType) { 659 } else if (notification_type == kHistoryDeleteDirectiveNotificationType) {
641 *model_type = HISTORY_DELETE_DIRECTIVES; 660 *model_type = HISTORY_DELETE_DIRECTIVES;
642 } else if (notification_type == kSyncedNotificationType) { 661 } else if (notification_type == kSyncedNotificationType) {
643 *model_type = SYNCED_NOTIFICATIONS; 662 *model_type = SYNCED_NOTIFICATIONS;
644 } else if (notification_type == kDeviceInfoNotificationType) { 663 } else if (notification_type == kDeviceInfoNotificationType) {
645 *model_type = DEVICE_INFO;; 664 *model_type = DEVICE_INFO;;
646 return true; 665 return true;
666 } else if (notification_type == kDictionaryNotificationType) {
667 *model_type = DICTIONARY;
668 return true;
647 } 669 }
648 *model_type = UNSPECIFIED; 670 *model_type = UNSPECIFIED;
649 return false; 671 return false;
650 } 672 }
651 673
652 bool IsRealDataType(ModelType model_type) { 674 bool IsRealDataType(ModelType model_type) {
653 return model_type >= FIRST_REAL_MODEL_TYPE && model_type < MODEL_TYPE_COUNT; 675 return model_type >= FIRST_REAL_MODEL_TYPE && model_type < MODEL_TYPE_COUNT;
654 } 676 }
655 677
656 } // namespace syncer 678 } // namespace syncer
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698