// 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": { "browser_action": { "type": "object", "additionalProperties": { "$ref": "UnrecognizedProperty" }, "properties": { "default_title": { "type": "string", "optional": true, "preprocess": "localize" }, "default_icon": { "$ref": "IconPath", "optional": true }, "default_popup": { "type": "string", "format": "relativeUrl", "optional": true, "preprocess": "localize" }, "browser_style": { "type": "boolean", "optional": true } }, "optional": true } } } ] }, { "namespace": "browserAction", "description": "Use browser actions to put icons in the main browser toolbar, to the right of the address bar. In addition to its icon, a browser action can also have a tooltip, a badge, and a popup.", "permissions": ["manifest:browser_action"], "types": [ { "id": "ColorArray", "type": "array", "items": { "type": "integer", "minimum": 0, "maximum": 255 }, "minItems": 4, "maxItems": 4 }, { "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 canvas element)." } ], "functions": [ { "name": "setTitle", "type": "function", "description": "Sets the title of the browser action. This shows up in the tooltip.", "async": "callback", "parameters": [ { "name": "details", "type": "object", "properties": { "title": { "type": "string", "description": "The string the browser action should display when moused over." }, "tabId": { "type": "integer", "optional": true, "description": "Limits the change to when a particular tab is selected. Automatically resets when the tab is closed." } } }, { "type": "function", "name": "callback", "optional": true, "parameters": [] } ] }, { "name": "getTitle", "type": "function", "description": "Gets the title of the browser action.", "async": "callback", "parameters": [ { "name": "details", "type": "object", "properties": { "tabId": { "type": "integer", "optional": true, "description": "Specify the tab to get the title from. If no tab is specified, the non-tab-specific title is returned." } } }, { "type": "function", "name": "callback", "parameters": [ { "name": "result", "type": "string" } ] } ] }, { "name": "setIcon", "type": "function", "description": "Sets the icon for the browser 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 path or the imageData property must be specified.", "async": "callback", "parameters": [ { "name": "details", "type": "object", "properties": { "imageData": { "choices": [ { "$ref": "ImageDataType" }, { "type": "object", "additionalProperties": {"$ref": "ImageDataType"} } ], "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 scale, then image with size scale * 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 scale, then image with size scale * 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": "Limits the change to when a particular tab is selected. Automatically resets when the tab is closed." } } }, { "type": "function", "name": "callback", "optional": true, "parameters": [] } ] }, { "name": "setPopup", "type": "function", "description": "Sets the html document to be opened as a popup when the user clicks on the browser action's icon.", "async": "callback", "parameters": [ { "name": "details", "type": "object", "properties": { "tabId": { "type": "integer", "optional": true, "minimum": 0, "description": "Limits the change to when a particular tab is selected. Automatically resets when the tab is closed." }, "popup": { "type": "string", "description": "The html file to show in a popup. If set to the empty string (''), no popup is shown." } } }, { "type": "function", "name": "callback", "optional": true, "parameters": [] } ] }, { "name": "getPopup", "type": "function", "description": "Gets the html document set as the popup for this browser action.", "async": "callback", "parameters": [ { "name": "details", "type": "object", "properties": { "tabId": { "type": "integer", "optional": true, "description": "Specify the tab to get the popup from. If no tab is specified, the non-tab-specific popup is returned." } } }, { "type": "function", "name": "callback", "parameters": [ { "name": "result", "type": "string" } ] } ] }, { "name": "setBadgeText", "type": "function", "description": "Sets the badge text for the browser action. The badge is displayed on top of the icon.", "async": "callback", "parameters": [ { "name": "details", "type": "object", "properties": { "text": { "type": "string", "description": "Any number of characters can be passed, but only about four can fit in the space." }, "tabId": { "type": "integer", "optional": true, "description": "Limits the change to when a particular tab is selected. Automatically resets when the tab is closed." } } }, { "type": "function", "name": "callback", "optional": true, "parameters": [] } ] }, { "name": "getBadgeText", "type": "function", "description": "Gets the badge text of the browser action. If no tab is specified, the non-tab-specific badge text is returned.", "async": "callback", "parameters": [ { "name": "details", "type": "object", "properties": { "tabId": { "type": "integer", "optional": true, "description": "Specify the tab to get the badge text from. If no tab is specified, the non-tab-specific badge text is returned." } } }, { "type": "function", "name": "callback", "parameters": [ { "name": "result", "type": "string" } ] } ] }, { "name": "setBadgeBackgroundColor", "type": "function", "description": "Sets the background color for the badge.", "async": "callback", "parameters": [ { "name": "details", "type": "object", "properties": { "color": { "description": "An array of four integers in the range [0,255] that make up the RGBA color of the badge. For example, opaque red is [255, 0, 0, 255]. Can also be a string with a CSS value, with opaque red being #FF0000 or #F00.", "choices": [ {"type": "string"}, {"$ref": "ColorArray"} ] }, "tabId": { "type": "integer", "optional": true, "description": "Limits the change to when a particular tab is selected. Automatically resets when the tab is closed." } } }, { "type": "function", "name": "callback", "optional": true, "parameters": [] } ] }, { "name": "getBadgeBackgroundColor", "type": "function", "description": "Gets the background color of the browser action.", "async": "callback", "parameters": [ { "name": "details", "type": "object", "properties": { "tabId": { "type": "integer", "optional": true, "description": "Specify the tab to get the badge background color from. If no tab is specified, the non-tab-specific badge background color is returned." } } }, { "type": "function", "name": "callback", "parameters": [ { "name": "result", "$ref": "ColorArray" } ] } ] }, { "name": "enable", "type": "function", "description": "Enables the browser action for a tab. By default, browser actions are enabled.", "async": "callback", "parameters": [ { "type": "integer", "optional": true, "name": "tabId", "minimum": 0, "description": "The id of the tab for which you want to modify the browser action." }, { "type": "function", "name": "callback", "optional": true, "parameters": [] } ] }, { "name": "disable", "type": "function", "description": "Disables the browser action for a tab.", "async": "callback", "parameters": [ { "type": "integer", "optional": true, "name": "tabId", "minimum": 0, "description": "The id of the tab for which you want to modify the browser action." }, { "type": "function", "name": "callback", "optional": true, "parameters": [] } ] }, { "name": "openPopup", "type": "function", "description": "Opens the extension popup window in the active window but does not grant tab permissions.", "unsupported": true, "async": "callback", "parameters": [ { "type": "function", "name": "callback", "parameters": [ { "name": "popupView", "type": "object", "optional": true, "description": "JavaScript 'window' object for the popup window if it was succesfully opened.", "additionalProperties": { "type": "any" } } ] } ] } ], "events": [ { "name": "onClicked", "type": "function", "description": "Fired when a browser action icon is clicked. This event will not fire if the browser action has a popup.", "parameters": [ { "name": "tab", "$ref": "tabs.Tab" } ] } ] } ]