// Copyright (c) 2010 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 themes.

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

import "sync.proto";

// Properties of theme sync objects.
message ThemeSpecifics {
  // If set, we're using a custom theme and all custom_* fields should be
  // present.  If not set, we use the default or system theme (see below)
  // and all custom_* fields should be omitted.
  optional bool use_custom_theme = 1;
  // This field is only set (i.e., not cleared) on platforms that have
  // a distinction between the system theme and the default theme, but
  // other platforms must be careful to pass through the set state (not
  // just the value) of this flag.
  //
  // If true, we use the system theme by default (i.e., when we don't use
  // a custom theme) for platforms that make a distinction between the
  // default theme and the system theme.  Has no effect if use_custom_theme
  // is set.
  optional bool use_system_theme_by_default = 2;

  // Custom-theme-specific fields.
  optional string custom_theme_name = 3;
  optional string custom_theme_id = 4;
  optional string custom_theme_update_url = 5;
}

extend EntitySpecifics {
  optional ThemeSpecifics theme = 41210;
}