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

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

Issue 76333002: Add Sync datatype for shared managed user settings. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: fix Created 7 years 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 92 matching lines...) Expand 10 before | Expand all | Expand 10 after
103 break; 103 break;
104 case FAVICON_TRACKING: 104 case FAVICON_TRACKING:
105 specifics->mutable_favicon_tracking(); 105 specifics->mutable_favicon_tracking();
106 break; 106 break;
107 case MANAGED_USER_SETTINGS: 107 case MANAGED_USER_SETTINGS:
108 specifics->mutable_managed_user_setting(); 108 specifics->mutable_managed_user_setting();
109 break; 109 break;
110 case MANAGED_USERS: 110 case MANAGED_USERS:
111 specifics->mutable_managed_user(); 111 specifics->mutable_managed_user();
112 break; 112 break;
113 case MANAGED_USER_SHARED_SETTINGS:
114 specifics->mutable_managed_user_shared_setting();
115 break;
113 case ARTICLES: 116 case ARTICLES:
114 specifics->mutable_article(); 117 specifics->mutable_article();
115 break; 118 break;
116 default: 119 default:
117 NOTREACHED() << "No known extension for model type."; 120 NOTREACHED() << "No known extension for model type.";
118 } 121 }
119 } 122 }
120 123
121 ModelType GetModelTypeFromSpecificsFieldNumber(int field_number) { 124 ModelType GetModelTypeFromSpecificsFieldNumber(int field_number) {
122 ModelTypeSet protocol_types = ProtocolTypes(); 125 ModelTypeSet protocol_types = ProtocolTypes();
(...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after
199 return sync_pb::EntitySpecifics::kDictionaryFieldNumber; 202 return sync_pb::EntitySpecifics::kDictionaryFieldNumber;
200 break; 203 break;
201 case FAVICON_IMAGES: 204 case FAVICON_IMAGES:
202 return sync_pb::EntitySpecifics::kFaviconImageFieldNumber; 205 return sync_pb::EntitySpecifics::kFaviconImageFieldNumber;
203 case FAVICON_TRACKING: 206 case FAVICON_TRACKING:
204 return sync_pb::EntitySpecifics::kFaviconTrackingFieldNumber; 207 return sync_pb::EntitySpecifics::kFaviconTrackingFieldNumber;
205 case MANAGED_USER_SETTINGS: 208 case MANAGED_USER_SETTINGS:
206 return sync_pb::EntitySpecifics::kManagedUserSettingFieldNumber; 209 return sync_pb::EntitySpecifics::kManagedUserSettingFieldNumber;
207 case MANAGED_USERS: 210 case MANAGED_USERS:
208 return sync_pb::EntitySpecifics::kManagedUserFieldNumber; 211 return sync_pb::EntitySpecifics::kManagedUserFieldNumber;
212 case MANAGED_USER_SHARED_SETTINGS:
213 return sync_pb::EntitySpecifics::kManagedUserSharedSettingFieldNumber;
209 case ARTICLES: 214 case ARTICLES:
210 return sync_pb::EntitySpecifics::kArticleFieldNumber; 215 return sync_pb::EntitySpecifics::kArticleFieldNumber;
211 default: 216 default:
212 NOTREACHED() << "No known extension for model type."; 217 NOTREACHED() << "No known extension for model type.";
213 return 0; 218 return 0;
214 } 219 }
215 NOTREACHED() << "Needed for linux_keep_shadow_stacks because of " 220 NOTREACHED() << "Needed for linux_keep_shadow_stacks because of "
216 << "http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20681"; 221 << "http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20681";
217 return 0; 222 return 0;
218 } 223 }
(...skipping 104 matching lines...) Expand 10 before | Expand all | Expand 10 after
323 328
324 if (specifics.has_favicon_tracking()) 329 if (specifics.has_favicon_tracking())
325 return FAVICON_TRACKING; 330 return FAVICON_TRACKING;
326 331
327 if (specifics.has_managed_user_setting()) 332 if (specifics.has_managed_user_setting())
328 return MANAGED_USER_SETTINGS; 333 return MANAGED_USER_SETTINGS;
329 334
330 if (specifics.has_managed_user()) 335 if (specifics.has_managed_user())
331 return MANAGED_USERS; 336 return MANAGED_USERS;
332 337
338 if (specifics.has_managed_user_shared_setting())
339 return MANAGED_USER_SHARED_SETTINGS;
340
333 if (specifics.has_article()) 341 if (specifics.has_article())
334 return ARTICLES; 342 return ARTICLES;
335 343
336 return UNSPECIFIED; 344 return UNSPECIFIED;
337 } 345 }
338 346
339 ModelTypeSet ProtocolTypes() { 347 ModelTypeSet ProtocolTypes() {
340 ModelTypeSet set = ModelTypeSet::All(); 348 ModelTypeSet set = ModelTypeSet::All();
341 set.RemoveAll(ProxyTypes()); 349 set.RemoveAll(ProxyTypes());
342 return set; 350 return set;
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
379 encryptable_user_types.Remove(HISTORY_DELETE_DIRECTIVES); 387 encryptable_user_types.Remove(HISTORY_DELETE_DIRECTIVES);
380 // Synced notifications are not encrypted since the server must see changes. 388 // Synced notifications are not encrypted since the server must see changes.
381 encryptable_user_types.Remove(SYNCED_NOTIFICATIONS); 389 encryptable_user_types.Remove(SYNCED_NOTIFICATIONS);
382 // Priority preferences are not encrypted because they might be synced before 390 // Priority preferences are not encrypted because they might be synced before
383 // encryption is ready. 391 // encryption is ready.
384 encryptable_user_types.Remove(PRIORITY_PREFERENCES); 392 encryptable_user_types.Remove(PRIORITY_PREFERENCES);
385 // Managed user settings are not encrypted since they are set server-side. 393 // Managed user settings are not encrypted since they are set server-side.
386 encryptable_user_types.Remove(MANAGED_USER_SETTINGS); 394 encryptable_user_types.Remove(MANAGED_USER_SETTINGS);
387 // Managed users are not encrypted since they are managed server-side. 395 // Managed users are not encrypted since they are managed server-side.
388 encryptable_user_types.Remove(MANAGED_USERS); 396 encryptable_user_types.Remove(MANAGED_USERS);
397 // Managed user shared settings are not encrypted since they are managed
398 // server-side and shared between manager and supervised user.
399 encryptable_user_types.Remove(MANAGED_USER_SHARED_SETTINGS);
389 // Proxy types have no sync representation and are therefore not encrypted. 400 // Proxy types have no sync representation and are therefore not encrypted.
390 // Note however that proxy types map to one or more protocol types, which 401 // Note however that proxy types map to one or more protocol types, which
391 // may or may not be encrypted themselves. 402 // may or may not be encrypted themselves.
392 encryptable_user_types.RemoveAll(ProxyTypes()); 403 encryptable_user_types.RemoveAll(ProxyTypes());
393 return encryptable_user_types; 404 return encryptable_user_types;
394 } 405 }
395 406
396 ModelTypeSet PriorityUserTypes() { 407 ModelTypeSet PriorityUserTypes() {
397 return ModelTypeSet(PRIORITY_PREFERENCES); 408 return ModelTypeSet(PRIORITY_PREFERENCES);
398 } 409 }
(...skipping 94 matching lines...) Expand 10 before | Expand all | Expand 10 after
493 case DICTIONARY: 504 case DICTIONARY:
494 return "Dictionary"; 505 return "Dictionary";
495 case FAVICON_IMAGES: 506 case FAVICON_IMAGES:
496 return "Favicon Images"; 507 return "Favicon Images";
497 case FAVICON_TRACKING: 508 case FAVICON_TRACKING:
498 return "Favicon Tracking"; 509 return "Favicon Tracking";
499 case MANAGED_USER_SETTINGS: 510 case MANAGED_USER_SETTINGS:
500 return "Managed User Settings"; 511 return "Managed User Settings";
501 case MANAGED_USERS: 512 case MANAGED_USERS:
502 return "Managed Users"; 513 return "Managed Users";
514 case MANAGED_USER_SHARED_SETTINGS:
515 return "Managed User Shared Settings";
503 case ARTICLES: 516 case ARTICLES:
504 return "Articles"; 517 return "Articles";
505 case PROXY_TABS: 518 case PROXY_TABS:
506 return "Tabs"; 519 return "Tabs";
507 default: 520 default:
508 break; 521 break;
509 } 522 }
510 NOTREACHED() << "No known extension for model type."; 523 NOTREACHED() << "No known extension for model type.";
511 return "INVALID"; 524 return "INVALID";
512 } 525 }
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after
570 case PROXY_TABS: 583 case PROXY_TABS:
571 return 25; 584 return 25;
572 case MANAGED_USER_SETTINGS: 585 case MANAGED_USER_SETTINGS:
573 return 26; 586 return 26;
574 case MANAGED_USERS: 587 case MANAGED_USERS:
575 return 27; 588 return 27;
576 case ARTICLES: 589 case ARTICLES:
577 return 28; 590 return 28;
578 case APP_LIST: 591 case APP_LIST:
579 return 29; 592 return 29;
593 case MANAGED_USER_SHARED_SETTINGS:
594 return 30;
580 // Silence a compiler warning. 595 // Silence a compiler warning.
581 case MODEL_TYPE_COUNT: 596 case MODEL_TYPE_COUNT:
582 return 0; 597 return 0;
583 } 598 }
584 return 0; 599 return 0;
585 } 600 }
586 601
587 base::StringValue* ModelTypeToValue(ModelType model_type) { 602 base::StringValue* ModelTypeToValue(ModelType model_type) {
588 if (model_type >= FIRST_REAL_MODEL_TYPE) { 603 if (model_type >= FIRST_REAL_MODEL_TYPE) {
589 return new base::StringValue(ModelTypeToString(model_type)); 604 return new base::StringValue(ModelTypeToString(model_type));
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after
657 else if (model_type_string == "Dictionary") 672 else if (model_type_string == "Dictionary")
658 return DICTIONARY; 673 return DICTIONARY;
659 else if (model_type_string == "Favicon Images") 674 else if (model_type_string == "Favicon Images")
660 return FAVICON_IMAGES; 675 return FAVICON_IMAGES;
661 else if (model_type_string == "Favicon Tracking") 676 else if (model_type_string == "Favicon Tracking")
662 return FAVICON_TRACKING; 677 return FAVICON_TRACKING;
663 else if (model_type_string == "Managed User Settings") 678 else if (model_type_string == "Managed User Settings")
664 return MANAGED_USER_SETTINGS; 679 return MANAGED_USER_SETTINGS;
665 else if (model_type_string == "Managed Users") 680 else if (model_type_string == "Managed Users")
666 return MANAGED_USERS; 681 return MANAGED_USERS;
682 else if (model_type_string == "Managed User Shared Settings")
683 return MANAGED_USER_SHARED_SETTINGS;
667 else if (model_type_string == "Articles") 684 else if (model_type_string == "Articles")
668 return ARTICLES; 685 return ARTICLES;
669 else if (model_type_string == "Tabs") 686 else if (model_type_string == "Tabs")
670 return PROXY_TABS; 687 return PROXY_TABS;
671 else 688 else
672 NOTREACHED() << "No known model type corresponding to " 689 NOTREACHED() << "No known model type corresponding to "
673 << model_type_string << "."; 690 << model_type_string << ".";
674 return UNSPECIFIED; 691 return UNSPECIFIED;
675 } 692 }
676 693
(...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after
753 case DICTIONARY: 770 case DICTIONARY:
754 return "google_chrome_dictionary"; 771 return "google_chrome_dictionary";
755 case FAVICON_IMAGES: 772 case FAVICON_IMAGES:
756 return "google_chrome_favicon_images"; 773 return "google_chrome_favicon_images";
757 case FAVICON_TRACKING: 774 case FAVICON_TRACKING:
758 return "google_chrome_favicon_tracking"; 775 return "google_chrome_favicon_tracking";
759 case MANAGED_USER_SETTINGS: 776 case MANAGED_USER_SETTINGS:
760 return "google_chrome_managed_user_settings"; 777 return "google_chrome_managed_user_settings";
761 case MANAGED_USERS: 778 case MANAGED_USERS:
762 return "google_chrome_managed_users"; 779 return "google_chrome_managed_users";
780 case MANAGED_USER_SHARED_SETTINGS:
781 return "google_chrome_managed_user_shared_settings";
763 case ARTICLES: 782 case ARTICLES:
764 return "google_chrome_articles"; 783 return "google_chrome_articles";
765 case PROXY_TABS: 784 case PROXY_TABS:
766 return std::string(); 785 return std::string();
767 default: 786 default:
768 break; 787 break;
769 } 788 }
770 NOTREACHED() << "No known extension for model type."; 789 NOTREACHED() << "No known extension for model type.";
771 return "INVALID"; 790 return "INVALID";
772 } 791 }
(...skipping 22 matching lines...) Expand all
795 "HISTORY_DELETE_DIRECTIVE"; 814 "HISTORY_DELETE_DIRECTIVE";
796 const char kSyncedNotificationType[] = "SYNCED_NOTIFICATION"; 815 const char kSyncedNotificationType[] = "SYNCED_NOTIFICATION";
797 const char kDeviceInfoNotificationType[] = "DEVICE_INFO"; 816 const char kDeviceInfoNotificationType[] = "DEVICE_INFO";
798 const char kExperimentsNotificationType[] = "EXPERIMENTS"; 817 const char kExperimentsNotificationType[] = "EXPERIMENTS";
799 const char kPriorityPreferenceNotificationType[] = "PRIORITY_PREFERENCE"; 818 const char kPriorityPreferenceNotificationType[] = "PRIORITY_PREFERENCE";
800 const char kDictionaryNotificationType[] = "DICTIONARY"; 819 const char kDictionaryNotificationType[] = "DICTIONARY";
801 const char kFaviconImageNotificationType[] = "FAVICON_IMAGE"; 820 const char kFaviconImageNotificationType[] = "FAVICON_IMAGE";
802 const char kFaviconTrackingNotificationType[] = "FAVICON_TRACKING"; 821 const char kFaviconTrackingNotificationType[] = "FAVICON_TRACKING";
803 const char kManagedUserSettingNotificationType[] = "MANAGED_USER_SETTING"; 822 const char kManagedUserSettingNotificationType[] = "MANAGED_USER_SETTING";
804 const char kManagedUserNotificationType[] = "MANAGED_USER"; 823 const char kManagedUserNotificationType[] = "MANAGED_USER";
824 const char kManagedUserSharedSettingNotificationType[] =
825 "MANAGED_USER_SHARED_SETTING";
805 const char kArticleNotificationType[] = "ARTICLE"; 826 const char kArticleNotificationType[] = "ARTICLE";
806 } // namespace 827 } // namespace
807 828
808 bool RealModelTypeToNotificationType(ModelType model_type, 829 bool RealModelTypeToNotificationType(ModelType model_type,
809 std::string* notification_type) { 830 std::string* notification_type) {
810 switch (model_type) { 831 switch (model_type) {
811 case BOOKMARKS: 832 case BOOKMARKS:
812 *notification_type = kBookmarkNotificationType; 833 *notification_type = kBookmarkNotificationType;
813 return true; 834 return true;
814 case PREFERENCES: 835 case PREFERENCES:
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after
879 return true; 900 return true;
880 case FAVICON_TRACKING: 901 case FAVICON_TRACKING:
881 *notification_type = kFaviconTrackingNotificationType; 902 *notification_type = kFaviconTrackingNotificationType;
882 return true; 903 return true;
883 case MANAGED_USER_SETTINGS: 904 case MANAGED_USER_SETTINGS:
884 *notification_type = kManagedUserSettingNotificationType; 905 *notification_type = kManagedUserSettingNotificationType;
885 return true; 906 return true;
886 case MANAGED_USERS: 907 case MANAGED_USERS:
887 *notification_type = kManagedUserNotificationType; 908 *notification_type = kManagedUserNotificationType;
888 return true; 909 return true;
910 case MANAGED_USER_SHARED_SETTINGS:
911 *notification_type = kManagedUserSharedSettingNotificationType;
912 return true;
889 case ARTICLES: 913 case ARTICLES:
890 *notification_type = kArticleNotificationType; 914 *notification_type = kArticleNotificationType;
891 return true; 915 return true;
892 default: 916 default:
893 break; 917 break;
894 } 918 }
895 notification_type->clear(); 919 notification_type->clear();
896 return false; 920 return false;
897 } 921 }
898 922
(...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after
969 return true; 993 return true;
970 } else if (notification_type == kFaviconTrackingNotificationType) { 994 } else if (notification_type == kFaviconTrackingNotificationType) {
971 *model_type = FAVICON_TRACKING; 995 *model_type = FAVICON_TRACKING;
972 return true; 996 return true;
973 } else if (notification_type == kManagedUserSettingNotificationType) { 997 } else if (notification_type == kManagedUserSettingNotificationType) {
974 *model_type = MANAGED_USER_SETTINGS; 998 *model_type = MANAGED_USER_SETTINGS;
975 return true; 999 return true;
976 } else if (notification_type == kManagedUserNotificationType) { 1000 } else if (notification_type == kManagedUserNotificationType) {
977 *model_type = MANAGED_USERS; 1001 *model_type = MANAGED_USERS;
978 return true; 1002 return true;
1003 } else if (notification_type == kManagedUserSharedSettingNotificationType) {
1004 *model_type = MANAGED_USER_SHARED_SETTINGS;
1005 return true;
979 } else if (notification_type == kArticleNotificationType) { 1006 } else if (notification_type == kArticleNotificationType) {
980 *model_type = ARTICLES; 1007 *model_type = ARTICLES;
981 return true; 1008 return true;
982 } 1009 }
983 *model_type = UNSPECIFIED; 1010 *model_type = UNSPECIFIED;
984 return false; 1011 return false;
985 } 1012 }
986 1013
987 bool IsRealDataType(ModelType model_type) { 1014 bool IsRealDataType(ModelType model_type) {
988 return model_type >= FIRST_REAL_MODEL_TYPE && model_type < MODEL_TYPE_COUNT; 1015 return model_type >= FIRST_REAL_MODEL_TYPE && model_type < MODEL_TYPE_COUNT;
989 } 1016 }
990 1017
991 bool IsActOnceDataType(ModelType model_type) { 1018 bool IsActOnceDataType(ModelType model_type) {
992 return model_type == HISTORY_DELETE_DIRECTIVES; 1019 return model_type == HISTORY_DELETE_DIRECTIVES;
993 } 1020 }
994 1021
995 } // namespace syncer 1022 } // 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