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

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

Issue 11441005: Create a fresh sync datatype for Synced Notifications (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: Fix merge conflict in prolto_value_conversions.h Created 7 years, 11 months 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
« no previous file with comments | « sync/protocol/synced_notification_specifics.proto ('k') | sync/util/data_type_histogram.h » ('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/string_split.h" 7 #include "base/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 58 matching lines...) Expand 10 before | Expand all | Expand 10 after
69 break; 69 break;
70 case EXTENSION_SETTINGS: 70 case EXTENSION_SETTINGS:
71 specifics->mutable_extension_setting(); 71 specifics->mutable_extension_setting();
72 break; 72 break;
73 case APP_NOTIFICATIONS: 73 case APP_NOTIFICATIONS:
74 specifics->mutable_app_notification(); 74 specifics->mutable_app_notification();
75 break; 75 break;
76 case HISTORY_DELETE_DIRECTIVES: 76 case HISTORY_DELETE_DIRECTIVES:
77 specifics->mutable_history_delete_directive(); 77 specifics->mutable_history_delete_directive();
78 break; 78 break;
79 case SYNCED_NOTIFICATIONS:
80 specifics->mutable_synced_notification();
81 break;
79 case DEVICE_INFO: 82 case DEVICE_INFO:
80 specifics->mutable_device_info(); 83 specifics->mutable_device_info();
81 break; 84 break;
82 case EXPERIMENTS: 85 case EXPERIMENTS:
83 specifics->mutable_experiments(); 86 specifics->mutable_experiments();
84 break; 87 break;
85 default: 88 default:
86 NOTREACHED() << "No known extension for model type."; 89 NOTREACHED() << "No known extension for model type.";
87 } 90 }
88 } 91 }
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after
138 return sync_pb::EntitySpecifics::kAppSettingFieldNumber; 141 return sync_pb::EntitySpecifics::kAppSettingFieldNumber;
139 break; 142 break;
140 case EXTENSION_SETTINGS: 143 case EXTENSION_SETTINGS:
141 return sync_pb::EntitySpecifics::kExtensionSettingFieldNumber; 144 return sync_pb::EntitySpecifics::kExtensionSettingFieldNumber;
142 break; 145 break;
143 case APP_NOTIFICATIONS: 146 case APP_NOTIFICATIONS:
144 return sync_pb::EntitySpecifics::kAppNotificationFieldNumber; 147 return sync_pb::EntitySpecifics::kAppNotificationFieldNumber;
145 break; 148 break;
146 case HISTORY_DELETE_DIRECTIVES: 149 case HISTORY_DELETE_DIRECTIVES:
147 return sync_pb::EntitySpecifics::kHistoryDeleteDirectiveFieldNumber; 150 return sync_pb::EntitySpecifics::kHistoryDeleteDirectiveFieldNumber;
151 case SYNCED_NOTIFICATIONS:
152 return sync_pb::EntitySpecifics::kSyncedNotificationFieldNumber;
148 case DEVICE_INFO: 153 case DEVICE_INFO:
149 return sync_pb::EntitySpecifics::kDeviceInfoFieldNumber; 154 return sync_pb::EntitySpecifics::kDeviceInfoFieldNumber;
150 break; 155 break;
151 case EXPERIMENTS: 156 case EXPERIMENTS:
152 return sync_pb::EntitySpecifics::kExperimentsFieldNumber; 157 return sync_pb::EntitySpecifics::kExperimentsFieldNumber;
153 break; 158 break;
154 default: 159 default:
155 NOTREACHED() << "No known extension for model type."; 160 NOTREACHED() << "No known extension for model type.";
156 return 0; 161 return 0;
157 } 162 }
(...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after
239 244
240 if (specifics.has_extension_setting()) 245 if (specifics.has_extension_setting())
241 return EXTENSION_SETTINGS; 246 return EXTENSION_SETTINGS;
242 247
243 if (specifics.has_app_notification()) 248 if (specifics.has_app_notification())
244 return APP_NOTIFICATIONS; 249 return APP_NOTIFICATIONS;
245 250
246 if (specifics.has_history_delete_directive()) 251 if (specifics.has_history_delete_directive())
247 return HISTORY_DELETE_DIRECTIVES; 252 return HISTORY_DELETE_DIRECTIVES;
248 253
254 if (specifics.has_synced_notification())
255 return SYNCED_NOTIFICATIONS;
256
249 if (specifics.has_device_info()) 257 if (specifics.has_device_info())
250 return DEVICE_INFO; 258 return DEVICE_INFO;
251 259
252 if (specifics.has_experiments()) 260 if (specifics.has_experiments())
253 return EXPERIMENTS; 261 return EXPERIMENTS;
254 262
255 return UNSPECIFIED; 263 return UNSPECIFIED;
256 } 264 }
257 265
258 bool ShouldMaintainPosition(ModelType model_type) { 266 bool ShouldMaintainPosition(ModelType model_type) {
259 return model_type == BOOKMARKS; 267 return model_type == BOOKMARKS;
260 } 268 }
261 269
262 ModelTypeSet UserTypes() { 270 ModelTypeSet UserTypes() {
263 ModelTypeSet set; 271 ModelTypeSet set;
264 for (int i = FIRST_USER_MODEL_TYPE; i <= LAST_USER_MODEL_TYPE; ++i) { 272 for (int i = FIRST_USER_MODEL_TYPE; i <= LAST_USER_MODEL_TYPE; ++i) {
265 set.Put(ModelTypeFromInt(i)); 273 set.Put(ModelTypeFromInt(i));
266 } 274 }
267 return set; 275 return set;
268 } 276 }
269 277
270 ModelTypeSet EncryptableUserTypes() { 278 ModelTypeSet EncryptableUserTypes() {
271 ModelTypeSet encryptable_user_types = UserTypes(); 279 ModelTypeSet encryptable_user_types = UserTypes();
272 // We never encrypt history delete directives. 280 // We never encrypt history delete directives.
273 encryptable_user_types.Remove(HISTORY_DELETE_DIRECTIVES); 281 encryptable_user_types.Remove(HISTORY_DELETE_DIRECTIVES);
282 // Synced notifications are not encrypted since the server must see changes.
283 encryptable_user_types.Remove(SYNCED_NOTIFICATIONS);
274 return encryptable_user_types; 284 return encryptable_user_types;
275 } 285 }
276 286
277 ModelTypeSet ControlTypes() { 287 ModelTypeSet ControlTypes() {
278 ModelTypeSet set; 288 ModelTypeSet set;
279 for (int i = FIRST_CONTROL_MODEL_TYPE; i <= LAST_CONTROL_MODEL_TYPE; ++i) { 289 for (int i = FIRST_CONTROL_MODEL_TYPE; i <= LAST_CONTROL_MODEL_TYPE; ++i) {
280 set.Put(ModelTypeFromInt(i)); 290 set.Put(ModelTypeFromInt(i));
281 } 291 }
282 292
283 return set; 293 return set;
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
321 case AUTOFILL_PROFILE: 331 case AUTOFILL_PROFILE:
322 return "Autofill Profiles"; 332 return "Autofill Profiles";
323 case APP_SETTINGS: 333 case APP_SETTINGS:
324 return "App settings"; 334 return "App settings";
325 case EXTENSION_SETTINGS: 335 case EXTENSION_SETTINGS:
326 return "Extension settings"; 336 return "Extension settings";
327 case APP_NOTIFICATIONS: 337 case APP_NOTIFICATIONS:
328 return "App Notifications"; 338 return "App Notifications";
329 case HISTORY_DELETE_DIRECTIVES: 339 case HISTORY_DELETE_DIRECTIVES:
330 return "History Delete Directives"; 340 return "History Delete Directives";
341 case SYNCED_NOTIFICATIONS:
342 return "Synced Notifications";
331 case DEVICE_INFO: 343 case DEVICE_INFO:
332 return "Device Info"; 344 return "Device Info";
333 case EXPERIMENTS: 345 case EXPERIMENTS:
334 return "Experiments"; 346 return "Experiments";
335 default: 347 default:
336 break; 348 break;
337 } 349 }
338 NOTREACHED() << "No known extension for model type."; 350 NOTREACHED() << "No known extension for model type.";
339 return "INVALID"; 351 return "INVALID";
340 } 352 }
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after
392 else if (model_type_string == "Apps") 404 else if (model_type_string == "Apps")
393 return APPS; 405 return APPS;
394 else if (model_type_string == "App settings") 406 else if (model_type_string == "App settings")
395 return APP_SETTINGS; 407 return APP_SETTINGS;
396 else if (model_type_string == "Extension settings") 408 else if (model_type_string == "Extension settings")
397 return EXTENSION_SETTINGS; 409 return EXTENSION_SETTINGS;
398 else if (model_type_string == "App Notifications") 410 else if (model_type_string == "App Notifications")
399 return APP_NOTIFICATIONS; 411 return APP_NOTIFICATIONS;
400 else if (model_type_string == "History Delete Directives") 412 else if (model_type_string == "History Delete Directives")
401 return HISTORY_DELETE_DIRECTIVES; 413 return HISTORY_DELETE_DIRECTIVES;
414 else if (model_type_string == "Synced Notifications")
415 return SYNCED_NOTIFICATIONS;
402 else if (model_type_string == "Device Info") 416 else if (model_type_string == "Device Info")
403 return DEVICE_INFO; 417 return DEVICE_INFO;
404 else if (model_type_string == "Experiments") 418 else if (model_type_string == "Experiments")
405 return EXPERIMENTS; 419 return EXPERIMENTS;
406 else 420 else
407 NOTREACHED() << "No known model type corresponding to " 421 NOTREACHED() << "No known model type corresponding to "
408 << model_type_string << "."; 422 << model_type_string << ".";
409 return UNSPECIFIED; 423 return UNSPECIFIED;
410 } 424 }
411 425
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after
466 case AUTOFILL_PROFILE: 480 case AUTOFILL_PROFILE:
467 return "google_chrome_autofill_profiles"; 481 return "google_chrome_autofill_profiles";
468 case APP_SETTINGS: 482 case APP_SETTINGS:
469 return "google_chrome_app_settings"; 483 return "google_chrome_app_settings";
470 case EXTENSION_SETTINGS: 484 case EXTENSION_SETTINGS:
471 return "google_chrome_extension_settings"; 485 return "google_chrome_extension_settings";
472 case APP_NOTIFICATIONS: 486 case APP_NOTIFICATIONS:
473 return "google_chrome_app_notifications"; 487 return "google_chrome_app_notifications";
474 case HISTORY_DELETE_DIRECTIVES: 488 case HISTORY_DELETE_DIRECTIVES:
475 return "google_chrome_history_delete_directives"; 489 return "google_chrome_history_delete_directives";
490 case SYNCED_NOTIFICATIONS:
491 return "google_chrome_synced_notifications";
476 case DEVICE_INFO: 492 case DEVICE_INFO:
477 return "google_chrome_device_info"; 493 return "google_chrome_device_info";
478 case EXPERIMENTS: 494 case EXPERIMENTS:
479 return "google_chrome_experiments"; 495 return "google_chrome_experiments";
480 default: 496 default:
481 break; 497 break;
482 } 498 }
483 NOTREACHED() << "No known extension for model type."; 499 NOTREACHED() << "No known extension for model type.";
484 return "INVALID"; 500 return "INVALID";
485 } 501 }
(...skipping 11 matching lines...) Expand all
497 const char kExtensionSettingNotificationType[] = "EXTENSION_SETTING"; 513 const char kExtensionSettingNotificationType[] = "EXTENSION_SETTING";
498 const char kNigoriNotificationType[] = "NIGORI"; 514 const char kNigoriNotificationType[] = "NIGORI";
499 const char kAppSettingNotificationType[] = "APP_SETTING"; 515 const char kAppSettingNotificationType[] = "APP_SETTING";
500 const char kAppNotificationType[] = "APP"; 516 const char kAppNotificationType[] = "APP";
501 const char kSearchEngineNotificationType[] = "SEARCH_ENGINE"; 517 const char kSearchEngineNotificationType[] = "SEARCH_ENGINE";
502 const char kSessionNotificationType[] = "SESSION"; 518 const char kSessionNotificationType[] = "SESSION";
503 const char kAutofillProfileNotificationType[] = "AUTOFILL_PROFILE"; 519 const char kAutofillProfileNotificationType[] = "AUTOFILL_PROFILE";
504 const char kAppNotificationNotificationType[] = "APP_NOTIFICATION"; 520 const char kAppNotificationNotificationType[] = "APP_NOTIFICATION";
505 const char kHistoryDeleteDirectiveNotificationType[] = 521 const char kHistoryDeleteDirectiveNotificationType[] =
506 "HISTORY_DELETE_DIRECTIVE"; 522 "HISTORY_DELETE_DIRECTIVE";
523 const char kSyncedNotificationType[] = "SYNCED_NOTIFICATION";
507 const char kDeviceInfoNotificationType[] = "DEVICE_INFO"; 524 const char kDeviceInfoNotificationType[] = "DEVICE_INFO";
508 const char kExperimentsNotificationType[] = "EXPERIMENTS"; 525 const char kExperimentsNotificationType[] = "EXPERIMENTS";
509 } // namespace 526 } // namespace
510 527
511 bool RealModelTypeToNotificationType(ModelType model_type, 528 bool RealModelTypeToNotificationType(ModelType model_type,
512 std::string* notification_type) { 529 std::string* notification_type) {
513 switch (model_type) { 530 switch (model_type) {
514 case BOOKMARKS: 531 case BOOKMARKS:
515 *notification_type = kBookmarkNotificationType; 532 *notification_type = kBookmarkNotificationType;
516 return true; 533 return true;
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
551 *notification_type = kAutofillProfileNotificationType; 568 *notification_type = kAutofillProfileNotificationType;
552 return true; 569 return true;
553 case EXTENSION_SETTINGS: 570 case EXTENSION_SETTINGS:
554 *notification_type = kExtensionSettingNotificationType; 571 *notification_type = kExtensionSettingNotificationType;
555 return true; 572 return true;
556 case APP_NOTIFICATIONS: 573 case APP_NOTIFICATIONS:
557 *notification_type = kAppNotificationNotificationType; 574 *notification_type = kAppNotificationNotificationType;
558 return true; 575 return true;
559 case HISTORY_DELETE_DIRECTIVES: 576 case HISTORY_DELETE_DIRECTIVES:
560 *notification_type = kHistoryDeleteDirectiveNotificationType; 577 *notification_type = kHistoryDeleteDirectiveNotificationType;
578 case SYNCED_NOTIFICATIONS:
579 *notification_type = kSyncedNotificationType;
561 case DEVICE_INFO: 580 case DEVICE_INFO:
562 *notification_type = kDeviceInfoNotificationType; 581 *notification_type = kDeviceInfoNotificationType;
563 return true; 582 return true;
564 case EXPERIMENTS: 583 case EXPERIMENTS:
565 *notification_type = kExperimentsNotificationType; 584 *notification_type = kExperimentsNotificationType;
566 return true; 585 return true;
567 default: 586 default:
568 break; 587 break;
569 } 588 }
570 notification_type->clear(); 589 notification_type->clear();
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
613 *model_type = APP_SETTINGS; 632 *model_type = APP_SETTINGS;
614 return true; 633 return true;
615 } else if (notification_type == kExtensionSettingNotificationType) { 634 } else if (notification_type == kExtensionSettingNotificationType) {
616 *model_type = EXTENSION_SETTINGS; 635 *model_type = EXTENSION_SETTINGS;
617 return true; 636 return true;
618 } else if (notification_type == kAppNotificationNotificationType) { 637 } else if (notification_type == kAppNotificationNotificationType) {
619 *model_type = APP_NOTIFICATIONS; 638 *model_type = APP_NOTIFICATIONS;
620 return true; 639 return true;
621 } else if (notification_type == kHistoryDeleteDirectiveNotificationType) { 640 } else if (notification_type == kHistoryDeleteDirectiveNotificationType) {
622 *model_type = HISTORY_DELETE_DIRECTIVES; 641 *model_type = HISTORY_DELETE_DIRECTIVES;
642 } else if (notification_type == kSyncedNotificationType) {
643 *model_type = SYNCED_NOTIFICATIONS;
623 } else if (notification_type == kDeviceInfoNotificationType) { 644 } else if (notification_type == kDeviceInfoNotificationType) {
624 *model_type = DEVICE_INFO;; 645 *model_type = DEVICE_INFO;;
625 return true; 646 return true;
626 } 647 }
627 *model_type = UNSPECIFIED; 648 *model_type = UNSPECIFIED;
628 return false; 649 return false;
629 } 650 }
630 651
631 bool IsRealDataType(ModelType model_type) { 652 bool IsRealDataType(ModelType model_type) {
632 return model_type >= FIRST_REAL_MODEL_TYPE && model_type < MODEL_TYPE_COUNT; 653 return model_type >= FIRST_REAL_MODEL_TYPE && model_type < MODEL_TYPE_COUNT;
633 } 654 }
634 655
635 } // namespace syncer 656 } // namespace syncer
OLDNEW
« no previous file with comments | « sync/protocol/synced_notification_specifics.proto ('k') | sync/util/data_type_histogram.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698