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

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

Issue 7150023: Add protobuffer and model type for syncing custom search engines. Includes all boilerplate helper... (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: '' Created 9 years, 6 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 | Annotate | Revision Log
« no previous file with comments | « chrome/browser/sync/syncable/model_type.h ('k') | chrome/browser/sync/syncable/nigori_util.cc » ('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) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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 "chrome/browser/sync/syncable/model_type.h" 5 #include "chrome/browser/sync/syncable/model_type.h"
6 6
7 #include "base/metrics/histogram.h" 7 #include "base/metrics/histogram.h"
8 #include "base/values.h" 8 #include "base/values.h"
9 #include "chrome/browser/sync/engine/syncproto.h" 9 #include "chrome/browser/sync/engine/syncproto.h"
10 #include "chrome/browser/sync/protocol/app_specifics.pb.h" 10 #include "chrome/browser/sync/protocol/app_specifics.pb.h"
11 #include "chrome/browser/sync/protocol/autofill_specifics.pb.h" 11 #include "chrome/browser/sync/protocol/autofill_specifics.pb.h"
12 #include "chrome/browser/sync/protocol/bookmark_specifics.pb.h" 12 #include "chrome/browser/sync/protocol/bookmark_specifics.pb.h"
13 #include "chrome/browser/sync/protocol/extension_specifics.pb.h" 13 #include "chrome/browser/sync/protocol/extension_specifics.pb.h"
14 #include "chrome/browser/sync/protocol/nigori_specifics.pb.h" 14 #include "chrome/browser/sync/protocol/nigori_specifics.pb.h"
15 #include "chrome/browser/sync/protocol/password_specifics.pb.h" 15 #include "chrome/browser/sync/protocol/password_specifics.pb.h"
16 #include "chrome/browser/sync/protocol/preference_specifics.pb.h" 16 #include "chrome/browser/sync/protocol/preference_specifics.pb.h"
17 #include "chrome/browser/sync/protocol/search_engine_specifics.pb.h"
17 #include "chrome/browser/sync/protocol/session_specifics.pb.h" 18 #include "chrome/browser/sync/protocol/session_specifics.pb.h"
18 #include "chrome/browser/sync/protocol/sync.pb.h" 19 #include "chrome/browser/sync/protocol/sync.pb.h"
19 #include "chrome/browser/sync/protocol/theme_specifics.pb.h" 20 #include "chrome/browser/sync/protocol/theme_specifics.pb.h"
20 #include "chrome/browser/sync/protocol/typed_url_specifics.pb.h" 21 #include "chrome/browser/sync/protocol/typed_url_specifics.pb.h"
21 22
22 namespace syncable { 23 namespace syncable {
23 24
24 void AddDefaultExtensionValue(syncable::ModelType datatype, 25 void AddDefaultExtensionValue(syncable::ModelType datatype,
25 sync_pb::EntitySpecifics* specifics) { 26 sync_pb::EntitySpecifics* specifics) {
26 switch (datatype) { 27 switch (datatype) {
(...skipping 17 matching lines...) Expand all
44 break; 45 break;
45 case TYPED_URLS: 46 case TYPED_URLS:
46 specifics->MutableExtension(sync_pb::typed_url); 47 specifics->MutableExtension(sync_pb::typed_url);
47 break; 48 break;
48 case EXTENSIONS: 49 case EXTENSIONS:
49 specifics->MutableExtension(sync_pb::extension); 50 specifics->MutableExtension(sync_pb::extension);
50 break; 51 break;
51 case NIGORI: 52 case NIGORI:
52 specifics->MutableExtension(sync_pb::nigori); 53 specifics->MutableExtension(sync_pb::nigori);
53 break; 54 break;
55 case SEARCH_ENGINES:
56 specifics->MutableExtension(sync_pb::search_engine);
57 break;
54 case SESSIONS: 58 case SESSIONS:
55 specifics->MutableExtension(sync_pb::session); 59 specifics->MutableExtension(sync_pb::session);
56 break; 60 break;
57 case APPS: 61 case APPS:
58 specifics->MutableExtension(sync_pb::app); 62 specifics->MutableExtension(sync_pb::app);
59 break; 63 break;
60 default: 64 default:
61 NOTREACHED() << "No known extension for model type."; 65 NOTREACHED() << "No known extension for model type.";
62 } 66 }
63 } 67 }
(...skipping 30 matching lines...) Expand all
94 break; 98 break;
95 case TYPED_URLS: 99 case TYPED_URLS:
96 return sync_pb::kTypedUrlFieldNumber; 100 return sync_pb::kTypedUrlFieldNumber;
97 break; 101 break;
98 case EXTENSIONS: 102 case EXTENSIONS:
99 return sync_pb::kExtensionFieldNumber; 103 return sync_pb::kExtensionFieldNumber;
100 break; 104 break;
101 case NIGORI: 105 case NIGORI:
102 return sync_pb::kNigoriFieldNumber; 106 return sync_pb::kNigoriFieldNumber;
103 break; 107 break;
108 case SEARCH_ENGINES:
109 return sync_pb::kSearchEngineFieldNumber;
110 break;
104 case SESSIONS: 111 case SESSIONS:
105 return sync_pb::kSessionFieldNumber; 112 return sync_pb::kSessionFieldNumber;
106 break; 113 break;
107 case APPS: 114 case APPS:
108 return sync_pb::kAppFieldNumber; 115 return sync_pb::kAppFieldNumber;
109 break; 116 break;
110 default: 117 default:
111 NOTREACHED() << "No known extension for model type."; 118 NOTREACHED() << "No known extension for model type.";
112 return 0; 119 return 0;
113 } 120 }
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after
171 178
172 if (specifics.HasExtension(sync_pb::extension)) 179 if (specifics.HasExtension(sync_pb::extension))
173 return EXTENSIONS; 180 return EXTENSIONS;
174 181
175 if (specifics.HasExtension(sync_pb::nigori)) 182 if (specifics.HasExtension(sync_pb::nigori))
176 return NIGORI; 183 return NIGORI;
177 184
178 if (specifics.HasExtension(sync_pb::app)) 185 if (specifics.HasExtension(sync_pb::app))
179 return APPS; 186 return APPS;
180 187
188 if (specifics.HasExtension(sync_pb::search_engine))
189 return SEARCH_ENGINES;
190
181 if (specifics.HasExtension(sync_pb::session)) 191 if (specifics.HasExtension(sync_pb::session))
182 return SESSIONS; 192 return SESSIONS;
183 193
184 return UNSPECIFIED; 194 return UNSPECIFIED;
185 } 195 }
186 196
187 std::string ModelTypeToString(ModelType model_type) { 197 std::string ModelTypeToString(ModelType model_type) {
188 switch (model_type) { 198 switch (model_type) {
189 case BOOKMARKS: 199 case BOOKMARKS:
190 return "Bookmarks"; 200 return "Bookmarks";
191 case PREFERENCES: 201 case PREFERENCES:
192 return "Preferences"; 202 return "Preferences";
193 case PASSWORDS: 203 case PASSWORDS:
194 return "Passwords"; 204 return "Passwords";
195 case AUTOFILL: 205 case AUTOFILL:
196 return "Autofill"; 206 return "Autofill";
197 case THEMES: 207 case THEMES:
198 return "Themes"; 208 return "Themes";
199 case TYPED_URLS: 209 case TYPED_URLS:
200 return "Typed URLs"; 210 return "Typed URLs";
201 case EXTENSIONS: 211 case EXTENSIONS:
202 return "Extensions"; 212 return "Extensions";
203 case NIGORI: 213 case NIGORI:
204 return "Encryption keys"; 214 return "Encryption keys";
215 case SEARCH_ENGINES:
216 return "Search Engines";
205 case SESSIONS: 217 case SESSIONS:
206 return "Sessions"; 218 return "Sessions";
207 case APPS: 219 case APPS:
208 return "Apps"; 220 return "Apps";
209 case AUTOFILL_PROFILE: 221 case AUTOFILL_PROFILE:
210 return "Autofill Profiles"; 222 return "Autofill Profiles";
211 default: 223 default:
212 break; 224 break;
213 } 225 }
214 NOTREACHED() << "No known extension for model type."; 226 NOTREACHED() << "No known extension for model type.";
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
250 else if (model_type_string == "Autofill Profiles") 262 else if (model_type_string == "Autofill Profiles")
251 return AUTOFILL_PROFILE; 263 return AUTOFILL_PROFILE;
252 else if (model_type_string == "Themes") 264 else if (model_type_string == "Themes")
253 return THEMES; 265 return THEMES;
254 else if (model_type_string == "Typed URLs") 266 else if (model_type_string == "Typed URLs")
255 return TYPED_URLS; 267 return TYPED_URLS;
256 else if (model_type_string == "Extensions") 268 else if (model_type_string == "Extensions")
257 return EXTENSIONS; 269 return EXTENSIONS;
258 else if (model_type_string == "Encryption keys") 270 else if (model_type_string == "Encryption keys")
259 return NIGORI; 271 return NIGORI;
272 else if (model_type_string == "Search Engines")
273 return SEARCH_ENGINES;
260 else if (model_type_string == "Sessions") 274 else if (model_type_string == "Sessions")
261 return SESSIONS; 275 return SESSIONS;
262 else if (model_type_string == "Apps") 276 else if (model_type_string == "Apps")
263 return APPS; 277 return APPS;
264 else 278 else
265 NOTREACHED() << "No known model type corresponding to " 279 NOTREACHED() << "No known model type corresponding to "
266 << model_type_string << "."; 280 << model_type_string << ".";
267 return UNSPECIFIED; 281 return UNSPECIFIED;
268 } 282 }
269 283
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after
334 case AUTOFILL: 348 case AUTOFILL:
335 return "google_chrome_autofill"; 349 return "google_chrome_autofill";
336 case THEMES: 350 case THEMES:
337 return "google_chrome_themes"; 351 return "google_chrome_themes";
338 case TYPED_URLS: 352 case TYPED_URLS:
339 return "google_chrome_typed_urls"; 353 return "google_chrome_typed_urls";
340 case EXTENSIONS: 354 case EXTENSIONS:
341 return "google_chrome_extensions"; 355 return "google_chrome_extensions";
342 case NIGORI: 356 case NIGORI:
343 return "google_chrome_nigori"; 357 return "google_chrome_nigori";
358 case SEARCH_ENGINES:
359 return "google_chrome_search_engines";
344 case SESSIONS: 360 case SESSIONS:
345 return "google_chrome_sessions"; 361 return "google_chrome_sessions";
346 case APPS: 362 case APPS:
347 return "google_chrome_apps"; 363 return "google_chrome_apps";
348 case AUTOFILL_PROFILE: 364 case AUTOFILL_PROFILE:
349 return "google_chrome_autofill_profiles"; 365 return "google_chrome_autofill_profiles";
350 default: 366 default:
351 break; 367 break;
352 } 368 }
353 NOTREACHED() << "No known extension for model type."; 369 NOTREACHED() << "No known extension for model type.";
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
391 return; 407 return;
392 } 408 }
393 case EXTENSIONS: { 409 case EXTENSIONS: {
394 SYNC_FREQ_HISTOGRAM("Sync.FreqExtensions", time); 410 SYNC_FREQ_HISTOGRAM("Sync.FreqExtensions", time);
395 return; 411 return;
396 } 412 }
397 case NIGORI: { 413 case NIGORI: {
398 SYNC_FREQ_HISTOGRAM("Sync.FreqNigori", time); 414 SYNC_FREQ_HISTOGRAM("Sync.FreqNigori", time);
399 return; 415 return;
400 } 416 }
417 case SEARCH_ENGINES: {
418 SYNC_FREQ_HISTOGRAM("Sync.FreqSearchEngines", time);
419 return;
420 }
401 case SESSIONS: { 421 case SESSIONS: {
402 SYNC_FREQ_HISTOGRAM("Sync.FreqSessions", time); 422 SYNC_FREQ_HISTOGRAM("Sync.FreqSessions", time);
403 return; 423 return;
404 } 424 }
405 case APPS: { 425 case APPS: {
406 SYNC_FREQ_HISTOGRAM("Sync.FreqApps", time); 426 SYNC_FREQ_HISTOGRAM("Sync.FreqApps", time);
407 return; 427 return;
408 } 428 }
409 default: 429 default:
410 LOG(ERROR) << "No known extension for model type."; 430 LOG(ERROR) << "No known extension for model type.";
411 } 431 }
412 } 432 }
413 433
414 #undef SYNC_FREQ_HISTOGRAM 434 #undef SYNC_FREQ_HISTOGRAM
415 435
416 // TODO(akalin): Figure out a better way to do these mappings. 436 // TODO(akalin): Figure out a better way to do these mappings.
417 437
418 namespace { 438 namespace {
419 const char kBookmarkNotificationType[] = "BOOKMARK"; 439 const char kBookmarkNotificationType[] = "BOOKMARK";
420 const char kPreferenceNotificationType[] = "PREFERENCE"; 440 const char kPreferenceNotificationType[] = "PREFERENCE";
421 const char kPasswordNotificationType[] = "PASSWORD"; 441 const char kPasswordNotificationType[] = "PASSWORD";
422 const char kAutofillNotificationType[] = "AUTOFILL"; 442 const char kAutofillNotificationType[] = "AUTOFILL";
423 const char kThemeNotificationType[] = "THEME"; 443 const char kThemeNotificationType[] = "THEME";
424 const char kTypedUrlNotificationType[] = "TYPED_URL"; 444 const char kTypedUrlNotificationType[] = "TYPED_URL";
425 const char kExtensionNotificationType[] = "EXTENSION"; 445 const char kExtensionNotificationType[] = "EXTENSION";
426 const char kNigoriNotificationType[] = "NIGORI"; 446 const char kNigoriNotificationType[] = "NIGORI";
427 const char kAppNotificationType[] = "APP"; 447 const char kAppNotificationType[] = "APP";
448 const char kSearchEngineNotificationType[] = "SEARCH_ENGINE";
428 const char kSessionNotificationType[] = "SESSION"; 449 const char kSessionNotificationType[] = "SESSION";
429 const char kAutofillProfileNotificationType[] = "AUTOFILL_PROFILE"; 450 const char kAutofillProfileNotificationType[] = "AUTOFILL_PROFILE";
430 } // namespace 451 } // namespace
431 452
432 bool RealModelTypeToNotificationType(ModelType model_type, 453 bool RealModelTypeToNotificationType(ModelType model_type,
433 std::string* notification_type) { 454 std::string* notification_type) {
434 switch (model_type) { 455 switch (model_type) {
435 case BOOKMARKS: 456 case BOOKMARKS:
436 *notification_type = kBookmarkNotificationType; 457 *notification_type = kBookmarkNotificationType;
437 return true; 458 return true;
(...skipping 14 matching lines...) Expand all
452 return true; 473 return true;
453 case EXTENSIONS: 474 case EXTENSIONS:
454 *notification_type = kExtensionNotificationType; 475 *notification_type = kExtensionNotificationType;
455 return true; 476 return true;
456 case NIGORI: 477 case NIGORI:
457 *notification_type = kNigoriNotificationType; 478 *notification_type = kNigoriNotificationType;
458 return true; 479 return true;
459 case APPS: 480 case APPS:
460 *notification_type = kAppNotificationType; 481 *notification_type = kAppNotificationType;
461 return true; 482 return true;
483 case SEARCH_ENGINES:
484 *notification_type = kSearchEngineNotificationType;
485 return true;
462 case SESSIONS: 486 case SESSIONS:
463 *notification_type = kSessionNotificationType; 487 *notification_type = kSessionNotificationType;
464 return true; 488 return true;
465 case AUTOFILL_PROFILE: 489 case AUTOFILL_PROFILE:
466 *notification_type = kAutofillProfileNotificationType; 490 *notification_type = kAutofillProfileNotificationType;
467 return true; 491 return true;
468 default: 492 default:
469 break; 493 break;
470 } 494 }
471 notification_type->clear(); 495 notification_type->clear();
(...skipping 22 matching lines...) Expand all
494 return true; 518 return true;
495 } else if (notification_type == kExtensionNotificationType) { 519 } else if (notification_type == kExtensionNotificationType) {
496 *model_type = EXTENSIONS; 520 *model_type = EXTENSIONS;
497 return true; 521 return true;
498 } else if (notification_type == kNigoriNotificationType) { 522 } else if (notification_type == kNigoriNotificationType) {
499 *model_type = NIGORI; 523 *model_type = NIGORI;
500 return true; 524 return true;
501 } else if (notification_type == kAppNotificationType) { 525 } else if (notification_type == kAppNotificationType) {
502 *model_type = APPS; 526 *model_type = APPS;
503 return true; 527 return true;
528 } else if (notification_type == kSearchEngineNotificationType) {
529 *model_type = SEARCH_ENGINES;
530 return true;
504 } else if (notification_type == kSessionNotificationType) { 531 } else if (notification_type == kSessionNotificationType) {
505 *model_type = SESSIONS; 532 *model_type = SESSIONS;
506 return true; 533 return true;
507 } else if (notification_type == kAutofillProfileNotificationType) { 534 } else if (notification_type == kAutofillProfileNotificationType) {
508 *model_type = AUTOFILL_PROFILE; 535 *model_type = AUTOFILL_PROFILE;
509 return true; 536 return true;
510 } 537 }
511 *model_type = UNSPECIFIED; 538 *model_type = UNSPECIFIED;
512 return false; 539 return false;
513 } 540 }
514 541
515 } // namespace syncable 542 } // namespace syncable
OLDNEW
« no previous file with comments | « chrome/browser/sync/syncable/model_type.h ('k') | chrome/browser/sync/syncable/nigori_util.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698