diff options
Diffstat (limited to 'browser/components/webextensions/schemas/omnibox.json')
-rw-r--r-- | browser/components/webextensions/schemas/omnibox.json | 248 |
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 |