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

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
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 89 matching lines...) Expand 10 before | Expand all | Expand 10 after
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
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
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
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
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
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
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
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
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
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
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
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698