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 datatype extension for experimental feature flags.
      6 
      7 syntax = "proto2";
      8 
      9 option optimize_for = LITE_RUNTIME;
     10 option retain_unknown_fields = true;
     11 
     12 package sync_pb;
     13 
     14 // A flag to enable support for keystore encryption.
     15 message KeystoreEncryptionFlags {
     16   optional bool enabled = 1;
     17 }
     18 
     19 // Whether history delete directives are enabled.
     20 message HistoryDeleteDirectives {
     21   optional bool enabled = 1;
     22 }
     23 
     24 // Whether this client should cull (delete) expired autofill
     25 // entries when autofill sync is enabled.
     26 message AutofillCullingFlags {
     27   optional bool enabled = 1;
     28 }
     29 
     30 // Whether the favicon sync datatypes are enabled, and what parameters
     31 // they should operate under.
     32 message FaviconSyncFlags {
     33   optional bool enabled = 1;
     34   optional int32 favicon_sync_limit = 2 [default = 200];
     35 }
     36 
     37 // Flags for enabling the experimental no-precommit GU feature.
     38 message PreCommitUpdateAvoidanceFlags {
     39   optional bool enabled = 1;
     40 }
     41 
     42 // Flags for enabling the GCM feature.
     43 message GcmChannelFlags {
     44   optional bool enabled = 1;
     45 }
     46 
     47 // Flags for enabling the experimental enhanced bookmarks feature.
     48 message EnhancedBookmarksFlags {
     49   optional bool enabled = 1;
     50   optional string extension_id = 2;
     51 }
     52 
     53 // Flags for enabling GCM channel for invalidations.
     54 message GcmInvalidationsFlags {
     55   optional bool enabled = 1;
     56 }
     57 
     58 // Contains one flag or set of related flags.  Each node of the experiments type
     59 // will have a unique_client_tag identifying which flags it contains.  By
     60 // convention, the tag name should match the sub-message name.
     61 message ExperimentsSpecifics {
     62   optional KeystoreEncryptionFlags keystore_encryption = 1;
     63   optional HistoryDeleteDirectives history_delete_directives = 2;
     64   optional AutofillCullingFlags autofill_culling = 3;
     65   optional FaviconSyncFlags favicon_sync = 4;
     66   optional PreCommitUpdateAvoidanceFlags pre_commit_update_avoidance = 5;
     67   optional GcmChannelFlags gcm_channel = 6;
     68   optional EnhancedBookmarksFlags enhanced_bookmarks = 7;
     69   optional GcmInvalidationsFlags gcm_invalidations = 8;
     70 }
     71