blob: 6a0fa544c6f80d8e865cd12fa28d42340a5fdfaa [file] [log] [blame]
// 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.
}
optional EventType type = 1;
optional SyncCycleCompletedEventInfo sync_cycle_completed_event_info = 2;
}
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;
}