OLD | NEW |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 |
OLD | NEW |