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