| 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 |