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 89 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
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: | 107 case MANAGED_USERS: |
108 specifics->mutable_managed_user(); | 108 specifics->mutable_managed_user(); |
109 break; | 109 break; |
| 110 case MANAGED_USER_SHARED_SETTINGS: |
| 111 specifics->mutable_managed_user_shared_setting(); |
| 112 break; |
110 case ARTICLES: | 113 case ARTICLES: |
111 specifics->mutable_article(); | 114 specifics->mutable_article(); |
112 break; | 115 break; |
113 default: | 116 default: |
114 NOTREACHED() << "No known extension for model type."; | 117 NOTREACHED() << "No known extension for model type."; |
115 } | 118 } |
116 } | 119 } |
117 | 120 |
118 ModelType GetModelTypeFromSpecificsFieldNumber(int field_number) { | 121 ModelType GetModelTypeFromSpecificsFieldNumber(int field_number) { |
119 ModelTypeSet protocol_types = ProtocolTypes(); | 122 ModelTypeSet protocol_types = ProtocolTypes(); |
(...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
193 return sync_pb::EntitySpecifics::kDictionaryFieldNumber; | 196 return sync_pb::EntitySpecifics::kDictionaryFieldNumber; |
194 break; | 197 break; |
195 case FAVICON_IMAGES: | 198 case FAVICON_IMAGES: |
196 return sync_pb::EntitySpecifics::kFaviconImageFieldNumber; | 199 return sync_pb::EntitySpecifics::kFaviconImageFieldNumber; |
197 case FAVICON_TRACKING: | 200 case FAVICON_TRACKING: |
198 return sync_pb::EntitySpecifics::kFaviconTrackingFieldNumber; | 201 return sync_pb::EntitySpecifics::kFaviconTrackingFieldNumber; |
199 case MANAGED_USER_SETTINGS: | 202 case MANAGED_USER_SETTINGS: |
200 return sync_pb::EntitySpecifics::kManagedUserSettingFieldNumber; | 203 return sync_pb::EntitySpecifics::kManagedUserSettingFieldNumber; |
201 case MANAGED_USERS: | 204 case MANAGED_USERS: |
202 return sync_pb::EntitySpecifics::kManagedUserFieldNumber; | 205 return sync_pb::EntitySpecifics::kManagedUserFieldNumber; |
| 206 case MANAGED_USER_SHARED_SETTINGS: |
| 207 return sync_pb::EntitySpecifics::kManagedUserSharedSettingFieldNumber; |
203 case ARTICLES: | 208 case ARTICLES: |
204 return sync_pb::EntitySpecifics::kArticleFieldNumber; | 209 return sync_pb::EntitySpecifics::kArticleFieldNumber; |
205 default: | 210 default: |
206 NOTREACHED() << "No known extension for model type."; | 211 NOTREACHED() << "No known extension for model type."; |
207 return 0; | 212 return 0; |
208 } | 213 } |
209 NOTREACHED() << "Needed for linux_keep_shadow_stacks because of " | 214 NOTREACHED() << "Needed for linux_keep_shadow_stacks because of " |
210 << "http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20681"; | 215 << "http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20681"; |
211 return 0; | 216 return 0; |
212 } | 217 } |
(...skipping 101 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
314 | 319 |
315 if (specifics.has_favicon_tracking()) | 320 if (specifics.has_favicon_tracking()) |
316 return FAVICON_TRACKING; | 321 return FAVICON_TRACKING; |
317 | 322 |
318 if (specifics.has_managed_user_setting()) | 323 if (specifics.has_managed_user_setting()) |
319 return MANAGED_USER_SETTINGS; | 324 return MANAGED_USER_SETTINGS; |
320 | 325 |
321 if (specifics.has_managed_user()) | 326 if (specifics.has_managed_user()) |
322 return MANAGED_USERS; | 327 return MANAGED_USERS; |
323 | 328 |
| 329 if (specifics.has_managed_user_shared_setting()) |
| 330 return MANAGED_USER_SHARED_SETTINGS; |
| 331 |
324 if (specifics.has_article()) | 332 if (specifics.has_article()) |
325 return ARTICLES; | 333 return ARTICLES; |
326 | 334 |
327 return UNSPECIFIED; | 335 return UNSPECIFIED; |
328 } | 336 } |
329 | 337 |
330 ModelTypeSet ProtocolTypes() { | 338 ModelTypeSet ProtocolTypes() { |
331 ModelTypeSet set = ModelTypeSet::All(); | 339 ModelTypeSet set = ModelTypeSet::All(); |
332 set.RemoveAll(ProxyTypes()); | 340 set.RemoveAll(ProxyTypes()); |
333 return set; | 341 return set; |
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
370 encryptable_user_types.Remove(HISTORY_DELETE_DIRECTIVES); | 378 encryptable_user_types.Remove(HISTORY_DELETE_DIRECTIVES); |
371 // Synced notifications are not encrypted since the server must see changes. | 379 // Synced notifications are not encrypted since the server must see changes. |
372 encryptable_user_types.Remove(SYNCED_NOTIFICATIONS); | 380 encryptable_user_types.Remove(SYNCED_NOTIFICATIONS); |
373 // Priority preferences are not encrypted because they might be synced before | 381 // Priority preferences are not encrypted because they might be synced before |
374 // encryption is ready. | 382 // encryption is ready. |
375 encryptable_user_types.Remove(PRIORITY_PREFERENCES); | 383 encryptable_user_types.Remove(PRIORITY_PREFERENCES); |
376 // Managed user settings are not encrypted since they are set server-side. | 384 // Managed user settings are not encrypted since they are set server-side. |
377 encryptable_user_types.Remove(MANAGED_USER_SETTINGS); | 385 encryptable_user_types.Remove(MANAGED_USER_SETTINGS); |
378 // Managed users are not encrypted since they are managed server-side. | 386 // Managed users are not encrypted since they are managed server-side. |
379 encryptable_user_types.Remove(MANAGED_USERS); | 387 encryptable_user_types.Remove(MANAGED_USERS); |
| 388 // Managed user shared settings are not encrypted since they are managed |
| 389 // server-side and shared between manager and supervised user. |
| 390 encryptable_user_types.Remove(MANAGED_USER_SHARED_SETTINGS); |
380 // Proxy types have no sync representation and are therefore not encrypted. | 391 // Proxy types have no sync representation and are therefore not encrypted. |
381 // Note however that proxy types map to one or more protocol types, which | 392 // Note however that proxy types map to one or more protocol types, which |
382 // may or may not be encrypted themselves. | 393 // may or may not be encrypted themselves. |
383 encryptable_user_types.RemoveAll(ProxyTypes()); | 394 encryptable_user_types.RemoveAll(ProxyTypes()); |
384 return encryptable_user_types; | 395 return encryptable_user_types; |
385 } | 396 } |
386 | 397 |
387 ModelTypeSet PriorityUserTypes() { | 398 ModelTypeSet PriorityUserTypes() { |
388 return ModelTypeSet(PRIORITY_PREFERENCES); | 399 return ModelTypeSet(PRIORITY_PREFERENCES); |
389 } | 400 } |
(...skipping 92 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
482 case DICTIONARY: | 493 case DICTIONARY: |
483 return "Dictionary"; | 494 return "Dictionary"; |
484 case FAVICON_IMAGES: | 495 case FAVICON_IMAGES: |
485 return "Favicon Images"; | 496 return "Favicon Images"; |
486 case FAVICON_TRACKING: | 497 case FAVICON_TRACKING: |
487 return "Favicon Tracking"; | 498 return "Favicon Tracking"; |
488 case MANAGED_USER_SETTINGS: | 499 case MANAGED_USER_SETTINGS: |
489 return "Managed User Settings"; | 500 return "Managed User Settings"; |
490 case MANAGED_USERS: | 501 case MANAGED_USERS: |
491 return "Managed Users"; | 502 return "Managed Users"; |
| 503 case MANAGED_USER_SHARED_SETTINGS: |
| 504 return "Managed User Shared Settings"; |
492 case ARTICLES: | 505 case ARTICLES: |
493 return "Articles"; | 506 return "Articles"; |
494 case PROXY_TABS: | 507 case PROXY_TABS: |
495 return "Tabs"; | 508 return "Tabs"; |
496 default: | 509 default: |
497 break; | 510 break; |
498 } | 511 } |
499 NOTREACHED() << "No known extension for model type."; | 512 NOTREACHED() << "No known extension for model type."; |
500 return "INVALID"; | 513 return "INVALID"; |
501 } | 514 } |
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
557 case FAVICON_TRACKING: | 570 case FAVICON_TRACKING: |
558 return 24; | 571 return 24; |
559 case PROXY_TABS: | 572 case PROXY_TABS: |
560 return 25; | 573 return 25; |
561 case MANAGED_USER_SETTINGS: | 574 case MANAGED_USER_SETTINGS: |
562 return 26; | 575 return 26; |
563 case MANAGED_USERS: | 576 case MANAGED_USERS: |
564 return 27; | 577 return 27; |
565 case ARTICLES: | 578 case ARTICLES: |
566 return 28; | 579 return 28; |
| 580 case MANAGED_USER_SHARED_SETTINGS: |
| 581 return 29; |
567 // Silence a compiler warning. | 582 // Silence a compiler warning. |
568 case MODEL_TYPE_COUNT: | 583 case MODEL_TYPE_COUNT: |
569 return 0; | 584 return 0; |
570 } | 585 } |
571 return 0; | 586 return 0; |
572 } | 587 } |
573 | 588 |
574 base::StringValue* ModelTypeToValue(ModelType model_type) { | 589 base::StringValue* ModelTypeToValue(ModelType model_type) { |
575 if (model_type >= FIRST_REAL_MODEL_TYPE) { | 590 if (model_type >= FIRST_REAL_MODEL_TYPE) { |
576 return new base::StringValue(ModelTypeToString(model_type)); | 591 return new base::StringValue(ModelTypeToString(model_type)); |
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
642 else if (model_type_string == "Dictionary") | 657 else if (model_type_string == "Dictionary") |
643 return DICTIONARY; | 658 return DICTIONARY; |
644 else if (model_type_string == "Favicon Images") | 659 else if (model_type_string == "Favicon Images") |
645 return FAVICON_IMAGES; | 660 return FAVICON_IMAGES; |
646 else if (model_type_string == "Favicon Tracking") | 661 else if (model_type_string == "Favicon Tracking") |
647 return FAVICON_TRACKING; | 662 return FAVICON_TRACKING; |
648 else if (model_type_string == "Managed User Settings") | 663 else if (model_type_string == "Managed User Settings") |
649 return MANAGED_USER_SETTINGS; | 664 return MANAGED_USER_SETTINGS; |
650 else if (model_type_string == "Managed Users") | 665 else if (model_type_string == "Managed Users") |
651 return MANAGED_USERS; | 666 return MANAGED_USERS; |
| 667 else if (model_type_string == "Managed User Shared Settings") |
| 668 return MANAGED_USER_SHARED_SETTINGS; |
652 else if (model_type_string == "Articles") | 669 else if (model_type_string == "Articles") |
653 return ARTICLES; | 670 return ARTICLES; |
654 else if (model_type_string == "Tabs") | 671 else if (model_type_string == "Tabs") |
655 return PROXY_TABS; | 672 return PROXY_TABS; |
656 else | 673 else |
657 NOTREACHED() << "No known model type corresponding to " | 674 NOTREACHED() << "No known model type corresponding to " |
658 << model_type_string << "."; | 675 << model_type_string << "."; |
659 return UNSPECIFIED; | 676 return UNSPECIFIED; |
660 } | 677 } |
661 | 678 |
(...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
736 case DICTIONARY: | 753 case DICTIONARY: |
737 return "google_chrome_dictionary"; | 754 return "google_chrome_dictionary"; |
738 case FAVICON_IMAGES: | 755 case FAVICON_IMAGES: |
739 return "google_chrome_favicon_images"; | 756 return "google_chrome_favicon_images"; |
740 case FAVICON_TRACKING: | 757 case FAVICON_TRACKING: |
741 return "google_chrome_favicon_tracking"; | 758 return "google_chrome_favicon_tracking"; |
742 case MANAGED_USER_SETTINGS: | 759 case MANAGED_USER_SETTINGS: |
743 return "google_chrome_managed_user_settings"; | 760 return "google_chrome_managed_user_settings"; |
744 case MANAGED_USERS: | 761 case MANAGED_USERS: |
745 return "google_chrome_managed_users"; | 762 return "google_chrome_managed_users"; |
| 763 case MANAGED_USER_SHARED_SETTINGS: |
| 764 return "google_chrome_managed_user_shared_settings"; |
746 case ARTICLES: | 765 case ARTICLES: |
747 return "google_chrome_articles"; | 766 return "google_chrome_articles"; |
748 case PROXY_TABS: | 767 case PROXY_TABS: |
749 return std::string(); | 768 return std::string(); |
750 default: | 769 default: |
751 break; | 770 break; |
752 } | 771 } |
753 NOTREACHED() << "No known extension for model type."; | 772 NOTREACHED() << "No known extension for model type."; |
754 return "INVALID"; | 773 return "INVALID"; |
755 } | 774 } |
(...skipping 21 matching lines...) Expand all Loading... |
777 "HISTORY_DELETE_DIRECTIVE"; | 796 "HISTORY_DELETE_DIRECTIVE"; |
778 const char kSyncedNotificationType[] = "SYNCED_NOTIFICATION"; | 797 const char kSyncedNotificationType[] = "SYNCED_NOTIFICATION"; |
779 const char kDeviceInfoNotificationType[] = "DEVICE_INFO"; | 798 const char kDeviceInfoNotificationType[] = "DEVICE_INFO"; |
780 const char kExperimentsNotificationType[] = "EXPERIMENTS"; | 799 const char kExperimentsNotificationType[] = "EXPERIMENTS"; |
781 const char kPriorityPreferenceNotificationType[] = "PRIORITY_PREFERENCE"; | 800 const char kPriorityPreferenceNotificationType[] = "PRIORITY_PREFERENCE"; |
782 const char kDictionaryNotificationType[] = "DICTIONARY"; | 801 const char kDictionaryNotificationType[] = "DICTIONARY"; |
783 const char kFaviconImageNotificationType[] = "FAVICON_IMAGE"; | 802 const char kFaviconImageNotificationType[] = "FAVICON_IMAGE"; |
784 const char kFaviconTrackingNotificationType[] = "FAVICON_TRACKING"; | 803 const char kFaviconTrackingNotificationType[] = "FAVICON_TRACKING"; |
785 const char kManagedUserSettingNotificationType[] = "MANAGED_USER_SETTING"; | 804 const char kManagedUserSettingNotificationType[] = "MANAGED_USER_SETTING"; |
786 const char kManagedUserNotificationType[] = "MANAGED_USER"; | 805 const char kManagedUserNotificationType[] = "MANAGED_USER"; |
| 806 const char kManagedUserSharedSettingNotificationType[] = |
| 807 "MANAGED_USER_SHARED_SETTING"; |
787 const char kArticleNotificationType[] = "ARTICLE"; | 808 const char kArticleNotificationType[] = "ARTICLE"; |
788 } // namespace | 809 } // namespace |
789 | 810 |
790 bool RealModelTypeToNotificationType(ModelType model_type, | 811 bool RealModelTypeToNotificationType(ModelType model_type, |
791 std::string* notification_type) { | 812 std::string* notification_type) { |
792 switch (model_type) { | 813 switch (model_type) { |
793 case BOOKMARKS: | 814 case BOOKMARKS: |
794 *notification_type = kBookmarkNotificationType; | 815 *notification_type = kBookmarkNotificationType; |
795 return true; | 816 return true; |
796 case PREFERENCES: | 817 case PREFERENCES: |
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
858 return true; | 879 return true; |
859 case FAVICON_TRACKING: | 880 case FAVICON_TRACKING: |
860 *notification_type = kFaviconTrackingNotificationType; | 881 *notification_type = kFaviconTrackingNotificationType; |
861 return true; | 882 return true; |
862 case MANAGED_USER_SETTINGS: | 883 case MANAGED_USER_SETTINGS: |
863 *notification_type = kManagedUserSettingNotificationType; | 884 *notification_type = kManagedUserSettingNotificationType; |
864 return true; | 885 return true; |
865 case MANAGED_USERS: | 886 case MANAGED_USERS: |
866 *notification_type = kManagedUserNotificationType; | 887 *notification_type = kManagedUserNotificationType; |
867 return true; | 888 return true; |
| 889 case MANAGED_USER_SHARED_SETTINGS: |
| 890 *notification_type = kManagedUserSharedSettingNotificationType; |
| 891 return true; |
868 case ARTICLES: | 892 case ARTICLES: |
869 *notification_type = kArticleNotificationType; | 893 *notification_type = kArticleNotificationType; |
870 return true; | 894 return true; |
871 default: | 895 default: |
872 break; | 896 break; |
873 } | 897 } |
874 notification_type->clear(); | 898 notification_type->clear(); |
875 return false; | 899 return false; |
876 } | 900 } |
877 | 901 |
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
945 return true; | 969 return true; |
946 } else if (notification_type == kFaviconTrackingNotificationType) { | 970 } else if (notification_type == kFaviconTrackingNotificationType) { |
947 *model_type = FAVICON_TRACKING; | 971 *model_type = FAVICON_TRACKING; |
948 return true; | 972 return true; |
949 } else if (notification_type == kManagedUserSettingNotificationType) { | 973 } else if (notification_type == kManagedUserSettingNotificationType) { |
950 *model_type = MANAGED_USER_SETTINGS; | 974 *model_type = MANAGED_USER_SETTINGS; |
951 return true; | 975 return true; |
952 } else if (notification_type == kManagedUserNotificationType) { | 976 } else if (notification_type == kManagedUserNotificationType) { |
953 *model_type = MANAGED_USERS; | 977 *model_type = MANAGED_USERS; |
954 return true; | 978 return true; |
| 979 } else if (notification_type == kManagedUserSharedSettingNotificationType) { |
| 980 *model_type = MANAGED_USER_SHARED_SETTINGS; |
| 981 return true; |
955 } else if (notification_type == kArticleNotificationType) { | 982 } else if (notification_type == kArticleNotificationType) { |
956 *model_type = ARTICLES; | 983 *model_type = ARTICLES; |
957 return true; | 984 return true; |
958 } | 985 } |
959 *model_type = UNSPECIFIED; | 986 *model_type = UNSPECIFIED; |
960 return false; | 987 return false; |
961 } | 988 } |
962 | 989 |
963 bool IsRealDataType(ModelType model_type) { | 990 bool IsRealDataType(ModelType model_type) { |
964 return model_type >= FIRST_REAL_MODEL_TYPE && model_type < MODEL_TYPE_COUNT; | 991 return model_type >= FIRST_REAL_MODEL_TYPE && model_type < MODEL_TYPE_COUNT; |
965 } | 992 } |
966 | 993 |
967 bool IsActOnceDataType(ModelType model_type) { | 994 bool IsActOnceDataType(ModelType model_type) { |
968 return model_type == HISTORY_DELETE_DIRECTIVES; | 995 return model_type == HISTORY_DELETE_DIRECTIVES; |
969 } | 996 } |
970 | 997 |
971 } // namespace syncer | 998 } // namespace syncer |
OLD | NEW |