summaryrefslogtreecommitdiffstats
path: root/browser/components/webextensions/schemas/omnibox.json
diff options
context:
space:
mode:
Diffstat (limited to 'browser/components/webextensions/schemas/omnibox.json')
-rw-r--r--browser/components/webextensions/schemas/omnibox.json248
1 files changed, 248 insertions, 0 deletions
diff --git a/browser/components/webextensions/schemas/omnibox.json b/browser/components/webextensions/schemas/omnibox.json
new file mode 100644
index 000000000..34428fab7
--- /dev/null
+++ b/browser/components/webextensions/schemas/omnibox.json
@@ -0,0 +1,248 @@
+// 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.
+[
+ {
+ "namespace": "manifest",
+ "types": [
+ {
+ "$extend": "WebExtensionManifest",
+ "properties": {
+ "omnibox": {
+ "type": "object",
+ "additionalProperties": { "$ref": "UnrecognizedProperty" },
+ "properties": {
+ "keyword": {
+ "type": "string",
+ "pattern": "^[^?\\s:]([^\\s:]*[^/\\s:])?$"
+ }
+ },
+ "optional": true
+ }
+ }
+ }
+ ]
+ },
+ {
+ "namespace": "omnibox",
+ "description": "The omnibox API allows you to register a keyword with Firefox's address bar.",
+ "permissions": ["manifest:omnibox"],
+ "types": [
+ {
+ "id": "DescriptionStyleType",
+ "type": "string",
+ "description": "The style type.",
+ "enum": ["url", "match", "dim"]
+ },
+ {
+ "id": "OnInputEnteredDisposition",
+ "type": "string",
+ "enum": ["currentTab", "newForegroundTab", "newBackgroundTab"],
+ "description": "The window disposition for the omnibox query. This is the recommended context to display results. For example, if the omnibox command is to navigate to a certain URL, a disposition of 'newForegroundTab' means the navigation should take place in a new selected tab."
+ },
+ {
+ "id": "SuggestResult",
+ "type": "object",
+ "description": "A suggest result.",
+ "properties": {
+ "content": {
+ "type": "string",
+ "minLength": 1,
+ "description": "The text that is put into the URL bar, and that is sent to the extension when the user chooses this entry."
+ },
+ "description": {
+ "type": "string",
+ "minLength": 1,
+ "description": "The text that is displayed in the URL dropdown. Can contain XML-style markup for styling. The supported tags are 'url' (for a literal URL), 'match' (for highlighting text that matched what the user's query), and 'dim' (for dim helper text). The styles can be nested, eg. <dim><match>dimmed match</match></dim>. You must escape the five predefined entities to display them as text: stackoverflow.com/a/1091953/89484 "
+ },
+ "descriptionStyles": {
+ "optional": true,
+ "unsupported": true,
+ "type": "array",
+ "description": "An array of style ranges for the description, as provided by the extension.",
+ "items": {
+ "type": "object",
+ "description": "The style ranges for the description, as provided by the extension.",
+ "properties": {
+ "offset": { "type": "integer" },
+ "type": { "description": "The style type", "$ref": "DescriptionStyleType"},
+ "length": { "type": "integer", "optional": true }
+ }
+ }
+ },
+ "descriptionStylesRaw": {
+ "optional": true,
+ "unsupported": true,
+ "type": "array",
+ "description": "An array of style ranges for the description, as provided by ToValue().",
+ "items": {
+ "type": "object",
+ "description": "The style ranges for the description, as provided by ToValue().",
+ "properties": {
+ "offset": { "type": "integer" },
+ "type": { "type": "integer" }
+ }
+ }
+ }
+ }
+ },
+ {
+ "id": "DefaultSuggestResult",
+ "type": "object",
+ "description": "A suggest result.",
+ "properties": {
+ "description": {
+ "type": "string",
+ "minLength": 1,
+ "description": "The text that is displayed in the URL dropdown."
+ },
+ "descriptionStyles": {
+ "optional": true,
+ "unsupported": true,
+ "type": "array",
+ "description": "An array of style ranges for the description, as provided by the extension.",
+ "items": {
+ "type": "object",
+ "description": "The style ranges for the description, as provided by the extension.",
+ "properties": {
+ "offset": { "type": "integer" },
+ "type": { "description": "The style type", "$ref": "DescriptionStyleType"},
+ "length": { "type": "integer", "optional": true }
+ }
+ }
+ },
+ "descriptionStylesRaw": {
+ "optional": true,
+ "unsupported": true,
+ "type": "array",
+ "description": "An array of style ranges for the description, as provided by ToValue().",
+ "items": {
+ "type": "object",
+ "description": "The style ranges for the description, as provided by ToValue().",
+ "properties": {
+ "offset": { "type": "integer" },
+ "type": { "type": "integer" }
+ }
+ }
+ }
+ }
+ }
+ ],
+ "functions": [
+ {
+ "name": "setDefaultSuggestion",
+ "type": "function",
+ "description": "Sets the description and styling for the default suggestion. The default suggestion is the text that is displayed in the first suggestion row underneath the URL bar.",
+ "parameters": [
+ {
+ "name": "suggestion",
+ "$ref": "DefaultSuggestResult",
+ "description": "A partial SuggestResult object, without the 'content' parameter."
+ }
+ ]
+ }
+ ],
+ "events": [
+ {
+ "name": "onInputStarted",
+ "type": "function",
+ "description": "User has started a keyword input session by typing the extension's keyword. This is guaranteed to be sent exactly once per input session, and before any onInputChanged events.",
+ "parameters": []
+ },
+ {
+ "name": "onInputChanged",
+ "type": "function",
+ "description": "User has changed what is typed into the omnibox.",
+ "parameters": [
+ {
+ "type": "string",
+ "name": "text"
+ },
+ {
+ "name": "suggest",
+ "type": "function",
+ "description": "A callback passed to the onInputChanged event used for sending suggestions back to the browser.",
+ "parameters": [
+ {
+ "name": "suggestResults",
+ "type": "array",
+ "description": "Array of suggest results",
+ "items": {
+ "$ref": "SuggestResult"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "onInputEntered",
+ "type": "function",
+ "description": "User has accepted what is typed into the omnibox.",
+ "parameters": [
+ {
+ "type": "string",
+ "name": "text"
+ },
+ {
+ "name": "disposition",
+ "$ref": "OnInputEnteredDisposition"
+ }
+ ]
+ },
+ {
+ "name": "onInputCancelled",
+ "type": "function",
+ "description": "User has ended the keyword input session without accepting the input.",
+ "parameters": []
+ }
+ ]
+ },
+ {
+ "namespace": "omnibox_internal",
+ "description": "The internal namespace used by the omnibox API.",
+ "defaultContexts": ["addon_parent_only"],
+ "functions": [
+ {
+ "name": "addSuggestions",
+ "type": "function",
+ "async": "callback",
+ "description": "Internal function used by omnibox.onInputChanged for adding search suggestions",
+ "parameters": [
+ {
+ "name": "id",
+ "type": "integer",
+ "description": "The ID of the callback received by onInputChangedInternal"
+ },
+ {
+ "name": "suggestResults",
+ "type": "array",
+ "description": "Array of suggest results",
+ "items": {
+ "$ref": "omnibox.SuggestResult"
+ }
+ },
+ {
+ "type": "function",
+ "name": "callback",
+ "optional": true,
+ "parameters": []
+ }
+ ]
+ }
+ ],
+ "events": [
+ {
+ "name": "onInputChanged",
+ "type": "function",
+ "description": "Identical to omnibox.onInputChanged except no 'suggest' callback is provided.",
+ "parameters": [
+ {
+ "type": "string",
+ "name": "text"
+ }
+ ]
+ }
+ ]
+ }
+] \ No newline at end of file