summaryrefslogtreecommitdiffstats
path: root/sync/protocol/client_debug_info.proto
blob: 8b2332101c5657254fe573fd3c7a7b19ec341c6a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
// Copyright (c) 2012 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
//
// Common sync protocol for encrypted data.

syntax = "proto2";

option optimize_for = LITE_RUNTIME;
option retain_unknown_fields = true;

package sync_pb;

import "get_updates_caller_info.proto";

// The additional info here is from SyncerStatus. They get sent when the event
// SYNC_CYCLE_COMPLETED  is sent.
message SyncCycleCompletedEventInfo {
  // optional bool syncer_stuck = 1; // Was always false, now obsolete.

  // The client has never set these values correctly.  It set
  // num_blocking_conflicts to the total number of conflicts detected and set
  // num_non_blocking_conflicts to the number of blocking (aka. simple)
  // conflicts.
  //
  // These counters have been deprecated to avoid further confusion.  The newer
  // counters provide more detail and are less buggy.
  optional int32 num_blocking_conflicts = 2 [deprecated = true];
  optional int32 num_non_blocking_conflicts = 3 [deprecated = true];

  // These new conflict counters replace the ones above.
  optional int32 num_encryption_conflicts = 4;
  optional int32 num_hierarchy_conflicts = 5;
  optional int32 num_simple_conflicts = 6;
  optional int32 num_server_conflicts = 7;

  // Counts to track the effective usefulness of our GetUpdate requests.
  optional int32 num_updates_downloaded = 8;
  optional int32 num_reflected_updates_downloaded = 9;
  optional GetUpdatesCallerInfo caller_info = 10;
}

message DebugEventInfo {
  // These events are sent by |SyncManager| class. Note: In the code they each
  // of these events have some additional info but we are not sending them to
  // server.
  enum EventType {
    CONNECTION_STATUS_CHANGE = 1; // Connection status change. Note this
                                  // gets generated even during a successful
                                  // connection.
    UPDATED_TOKEN = 2; // Client received an updated token.
    PASSPHRASE_REQUIRED = 3; // Cryptographer needs passphrase.
    PASSPHRASE_ACCEPTED = 4; // Passphrase was accepted by cryptographer.
    INITIALIZATION_COMPLETE = 5; // Sync Initialization is complete.

    // |STOP_SYNCING_PERMANENTLY| event should never be seen by the server in
    // the absence of bugs.
    STOP_SYNCING_PERMANENTLY = 6; // Server sent stop syncing permanently.

    ENCRYPTED_TYPES_CHANGED = 9; // Set of encrypted types has changed.
    ENCRYPTION_COMPLETE = 7; // Client has finished encrypting all data.
    ACTIONABLE_ERROR = 8; // Client received an actionable error.
    BOOTSTRAP_TOKEN_UPDATED = 9;  // A new cryptographer bootstrap token was
                                  // generated.
  }
  // In a given |DebugEventInfo| only one of the following would be set.
  optional EventType type = 1;

  optional SyncCycleCompletedEventInfo sync_cycle_completed_event_info = 2;

   // Datatype that caused the nudge.
   optional int32 nudging_datatype = 3;

   // Datatypes that were notified from server.
   repeated int32 datatypes_notified_from_server = 4;
}

message DebugInfo {
  repeated DebugEventInfo events = 1;

  // Whether cryptographer is ready to encrypt and decrypt data.
  optional bool cryptographer_ready = 2;

  // Cryptographer has pending keys which indicates the correct passphrase
  // has not been provided yet.
  optional bool cryptographer_has_pending_keys = 3;

  // Indicates client has dropped some events to save bandwidth.
  optional bool events_dropped = 4;
}