{"id":24161604,"url":"https://github.com/zcaceres/extension-helpers","last_synced_at":"2026-06-11T05:31:30.082Z","repository":{"id":87954610,"uuid":"121894455","full_name":"zcaceres/extension-helpers","owner":"zcaceres","description":":muscle: Promisified, cross-browser wrappers and helpers for extension APIs.","archived":false,"fork":false,"pushed_at":"2018-04-29T15:46:38.000Z","size":182,"stargazers_count":0,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-02T04:43:22.925Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/zcaceres.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-02-17T21:34:10.000Z","updated_at":"2018-05-13T19:40:06.000Z","dependencies_parsed_at":"2023-05-22T02:45:07.188Z","dependency_job_id":null,"html_url":"https://github.com/zcaceres/extension-helpers","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/zcaceres/extension-helpers","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zcaceres%2Fextension-helpers","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zcaceres%2Fextension-helpers/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zcaceres%2Fextension-helpers/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zcaceres%2Fextension-helpers/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/zcaceres","download_url":"https://codeload.github.com/zcaceres/extension-helpers/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zcaceres%2Fextension-helpers/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34184779,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-11T02:00:06.485Z","response_time":57,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-01-12T17:17:29.346Z","updated_at":"2026-06-11T05:31:30.075Z","avatar_url":"https://github.com/zcaceres.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Browser Extension Helpers\n\n\u003e Work in progress, PRS welcome\n\n```js\nimport extensionHelpers from 'extension-helpers';\n\n// or\n\nconst extensionHelpers = require('extension-helpers').default;\n```\n\nPromisified, cross-browser wrappers and helpers for extension APIs.\n\n-   Normalized \u0026 Promisified: no more fussing with Chrome's irregular callbacks, all functions returns a promise\n-   Simple: hide the `browser.api.action` boilerplate behind function calls\n-   Cross-Browser: use the same functions on Chrome, Firefox, or Edge\n\nNote: Many APIs are not supported in Edge. Check their documentation.\n\n## API\n\n\u003c!-- Generated by documentation.js. Update this documentation by updating the source code. --\u003e\n\n#### Table of Contents\n\n-   [wallpaper](#wallpaper)\n    -   [set](#set)\n-   [alarms](#alarms)\n    -   [create](#create)\n    -   [get](#get)\n    -   [getAll](#getall)\n    -   [clear](#clear)\n    -   [clearAll](#clearall)\n-   [history](#history)\n    -   [search](#search)\n    -   [getVisits](#getvisits)\n    -   [addUrl](#addurl)\n    -   [deleteUrl](#deleteurl)\n    -   [deleteRange](#deleterange)\n    -   [deleteAll](#deleteall)\n-   [extension](#extension)\n    -   [self](#self)\n    -   [permissionWarningsById](#permissionwarningsbyid)\n    -   [permissionWarningsByManifest](#permissionwarningsbymanifest)\n    -   [enable](#enable)\n    -   [disable](#disable)\n    -   [getAll](#getall-1)\n    -   [get](#get-1)\n-   [localStorage](#localstorage)\n    -   [set](#set-1)\n    -   [get](#get-2)\n-   [message](#message)\n    -   [tab](#tab)\n    -   [allTabs](#alltabs)\n    -   [activeTabs](#activetabs)\n    -   [manyTabs](#manytabs)\n    -   [activeTab](#activetab)\n-   [tabs](#tabs)\n    -   [focus](#focus)\n    -   [close](#close)\n    -   [getActive](#getactive)\n    -   [executeOnActive](#executeonactive)\n    -   [open](#open)\n    -   [getAllActive](#getallactive)\n    -   [getAll](#getall-2)\n    -   [executeOnAll](#executeonall)\n    -   [executeOnAllActive](#executeonallactive)\n    -   [getCurrent](#getcurrent)\n    -   [reload](#reload)\n-   [windows](#windows)\n    -   [getById](#getbyid)\n    -   [getCurrent](#getcurrent-1)\n    -   [getLastFocused](#getlastfocused)\n    -   [getAll](#getall-3)\n    -   [create](#create-1)\n    -   [update](#update)\n    -   [focus](#focus-1)\n    -   [drawAttention](#drawattention)\n-   [notifications](#notifications)\n    -   [create](#create-2)\n    -   [update](#update-1)\n    -   [clear](#clear-1)\n    -   [getAll](#getall-4)\n-   [runtime](#runtime)\n    -   [sendMessage](#sendmessage)\n-   [cookie](#cookie)\n    -   [get](#get-3)\n    -   [set](#set-2)\n    -   [getAll](#getall-5)\n    -   [remove](#remove)\n    -   [getAllCookieStores](#getallcookiestores)\n-   [BadgeManager](#badgemanager)\n    -   [add](#add)\n    -   [subtract](#subtract)\n    -   [clear](#clear-2)\n-   [index](#index)\n\n### wallpaper\n\nManage wallpapers\n\n#### set\n\n-   **See: [WallpaperLayout enum from Chrome](https://developer.chrome.com/extensions/wallpaper#type-WallpaperLayout)**\n\nCHROME ONLY. Sets wallpaper to an image (url) or Array buffer (data).\n\n**Parameters**\n\n-   `filename` **[String](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)** File name of saved wallpaper\n-   `layout` **WallpaperLayout** A WallpaperLayout Enum value\n-   `params` **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)?** Optional thumbnail, binary image source and url. See Chrome API docs for options(\u003chttps://developer.chrome.com/extensions/wallpaper\u003e)\n\n### alarms\n\nSchedule code to run at a specific time.\n\n#### create\n\n-   **See: [Firefox Alarms](https://developer.mozilla.org/en-US/Add-ons/WebExtensions/API/alarms/create) or [Chrome Alarms](https://developer.chrome.com/extensions/alarms#method-create)**\n\nCreates a new alarm.\n\n**Parameters**\n\n-   `name` **[String](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)?** Optional name to identify alarm.\n-   `optionalParams` **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)?** Object of shape { when: {Number}, delayInMinutes: {Number}, periodInMinutes: {Number} }. Describes when the alarm should fire. The initial time must be specified by either when or delayInMinutes (but not both). If periodInMinutes is set, the alarm will repeat every periodInMinutes minutes after the initial event. If neither when or delayInMinutes is set for a repeating alarm, periodInMinutes is used as the default for delayInMinutes.\n\nReturns **[Promise](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise)\u0026lt;[undefined](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/undefined)\u003e** Promise resolved with undefined or rejected with an error.\n\n#### get\n\nGets an alarm, given its name.\n\n**Parameters**\n\n-   `name` **[String](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)?** Optional. The name of the alarm to get. Defaults to the empty string.\n\nReturns **[Promise](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise)\u0026lt;Alarm\u003e** A Promise resolved with an Alarm object or rejected with an error. If resolved, value represents the alarm whose name matches name. If no alarms match, this will be undefined.\n\n#### getAll\n\nGets all active alarms for the extension.\n\nReturns **[Promise](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise)\u0026lt;[Array](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array)\u0026lt;Alarm\u003e\u003e** Promise resolved with an array of Alarm objects or rejected with an error. Resolves with empty array if no alarms are active.\n\n#### clear\n\nClears the alarm with the given name.\n\n**Parameters**\n\n-   `name` **[String](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)** Name of the alarm to cancel. Default is empty string.\n\nReturns **[Promise](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise)\u0026lt;[Boolean](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean)\u003e** Promise resolved with true if alarm was cleared or false if not cleared, or rejected with an error.\n\n#### clearAll\n\n-   **See: [MDN on clearAll](https://developer.mozilla.org/en-US/Add-ons/WebExtensions/API/alarms/clearAll)**\n\nCancels all active alarms.\n\nReturns **[Promise](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise)\u0026lt;[Boolean](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean)\u003e** Promise resolved with true if any alarms were cleared or false otherwise. Or, rejected with an error.\n\n### history\n\nSearch and manage browser history\n\n#### search\n\nSearch the browser history for last visit time of each page matching the query\n\n**Parameters**\n\n-   `text` **[String](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)** A free-text query to the history service. Leave empty to retrieve all pages.\n-   `optionalStartTime` **[Number](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number)** Double. Limit results to those visited after this date, represented in milliseconds since the epoch. If not specified, this defaults to 24 hours in the past.\n-   `optionalEndTime` **[Number](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number)** Double. Limit results to those visited before this date, represented in milliseconds since the epoch.\n-   `optionalMaxResults` **[Number](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number)** Integer. The maximum number of results to retrieve. Defaults to 100.\n\nReturns **[Promise](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise)\u0026lt;[Array](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array)\u0026lt;HistoryItem\u003e\u003e** Promise that resolves with array of HistoryItem objects or rejects with error\n\n#### getVisits\n\nGets information about visits to a url\n\n**Parameters**\n\n-   `url` **[String](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)** Must be fully qualified url including protocol\n\nReturns **[Promise](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise)\u0026lt;[Array](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array)\u0026lt;VisitItem\u003e\u003e** Promise that resolves with array of VisitItems or rejects with an error\n\n#### addUrl\n\nChrome: Adds a URL to the history at the current time with a transition type of \"link\".\nFirefox: Adds a record to the browser's history of a visit to the given URL. The visit's time is recorded as the time of the call, and the TransitionType is recorded as \"link\".\n\n**Parameters**\n\n-   `url` **[String](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)** The URL to add\n-   `optionalParams` **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)** Firefox only. Object with shape { title: {String}, transition: {TransitionType}, visitTime: {Number | String | Object} }. All optional.\n\nReturns **[Promise](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise)\u0026lt;[undefined](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/undefined)\u003e** Promise resolved with undefined or rejected with an error.\n\n#### deleteUrl\n\nRemoves all visits to the given URL from the browser history.\n\n**Parameters**\n\n-   `url` **[String](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)** The URL whose visits should be removed.\n\nReturns **[Promise](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise)\u0026lt;[undefined](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/undefined)\u003e** Promise resolved with undefined or rejected with an error;\n\n#### deleteRange\n\nRemoves all items within the specified date range from the history. Pages will not be removed from the history unless all visits fall within the range.\n\n**Parameters**\n\n-   `startTime` **([Number](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number) \\| [String](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String) \\| [Date](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Date))** Items added to history after this date, represented in milliseconds since the epoch.\n-   `endTime` **([Number](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number) \\| [String](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String) \\| [Date](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Date))** Items added to history before this date, represented in milliseconds since the epoch.\n\nReturns **[Promise](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise)\u0026lt;[undefined](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/undefined)\u003e** Promise resolved with undefined or rejected with an error.\n\n#### deleteAll\n\nDeletes all items from the history.\n\nReturns **[Promise](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise)\u0026lt;[undefined](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/undefined)\u003e** Promise resolved with undefined or rejected with an error.\n\n### extension\n\nEnable, disable, and manage other browser extensions\n\n#### self\n\nGet information about the calling extension\n\nReturns **[Promise](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise)\u0026lt;ExtensionInfo\u003e** Object with info about the extension\n\n#### permissionWarningsById\n\nGet a list of permission warnings for the given extension id\n\n**Parameters**\n\n-   `id` **[String](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)** The browser-assigned id of the extension\n\nReturns **[Promise](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise)\u0026lt;[Array](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array)\u0026lt;[String](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)\u003e\u003e** Promised resolved with array of permission warnings or rejected with error\n\n#### permissionWarningsByManifest\n\nGet a list of permission warnings for the given extension manifest string\n\n**Parameters**\n\n-   `manifestStr` **[String](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)** Extension manifest JSON string.\n\nReturns **[Promise](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise)\u0026lt;[Array](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array)\u0026lt;[String](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)\u003e\u003e** Promised resolved with array of permission warnings or rejected with error\n\n#### enable\n\nEnable (activate) a browser extension\n\n**Parameters**\n\n-   `id` **[String](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)** The browser-assigned id of the extension\n\nReturns **[Promise](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise)\u0026lt;[Boolean](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean)\u003e** Promise resolved with true if successful or rejected with error\n\n#### disable\n\nDisable (deactivate) a browser extension\n\n**Parameters**\n\n-   `id` **[String](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)** The Browser-assigned id of the extension\n\nReturns **[Promise](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise)\u0026lt;[Boolean](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean)\u003e** Promise resolved with false if successful or rejected with error\n\n#### getAll\n\nGet all currently installed browser extension\n\nReturns **[Promise](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise)\u0026lt;[Array](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array)\u0026lt;ExtensionInfo\u003e\u003e** Promise resolved with array of browser extension information objects, or rejected with error\n\n#### get\n\nGet a browser by extension id\n\n**Parameters**\n\n-   `id` **[String](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)** Browser-assigned extension id\n\nReturns **[Promise](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise)\u0026lt;ExtensionInfo\u003e** Promise resolved with browser extension information object or rejected with an error\n\n### localStorage\n\nManage the local storage of your browser extension\n\n#### set\n\nSet a value at a given key in the extension's local storage\n\n**Parameters**\n\n-   `key` **[String](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)** Key for the set value\n-   `value` **Any** Value to serialize to local storage. Objects and functions serialized to {}. Arrays, Regex, and primitives serialize correctly.\n\nReturns **[Promise](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise)\u0026lt;[undefined](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/undefined)\u003e** Promise resolved with nothing, or rejected with error\n\n#### get\n\nGet the value for a given key in local storage\n\n**Parameters**\n\n-   `key` **([String](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String) \\| [Array](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array)\u0026lt;[String](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)\u003e | null)** Single key to get, array of keys to get, or null to get entire contents\n\nReturns **[Promise](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise)\u0026lt;[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)\u003e** Promise resolved with object with key-value mappings or rejected with an error\n\n### message\n\nSend messages to tabs\n\n#### tab\n\nSend a message directly to tab by id\n\n**Parameters**\n\n-   `tabId` **[Number](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number)** Browser-assigned id of target tab\n-   `message` **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)** Any valid JSON-ifiable object\n\nReturns **[Promise](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise)\u0026lt;[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)\u003e** Promise resolved with response or rejected with error\n\n#### allTabs\n\nSends a message to all tabs in any window\n\n**Parameters**\n\n-   `message` **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)** Any valid JSON-ifiable object\n\nReturns **[Promise](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise)\u0026lt;[Array](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array)\u0026lt;Tab\u003e\u003e** Promise resolved with array of responses from tabs that were sent a message or rejected with an error\n\n#### activeTabs\n\nSends a message to tabs that are considered 'active' (focused) for all open browser windows\n\n**Parameters**\n\n-   `message` **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)** Any valid JSON-ifiable object\n\nReturns **[Promise](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise)\u0026lt;[Array](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array)\u0026lt;Tab\u003e\u003e** Promise resolved with array of responses from tabs that were sent a message rejected with an error\n\n#### manyTabs\n\nSend a message to an array of tabs\n\n**Parameters**\n\n-   `tabArr` **[Array](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array)\u0026lt;Tab\u003e** Array of Tab objects to send message to\n-   `message` **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)** Any valid JSON-ifiable object\n\nReturns **[Promise](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise)\u0026lt;[Array](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array)\u0026lt;[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)\u003e\u003e** Promise resolved with array of responses from messages or rejected with an error\n\n#### activeTab\n\nSend message to active (focused) tab in the current window.\n\n**Parameters**\n\n-   `message` **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)** Any valid JSON-ifiable object\n\nReturns **[Promise](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise)\u0026lt;[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)\u003e** Promise resolved with response from tab or rejected with an error\n\n### tabs\n\nOpen, close, focus, blur and manage tabs.\n\n#### focus\n\nForces browser focus on given tab\n\n**Parameters**\n\n-   `tabId` **([number](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number) \\| [Array](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array)\u0026lt;[number](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number)\u003e)** id of chrome tab\n\nReturns **[Promise](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise)\u0026lt;[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)\u003e** resolved with tabDetails object or rejected with error\n\n#### close\n\nCloses a tab by tab id\n\n**Parameters**\n\n-   `tabIds` **[number](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number)** an array\n\nReturns **[Promise](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise)\u0026lt;[undefined](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/undefined)\u003e** Promise resolved with undefined or rejected with error\n\n#### getActive\n\nGets currently active tab (the tab focused in current browser window)\n\nReturns **[Promise](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise)\u0026lt;[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)\u003e** tab object\n\n#### executeOnActive\n\nExecute a file or code on a given tab\n\n**Parameters**\n\n-   `toInject` **[String](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)** file name or raw code to execute\n-   `typeToInject` **[String](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)** valid params are \"code\" or \"file\"\n\nReturns **[Promise](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise)\u0026lt;[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)\u003e** any results of the injected code's execution\n\n#### open\n\nOpen a new tab optionally blurred or focused, and return the new tab's id.\n\n**Parameters**\n\n-   `url` **[String](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)** the url you want the new tab to show\n-   `active` **[Boolean](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean)** should browser focus on the new tab\n\nReturns **[Promise](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise)\u0026lt;[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)\u003e** resolved with the newly opened tab or rejected with error\n\n#### getAllActive\n\nGet active tabs in all browser windows\n\nReturns **[Promise](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise)\u0026lt;[Array](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array)\u0026lt;[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)\u003e\u003e** Promise resolved with an array of all active tab objects or rejected with an error\n\n#### getAll\n\nGet all tabs\n\nReturns **[Promise](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise)\u0026lt;[Array](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array)\u0026lt;[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)\u003e\u003e** Promise resolved with all tabs or rejected with an error\n\n#### executeOnAll\n\nExecute raw js or a script by filename on all tabs\n\n**Parameters**\n\n-   `toInject` **[String](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)** file name or raw code to execute\n-   `typeToInject` **[String](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)** valid params are \"code\" or \"file\"\n\nReturns **[Array](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array)\u0026lt;[Promise](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise)\u0026lt;[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)\u003e\u003e** Array Promises resolved with any results of the injected code's execution or rejected with an error\n\n#### executeOnAllActive\n\nExecutes a file or inline code as a string on all the active tabs of all windows.\n\n**Parameters**\n\n-   `toInject` **[String](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)** file name or raw code to execute\n-   `typeToInject` **[String](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)** valid params are \"code\" or \"file\"\n\nReturns **[Array](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array)\u0026lt;[Promise](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise)\u0026lt;[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)\u003e\u003e** Array of Promises resolved with any results of the injected code's execution or rejected with an error\n\n#### getCurrent\n\nGet tab that the script call is being made from\n\nReturns **[Promise](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise)\u0026lt;Tab\u003e** Promise that resolves with Tab or rejects with error\n\n#### reload\n\nReloads a tab by id. Optionally bypasses cache.\n\n**Parameters**\n\n-   `tabId` **[String](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)** Id of tab to reload\n-   `bypassCache` **[Boolean](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean)** Bypass local web cache\n\nReturns **[Promise](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise)\u0026lt;[undefined](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/undefined)\u003e** Bypass\n\n### windows\n\nManage browser windows\n\n#### getById\n\n-   **See: [Chrome filter defaults](https://developer.chrome.com/extensions/windows#method-get) for this API**\n-   **See: [Firefox filter defaults](https://developer.mozilla.org/en-US/Add-ons/WebExtensions/API/windows/get) for this API**\n\nGet a window by id\n\n**Parameters**\n\n-   `windowId` **[Number](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number)** Integer Id of window\n-   `includeTabs` **[Boolean](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean)?** Include array of window's associated Tab objects. Default false.\n-   `filterWindowTypes` **[Array](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array)\u0026lt;WindowTypes\u003e?** Array to filter window by WindowType. Chrome and Firefox support different WindowTypes.\n\nReturns **[Promise](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise)\u0026lt;[Window](https://developer.mozilla.org/docs/Web/API/Window)\u003e** Promise resolved with a Window object or rejected with an error.\n\n#### getCurrent\n\nGet the current browser window\n\n**Parameters**\n\n-   `includeTabs` **[Boolean](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean)?** Include array of window's associated Tab objects. Default false.\n-   `filterWindowTypes` **[Array](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array)\u0026lt;WindowTypes\u003e?** Array to filter window by WindowType. Chrome and Firefox support different WindowTypes.\n\nReturns **[Promise](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise)\u0026lt;[Window](https://developer.mozilla.org/docs/Web/API/Window)\u003e** Promise resolved with a Window object or rejected with an error.\n\n#### getLastFocused\n\nGet the most recently focused window. Usually the window 'on top'.\n\n**Parameters**\n\n-   `includeTabs` **[Boolean](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean)?** Include array of window's associated Tab objects. Default false.\n-   `filterWindowTypes` **[Array](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array)\u0026lt;WindowTypes\u003e?** Array to filter window by WindowType. Chrome and Firefox support different WindowTypes.\n\nReturns **[Promise](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise)\u0026lt;[Window](https://developer.mozilla.org/docs/Web/API/Window)\u003e** Promise resolved with a Window object or rejected with an error.\n\n#### getAll\n\nGet all open windows\n\n**Parameters**\n\n-   `includeTabs` **[Boolean](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean)?** Include array of window's associated Tab objects. Default false.\n-   `filterWindowTypes` **[Array](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array)\u0026lt;WindowTypes\u003e?** Array to filter window by WindowType. Chrome and Firefox support different WindowTypes.\n\nReturns **[Promise](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise)\u0026lt;[Window](https://developer.mozilla.org/docs/Web/API/Window)\u003e** Promise resolved with a Window object or rejected with an error.\n\n#### create\n\n-   **See: [Full list of parameters](https://developer.chrome.com/extensions/windows#method-create)**\n\nOpens a new browser window with optional parameters.\n\n**Parameters**\n\n-   `url` **[String](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)?** Fully qualified url to open in new window\n-   `params` **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)** Optional parameters like incognito, focused, positioning, and tabid. See Chrome and Firefox docs for complete list.\n\nReturns **[Promise](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise)\u0026lt;[Window](https://developer.mozilla.org/docs/Web/API/Window)\u003e** Promise resolved with a Window object or rejected with an error.\n\n#### update\n\n-   **See: [Full list of parameters](https://developer.chrome.com/extensions/windows#method-update)**\n\nUpdate a Window's state\n\n**Parameters**\n\n-   `windowId` **[Number](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number)** Integer Id of window to update\n-   `params` **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)?** Optional parameters like height, width, and state.\n\nReturns **[Promise](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise)\u0026lt;[Window](https://developer.mozilla.org/docs/Web/API/Window)\u003e** Promise resolved with a Window object or rejected with an error.\n\n#### focus\n\nFocus on a given window\n\n**Parameters**\n\n-   `windowId` **[Number](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number)** Integer Id of window to focus\n\nReturns **[Promise](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise)\u0026lt;[Window](https://developer.mozilla.org/docs/Web/API/Window)\u003e** Promise resolved with a Window object or rejected with an error.\n\n#### drawAttention\n\nDraw attention to a given window\n\n**Parameters**\n\n-   `windowId` **[Number](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number)** Integer Id of window to focus\n\nReturns **[Promise](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise)\u0026lt;[Window](https://developer.mozilla.org/docs/Web/API/Window)\u003e** Promise resolved with a Window object or rejected with an error.\n\n### notifications\n\nSend and manage browser notifications\n\n#### create\n\n-   **See: [NotificationsOptions](https://developer.chrome.com/extensions/notifications#type-NotificationOptions)**\n\nCreate and display a new notification\n\n**Parameters**\n\n-   `notificationId` **[String](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)?** optional id to assign notification. If empty will be automatically generated\n-   `options` **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)** NotificationsOptions object\n\nReturns **Prromise\u0026lt;[String](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)\u003e** id of created notification\n\n#### update\n\n-   **See: [NotificationsOptions](https://developer.chrome.com/extensions/notifications#type-NotificationOptions)**\n\nUpdate existing notification\n\n**Parameters**\n\n-   `notificationId` **[String](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)** id of notification to update\n-   `options` **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)** NotificationOptions object\n\nReturns **[Promise](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise)\u0026lt;[Boolean](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean)\u003e** Boolean wasUpdated indicating whether notification was updated\n\n#### clear\n\n-   **See: [NotificationsOptions](https://developer.chrome.com/extensions/notifications#type-NotificationOptions)**\n\nClear specified notification\n\n**Parameters**\n\n-   `notificationId` **[String](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)** id of notification to clear\n\nReturns **[Promise](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise)\u0026lt;[Boolean](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean)\u003e** Boolean wasCleared specifying whether the matching notification existed\n\n#### getAll\n\nGet all notifications\n\n### runtime\n\nManage runtime tasks like messaging extensions\n\n#### sendMessage\n\n-   **See: \u003chttps://developer.chrome.com/extensions/runtime#method-sendMessage\u003e**\n\nSends a message to an extension identified by its id\n\n**Parameters**\n\n-   `extensionId` **[String](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)?** optional extension id\n-   `msg` **[String](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)** Any JSON-ifiable object\n-   `options` **\\[type]** options (optional, default `{}`)\n\nReturns **[Promise](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise)\u0026lt;[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)\u003e** Promise resolved with response from tab or rejected with an error\n\n### cookie\n\nManage cookies in the browser\n\n#### get\n\n-   **See: [How Chrome handles](https://developer.chrome.com/extensions/cookies#method-get) cookies with the same name**\n\nGet a cookie by name for a given url.\n\n**Parameters**\n\n-   `url` **[String](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)** URL of site to get cookie from\n-   `name` **[String](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)** Name of cookie to get\n-   `storeId` **[String](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)?** The ID of the cookie store in which to look for the cookie. By default, the current execution context's cookie store will be used.\n\nReturns **[Promise](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise)\u0026lt;Cookie\u003e** Promise resolved with Cookie object or rejected with error\n\n#### set\n\n-   **See: [How Chrome handles](https://developer.chrome.com/extensions/cookies#method-set) cookies with the same name**\n\nSet a cookie by name for a given url.\n\n**Parameters**\n\n-   `url` **[String](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)** URL of site to get cookie from\n-   `name` **[String](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)** Name of cookie to get\n-   `value` **[String](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)** Value of cookie\n-   `optionalParamsObj` **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)?** See [Chrome docs](https://developer.chrome.com/extensions/cookies#method-set) for details of this object\n\nReturns **[Promise](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise)\u0026lt;Cookie\u003e** Promise resolved with Cookie object or rejected with error\n\n#### getAll\n\nGet all cookies by name for a given url\n\n**Parameters**\n\n-   `url` **[String](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)?** Optional url to get cookies from\n-   `name` **[String](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)?** Optional name of cookie to get from url\n-   `optionalParamsObj` **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)?** Optional parameters, see [Chrome docs](https://developer.chrome.com/extensions/cookies#method-getAll) for specifics of other params\n\nReturns **[Promise](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise)\u0026lt;[Array](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array)\u0026lt;Cookie\u003e\u003e** Promise resolved with array of Cookie objects or rejected with an error\n\n#### remove\n\nRemove a cookie by name for a given url\n\n**Parameters**\n\n-   `url` **[String](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)** URL of site to remove cookie from\n-   `name` **[String](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)** Name of cookie to remove\n-   `storeId` **[String](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)?** The ID of the cookie store in which to look for the cookie. By default, the current execution context's cookie store will be used.\n\nReturns **[Promise](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise)\u0026lt;[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)\u003e** Promise resolved with details of cookie that has been removed or rejected with error\n\n#### getAllCookieStores\n\nLists all existing cookie stores.\n\nReturns **[Promise](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise)\u0026lt;[Array](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array)\u0026lt;CookieStore\u003e\u003e** Promise resolved with an array of CookieStore objects or rejected with an error.\n\n### BadgeManager\n\nA BadgeManager object for controlling the badges on your extension's Browser Action toolbar icon.\nShould be used as a singleton, since it tracks the state of your extension's badges.\n\n**Parameters**\n\n-   `badgeColor` **[String](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)** The hex code of the color for your badge\n\n#### add\n\nAdd a number to your badge's current value\n\n**Parameters**\n\n-   `num` **[Number](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number)** The number to add to your badge\n\nReturns **[undefined](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/undefined)** nothing\n\n#### subtract\n\nSubtract a number from your badge's current value\n\n**Parameters**\n\n-   `num` **[Number](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number)** The number to subtract\n\nReturns **[undefined](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/undefined)** nothing\n\n#### clear\n\nClear your badge\n\nReturns **[undefined](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/undefined)** nothing\n\n### index\n\nRetrieves whether the user has enabled notifications from the app/extension\n\n## Something broken?\n\nGo bother:\n\n\u003e Zach Caceres ([Twitter](https://www.twitter.com/zachcaceres) \\| [GitHub](https://www.github.com/zcaceres) \\| [Website](http://zachcaceres.com) )\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzcaceres%2Fextension-helpers","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fzcaceres%2Fextension-helpers","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzcaceres%2Fextension-helpers/lists"}