summaryrefslogtreecommitdiffstats
path: root/browser/components/extensions/schemas/sidebar_action.json
diff options
context:
space:
mode:
Diffstat (limited to 'browser/components/extensions/schemas/sidebar_action.json')
-rw-r--r--browser/components/extensions/schemas/sidebar_action.json268
1 files changed, 268 insertions, 0 deletions
diff --git a/browser/components/extensions/schemas/sidebar_action.json b/browser/components/extensions/schemas/sidebar_action.json
new file mode 100644
index 0000000000..b8bb95976c
--- /dev/null
+++ b/browser/components/extensions/schemas/sidebar_action.json
@@ -0,0 +1,268 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+[
+ {
+ "namespace": "manifest",
+ "types": [
+ {
+ "$extend": "WebExtensionManifest",
+ "properties": {
+ "sidebar_action": {
+ "type": "object",
+ "additionalProperties": { "$ref": "UnrecognizedProperty" },
+ "properties": {
+ "default_title": {
+ "type": "string",
+ "optional": true,
+ "preprocess": "localize"
+ },
+ "default_icon": {
+ "$ref": "IconPath",
+ "optional": true
+ },
+ "browser_style": {
+ "type": "boolean",
+ "optional": true,
+ "description": "Defaults to true in Manifest V2; Deprecated in Manifest V3."
+ },
+ "default_panel": {
+ "type": "string",
+ "format": "strictRelativeUrl",
+ "preprocess": "localize"
+ },
+ "open_at_install": {
+ "type": "boolean",
+ "optional": true,
+ "default": true,
+ "description": "Whether or not the sidebar is opened at install. Default is <code>true</code>."
+ }
+ },
+ "optional": true
+ }
+ }
+ }
+ ]
+ },
+ {
+ "namespace": "sidebarAction",
+ "description": "Use sidebar actions to add a sidebar to Firefox.",
+ "permissions": ["manifest:sidebar_action"],
+ "types": [
+ {
+ "id": "ImageDataType",
+ "type": "object",
+ "isInstanceOf": "ImageData",
+ "additionalProperties": { "type": "any" },
+ "postprocess": "convertImageDataToURL",
+ "description": "Pixel data for an image. Must be an ImageData object (for example, from a <code>canvas</code> element)."
+ }
+ ],
+ "functions": [
+ {
+ "name": "setTitle",
+ "type": "function",
+ "description": "Sets the title of the sidebar action. This shows up in the tooltip.",
+ "async": true,
+ "parameters": [
+ {
+ "name": "details",
+ "type": "object",
+ "properties": {
+ "title": {
+ "choices": [{ "type": "string" }, { "type": "null" }],
+ "description": "The string the sidebar action should display when moused over."
+ },
+ "tabId": {
+ "type": "integer",
+ "optional": true,
+ "description": "Sets the sidebar title for the tab specified by tabId. Automatically resets when the tab is closed."
+ },
+ "windowId": {
+ "type": "integer",
+ "optional": true,
+ "minimum": -2,
+ "description": "Sets the sidebar title for the window specified by windowId."
+ }
+ }
+ }
+ ]
+ },
+ {
+ "name": "getTitle",
+ "type": "function",
+ "description": "Gets the title of the sidebar action.",
+ "async": true,
+ "parameters": [
+ {
+ "name": "details",
+ "type": "object",
+ "properties": {
+ "tabId": {
+ "type": "integer",
+ "optional": true,
+ "description": "Specify the tab to get the title from. If no tab nor window is specified, the global title is returned."
+ },
+ "windowId": {
+ "type": "integer",
+ "optional": true,
+ "minimum": -2,
+ "description": "Specify the window to get the title from. If no tab nor window is specified, the global title is returned."
+ }
+ }
+ }
+ ]
+ },
+ {
+ "name": "setIcon",
+ "type": "function",
+ "description": "Sets the icon for the sidebar action. The icon can be specified either as the path to an image file or as the pixel data from a canvas element, or as dictionary of either one of those. Either the <strong>path</strong> or the <strong>imageData</strong> property must be specified.",
+ "async": true,
+ "parameters": [
+ {
+ "name": "details",
+ "type": "object",
+ "properties": {
+ "imageData": {
+ "choices": [
+ { "$ref": "ImageDataType" },
+ {
+ "type": "object",
+ "patternProperties": {
+ "^[1-9]\\d*$": { "$ref": "ImageDataType" }
+ },
+ "additionalProperties": false
+ }
+ ],
+ "optional": true,
+ "description": "Either an ImageData object or a dictionary {size -> ImageData} representing icon to be set. If the icon is specified as a dictionary, the actual image to be used is chosen depending on screen's pixel density. If the number of image pixels that fit into one screen space unit equals <code>scale</code>, then image with size <code>scale</code> * 19 will be selected. Initially only scales 1 and 2 will be supported. At least one image must be specified. Note that 'details.imageData = foo' is equivalent to 'details.imageData = {'19': foo}'"
+ },
+ "path": {
+ "choices": [
+ { "type": "string" },
+ {
+ "type": "object",
+ "additionalProperties": { "type": "string" }
+ }
+ ],
+ "optional": true,
+ "description": "Either a relative image path or a dictionary {size -> relative image path} pointing to icon to be set. If the icon is specified as a dictionary, the actual image to be used is chosen depending on screen's pixel density. If the number of image pixels that fit into one screen space unit equals <code>scale</code>, then image with size <code>scale</code> * 19 will be selected. Initially only scales 1 and 2 will be supported. At least one image must be specified. Note that 'details.path = foo' is equivalent to 'details.imageData = {'19': foo}'"
+ },
+ "tabId": {
+ "type": "integer",
+ "optional": true,
+ "description": "Sets the sidebar icon for the tab specified by tabId. Automatically resets when the tab is closed."
+ },
+ "windowId": {
+ "type": "integer",
+ "optional": true,
+ "minimum": -2,
+ "description": "Sets the sidebar icon for the window specified by windowId."
+ }
+ }
+ }
+ ]
+ },
+ {
+ "name": "setPanel",
+ "type": "function",
+ "description": "Sets the url to the html document to be opened in the sidebar when the user clicks on the sidebar action's icon.",
+ "async": true,
+ "parameters": [
+ {
+ "name": "details",
+ "type": "object",
+ "properties": {
+ "tabId": {
+ "type": "integer",
+ "optional": true,
+ "minimum": 0,
+ "description": "Sets the sidebar url for the tab specified by tabId. Automatically resets when the tab is closed."
+ },
+ "windowId": {
+ "type": "integer",
+ "optional": true,
+ "minimum": -2,
+ "description": "Sets the sidebar url for the window specified by windowId."
+ },
+ "panel": {
+ "choices": [{ "type": "string" }, { "type": "null" }],
+ "description": "The url to the html file to show in a sidebar. If set to the empty string (''), no sidebar is shown."
+ }
+ }
+ }
+ ]
+ },
+ {
+ "name": "getPanel",
+ "type": "function",
+ "description": "Gets the url to the html document set as the panel for this sidebar action.",
+ "async": true,
+ "parameters": [
+ {
+ "name": "details",
+ "type": "object",
+ "properties": {
+ "tabId": {
+ "type": "integer",
+ "optional": true,
+ "description": "Specify the tab to get the panel from. If no tab nor window is specified, the global panel is returned."
+ },
+ "windowId": {
+ "type": "integer",
+ "optional": true,
+ "minimum": -2,
+ "description": "Specify the window to get the panel from. If no tab nor window is specified, the global panel is returned."
+ }
+ }
+ }
+ ]
+ },
+ {
+ "name": "open",
+ "type": "function",
+ "requireUserInput": true,
+ "description": "Opens the extension sidebar in the active window.",
+ "async": true,
+ "parameters": []
+ },
+ {
+ "name": "close",
+ "type": "function",
+ "requireUserInput": true,
+ "description": "Closes the extension sidebar in the active window if the sidebar belongs to the extension.",
+ "async": true,
+ "parameters": []
+ },
+ {
+ "name": "toggle",
+ "type": "function",
+ "requireUserInput": true,
+ "description": "Toggles the extension sidebar in the active window.",
+ "async": true,
+ "parameters": []
+ },
+ {
+ "name": "isOpen",
+ "type": "function",
+ "description": "Checks whether the sidebar action is open.",
+ "async": true,
+ "parameters": [
+ {
+ "name": "details",
+ "type": "object",
+ "properties": {
+ "windowId": {
+ "type": "integer",
+ "minimum": -2,
+ "optional": true,
+ "description": "Specify the window to get the openness from."
+ }
+ }
+ }
+ ]
+ }
+ ]
+ }
+]