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

Side by Side Diff: sync/protocol/sync.proto

Issue 14963002: sync: Report GetUpdate triggers to the server (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix handling of NEW_CLIENT GU source Created 7 years, 7 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/proto_value_conversions.cc ('k') | sync/sessions/nudge_tracker.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 // Sync protocol for communication between sync client and server. 5 // Sync protocol for communication between sync client and server.
6 6
7 // Update proto_value_conversions{.h,.cc,_unittest.cc} if you change 7 // Update proto_value_conversions{.h,.cc,_unittest.cc} if you change
8 // any fields in this file. 8 // any fields in this file.
9 9
10 syntax = "proto2"; 10 syntax = "proto2";
(...skipping 383 matching lines...) Expand 10 before | Expand all | Expand 10 after
394 // make commit-time decisions about how to process datatypes that might 394 // make commit-time decisions about how to process datatypes that might
395 // involve server-side interaction, and e.g require explicit user intent for 395 // involve server-side interaction, and e.g require explicit user intent for
396 // syncing a particular data type regardless of whether a commit for that 396 // syncing a particular data type regardless of whether a commit for that
397 // datatype is currently being sent up. 397 // datatype is currently being sent up.
398 optional ClientConfigParams config_params = 4; 398 optional ClientConfigParams config_params = 4;
399 }; 399 };
400 400
401 // This message communicates additional per-type information related to 401 // This message communicates additional per-type information related to
402 // requests with origin GU_TRIGGER. This message is not relevant when any 402 // requests with origin GU_TRIGGER. This message is not relevant when any
403 // other origin value is used. 403 // other origin value is used.
404 // Introduced in M28. 404 // Introduced in M29.
405 message GetUpdateTriggers { 405 message GetUpdateTriggers {
406 // An opaque-to-the-client string of bytes, received through a notification, 406 // An opaque-to-the-client string of bytes, received through a notification,
407 // that the server may interpret as a hint about the location of the latest 407 // that the server may interpret as a hint about the location of the latest
408 // version of the data for this type. 408 // version of the data for this type.
409 // 409 //
410 // Note that this will eventually replace the 'optional' field of the same 410 // Note that this will eventually replace the 'optional' field of the same
411 // name defined in the progress marker, but the client and server should 411 // name defined in the progress marker, but the client and server should
412 // support both until it's safe to deprecate the old one. 412 // support both until it's safe to deprecate the old one.
413 // 413 //
414 // This field was introduced in M28. 414 // This field was introduced in M29.
415 repeated string notification_hint = 1; 415 repeated string notification_hint = 1;
416 416
417 // This flag is set if the client was forced to drop hints because the number 417 // This flag is set if the client was forced to drop hints because the number
418 // of queued hints exceeded its limit. The oldest hints will be discarded 418 // of queued hints exceeded its limit. The oldest hints will be discarded
419 // first. Introduced in M28. 419 // first. Introduced in M29.
420 optional bool client_dropped_hints = 2; 420 optional bool client_dropped_hints = 2;
421 421
422 // This flag is set if the invalidation server reports that it may have 422 // This flag is set if the invalidation server reports that it may have
423 // dropped some invalidations at some point. The client will also drop any 423 // dropped some invalidations at some point. The client will also drop any
424 // locally cached hints that are older than the server-did-drop notification. 424 // locally cached hints that are older than the server-did-drop notification.
425 // 425 //
426 // TODO(sync): Determine the format for this. 426 // TODO(sync): Determine the format for this.
427 // 427 //
428 // optional bool server_dropped_hints = 6; 428 // optional bool server_dropped_hints = 6;
429 429
430 // This flag is set when the client suspects that its list of invalidation 430 // This flag is set when the client suspects that its list of invalidation
431 // hints may be incomplete. This may be the case if: 431 // hints may be incomplete. This may be the case if:
432 // - The client is syncing for the first time. 432 // - The client is syncing for the first time.
433 // - The client has just restarted and it was unable to keep track of 433 // - The client has just restarted and it was unable to keep track of
434 // invalidations that were received prior to the restart. 434 // invalidations that were received prior to the restart.
435 // - The client's connection to the invalidation server is currently or 435 // - The client's connection to the invalidation server is currently or
436 // was recently broken. 436 // was recently broken.
437 // 437 //
438 // It's difficult to provide more details here. This is implemented by 438 // It's difficult to provide more details here. This is implemented by
439 // setting the flag to false whenever anything that might adversely affect 439 // setting the flag to false whenever anything that might adversely affect
440 // notifications happens (eg. a crash, restart on a platform that doesn't 440 // notifications happens (eg. a crash, restart on a platform that doesn't
441 // support invalidation ack-tracking, transient invalidation error) and is 441 // support invalidation ack-tracking, transient invalidation error) and is
442 // unset only after we've experienced one successful sync cycle while 442 // unset only after we've experienced one successful sync cycle while
443 // notifications were enabled. 443 // notifications were enabled.
444 // 444 //
445 // This flag was introduced in M28. 445 // This flag was introduced in M29.
446 optional bool invalidations_out_of_sync = 3; 446 optional bool invalidations_out_of_sync = 3;
447 447
448 // This counts the number of times the syncer has been asked to commit 448 // This counts the number of times the syncer has been asked to commit
449 // changes for this type since the last successful sync cycle. The number of 449 // changes for this type since the last successful sync cycle. The number of
450 // nudges may not be related to the actual number of items modified. It 450 // nudges may not be related to the actual number of items modified. It
451 // often correlates with the number of user actions, but that's not always 451 // often correlates with the number of user actions, but that's not always
452 // the case. 452 // the case.
453 // Introduced in M28. 453 // Introduced in M29.
454 optional int64 local_modification_nudges = 4; 454 optional int64 local_modification_nudges = 4;
455 455
456 // This counts the number of times the syncer has been explicitly asked to 456 // This counts the number of times the syncer has been explicitly asked to
457 // fetch updates for this type since the last successful sync cycle. These 457 // fetch updates for this type since the last successful sync cycle. These
458 // explicit refresh requests should be relatively rare on most platforms, and 458 // explicit refresh requests should be relatively rare on most platforms, and
459 // associated with user actions. For example, at the time of this writing 459 // associated with user actions. For example, at the time of this writing
460 // the most common (only?) source of refresh requests is when a user opens 460 // the most common (only?) source of refresh requests is when a user opens
461 // the new tab page on a platform that does not support sessions 461 // the new tab page on a platform that does not support sessions
462 // invalidations. 462 // invalidations.
463 // Introduced in M28. 463 // Introduced in M29.
464 optional int64 datatype_refresh_nudges = 5; 464 optional int64 datatype_refresh_nudges = 5;
465 } 465 }
466 466
467 message DataTypeProgressMarker { 467 message DataTypeProgressMarker {
468 // An integer identifying the data type whose progress is tracked by this 468 // An integer identifying the data type whose progress is tracked by this
469 // marker. The legitimate values of this field correspond to the protobuf 469 // marker. The legitimate values of this field correspond to the protobuf
470 // field numbers of all EntitySpecifics fields supported by the server. 470 // field numbers of all EntitySpecifics fields supported by the server.
471 // These values are externally declared in per-datatype .proto files. 471 // These values are externally declared in per-datatype .proto files.
472 optional int32 data_type_id = 1; 472 optional int32 data_type_id = 1;
473 473
(...skipping 24 matching lines...) Expand all
498 // progress tracking mechanism, but which wish to switch over to the opaque 498 // progress tracking mechanism, but which wish to switch over to the opaque
499 // token mechanism can set this field in a GetUpdatesMessage. The server 499 // token mechanism can set this field in a GetUpdatesMessage. The server
500 // will perform a get updates operation as normal from the indicated 500 // will perform a get updates operation as normal from the indicated
501 // timestamp, and return only an opaque progress token. 501 // timestamp, and return only an opaque progress token.
502 optional int64 timestamp_token_for_migration = 3; 502 optional int64 timestamp_token_for_migration = 3;
503 503
504 // An opaque-to-the-client string of bytes, received through a notification, 504 // An opaque-to-the-client string of bytes, received through a notification,
505 // that the server may interpret as a hint about the location of the latest 505 // that the server may interpret as a hint about the location of the latest
506 // version of the data for this type. 506 // version of the data for this type.
507 // 507 //
508 // Deprecated in M28. We should use the repeated field version in the 508 // Deprecated in M29. We should use the repeated field version in the
509 // PerClientTypeState instead. 509 // PerClientTypeState instead.
510 optional string notification_hint = 4; 510 optional string notification_hint = 4;
511 511
512 // This field will be included only in GetUpdates with origin GU_TRIGGER. 512 // This field will be included only in GetUpdates with origin GU_TRIGGER.
513 optional GetUpdateTriggers get_update_triggers = 5; 513 optional GetUpdateTriggers get_update_triggers = 5;
514 } 514 }
515 515
516 message GetUpdatesMessage { 516 message GetUpdatesMessage {
517 // Indicates the client's current progress in downloading updates. A 517 // Indicates the client's current progress in downloading updates. A
518 // from_timestamp value of zero means that the client is requesting a first- 518 // from_timestamp value of zero means that the client is requesting a first-
519 // time sync. After that point, clients should fill in this value with the 519 // time sync. After that point, clients should fill in this value with the
520 // value returned in the last-seen GetUpdatesResponse.new_timestamp. 520 // value returned in the last-seen GetUpdatesResponse.new_timestamp.
521 // 521 //
522 // from_timestamp has been deprecated; clients should use 522 // from_timestamp has been deprecated; clients should use
523 // |from_progress_marker| instead, which allows more flexibility. 523 // |from_progress_marker| instead, which allows more flexibility.
524 optional int64 from_timestamp = 1; 524 optional int64 from_timestamp = 1;
525 525
526 // Indicates the reason for the GetUpdatesMessage. 526 // Indicates the reason for the GetUpdatesMessage.
527 // Deprecated in M28. We should eventually rely on GetUpdatesOrigin instead. 527 // Deprecated in M29. We should eventually rely on GetUpdatesOrigin instead.
528 // Newer clients will support both systems during the transition period. 528 // Newer clients will support both systems during the transition period.
529 optional GetUpdatesCallerInfo caller_info = 2; 529 optional GetUpdatesCallerInfo caller_info = 2;
530 530
531 // Indicates whether related folders should be fetched. 531 // Indicates whether related folders should be fetched.
532 optional bool fetch_folders = 3 [default = true]; 532 optional bool fetch_folders = 3 [default = true];
533 533
534 // The presence of an individual EntitySpecifics field indicates that the 534 // The presence of an individual EntitySpecifics field indicates that the
535 // client requests sync object types associated with that field. This 535 // client requests sync object types associated with that field. This
536 // determination depends only on the presence of the field, not its 536 // determination depends only on the presence of the field, not its
537 // contents -- thus clients should send empty messages as the field value. 537 // contents -- thus clients should send empty messages as the field value.
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
573 // The allowed frequency for requesting encryption keys is much lower than 573 // The allowed frequency for requesting encryption keys is much lower than
574 // other datatypes, so repeated usage will likely result in throttling. 574 // other datatypes, so repeated usage will likely result in throttling.
575 optional bool need_encryption_key = 8 [default = false]; 575 optional bool need_encryption_key = 8 [default = false];
576 576
577 // Whether to create the mobile bookmarks folder if it's not 577 // Whether to create the mobile bookmarks folder if it's not
578 // already created. Should be set to true only by mobile clients. 578 // already created. Should be set to true only by mobile clients.
579 optional bool create_mobile_bookmarks_folder = 1000 [default = false]; 579 optional bool create_mobile_bookmarks_folder = 1000 [default = false];
580 580
581 // This value is an udpated version of the GetUpdatesCallerInfo's 581 // This value is an udpated version of the GetUpdatesCallerInfo's
582 // GetUpdatesSource. It describes the reason for the GetUpdate request. 582 // GetUpdatesSource. It describes the reason for the GetUpdate request.
583 // Introduced in M28. 583 // Introduced in M29.
584 optional SyncEnums.GetUpdatesOrigin get_updates_origin = 9; 584 optional SyncEnums.GetUpdatesOrigin get_updates_origin = 9;
585 }; 585 };
586 586
587 message AuthenticateMessage { 587 message AuthenticateMessage {
588 required string auth_token = 1; 588 required string auth_token = 1;
589 }; 589 };
590 590
591 // The client must preserve, store, and resend the chip bag with 591 // The client must preserve, store, and resend the chip bag with
592 // every request. The server depends on the chip bag in order 592 // every request. The server depends on the chip bag in order
593 // to precisely choreograph a client-server state machines. 593 // to precisely choreograph a client-server state machines.
(...skipping 261 matching lines...) Expand 10 before | Expand all | Expand 10 after
855 // is absent then the whole client (all datatypes) is throttled. 855 // is absent then the whole client (all datatypes) is throttled.
856 repeated int32 error_data_type_ids = 5; 856 repeated int32 error_data_type_ids = 5;
857 } 857 }
858 optional Error error = 13; 858 optional Error error = 13;
859 859
860 // The new per-client state for this client. If set, should be persisted and 860 // The new per-client state for this client. If set, should be persisted and
861 // sent with any subsequent ClientToServerMessages. 861 // sent with any subsequent ClientToServerMessages.
862 optional ChipBag new_bag_of_chips = 14; 862 optional ChipBag new_bag_of_chips = 14;
863 }; 863 };
864 864
OLDNEW
« no previous file with comments | « sync/protocol/proto_value_conversions.cc ('k') | sync/sessions/nudge_tracker.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698