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

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

Issue 15177003: Add Sync data type for managed users. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: review Created 7 years, 7 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 | Annotate | Revision Log
« no previous file with comments | « sync/sync_proto.gypi ('k') | sync/syncable/nigori_util.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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/strings/string_split.h" 7 #include "base/strings/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 86 matching lines...) Expand 10 before | Expand all | Expand 10 after
97 break; 97 break;
98 case FAVICON_IMAGES: 98 case FAVICON_IMAGES:
99 specifics->mutable_favicon_image(); 99 specifics->mutable_favicon_image();
100 break; 100 break;
101 case FAVICON_TRACKING: 101 case FAVICON_TRACKING:
102 specifics->mutable_favicon_tracking(); 102 specifics->mutable_favicon_tracking();
103 break; 103 break;
104 case MANAGED_USER_SETTINGS: 104 case MANAGED_USER_SETTINGS:
105 specifics->mutable_managed_user_setting(); 105 specifics->mutable_managed_user_setting();
106 break; 106 break;
107 case MANAGED_USERS:
108 specifics->mutable_managed_user();
109 break;
107 default: 110 default:
108 NOTREACHED() << "No known extension for model type."; 111 NOTREACHED() << "No known extension for model type.";
109 } 112 }
110 } 113 }
111 114
112 ModelType GetModelTypeFromSpecificsFieldNumber(int field_number) { 115 ModelType GetModelTypeFromSpecificsFieldNumber(int field_number) {
113 ModelTypeSet protocol_types = ProtocolTypes(); 116 ModelTypeSet protocol_types = ProtocolTypes();
114 for (ModelTypeSet::Iterator iter = protocol_types.First(); iter.Good(); 117 for (ModelTypeSet::Iterator iter = protocol_types.First(); iter.Good();
115 iter.Inc()) { 118 iter.Inc()) {
116 if (GetSpecificsFieldNumberFromModelType(iter.Get()) == field_number) 119 if (GetSpecificsFieldNumberFromModelType(iter.Get()) == field_number)
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after
185 break; 188 break;
186 case DICTIONARY: 189 case DICTIONARY:
187 return sync_pb::EntitySpecifics::kDictionaryFieldNumber; 190 return sync_pb::EntitySpecifics::kDictionaryFieldNumber;
188 break; 191 break;
189 case FAVICON_IMAGES: 192 case FAVICON_IMAGES:
190 return sync_pb::EntitySpecifics::kFaviconImageFieldNumber; 193 return sync_pb::EntitySpecifics::kFaviconImageFieldNumber;
191 case FAVICON_TRACKING: 194 case FAVICON_TRACKING:
192 return sync_pb::EntitySpecifics::kFaviconTrackingFieldNumber; 195 return sync_pb::EntitySpecifics::kFaviconTrackingFieldNumber;
193 case MANAGED_USER_SETTINGS: 196 case MANAGED_USER_SETTINGS:
194 return sync_pb::EntitySpecifics::kManagedUserSettingFieldNumber; 197 return sync_pb::EntitySpecifics::kManagedUserSettingFieldNumber;
198 case MANAGED_USERS:
199 return sync_pb::EntitySpecifics::kManagedUserFieldNumber;
195 default: 200 default:
196 NOTREACHED() << "No known extension for model type."; 201 NOTREACHED() << "No known extension for model type.";
197 return 0; 202 return 0;
198 } 203 }
199 NOTREACHED() << "Needed for linux_keep_shadow_stacks because of " 204 NOTREACHED() << "Needed for linux_keep_shadow_stacks because of "
200 << "http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20681"; 205 << "http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20681";
201 return 0; 206 return 0;
202 } 207 }
203 208
204 FullModelTypeSet ToFullModelTypeSet(ModelTypeSet in) { 209 FullModelTypeSet ToFullModelTypeSet(ModelTypeSet in) {
(...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after
304 309
305 if (specifics.has_favicon_image()) 310 if (specifics.has_favicon_image())
306 return FAVICON_IMAGES; 311 return FAVICON_IMAGES;
307 312
308 if (specifics.has_favicon_tracking()) 313 if (specifics.has_favicon_tracking())
309 return FAVICON_TRACKING; 314 return FAVICON_TRACKING;
310 315
311 if (specifics.has_managed_user_setting()) 316 if (specifics.has_managed_user_setting())
312 return MANAGED_USER_SETTINGS; 317 return MANAGED_USER_SETTINGS;
313 318
319 if (specifics.has_managed_user())
320 return MANAGED_USERS;
321
314 return UNSPECIFIED; 322 return UNSPECIFIED;
315 } 323 }
316 324
317 ModelTypeSet ProtocolTypes() { 325 ModelTypeSet ProtocolTypes() {
318 ModelTypeSet set = ModelTypeSet::All(); 326 ModelTypeSet set = ModelTypeSet::All();
319 set.RemoveAll(ProxyTypes()); 327 set.RemoveAll(ProxyTypes());
320 return set; 328 return set;
321 } 329 }
322 330
323 ModelTypeSet UserTypes() { 331 ModelTypeSet UserTypes() {
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
355 ModelTypeSet encryptable_user_types = UserTypes(); 363 ModelTypeSet encryptable_user_types = UserTypes();
356 // We never encrypt history delete directives. 364 // We never encrypt history delete directives.
357 encryptable_user_types.Remove(HISTORY_DELETE_DIRECTIVES); 365 encryptable_user_types.Remove(HISTORY_DELETE_DIRECTIVES);
358 // Synced notifications are not encrypted since the server must see changes. 366 // Synced notifications are not encrypted since the server must see changes.
359 encryptable_user_types.Remove(SYNCED_NOTIFICATIONS); 367 encryptable_user_types.Remove(SYNCED_NOTIFICATIONS);
360 // Priority preferences are not encrypted because they might be synced before 368 // Priority preferences are not encrypted because they might be synced before
361 // encryption is ready. 369 // encryption is ready.
362 encryptable_user_types.RemoveAll(PriorityUserTypes()); 370 encryptable_user_types.RemoveAll(PriorityUserTypes());
363 // Managed user settings are not encrypted since they are set server-side. 371 // Managed user settings are not encrypted since they are set server-side.
364 encryptable_user_types.Remove(MANAGED_USER_SETTINGS); 372 encryptable_user_types.Remove(MANAGED_USER_SETTINGS);
373 // Managed users are not encrypted since they are managed server-side.
374 encryptable_user_types.Remove(MANAGED_USERS);
365 // Proxy types have no sync representation and are therefore not encrypted. 375 // Proxy types have no sync representation and are therefore not encrypted.
366 // Note however that proxy types map to one or more protocol types, which 376 // Note however that proxy types map to one or more protocol types, which
367 // may or may not be encrypted themselves. 377 // may or may not be encrypted themselves.
368 encryptable_user_types.RemoveAll(ProxyTypes()); 378 encryptable_user_types.RemoveAll(ProxyTypes());
369 return encryptable_user_types; 379 return encryptable_user_types;
370 } 380 }
371 381
372 ModelTypeSet PriorityUserTypes() { 382 ModelTypeSet PriorityUserTypes() {
373 return ModelTypeSet(PRIORITY_PREFERENCES); 383 return ModelTypeSet(PRIORITY_PREFERENCES);
374 } 384 }
(...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after
445 case PRIORITY_PREFERENCES: 455 case PRIORITY_PREFERENCES:
446 return "Priority Preferences"; 456 return "Priority Preferences";
447 case DICTIONARY: 457 case DICTIONARY:
448 return "Dictionary"; 458 return "Dictionary";
449 case FAVICON_IMAGES: 459 case FAVICON_IMAGES:
450 return "Favicon Images"; 460 return "Favicon Images";
451 case FAVICON_TRACKING: 461 case FAVICON_TRACKING:
452 return "Favicon Tracking"; 462 return "Favicon Tracking";
453 case MANAGED_USER_SETTINGS: 463 case MANAGED_USER_SETTINGS:
454 return "Managed User Settings"; 464 return "Managed User Settings";
465 case MANAGED_USERS:
466 return "Managed Users";
455 case PROXY_TABS: 467 case PROXY_TABS:
456 return "Tabs"; 468 return "Tabs";
457 default: 469 default:
458 break; 470 break;
459 } 471 }
460 NOTREACHED() << "No known extension for model type."; 472 NOTREACHED() << "No known extension for model type.";
461 return "INVALID"; 473 return "INVALID";
462 } 474 }
463 475
464 // The normal rules about histograms apply here. Always append to the bottom of 476 // The normal rules about histograms apply here. Always append to the bottom of
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after
514 case DICTIONARY: 526 case DICTIONARY:
515 return 22; 527 return 22;
516 case FAVICON_IMAGES: 528 case FAVICON_IMAGES:
517 return 23; 529 return 23;
518 case FAVICON_TRACKING: 530 case FAVICON_TRACKING:
519 return 24; 531 return 24;
520 case PROXY_TABS: 532 case PROXY_TABS:
521 return 25; 533 return 25;
522 case MANAGED_USER_SETTINGS: 534 case MANAGED_USER_SETTINGS:
523 return 26; 535 return 26;
536 case MANAGED_USERS:
537 return 27;
524 // Silence a compiler warning. 538 // Silence a compiler warning.
525 case MODEL_TYPE_COUNT: 539 case MODEL_TYPE_COUNT:
526 return 0; 540 return 0;
527 } 541 }
528 return 0; 542 return 0;
529 } 543 }
530 544
531 base::StringValue* ModelTypeToValue(ModelType model_type) { 545 base::StringValue* ModelTypeToValue(ModelType model_type) {
532 if (model_type >= FIRST_REAL_MODEL_TYPE) { 546 if (model_type >= FIRST_REAL_MODEL_TYPE) {
533 return new base::StringValue(ModelTypeToString(model_type)); 547 return new base::StringValue(ModelTypeToString(model_type));
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after
597 else if (model_type_string == "Priority Preferences") 611 else if (model_type_string == "Priority Preferences")
598 return PRIORITY_PREFERENCES; 612 return PRIORITY_PREFERENCES;
599 else if (model_type_string == "Dictionary") 613 else if (model_type_string == "Dictionary")
600 return DICTIONARY; 614 return DICTIONARY;
601 else if (model_type_string == "Favicon Images") 615 else if (model_type_string == "Favicon Images")
602 return FAVICON_IMAGES; 616 return FAVICON_IMAGES;
603 else if (model_type_string == "Favicon Tracking") 617 else if (model_type_string == "Favicon Tracking")
604 return FAVICON_TRACKING; 618 return FAVICON_TRACKING;
605 else if (model_type_string == "Managed User Settings") 619 else if (model_type_string == "Managed User Settings")
606 return MANAGED_USER_SETTINGS; 620 return MANAGED_USER_SETTINGS;
621 else if (model_type_string == "Managed Users")
622 return MANAGED_USERS;
607 else if (model_type_string == "Tabs") 623 else if (model_type_string == "Tabs")
608 return PROXY_TABS; 624 return PROXY_TABS;
609 else 625 else
610 NOTREACHED() << "No known model type corresponding to " 626 NOTREACHED() << "No known model type corresponding to "
611 << model_type_string << "."; 627 << model_type_string << ".";
612 return UNSPECIFIED; 628 return UNSPECIFIED;
613 } 629 }
614 630
615 std::string ModelTypeSetToString(ModelTypeSet model_types) { 631 std::string ModelTypeSetToString(ModelTypeSet model_types) {
616 std::string result; 632 std::string result;
(...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after
687 case PRIORITY_PREFERENCES: 703 case PRIORITY_PREFERENCES:
688 return "google_chrome_priority_preferences"; 704 return "google_chrome_priority_preferences";
689 case DICTIONARY: 705 case DICTIONARY:
690 return "google_chrome_dictionary"; 706 return "google_chrome_dictionary";
691 case FAVICON_IMAGES: 707 case FAVICON_IMAGES:
692 return "google_chrome_favicon_images"; 708 return "google_chrome_favicon_images";
693 case FAVICON_TRACKING: 709 case FAVICON_TRACKING:
694 return "google_chrome_favicon_tracking"; 710 return "google_chrome_favicon_tracking";
695 case MANAGED_USER_SETTINGS: 711 case MANAGED_USER_SETTINGS:
696 return "google_chrome_managed_user_settings"; 712 return "google_chrome_managed_user_settings";
713 case MANAGED_USERS:
714 return "google_chrome_managed_users";
697 case PROXY_TABS: 715 case PROXY_TABS:
698 return std::string(); 716 return std::string();
699 default: 717 default:
700 break; 718 break;
701 } 719 }
702 NOTREACHED() << "No known extension for model type."; 720 NOTREACHED() << "No known extension for model type.";
703 return "INVALID"; 721 return "INVALID";
704 } 722 }
705 723
706 // TODO(akalin): Figure out a better way to do these mappings. 724 // TODO(akalin): Figure out a better way to do these mappings.
(...skipping 18 matching lines...) Expand all
725 const char kHistoryDeleteDirectiveNotificationType[] = 743 const char kHistoryDeleteDirectiveNotificationType[] =
726 "HISTORY_DELETE_DIRECTIVE"; 744 "HISTORY_DELETE_DIRECTIVE";
727 const char kSyncedNotificationType[] = "SYNCED_NOTIFICATION"; 745 const char kSyncedNotificationType[] = "SYNCED_NOTIFICATION";
728 const char kDeviceInfoNotificationType[] = "DEVICE_INFO"; 746 const char kDeviceInfoNotificationType[] = "DEVICE_INFO";
729 const char kExperimentsNotificationType[] = "EXPERIMENTS"; 747 const char kExperimentsNotificationType[] = "EXPERIMENTS";
730 const char kPriorityPreferenceNotificationType[] = "PRIORITY_PREFERENCE"; 748 const char kPriorityPreferenceNotificationType[] = "PRIORITY_PREFERENCE";
731 const char kDictionaryNotificationType[] = "DICTIONARY"; 749 const char kDictionaryNotificationType[] = "DICTIONARY";
732 const char kFaviconImageNotificationType[] = "FAVICON_IMAGE"; 750 const char kFaviconImageNotificationType[] = "FAVICON_IMAGE";
733 const char kFaviconTrackingNotificationType[] = "FAVICON_TRACKING"; 751 const char kFaviconTrackingNotificationType[] = "FAVICON_TRACKING";
734 const char kManagedUserSettingNotificationType[] = "MANAGED_USER_SETTING"; 752 const char kManagedUserSettingNotificationType[] = "MANAGED_USER_SETTING";
753 const char kManagedUserNotificationType[] = "MANAGED_USER";
735 } // namespace 754 } // namespace
736 755
737 bool RealModelTypeToNotificationType(ModelType model_type, 756 bool RealModelTypeToNotificationType(ModelType model_type,
738 std::string* notification_type) { 757 std::string* notification_type) {
739 switch (model_type) { 758 switch (model_type) {
740 case BOOKMARKS: 759 case BOOKMARKS:
741 *notification_type = kBookmarkNotificationType; 760 *notification_type = kBookmarkNotificationType;
742 return true; 761 return true;
743 case PREFERENCES: 762 case PREFERENCES:
744 *notification_type = kPreferenceNotificationType; 763 *notification_type = kPreferenceNotificationType;
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after
802 return true; 821 return true;
803 case FAVICON_IMAGES: 822 case FAVICON_IMAGES:
804 *notification_type = kFaviconImageNotificationType; 823 *notification_type = kFaviconImageNotificationType;
805 return true; 824 return true;
806 case FAVICON_TRACKING: 825 case FAVICON_TRACKING:
807 *notification_type = kFaviconTrackingNotificationType; 826 *notification_type = kFaviconTrackingNotificationType;
808 return true; 827 return true;
809 case MANAGED_USER_SETTINGS: 828 case MANAGED_USER_SETTINGS:
810 *notification_type = kManagedUserSettingNotificationType; 829 *notification_type = kManagedUserSettingNotificationType;
811 return true; 830 return true;
831 case MANAGED_USERS:
832 *notification_type = kManagedUserNotificationType;
833 return true;
812 default: 834 default:
813 break; 835 break;
814 } 836 }
815 notification_type->clear(); 837 notification_type->clear();
816 return false; 838 return false;
817 } 839 }
818 840
819 bool NotificationTypeToRealModelType(const std::string& notification_type, 841 bool NotificationTypeToRealModelType(const std::string& notification_type,
820 ModelType* model_type) { 842 ModelType* model_type) {
821 if (notification_type == kBookmarkNotificationType) { 843 if (notification_type == kBookmarkNotificationType) {
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after
883 return true; 905 return true;
884 } else if (notification_type == kFaviconImageNotificationType) { 906 } else if (notification_type == kFaviconImageNotificationType) {
885 *model_type = FAVICON_IMAGES; 907 *model_type = FAVICON_IMAGES;
886 return true; 908 return true;
887 } else if (notification_type == kFaviconTrackingNotificationType) { 909 } else if (notification_type == kFaviconTrackingNotificationType) {
888 *model_type = FAVICON_TRACKING; 910 *model_type = FAVICON_TRACKING;
889 return true; 911 return true;
890 } else if (notification_type == kManagedUserSettingNotificationType) { 912 } else if (notification_type == kManagedUserSettingNotificationType) {
891 *model_type = MANAGED_USER_SETTINGS; 913 *model_type = MANAGED_USER_SETTINGS;
892 return true; 914 return true;
915 } else if (notification_type == kManagedUserNotificationType) {
916 *model_type = MANAGED_USERS;
917 return true;
893 } 918 }
894 *model_type = UNSPECIFIED; 919 *model_type = UNSPECIFIED;
895 return false; 920 return false;
896 } 921 }
897 922
898 bool IsRealDataType(ModelType model_type) { 923 bool IsRealDataType(ModelType model_type) {
899 return model_type >= FIRST_REAL_MODEL_TYPE && model_type < MODEL_TYPE_COUNT; 924 return model_type >= FIRST_REAL_MODEL_TYPE && model_type < MODEL_TYPE_COUNT;
900 } 925 }
901 926
902 bool IsActOnceDataType(ModelType model_type) { 927 bool IsActOnceDataType(ModelType model_type) {
903 return model_type == HISTORY_DELETE_DIRECTIVES; 928 return model_type == HISTORY_DELETE_DIRECTIVES;
904 } 929 }
905 930
906 } // namespace syncer 931 } // namespace syncer
OLDNEW
« no previous file with comments | « sync/sync_proto.gypi ('k') | sync/syncable/nigori_util.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698