1[
2  {
3    "namespace": "manifest",
4    "types": [
5      {
6        "$extend": "WebExtensionManifest",
7        "properties": {
8          "chrome_settings_overrides": {
9            "type": "object",
10            "optional": true,
11            "additionalProperties": { "$ref": "UnrecognizedProperty" },
12            "properties": {
13              "homepage": {
14                "type": "string",
15                "format": "homepageUrl",
16                "optional": true,
17                "preprocess": "localize"
18              },
19             "search_provider": {
20                "type": "object",
21                "optional": true,
22                "additionalProperties": { "$ref": "UnrecognizedProperty" },
23                "properties": {
24                  "name": {
25                    "type": "string",
26                    "preprocess": "localize"
27                  },
28                  "keyword": {
29                    "optional": true,
30                    "choices": [
31                      {
32                        "type": "string",
33                        "preprocess": "localize"
34                      },
35                      {
36                        "type": "array",
37                        "items": {
38                          "type": "string",
39                          "preprocess": "localize"
40                        },
41                        "minItems": 1
42                      }
43                    ]
44                  },
45                  "search_url": {
46                    "type": "string",
47                    "format": "url",
48                    "pattern": "^(https://|http://(localhost|127\\.0\\.0\\.1|\\[::1\\])(:\\d*)?(/|$)).*$",
49                    "preprocess": "localize"
50                  },
51                  "favicon_url": {
52                    "choices": [
53                      {
54                        "type": "string",
55                        "format": "relativeUrl",
56                        "max_manifest_version": 2
57                      },
58                      {
59                        "type": "string",
60                        "format": "strictRelativeUrl"
61                      }
62                    ],
63                    "optional": true,
64                    "preprocess": "localize"
65                  },
66                  "suggest_url": {
67                    "type": "string",
68                    "optional": true,
69                    "pattern": "^$|^(https://|http://(localhost|127\\.0\\.0\\.1|\\[::1\\])(:\\d*)?(/|$)).*$",
70                    "preprocess": "localize"
71                  },
72                  "instant_url": {
73                    "type": "string",
74                    "optional": true,
75                    "format": "url",
76                    "preprocess": "localize",
77                    "deprecated": "Unsupported on Firefox at this time."
78                  },
79                  "image_url": {
80                    "type": "string",
81                    "optional": true,
82                    "format": "url",
83                    "preprocess": "localize",
84                    "deprecated": "Unsupported on Firefox at this time."
85                  },
86                  "search_url_get_params": {
87                    "type": "string",
88                    "optional": true,
89                    "preprocess": "localize",
90                    "description": "GET parameters to the search_url as a query string."
91                  },
92                  "search_url_post_params": {
93                    "type": "string",
94                    "optional": true,
95                    "preprocess": "localize",
96                    "description": "POST parameters to the search_url as a query string."
97                  },
98                  "suggest_url_get_params": {
99                    "type": "string",
100                    "optional": true,
101                    "preprocess": "localize",
102                    "description": "GET parameters to the suggest_url as a query string."
103                  },
104                  "suggest_url_post_params": {
105                    "type": "string",
106                    "optional": true,
107                    "preprocess": "localize",
108                    "description": "POST parameters to the suggest_url as a query string."
109                  },
110                  "instant_url_post_params": {
111                    "type": "string",
112                    "optional": true,
113                    "preprocess": "localize",
114                    "deprecated": "Unsupported on Firefox at this time."
115                  },
116                  "image_url_post_params": {
117                    "type": "string",
118                    "optional": true,
119                    "preprocess": "localize",
120                    "deprecated": "Unsupported on Firefox at this time."
121                  },
122                  "search_form": {
123                    "type": "string",
124                    "optional": true,
125                    "format": "url",
126                    "pattern": "^(https://|http://(localhost|127\\.0\\.0\\.1|\\[::1\\])(:\\d*)?(/|$)).*$",
127                    "preprocess": "localize"
128                  },
129                  "alternate_urls": {
130                    "type": "array",
131                    "items": {
132                      "type": "string",
133                      "format": "url",
134                      "preprocess": "localize"
135                    },
136                    "optional": true,
137                    "deprecated": "Unsupported on Firefox at this time."
138                  },
139                  "prepopulated_id": {
140                    "type": "integer",
141                    "optional": true,
142                    "deprecated": "Unsupported on Firefox."
143                  },
144                  "encoding": {
145                    "type": "string",
146                    "optional": true,
147                    "description": "Encoding of the search term."
148                  },
149                  "is_default": {
150                    "type": "boolean",
151                    "optional": true,
152                    "description": "Sets the default engine to a built-in engine only."
153                  },
154                  "params": {
155                    "optional": true,
156                    "type": "array",
157                    "items": {
158                      "type": "object",
159                      "properties": {
160                        "name": {
161                          "type": "string",
162                          "description": "A url parameter name"
163                        },
164                        "condition": {
165                          "type": "string",
166                          "optional": true,
167                          "enum": ["purpose", "pref"],
168                          "description": "The type of param can be either \"purpose\" or \"pref\"."
169                        },
170                        "pref": {
171                          "type": "string",
172                          "optional": true,
173                          "description": "The preference to retrieve the value from.",
174                          "preprocess": "localize"
175                        },
176                        "purpose": {
177                          "type": "string",
178                          "optional": true,
179                          "enum": ["contextmenu", "searchbar", "homepage", "keyword", "newtab"],
180                          "description": "The context that initiates a search, required if condition is \"purpose\"."
181                        },
182                        "value": {
183                          "type": "string",
184                          "optional": true,
185                          "description": "A url parameter value.",
186                          "preprocess": "localize"
187                        }
188                      }
189                    },
190                    "description": "A list of optional search url parameters. This allows the additon of search url parameters based on how the search is performed in Firefox."
191                  }
192                }
193              }
194            }
195          }
196        }
197      }
198    ]
199  }
200]
201