chromium/components/sync/protocol/client_debug_info.proto

// Copyright 2012 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
//
// Sync protocol for debug info clients can send to the sync server.

// If you change or add any fields in this file, update proto_visitors.h and
// potentially proto_enum_conversions.{h, cc}.

syntax = "proto2";

option java_multiple_files = true;
option java_package = "org.chromium.components.sync.protocol";

option optimize_for = LITE_RUNTIME;

package sync_pb;

import "components/sync/protocol/get_updates_caller_info.proto";
import "components/sync/protocol/sync_enums.proto";

// Per-type hint information.
message TypeHint {
  // The data type this hint applied to.
  optional int32 data_type_id = 1;

  // Whether or not a valid hint is provided.
  optional bool has_valid_hint = 2;
}

// The additional info here is from the StatusController. They get sent when
// the event SYNC_CYCLE_COMPLETED  is sent.
message SyncCycleCompletedEventInfo {
  reserved 1;
  reserved "syncer_stuck";
  reserved 2;
  reserved "num_blocking_conflicts";
  reserved 3;
  reserved "num_non_blocking_conflicts";

  // These new conflict counters replace the ones above.
  // TODO(crbug.com/40833583): Deprecated in M103.
  optional int32 num_encryption_conflicts = 4 [deprecated = true];
  optional int32 num_hierarchy_conflicts = 5 [deprecated = true];
  optional int32 num_simple_conflicts = 6;  // No longer sent since M24.
  optional int32 num_server_conflicts = 7;

  // Counts to track the effective usefulness of our GetUpdate requests.
  optional int32 num_updates_downloaded = 8;
  // TODO(crbug.com/40833583): Deprecated in M103.
  optional int32 num_reflected_updates_downloaded = 9 [deprecated = true];

  // |caller_info| was mostly replaced by |get_updates_origin|; now it only
  // contains the |notifications_enabled| flag.
  optional GetUpdatesCallerInfo caller_info = 10;

  // Deprecated in M67.
  reserved 11;
  reserved "source_info";

  optional SyncEnums.GetUpdatesOrigin get_updates_origin = 12;
}

message DebugEventInfo {
  // Each of the following fields correspond to different kinds of events. as
  // a result, only one is set during any single DebugEventInfo.
  // A singleton event. See enum definition.
  optional SyncEnums.SingletonDebugEventType singleton_event = 1;
  // A sync cycle completed.
  optional SyncCycleCompletedEventInfo sync_cycle_completed_event_info = 2;
  // A datatype triggered a nudge.
  optional int32 nudging_datatype = 3;
  // A notification triggered a nudge.
  repeated int32 datatypes_notified_from_server = 4;

  reserved "datatype_association_stats";
  reserved 5;
}

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;
}