[ { "javascript_apis": [ "storage.local", "tabs.onActivated", "tabs.onUpdated", "tabs.query", "windows.getCurrent" ], "name": "annotate-page", "description": "Displays a sidebar that lets you take notes on web pages." }, { "javascript_apis": [ "pageAction.getTitle", "pageAction.onClicked", "pageAction.setIcon", "pageAction.setTitle", "pageAction.show", "tabs.insertCSS", "tabs.onUpdated", "tabs.query", "tabs.removeCSS" ], "name": "apply-css", "description": "Adds a page action to the toolbar. Click the button to apply a red border using injected CSS. Click the button again to remove the CSS." }, { "javascript_apis": [ "extension.getURL", "runtime.onMessage", "tabs.executeScript", "tabs.query", "tabs.reload", "tabs.sendMessage" ], "name": "beastify", "description": "Adds a browser action icon to the toolbar. Click the button to choose a beast. The active tab's body content is then replaced with a picture of the chosen beast." }, { "javascript_apis": [ "bookmarks.create", "bookmarks.onCreated", "bookmarks.onRemoved", "bookmarks.remove", "bookmarks.search", "browserAction.onClicked", "browserAction.setIcon", "tabs.onActivated", "tabs.onUpdated", "tabs.query", "windows.onFocusChanged" ], "name": "bookmark-it", "description": "Adds a bookmark button to the toolbar. Click the button to toggle a bookmark for the current page." }, { "javascript_apis": [], "name": "borderify", "description": "Adds a solid red border to all webpages matching mozilla.org." }, { "javascript_apis": [ "alarms.clearAll", "alarms.create", "alarms.onAlarm", "pageAction.hide", "pageAction.onClicked", "pageAction.show", "tabs.get", "tabs.onActivated", "tabs.onUpdated", "tabs.query", "tabs.update" ], "name": "chill-out", "description": "Show a page action after a period of inactivity. Show cat gifs when the page action is clicked." }, { "javascript_apis": [ "commands.getAll", "commands.onCommand" ], "name": "commands", "description": "Demonstrates using the commands API to set up a keyboard shortcut. The shortcut created is accessed using Ctrl+Shift+Y (Command+Shift+Y on a Mac)." }, { "javascript_apis": [ "contextMenus.create", "contextMenus.onClicked", "tabs.executeScript" ], "name": "context-menu-copy-link-with-types", "description": "Add a context menu option to links to copy the link to the clipboard, as plain text and as a link in rich HTML." }, { "javascript_apis": [ "contextMenus.create", "contextMenus.onClicked", "contextMenus.remove", "contextMenus.update", "i18n.getMessage", "runtime.lastError", "tabs.executeScript" ], "name": "context-menu-demo", "description": "Demonstrates adding and manipulating context menu items using the contextMenus API." }, { "javascript_apis": [ "contextualIdentities.query", "tabs.create", "tabs.query", "tabs.remove" ], "name": "contextual-identities", "description": "List, create, and remove contextual identities." }, { "javascript_apis": [ "cookies.get", "cookies.onChanged", "cookies.remove", "cookies.set", "extension.getURL", "runtime.onMessage", "tabs.onActivated", "tabs.onUpdated", "tabs.query", "tabs.sendMessage" ], "name": "cookie-bg-picker", "description": "Allows the user to customize the background color and tiled pattern on sites the visit, and also saves their preferences via a cookie, reapplying them whenever they revisit a site they previously customized." }, { "javascript_apis": [ "alarms.create", "alarms.onAlarm", "theme.update" ], "name": "dynamic-theme", "description": "Dynamic theme example" }, { "javascript_apis": [ "runtime.onMessage", "runtime.sendMessage", "storage.local" ], "name": "embedded-webextension-bootstrapped", "description": "Demonstrates how to use an embedded WebExtension to port from a bootstrapped extension." }, { "javascript_apis": [ "notifications.create", "runtime.connect", "runtime.onConnect", "runtime.onMessage", "runtime.sendMessage", "storage.local" ], "name": "embedded-webextension-sdk", "description": "Demonstrates how to use an embedded WebExtension to port from an SDK-based add-on." }, { "javascript_apis": [], "name": "emoji-substitution", "description": "Replaces words with emojis." }, { "javascript_apis": [], "name": "eslint-example", "description": "Demonstrates how to configure a WebExtension with eslint." }, { "javascript_apis": [ "browserAction.onClicked", "runtime.openOptionsPage", "storage.sync" ], "name": "favourite-colour", "description": "An example options page, letting you store your favourite colour." }, { "javascript_apis": [ "omnibox.onInputChanged", "omnibox.onInputEntered", "omnibox.setDefaultSuggestion", "tabs.create", "tabs.update" ], "name": "firefox-code-search", "description": "Demonstrates how to use the omnibox API." }, { "javascript_apis": [ "browserAction.onClicked", "browsingData.remove", "notifications.create", "storage.local" ], "name": "forget-it", "description": "Demonstrates how to use the browsingData API." }, { "javascript_apis": [ "browserAction.onClicked", "identity.getRedirectURL", "identity.launchWebAuthFlow", "notifications.create" ], "name": "google-userinfo", "description": "Demonstrates how to use the identity API." }, { "javascript_apis": [ "history.deleteUrl", "history.search", "pageAction.show", "tabs.onUpdated", "tabs.query" ], "name": "history-deleter", "description": "History API demo: deletes history items for a given domain" }, { "javascript_apis": [ "downloads.erase", "downloads.getFileIcon", "downloads.open", "downloads.removeFile", "downloads.search" ], "name": "latest-download", "description": "Shows the last downloaded item, and lets you open or delete it." }, { "javascript_apis": [ "cookies.getAll", "tabs.query" ], "name": "list-cookies", "description": "This extensions list the cookies in the active tab." }, { "javascript_apis": [ "runtime.sendMessage" ], "name": "mocha-client-tests", "description": "This example shows two methods of testing a WebExtension: running tests from within the add-on, and running tests from the command line using Karma" }, { "javascript_apis": [ "browserAction.onClicked", "runtime.connectNative" ], "name": "native-messaging", "description": "Example of native messaging, including a Python application and a WebExtension which exchanges messages with it." }, { "javascript_apis": [ "storage.local", "webNavigation.onCompleted" ], "name": "navigation-stats", "description": "Demonstration of the webNavigation API, showing basic stats about which pages you've visited." }, { "javascript_apis": [ "extension.getURL", "i18n.getMessage", "notifications.create", "runtime.onMessage", "runtime.sendMessage" ], "name": "notify-link-clicks-i18n", "description": "Shows a localized notification when the user clicks on links." }, { "javascript_apis": [ "browserAction.onClicked", "tabs.create" ], "name": "open-my-page-button", "description": "Adds a browser action icon to the toolbar. When the browser action is clicked, the add-on opens a page that was packaged with it." }, { "javascript_apis": [], "name": "page-to-extension-messaging", "description": "Demonstrates how a web page and a content script can exchange messages. Visit https://mdn.github.io/webextensions-examples/content-script-page-script-messaging.html for the demo." }, { "javascript_apis": [ "browserAction.onClicked", "permissions.getAll", "permissions.remove", "permissions.request", "runtime.getURL", "tabs.create" ], "name": "permissions", "description": "Demonstrates optional permissions using the permissions API." }, { "javascript_apis": [ "extension.getURL", "proxy.onProxyError", "proxy.registerProxyScript", "runtime.onMessage", "runtime.sendMessage", "storage.local", "storage.onChanged" ], "name": "proxy-blocker", "description": "Uses the proxy API to block requests to specific hosts." }, { "javascript_apis": [ "storage.local" ], "name": "quicknote", "description": "Allows the user to make quick notes by clicking a button and entering text into the resulting popup. The notes are saved in storage." }, { "javascript_apis": [], "name": "react-es6-popup", "description": "This is an example of creating a browser action popup UI in React and ES6 JavaScript." }, { "javascript_apis": [], "name": "selection-to-clipboard", "description": "Demonstrates how to write to the clipboard from a content script" }, { "javascript_apis": [ "storage.local", "webRequest.onAuthRequired", "webRequest.onCompleted", "webRequest.onErrorOccurred" ], "name": "stored-credentials", "description": "Performs basic authentication by supplying stored credentials." }, { "javascript_apis": [ "tabs.create", "tabs.duplicate", "tabs.getZoom", "tabs.highlight", "tabs.move", "tabs.onMoved", "tabs.onRemoved", "tabs.query", "tabs.reload", "tabs.remove", "tabs.setZoom" ], "name": "tabs-tabs-tabs", "description": "Demonstrates tab manipulation: opening, closing, moving, zooming tabs." }, { "javascript_apis": [ "management.getAll", "management.setEnabled" ], "name": "theme-switcher", "description": "An example of how to use the management API for themes." }, { "javascript_apis": [ "topSites.get" ], "name": "top-sites", "description": "Demonstration of the topSites API." }, { "javascript_apis": [ "extension.getBackgroundPage", "webRequest.onBeforeSendHeaders" ], "name": "user-agent-rewriter", "description": "Demonstrates using the webRequest API to rewrite the User-Agent HTTP header." }, { "javascript_apis": [ "runtime.onMessage", "runtime.sendMessage" ], "name": "webpack-modules", "description": "Demonstrates how to use webpack to package npm modules in a WebExtension." }, { "javascript_apis": [ "windows.create", "windows.getAll", "windows.getCurrent", "windows.remove", "windows.update" ], "name": "window-manipulator", "description": "Demonstrates how to manipulate windows: opening, closing, resizing windows." } ]