// 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 custom search engines.

// 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 custom search engine sync objects.
message SearchEngineSpecifics {
  // The description of the search engine.
  optional string short_name = 1;
  // The search engine keyword for omnibox access.
  optional string keyword = 2;
  // A URL to the favicon to show in the search engines options page.
  optional string favicon_url = 3;
  // The actual parameterized search engine query URL.
  optional string url = 4;
  // A flag signifying whether it is safe to automatically modify this search
  // engine entry or not.
  optional bool safe_for_autoreplace = 5;
  // The URL to the OSD file this search engine entry came from.
  optional string originating_url = 6;
  // The date this search engine entry was created. A UTC timestamp with units
  // in microseconds.
  optional int64 date_created = 7;
  // A list of supported input encodings.
  optional string input_encodings = 8;
  // Whether this entry is shown in the list of default search engines or not.
  optional bool show_in_default_list = 9;
  // The parameterized URL that provides suggestions as the user types.
  optional string suggestions_url = 10;
  // The ID associated with the prepopulate data this search engine comes from.
  // Set to zero if it was not prepopulated.
  optional int32 prepopulate_id = 11;
  // DEPRECATED: Whether to autogenerate a keyword for the search engine or not.
  // Do not write to this field in the future.  We preserve this for now so we
  // can read the field in order to migrate existing data that sets this bit.
  optional bool autogenerate_keyword = 12;
  // ID 13 reserved - previously used by |logo_id|, now deprecated.
  // Obsolete field. This used to represent whether or not this search engine
  // entry was created automatically by an administrator via group policy. This
  // notion no longer exists amongst synced search engines as we do not want to
  // sync managed search engines.
  // optional bool deprecated_created_by_policy = 14;
  // The parameterized URL that is used for Instant results.
  optional string instant_url = 15;
  // ID 16 reserved - previously used by |id|, now deprecated.
  // The last time this entry was modified by a user. A UTC timestamp with units
  // in microseconds.
  optional int64 last_modified = 17;
  // The primary identifier of this search engine entry for Sync.
  optional string sync_guid = 18;
  // A list of URL patterns that can be used, in addition to |url| and
  // |instant_url|, to extract search terms from a URL.
  repeated string alternate_urls = 19;
  // Parameter that, if present in a search URL, indicates that Chrome should
  // perform search terms replacement in the omnibox.
  optional string search_terms_replacement_key = 20;
  // The parameterized URL that provides image results according to the image
  // content or image URL provided by user.
  optional string image_url = 21;

  // The following post_params are comma-separated lists used to specify the
  // post parameters for the corresponding search URL.
  optional string search_url_post_params = 22;
  optional string suggestions_url_post_params = 23;
  optional string instant_url_post_params = 24;
  optional string image_url_post_params = 25;

  // The parameterized URL for a search provider specified new tab page.
  optional string new_tab_url = 26;
}