// Copyright (c) 2023 Microsoft, GmbH // Use of this source code is governed by the MIT license that can be // found in the LICENSE file. [ { "namespace": "action", "description": "Use the chrome.action API to control the extension's icon in the Google Chrome toolbar.", "compiler_options": { "implemented_in": "electron/shell/browser/extensions/api/extension_action/extension_action_api.h" }, "types": [ { "id": "TabDetails", "type": "object", "properties": { "tabId": { "type": "integer", "optional": true, "minimum": 0, "description": "The ID of the tab to query state for. If no tab is specified, the non-tab-specific state is returned." } } }, { "id": "UserSettings", "type": "object", "properties": { "isOnToolbar": { "type": "boolean", "description": "Whether the extension's action icon is visible on browser windows' top-level toolbar (i.e., whether the extension has been 'pinned' by the user)." } }, "description": "The collection of user-specified settings relating to an extension's action." }, { "id": "OpenPopupOptions", "type": "object", "properties": { "windowId": { "type": "integer", "description": "The id of the window to open the action popup in. Defaults to the currently-active window if unspecified.", "optional": true } } } ], "functions": [ { "name": "setTitle", "deprecated": "chrome.action.setTitle is not supported in Electron", "type": "function", "description": "Sets the title of the action. This shows up in the tooltip.", "parameters": [ { "name": "details", "type": "object", "properties": { "title": { "type": "string", "description": "The string the action should display when moused over." }, "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." } } } ], "returns_async": { "name": "callback", "parameters": [], "optional": true } }, { "name": "getTitle", "deprecated": "chrome.action.getTitle is not supported in Electron", "type": "function", "description": "Gets the title of the action.", "parameters": [ { "name": "details", "$ref": "TabDetails" } ], "returns_async": { "name": "callback", "parameters": [ { "name": "result", "type": "string" } ] } }, { "name": "setIcon", "deprecated": "chrome.action.setIcon is not supported in Electron", "type": "function", "description": "Sets the icon for the 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.", "parameters": [ { "name": "details", "type": "object", "properties": { "imageData": { "choices": [ { "$ref": "browserAction.ImageDataType" }, { "type": "object", "additionalProperties": { "type": "any" } } ], "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 * n will be selected, where n is the size of the icon in the UI. At least one image must be specified. Note that 'details.imageData = foo' is equivalent to 'details.imageData = {'16': foo}'" }, "path": { "choices": [ { "type": "string" }, { "type": "object", "additionalProperties": { "type": "any" } } ], "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 * n will be selected, where n is the size of the icon in the UI. At least one image must be specified. Note that 'details.path = foo' is equivalent to 'details.path = {'16': foo}'" }, "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." } } } ], "returns_async": { "name": "callback", "optional": true, "parameters": [] } }, { "name": "setPopup", "deprecated": "chrome.action.setPopup is not supported in Electron", "type": "function", "description": "Sets the HTML document to be opened as a popup when the user clicks on the action's icon.", "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 relative path to the HTML file to show in a popup. If set to the empty string (''), no popup is shown." } } } ], "returns_async": { "name": "callback", "parameters": [], "optional": true } }, { "name": "getPopup", "deprecated": "chrome.action.getPopup is not supported in Electron", "type": "function", "description": "Gets the html document set as the popup for this action.", "parameters": [ { "name": "details", "$ref": "TabDetails" } ], "returns_async": { "name": "callback", "parameters": [ { "name": "result", "type": "string" } ] } }, { "name": "setBadgeText", "deprecated": "chrome.action.setBadgeText is not supported in Electron", "type": "function", "description": "Sets the badge text for the action. The badge is displayed on top of the icon.", "parameters": [ { "name": "details", "type": "object", "properties": { "text": { "type": "string", "optional": true, "description": "Any number of characters can be passed, but only about four can fit in the space. If an empty string ('') is passed, the badge text is cleared. If tabId is specified and text is null, the text for the specified tab is cleared and defaults to the global badge text." }, "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." } } } ], "returns_async": { "name": "callback", "parameters": [], "optional": true } }, { "name": "getBadgeText", "deprecated": "chrome.action.getBadgeText is not supported in Electron", "type": "function", "description": "Gets the badge text of the action. If no tab is specified, the non-tab-specific badge text is returned. If displayActionCountAsBadgeText is enabled, a placeholder text will be returned unless the declarativeNetRequestFeedback permission is present or tab-specific badge text was provided.", "parameters": [ { "name": "details", "$ref": "TabDetails" } ], "returns_async": { "name": "callback", "parameters": [ { "name": "result", "type": "string" } ] } }, { "name": "setBadgeBackgroundColor", "deprecated": "chrome.action.setBadgeBackgroundColor is not supported in Electron", "type": "function", "description": "Sets the background color for the badge.", "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": "browserAction.ColorArray" } ] }, "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." } } } ], "returns_async": { "name": "callback", "parameters": [], "optional": true } }, { "name": "getBadgeBackgroundColor", "deprecated": "chrome.action.getBadgeBackgroundColor is not supported in Electron", "type": "function", "description": "Gets the background color of the action.", "parameters": [ { "name": "details", "$ref": "TabDetails" } ], "returns_async": { "name": "callback", "parameters": [ { "name": "result", "$ref": "browserAction.ColorArray" } ] } }, { "name": "setBadgeTextColor", "deprecated": "chrome.action.setBadgeTextColor is not supported in Electron", "type": "function", "description": "Sets the text color for the badge.", "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. Not setting this value will cause a color to be automatically chosen that will contrast with the badge's background color so the text will be visible. Colors with alpha values equivalent to 0 will not be set and will return an error.", "choices": [ { "type": "string" }, { "$ref": "browserAction.ColorArray" } ] }, "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." } } } ], "returns_async": { "name": "callback", "parameters": [], "optional": true } }, { "name": "getBadgeTextColor", "deprecated": "chrome.action.getBadgeTextColor is not supported in Electron", "type": "function", "description": "Gets the text color of the action.", "parameters": [ { "name": "details", "$ref": "TabDetails" } ], "returns_async": { "name": "callback", "parameters": [ { "name": "result", "$ref": "browserAction.ColorArray" } ] } }, { "name": "enable", "deprecated": "chrome.action.enable is not supported in Electron", "type": "function", "description": "Enables the action for a tab. By default, actions are enabled.", "parameters": [ { "type": "integer", "optional": true, "name": "tabId", "minimum": 0, "description": "The id of the tab for which you want to modify the action." } ], "returns_async": { "name": "callback", "parameters": [], "optional": true } }, { "name": "disable", "deprecated": "chrome.action.disable is not supported in Electron", "type": "function", "description": "Disables the action for a tab.", "parameters": [ { "type": "integer", "optional": true, "name": "tabId", "minimum": 0, "description": "The id of the tab for which you want to modify the action." } ], "returns_async": { "name": "callback", "parameters": [], "optional": true } }, { "name": "isEnabled", "deprecated": "chrome.action.isEnabled is not supported in Electron", "type": "function", "description": "Indicates whether the extension action is enabled for a tab (or globally if no tabId is provided). Actions enabled using only $(ref:declarativeContent) always return false.", "parameters": [ { "type": "integer", "optional": true, "name": "tabId", "minimum": 0, "description": "The id of the tab for which you want check enabled status." } ], "returns_async": { "name": "callback", "parameters": [ { "name": "isEnabled", "type": "boolean", "description": "True if the extension action is enabled." } ] } }, { "name": "getUserSettings", "deprecated": "chrome.action.getUserSettings is not supported in Electron", "type": "function", "description": "Returns the user-specified settings relating to an extension's action.", "parameters": [], "returns_async": { "name": "callback", "parameters": [ { "name": "userSettings", "$ref": "UserSettings" } ] } }, { "name": "openPopup", "deprecated": "chrome.action.openPopup is not supported in Electron", "type": "function", "description": "Opens the extension's popup.", "parameters": [ { "$ref": "OpenPopupOptions", "name": "options", "optional": true, "description": "Specifies options for opening the popup." } ], "returns_async": { "name": "callback", "parameters": [] } } ], "events": [ { "name": "onClicked", "deprecated": "chrome.action.onClicked is not supported in Electron", "type": "function", "description": "Fired when an action icon is clicked. This event will not fire if the action has a popup.", "parameters": [ { "name": "tab", "$ref": "tabs.Tab" } ] } ] } ]