Home | History | Annotate | Download | only in protocol
      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
      3 // found in the LICENSE file.
      4 //
      5 // Sync protocol for communication between sync client and server.
      6 
      7 // Update proto_value_conversions{.h,.cc,_unittest.cc} if you change
      8 // any fields in this file.
      9 
     10 syntax = "proto2";
     11 
     12 option optimize_for = LITE_RUNTIME;
     13 option retain_unknown_fields = true;
     14 
     15 package sync_pb;
     16 
     17 message SyncEnums {
     18   // These events are sent by |SyncManager| class. Note: In the code they each
     19   // of these events have some additional info but we are not sending them to
     20   // server.
     21   enum EventType {
     22     AUTH_ERROR = 1; // Auth error. Note this gets generated even during
     23                     // successful auth with the error set to none.
     24     UPDATED_TOKEN = 2; // Client received an updated token.
     25     PASSPHRASE_REQUIRED = 3; // Cryptographer needs passphrase.
     26     PASSPHRASE_ACCEPTED = 4; // Passphrase was accepted by cryptographer.
     27     INITIALIZATION_COMPLETE = 5; // Sync Initialization is complete.
     28 
     29     // |STOP_SYNCING_PERMANENTLY| event should never be seen by the server in
     30     // the absence of bugs.
     31     STOP_SYNCING_PERMANENTLY = 6; // Server sent stop syncing permanently.
     32 
     33     ENCRYPTED_TYPES_CHANGED = 9; // Set of encrypted types has changed.
     34     ENCRYPTION_COMPLETE = 7; // Client has finished encrypting all data.
     35     ACTIONABLE_ERROR = 8; // Client received an actionable error.
     36   }
     37 
     38   // See content/public/common/page_transition_types.h for detailed
     39   // information on the values of PageTransition and
     40   // PageTransitionRedirectType below.
     41 
     42   // Types of transitions between pages.
     43   enum PageTransition {
     44     LINK = 0;
     45     TYPED = 1;
     46     AUTO_BOOKMARK = 2;
     47     AUTO_SUBFRAME = 3;
     48     MANUAL_SUBFRAME = 4;
     49     GENERATED = 5;
     50     AUTO_TOPLEVEL = 6;
     51     FORM_SUBMIT = 7;
     52     RELOAD = 8;
     53     KEYWORD = 9;
     54     KEYWORD_GENERATED = 10;
     55     // The below two were mistakenly added but never properly used. They are
     56     // actually transition qualifiers, and are set independently of other
     57     // qualifiers and of the main transitions. See session_specifics.proto for
     58     // the list of synced transition qualifiers.
     59     // CHAIN_START = 12;     Deprecated.
     60     // CHAIN_END = 13;       Deprecated.
     61   }
     62 
     63   // Types of redirects that triggered a transition.
     64   enum PageTransitionRedirectType {
     65     CLIENT_REDIRECT = 1;
     66     SERVER_REDIRECT = 2;
     67   }
     68 
     69   enum ErrorType {
     70     SUCCESS            = 0;
     71     ACCESS_DENIED      = 1;   // Returned when the user doesn't have access to
     72                               // store (instead of HTTP 401).
     73     NOT_MY_BIRTHDAY    = 2;   // Returned when the server and client disagree on
     74                               // the store birthday.
     75     THROTTLED          = 3;   // Returned when the store has exceeded the
     76                               // allowed bandwidth utilization.
     77     AUTH_EXPIRED       = 4;   // Auth token or cookie has expired.
     78     USER_NOT_ACTIVATED = 5;   // User doesn't have the Chrome bit set on that
     79                               // Google Account.
     80     AUTH_INVALID       = 6;   // Auth token or cookie is otherwise invalid.
     81     CLEAR_PENDING      = 7;   // A clear of the user data is pending (e.g.
     82                               // initiated by privacy request).  Client should
     83                               // come back later.
     84     TRANSIENT_ERROR    = 8;   // A transient error occured (eg. backend
     85                               // timeout). Client should try again later.
     86     MIGRATION_DONE     = 9;   // Migration has finished for one or more data
     87                               // types.  Client should clear the cache for
     88                               // these data types only and then re-sync with
     89                               // a server.
     90     DISABLED_BY_ADMIN = 10;   // An administrator disabled sync for this domain.
     91     UNKNOWN            = 100; // Unknown value. This should never be explicitly
     92                               // used; it is the default value when an
     93                               // out-of-date client parses a value it doesn't
     94                               // recognize.
     95   }
     96 
     97   enum Action {
     98     UPGRADE_CLIENT              = 0; // Upgrade the client to latest version.
     99     CLEAR_USER_DATA_AND_RESYNC  = 1; // Clear user data from dashboard and
    100                                      // setup sync again.
    101     ENABLE_SYNC_ON_ACCOUNT      = 2; // The administrator needs to enable sync
    102                                      // on the account.
    103     STOP_AND_RESTART_SYNC       = 3; // Stop sync and set up sync again.
    104     DISABLE_SYNC_ON_CLIENT      = 4; // Wipe the client of all sync data and
    105                                      // stop syncing.
    106     UNKNOWN_ACTION              = 5; // This is the default.
    107   }
    108 
    109   enum DeviceType {
    110     TYPE_WIN = 1;
    111     TYPE_MAC = 2;
    112     TYPE_LINUX = 3;
    113     TYPE_CROS = 4;
    114     TYPE_OTHER = 5;
    115     TYPE_PHONE = 6;
    116     TYPE_TABLET = 7;
    117   }
    118 
    119   // This is the successor to GetUpdatesSource.  It merges the "normal mode"
    120   // values (LOCAL, NOTIFICATION and DATATYPE_REFRESH), which were never really
    121   // mutually exclusive to being with, into the GU_TRIGGER value.  It also
    122   // drops support for some old values that are not supported by newer clients.
    123   //
    124   // Mind the gaps: Some values are intentionally unused because we want to
    125   // keep the values in sync with GetUpdatesSource as much as possible.  Please
    126   // don't add any values < 12 unless there's a good reason for it.
    127   //
    128   // Introduced in M28.
    129   enum GetUpdatesOrigin {
    130     UNKNOWN_ORIGIN = 0;  // The source was not set by the caller.
    131     PERIODIC = 4;  // The source of the update was periodic polling.
    132     NEWLY_SUPPORTED_DATATYPE = 7;   // The client is in configuration mode
    133                                     // because it's syncing all datatypes, and
    134                                     // support for a new datatype was recently
    135                                     // released via a software auto-update.
    136     MIGRATION = 8;         // The client is in configuration mode because a
    137                            // MIGRATION_DONE error previously returned by the
    138                            // server necessitated resynchronization.
    139     NEW_CLIENT = 9;        // The client is in configuration mode because the
    140                            // user enabled sync for the first time.  Not to be
    141                            // confused with FIRST_UPDATE.
    142     RECONFIGURATION = 10;  // The client is in configuration mode because the
    143                            // user opted to sync a different set of datatypes.
    144     GU_TRIGGER = 12; // The client is in 'normal' mode.  It may have several
    145                      // reasons for requesting an update.  See the per-type
    146                      // GetUpdateTriggers message for more details.
    147   }
    148 }
    149