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 // This file is used by json_to_struct.py to generate prepopulated_engine.h/cc. 6 // Any time you modify this file regenerate the .h/.cc. See 7 // prepopulated_engines.json for details. 8 9 { 10 "type_name": "PrepopulatedEngine", 11 "headers": [ 12 "chrome/browser/search_engines/search_engine_type.h" 13 ], 14 "schema": [ 15 { "field": "name", "type": "string16" }, 16 { "field": "keyword", "type": "string16" }, 17 { "field": "favicon_url", "type": "string" }, 18 { "field": "search_url", "type": "string" }, 19 { 20 "field": "encoding", 21 "type": "string", 22 "default": "UTF-8", 23 "optional": true 24 }, 25 // If omitted, this engine does not support suggestions. 26 { "field": "suggest_url", "type": "string", "optional": true }, 27 // If omitted, this engine does not support instant. 28 { "field": "instant_url", "type": "string", "optional": true }, 29 // If omitted, this engine does not support image search. 30 { "field": "image_url", "type": "string", "optional": true }, 31 // If omitted, this engine does not support rendering a new tab page. 32 { "field": "new_tab_url", "type": "string", "optional": true }, 33 // The followings are post parameters for the corresponding search URL. 34 // If omitted, a GET request will be sent when using the corresponding 35 // search URL. Otherwise, a POST request will be sent. 36 // The string of post parameters consists of comma-separated name/value 37 // pairs, e.g.: 38 // "name1=value1,name2={template1},...". 39 // In each name/value pair, the equal sign('=') must be delimiter between 40 // name and value. In above example, the "value1" is the constant value for 41 // "name1", which is not replaceable. The {template1} is a replaceable value 42 // for name2, the actual value will be replaced with real search terms data. 43 { "field": "search_url_post_params", "type": "string", "optional": true }, 44 { "field": "suggest_url_post_params", "type": "string", "optional": true }, 45 { "field": "instant_url_post_params", "type": "string", "optional": true }, 46 { "field": "image_url_post_params", "type": "string", "optional": true }, 47 // A list of URL patterns that can be used, in addition to |search_url|, 48 // to extract search terms from a URL. 49 // If "search_url_post_params" is not empty, then all alternate URLs are 50 // sent using POST with using same post parameters as the search URL. 51 { 52 "field": "alternate_urls", 53 "type": "array", 54 "contents": { "type": "string" }, 55 "optional": true 56 }, 57 // A parameter that, if present in the query or ref parameters of a 58 // search_url or instant_url, causes Chrome to replace the URL with the 59 // search term. This can be {google:instantExtendedEnabledKey}. 60 { 61 "field": "search_terms_replacement_key", 62 "type": "string", 63 "optional": true 64 }, 65 { 66 "field": "type", 67 "type": "enum", 68 "ctype": "SearchEngineType", 69 "default": "SEARCH_ENGINE_OTHER", 70 "optional": true 71 }, 72 // Unique id for this prepopulate engine (corresponds to 73 // TemplateURL::prepopulate_id). This ID must be greater than zero and must 74 // remain the same for a particular site regardless of how the url changes; 75 // the ID is used when modifying engine data in subsequent versions, so that 76 // we can find the "old" entry to update even when the name or URL changes. 77 // 78 // This ID must be "unique" within one country's prepopulated data, but two 79 // entries can share an ID if they represent the "same" engine (e.g. Yahoo! 80 // US vs. Yahoo! UK) and will not appear in the same user-visible data set. 81 // This facilitates changes like adding more specific per-country data in 82 // the future; in such a case the localized engines will transparently 83 // replace the previous, non-localized versions. For engines where we need 84 // two instances to appear for one country (e.g. Bing Search U.S. English 85 // and Spanish), we must use two different unique IDs (and different 86 // keywords). 87 // 88 // See prepopulated_engines.json for the list of available IDs. 89 { "field": "id", "type": "int" } 90 ] 91 } 92