// 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.
//
// Sync protocol datatype extension for an extension setting.

// Update proto_value_conversions{.h,.cc,_unittest.cc} if you change
// any fields in this file.

syntax = "proto2";

option optimize_for = LITE_RUNTIME;
option retain_unknown_fields = true;

package sync_pb;

// Properties of extension setting sync objects.
message ExtensionSettingSpecifics {
  // Id of the extension the setting is for.
  optional string extension_id = 1;

  // Setting key.
  optional string key = 2;

  // Setting value serialized as JSON.
  optional string value = 3;
}

