Supported manifest keys

Note

This documentation is for extensions for the legacy version of Microsoft Edge. For information on the new Microsoft Edge, see Microsoft Edge (Chromium) Extensions.

Important

The new Microsoft Edge program is now open to accept chromium-based extensions for the new Microsoft Edge (v77 or later). If you want to submit a new extension, visit Publish to Microsoft Edge (Chromium) Add-ons Store to learn about the submission process.

With this announcement, Microsoft is no longer accepting new extensions for the legacy version of Microsoft Edge. If you own an Extension for the legacy version, you should begin the process of porting your Extension to the new Microsoft Edge. The new Microsoft Edge is based on Chromium, so Extensions designed for the legacy version of Microsoft Edge do not work with the new version.

Every extension has a JSON-formatted manifest file, named manifest.json. This file provides important information for the extension ranging from its name to its permissions. Unless specified in a note below, the Microsoft Edge manifest properties follow the same implementation as Chrome.

Here is an example of a Microsoft Edge JSON manifest file.

Required keys

The following keys are required:

Key Known issues Chrome incompatibilities
author
name
version

The following keys are recommended:

Key Known issues Chrome incompatibilities
browser_specific_settings Indicates the extension's preferred state in the browser. The browser may or may not choose to respect it in a future release, depending on factors such as the reputation of the extension, or the total number of buttons already in the user's address bar. This can be used to indicate the default position of the browserAction icon.

"browser_specific_settings": {
    "edge": {
        "browser_action_next_to_addressbar": true
    }
}

Not supported in Chrome.
default_locale
description
icons
manifest_version Currently ignored in Microsoft Edge.

browser_action or page_action keys

You can only include one of the following keys (or none):

Key Known issues Chrome incompatibilities
browser_action Microsoft Edge does not support the following syntax: browser_action : {"default_icon" : "icon.png" }
Size for icons must be specified.
Preferred sizes: 20px, 25px, 30px, 40px.
Other supported sizes: 19px, 35px, 38px.
page_action Microsoft Edge does not support the following syntax: page_action : {"default_icon" : "icon.png" }
Size for icons must be specified.
Preferred sizes: 20px, 25px, 30px, 40px.
Other supported sizes: 19px, 35px, 38px.

Optional keys

The following keys are optional:

Key Known issues Chrome incompatibilities
background Persistent is a required field for Microsoft Edge.
content_scripts
content_security_policy The content security policy of a page blocks websockets in content scripts, generating an undefined exception. Microsoft Edge extensions currently only support Default Policy Restrictions: script-src 'self'; object-src 'self'
incognito
key
options_page
permissions
short_name
web_accessible_resources

Supported permissions

The following permissions are supported:

Permission Description
<all_urls> Allows background and content scripts to interact with all webpages with extra privileges.
contextMenus Gives access to contextMenus API. This enables adding items to Microsoft Edge's context menu.
cookies Gives access to the cookies API. This enable querying and modifying cookies as well as being notified when they change.
geolocation Allow the extension to use the HTML5 geolocation API without prompting the user for permission.
idle Gives access to the idle API. This enables detection of when the machine's idle state changes.
storage Gives access to the storage API. This enables storing, retrieving, and tracking changes to user data.
tabs Gives access to the tabs API to interact with the browser's tab system. This enables creating, modifying, and rearranging tabs in the browser, including the URLs associated with each tab.
unlimitedStorage Allows storage.local to have unlimited storage (depending on system resources) instead of 5MB. The max storage per key value pair is also increased from 5MB to unlimited (depending on system resources).
webNavigation Gives access to the webNavigation API. This enables receiving notifications about the status of navigation requests.
webRequest Gives access to the webRequest API. This enables observing and analyzing traffic, as well as intercepting, blocking or modifying request in-flight.
webRequestBlocking Required if an extension uses the webRequest API in a blocking fashion.

'""'