Supported APIs

The following is a detailed list of API members that are supported. Development of the extension platform is ongoing, so check back frequently for updates!

Note

For Microsoft Edge, all extension APIs are under the browser namespace, e.g. browser.browserAction.disable().

Overarching issues

The following known issues span across the extension platform and will be fixed in the near future:

  • When using the CSS url() property, absolute URLs using ms-browser-extension:// will not work like they do in Chrome. To bypass this issue, use relative paths to resources (starting in the root extension directory) instead.
  • window.open() does not work in extension background scripts. Please use browser.windows.create() instead.

browserAction

The following browserAction APIs are supported:

API Known issues Chrome incompatibilities
browserAction
browserAction.disable
browserAction.enable
browserAction.getBadgeBackgroundColor
browserAction.setBadgeBackgroundColor Only ColorArray and hexidecimal values are supported. CSS color names (i.e. blue) are not.
browserAction.onClicked
browserAction.setBadgeText
browserAction.setPopup
browserAction.getBadgeText
browserAction.setIcon browserAction.setIcon is not persisted.

The imageData parameter is not supported.

path is a required parameter.

contextMenus

The following contextMenus APIs are supported:

API Known issues Chrome incompatibilities
contextMenus
contextMenus.ContextType "page_action" ContextType will not show up in the page action context menu. Microsoft Edge does not support the "launcher" ContextType.
contextMenus.create When extensions do not provide a contextmenuid, the id generated is not unique.
contextMenus.onClicked
contextMenus.remove
contextMenus.removeAll
contextMenus.update

cookies

The following cookies APIs are supported:

API Known issues Chrome incompatibilities
cookies
cookies.get
cookies.getAll If no URL is provided, cookies are retrieved only for URLs in currently opened tabs. In Chrome, this gets all cookies on a user’s machine.
cookies.getAllCookieStores Always returns the same default cookie store with ID “0”. All cookies belong to this store.
cookies.onChanged Not supported.
cookies.remove
cookies.set

extension

The following extension APIs are supported:

API Known issues Chrome incompatibilities
extension
extension.getBackgroundPage
extension.getURL
extension.getViews

i18n

The following i18n APIs are supported:

API Known issues Chrome incompatibilities
i18n
i18n.getAcceptLanguages
i18n.getMessage i18n.getMessage with invalid key throws exception instead of failing gracefully.

i18n.getMessage argument expects strings, but should also allow an int or throw an exception.
i18n.getUILanguage

idle

The following idle APIs are supported:

API Known issues Chrome incompatibilities
idle
idle.setDetectionInterval
idle.queryState
idle.onStateChanged

pageAction

The following pageAction APIs are supported:

API Known issues Chrome incompatibilities
pageAction
pageAction.getPopup
pageAction.getTitle
pageAction.hide
pageAction.onClicked
pageAction.setIcon The imageData parameter is not supported.

path is a required parameter.
pageAction.setPopup
pageAction.setTitle
pageAction.show

runtime

The following runtime APIs are supported:

API Known issues Chrome incompatibilities
runtime
runtime.connect
runtime.id
runtime.getBackgroundPage
runtime.getManifest
runtime.getURL
runtime.lastError
runtime.onConnect
runtime.onInstalled
runtime.onMessage tab object in runtime.onMessage event is not fully implemented. MessageSender.tlsChannelId is not supported in Microsoft Edge.
runtime.sendMessage Microsoft Edge extension pages can use runtime.sendMessage/onMessage to send messages to themselves.

runtime.sendmessage is not supported from site pages.
Microsoft Edge does not support the options parameter.

storage

The following storage APIs are supported:

API Known issues Chrome incompatibilities
storage
storage.local.get
storage.local.set
storage.local.remove
storage.local.clear
storage.local.getBytesInUse storage.local data is persisted in a different format than Chrome, causing a different value to be returned when calling storage.local.getBytesInUse.

Ex: storage.local.set({ "k": { "s": "âas" } } returns 13 in Chrome and 50 in Microsoft Edge.
storage.onChanged

tabs

The following tabs APIs are supported:

API Known issues Chrome incompatibilities
tabs
tabs.create selected, pinned, and openerTabId are not supported.
tabs.detectLanguage
tabs.executeScript runAt is ignored, though checked.
tabs.get Options pages, when asking about a tab not in their window, fail this call.
tabs.getCurrent
tabs.insertCSS runAt is ignored, though checked.
tabs.update
tabs.onActivated
tabs.onCreated
tabs.onRemoved
tabs.onReplaced
tabs.onUpdated After uninstall/reinstall, the URL is not received until Microsoft Edge is restarted.
tabs.query pinned, audible, and muted are not yet supported.

"popup" windowType is not yet supported.
highlighted is not supported.

"panel", "app", and "devtools" windowType are not supported.
tabs.remove
tabs.sendMessage Messaging a specific frame is not yet supported. tabs.sendMessage never sends a response after a tab refresh if no runtime.onMessage listeners are present on the receiving tab.
tabs.Tab audible, mutedInfo, inPrivate, width, and height properties are not yet supported. openerTabId, selected, and highlighted properties are not supported.
tabs.update pinned and muted are not yet supported. highlighted and selected are not supported.

webNavigation

The following webNavigation APIs are supported:

API Known issues Chrome incompatibilities
webNavigation Tab ids are incorrect. Filtering, TransitionTypes and TransitionQualifiers not supported.

For a tab, all processIds will be the same.
webNavigation.getAllFrames Does not include object-as-iframe elements.
webNavigation.getFrame
webNavigation.onBeforeNavigate
webNavigation.onCommited
webNavigation.onCompleted
webNavigation.onCreatedNavigationTarget
webNavigation.onDOMContentLoaded
webNavigation.onErrorOccurred
webNavigation.onHistoryStateUpdated
webNavigation.onReferenceFragmentUpdated
webNavigation.onTabReplaced Not supported.
webNavigation.TransitionType
webNavigation.TransitionQualifier

webRequest

The following webRequest APIs are supported:

API Known issues Chrome incompatibilities
webRequest webRequest not supported for synchronous XmlHttpRequests. Network requests from extensions, such as options, background or popup pages, are not supported.

Network requests from <object> and <embed> elements are not supported.

Headers cannot be modified for cached requests.
handlerBehaviorChanged Handler changes are automatically handled in Microsoft Edge.

Calling this has no effect.
onAuthRequired
onBeforeRedirect
onBeforeRequest requestBody is not supported.
onBeforeSendHeaders
onCompleted
onErrorOccurred
onHeadersReceived
onResponseStarted
onSendHeaders

windows

The following windows APIs are supported:

API Known issues Chrome incompatibilities
windows Window objects do not support alwaysOnTop property in Microsoft Edge.

InPrivate is not supported.
windows.CreateType "panel" and "detached_panel" are not supported in Microsoft Edge.
windows.create tabId parameter for tearing off a tab is not supported.
windows.get
windows.getAll windows.getAll({populate: true}) is missing tabs property.
windows.getCurrent
windows.getLastFocused
windows.update Specifying position is not supported. "minimized"/"maximized"/"fullscreen" and drawAttention are not supported in Microsoft Edge.
windows.onCreated WindowType filter is not supported.
windows.onFocusChanged WindowType filter is not supported.
windows.WindowState "minimized","maximized", "fullscreen" are not supported. "docked" is not supported in Microsoft Edge.
windows.WindowType "panel", "app", and "devtools" are not supported in Microsoft Edge.
windows.WINDOW_ID_CURRENT
windows.WINDOW_ID_NONE