From bd46235ae2e97783b7dcc43df7c6f179352a1084 Mon Sep 17 00:00:00 2001 From: rebloor Date: Sat, 15 Jul 2023 05:02:02 +1200 Subject: [PATCH] Implementation of action.getUserSettings (#27608) * Implementation of action.getUserSettings * isOnToolbar clarification * Apply suggestions from review Co-authored-by: Rob Wu * Property description update * Update use of term chrome --------- Co-authored-by: Rob Wu --- .../api/action/getusersettings/index.md | 90 +++++++++++++++++++ .../add-ons/webextensions/api/action/index.md | 2 + .../mozilla/firefox/releases/116/index.md | 1 + 3 files changed, 93 insertions(+) create mode 100644 files/en-us/mozilla/add-ons/webextensions/api/action/getusersettings/index.md diff --git a/files/en-us/mozilla/add-ons/webextensions/api/action/getusersettings/index.md b/files/en-us/mozilla/add-ons/webextensions/api/action/getusersettings/index.md new file mode 100644 index 000000000000000..39b873c8f281156 --- /dev/null +++ b/files/en-us/mozilla/add-ons/webextensions/api/action/getusersettings/index.md @@ -0,0 +1,90 @@ +--- +title: action.getUserSettings() +slug: Mozilla/Add-ons/WebExtensions/API/action/getUserSettings +page-type: webextension-api-function +browser-compat: webextensions.api.action.getUserSettings +--- + +{{AddonSidebar()}} + +Gets the user-specified settings for the browser action. + +> **Note:** This API is available in Manifest V3 or higher. + +This is an asynchronous function that returns a [`Promise`](/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise). + +## Syntax + +```js-nolint +let userSettings = await browser.action.getUserSettings(); +``` + +### Parameters + +This function takes no parameters. + +### Return value + +A [`Promise`](/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise) that fulfills with an object with these properties: + +- `userSettings` + + - : An object containing the user-specified settings for the browser action with these properties: + + - `isOnToolbar` {{optional_inline}} + - : `boolean`. Whether the user has pinned the action's icon to the browser UI. This setting does not indicate whether the action icon is visible. The icon's visibility depends on the size of the browser window and the layout of the browser UI. + +## Examples + +This code logs a message indicating whether the action is pinned or not: + +```js +function gotSettings(userSettings) { + if (userSettings.isOnToolbar) { + console.log("Action is pinned to toolbar."); + } else { + console.log("Action is not pinned to toolbar."); + } +} + +let gettingUserSettings = browser.action.getUserSettings(); +gettingUserSettings.then(gotSettings); +``` + +{{WebExtExamples}} + +## Browser compatibility + +{{Compat}} + +> **Note:** This API is based on Chromium's [`chrome.action`](https://developer.chrome.com/docs/extensions/reference/action/#method-getUserSettings) API. + + diff --git a/files/en-us/mozilla/add-ons/webextensions/api/action/index.md b/files/en-us/mozilla/add-ons/webextensions/api/action/index.md index f2749d746459e32..289639318c7aca0 100644 --- a/files/en-us/mozilla/add-ons/webextensions/api/action/index.md +++ b/files/en-us/mozilla/add-ons/webextensions/api/action/index.md @@ -57,6 +57,8 @@ With the `action` API, you can: - : Sets the badge's text color. - {{WebExtAPIRef("action.getBadgeTextColor()")}} - : Gets the badge's text color. +- {{WebExtAPIRef("action.getUserSettings()")}} + - : Gets the user-specified settings for the browser action. - {{WebExtAPIRef("action.enable()")}} - : Enables the browser action for a tab. By default, browser actions are enabled for all tabs. - {{WebExtAPIRef("action.disable()")}} diff --git a/files/en-us/mozilla/firefox/releases/116/index.md b/files/en-us/mozilla/firefox/releases/116/index.md index 7e335689e4a9878..c9c1da94ab98a1a 100644 --- a/files/en-us/mozilla/firefox/releases/116/index.md +++ b/files/en-us/mozilla/firefox/releases/116/index.md @@ -68,6 +68,7 @@ This article provides information about the changes in Firefox 116 that affect d ## Changes for add-on developers - The URL of a page visited when an extension is uninstalled, provided in {{WebExtAPIRef("runtime.setUninstallURL")}}, can now be up to 1023 characters instead of 255 ([Firefox bug 1835723](https://bugzil.la/1835723)). +- Adds {{WebExtAPIRef("action.getUserSettings")}} providing the user-specified settings for an extension's browser action ([Firefox bug 1814905](https://bugzil.la/1814905)). - `autoDiscardable` is now supported in {{WebExtAPIRef("tabs.Tab")}}, {{WebExtAPIRef("tabs.onUpdated")}}, {{WebExtAPIRef("tabs.update")}}, and {{WebExtAPIRef("tabs.query")}} ([Firefox bug 1809094](https://bugzil.la/1809094)). ### Removals