Index

Found 864 pages:

# Page Tags and summary
1 Add-ons Add-ons, Extension, Extensions, Landing, Mozilla
Add-ons allow developers to extend and modify the functionality of Firefox.
2 AMO
Content to be added.
3 AMO Policies
Mozilla is committed to ensuring a great add-ons experience for our users and developers. Please review the policies below before submitting your add-on.
4 AMO Add-on Maintenance Policies
Add-on updates, transferring ownership, user reviews, and what to expect once your add-on is approved.
5 AMO Contact Information
How to get in touch with us regarding these policies or your add-on.
6 AMO Featured Add-ons Policies
How up-and-coming add-ons become featured and what's involved in the process.
7 AMO Submission Policies
Find out what is expected of add-ons we host and our policies on specific add-on practices.
8 Firefox Add-on Distribution Agreement
Effective January 5, 2016
9 Review Policies Add-ons, Review Policy
In order to protect the safety and sovereignty of Firefox users, Mozilla requires all add-ons to comply with a set of policies on acceptable practices. The exact set of applicable policies varies depending on a number of circumstances, the most important being whether the add-on is hosted on addons.mozilla.org (hereafter AMO), and how the add-on is distributed in the wild.
10 Add-ons Manager API AMO, AMO API, Add-ons, Reference
API calls are served by accessing https://services.addons.mozilla.org/api/.
11 Add-on Debugger Advanced, Debugging, Developer, Firefox, Guide, Howto, JavaScript, add-on
The Add-on Debugger lets you run a subset of the Firefox developer tools in the context of your add-on:
12 Add-on Manager Add-on Manager, Add-ons, Guide
13 Addon Add-on Manager, Add-ons, Extensions, Guide, NeedsContent
14 AddonAuthor Add-on Manager, Add-ons
15 AddonInstall Add-on Manager, Add-ons, Extensions, Reference, Référence
16 AddonListener Add-on Manager, Add-ons, Reference, Référence
17 AddonManager Add-on Manager, Add-ons, Interfaces, Interfaces:Scriptable, Reference, Référence
18 AddonScreenshot Add-on Manager, Add-ons
19 AddonType
20 AddonUpdateChecker Add-on Manager, Add-ons, Reference, Référence
21 Code Samples Add-on Manager, Add-ons, Examples
If you need to determine the directory in which your add-on is installed, code like the following will do the trick. Simply replace YOUREXTENSIONID with your add-on's ID.
22 InstallListener Add-on Manager, Add-ons, Reference, Référence
23 TypeListener
24 UpdateCheckListener Add-on Manager, Add-ons, Method, Reference, Référence
25 UpdateInfo Add-on Manager, Add-ons, Property, Reference, Référence
26 UpdateListener Add-on Manager, Add-ons, Extensions, Method, Reference, Référence
27 Add-on Repository AMO, Add-on Manager, Add-ons
28 SearchCallback Add-on Manager, Add-ons
29 Add-on SDK Add-on SDK, Jetpack
Using the Add-on SDK, you can create Firefox add-ons. You can use various standard Web technologies: JavaScript, HTML, and CSS, to create the add-ons. The SDK includes JavaScript APIs, which you can use to create add-ons and tools for creating, running, testing, and packaging add-ons.
30 Builder
The Add-on Builder was a web-based development environment that allowed developers to create add-ons using the SDK APIs, but without needing to use the jpm command line tool. It was retired on April 1, 2014, and the "builder.addons.mozilla.org" domain now redirects to this page.
31 Guides Add-on SDK
This page lists more theoretical in-depth articles about the SDK.
32 Content Scripts Add-on SDK
Many add-ons need to access and modify the content of web pages. But the main add-on code doesn't get direct access to web content. Instead, SDK add-ons need to factor the code that gets access to web content into separate scripts that are called content scripts. This page describes how to develop and implement content scripts.
33 Communicating With Other Scripts
This section of the guide explains how content scripts can communicate with:
34 Communicating using "port"
To enable add-on scripts and content scripts to communicate with each other, each end of the conversation has access to a port object.
35 Communicating using "postMessage" Add-on SDK
As an alternative to port, content modules support the built-in message event. In most cases port is preferable to message events. However, the context-menu module does not support port, so to send messages from a content script to the add-on via a context menu object, you must use message events.
36 Cross-domain Content Scripts Add-on SDK, Add-ons, Extensions
By default, content scripts don't have any cross-domain privileges. In particular, they can't:
37 Interacting with page scripts Add-on SDK, Add-ons, Extensions
By default, content scripts loaded by add-ons and scripts loaded by web pages are insulated from each other:
38 Loading Content Scripts
The constructors for content-script-using objects such as panel and page-mod define a group of options for loading content scripts:
39 Reddit Example Advanced, CodingScripting, JavaScript, Mobile
This example add-on creates a panel containing the mobile version of Reddit. When the user clicks on the title of a story in the panel, the add-on opens the linked story in a new tab in the main browser window.
40 port
This article documents the port object, which is used to communicate between a content script and the main add-on code.
41 self
This article documents the self object that is available as a global in content scripts. self provides:
42 Contributor's Guide
No summary!
43 Classes and Inheritance Add-on SDK
A class is a blueprint from which individual objects are created. These individual objects are the instances of the class. Each class defines one or more members, which are initialized to a given value when the class is instantiated. Data members are properties that allow each instance to have their own state, whereas member functions are properties that allow instances to have behavior. Inheritance allows classes to inherit state and behavior from an existing classes, known as the base class. Unlike languages like C++ and Java, JavaScript does not have native support for classical inheritance. Instead, it uses something called prototypal inheritance. As it turns out, it is possible to emulate classical inheritance using prototypal inheritance, but not without writing a significant amount of boilerplate code.
44 Content Processes Add-on SDK
A content process was supposed to run all the code associated with a single tab. Conversely, an add-on process was supposed to run all the code associated with a single add-on. Neither content or add-on proceses were ever actually implemented, but by the time they were cancelled, the SDK was already designed with them in mind. To understand this article, it's probably best to read it as if content and add-on processes actually exist.
45 Getting Started Add-on SDK
Learn how to contribute to the Add-on SDK.
46 Modules Add-ons, Extensions
A module is a self-contained unit of code, which is usually stored in a file, and has a well defined interface. The use of modules greatly improves the maintainability of code, by splitting it up into independent components, and enforcing logical boundaries between them. Unfortunately, JavaScript does not yet have native support for modules: it has to rely on the host application to provide it with functionality such as loading subscripts, and exporting/ importing names. We will show how to do each of these things using the built-in Components object provided by Xulrunner application such as Firefox and Thunderbird.
47 Private Properties
People have come up with several ways to emulate private properties using existing language features. This article discusses two common techniques: one using prefixes, the other closures.
48 Firefox Compatibility Add-on SDK
No summary!
49 Module structure of the SDK Add-on SDK
CommonJS is the underlying infrastructure for both the SDK and the add-ons you build using the SDK. A CommonJS module is a piece of reusable JavaScript: it exports certain objects which are thus made available to dependent code. CommonJS defines:
50 Multiprocess Firefox and the SDK Firefox OS, Guide, SDK
This article explains how developers can test whether SDK-based add-ons are compatible with multiprocess Firefox, and how to fix them if they are not.
51 Porting the Library Detector Add-on SDK, Add-ons, Example, Extensions, Sample code, Tutorial
This example walks through the process of porting a XUL-based add-on to the SDK. It's a very simple add-on and a good candidate for porting because there are suitable SDK APIs for all its features.
52 Program ID
The Program ID is a unique identifier for your add-on. When you package your add-on for distribution using jpm xpi, it will become the ID field in the add-on's Install Manifest.
53 SDK API Lifecycle
Developers using the SDK's APIs need to know how far they can trust that a given API will not change in future releases. At the same time, developers maintaining and extending the SDK's APIs need to be able to introduce new APIs that aren't yet fully proven, and to retire old APIs when they're no longer optimal or supported by the underlying platform.
54 SDK and XUL Comparison
That's not the whole story. If you need more flexibility than the SDK's High-Level APIs provide, you can use its Low-level APIs to load XPCOM objects directly or to manipulate the DOM directly as in a traditional bootstrapped extension.
55 Testing the Add-on SDK Add-on SDK, CFX, JPM, SDK
With a checkout of the mozilla/addon-sdk repository (or a checkout of the m-c repo and cd into the addon-sdk/source directory) there are many means to run the addon-sdk tests.
56 Two Types of Scripts
On the web, JavaScript executes in the context of a web page, and has access to that page's DOM content. This enables you to call functions like:
57 Working with Events
The Add-on SDK supports event-driven programming.
58 XUL Migration Guide
This guide aims to help you migrate a XUL-based add-on to the SDK.
59 High-Level APIs Add-on SDK
Modules listed on this page implement high-level APIs for building add-ons: creating user interfaces, interacting with the web, and interacting with the browser.
60 addon-page Add-on SDK, Add-ons, Extensions, Reference, Référence
Create a page that does not contain navigational elements.
61 base64 Add-on SDK
Data encoding and decoding using Base64 algorithms.
62 clipboard Add-on SDK
Interact with the system clipboard, setting and getting its contents.
63 context-menu Add-on SDK, Add-ons, Extensions, Firefox, SDK
Adds items, submenus, and menu separators to the page's context menu.
64 hotkeys Add-on SDK
Assign hotkey combinations to functions in your add-on.
65 indexed-db Add-on SDK
Exposes the IndexedDB API to add-ons.
66 l10n Add-on SDK
Localize strings appearing in the add-on's JavaScript code.
67 notifications Add-on SDK, Notifications
Display transient, toaster-style desktop messages to the user.
68 page-mod Add-on SDK
Run scripts in the context of web pages whose URL matches a given pattern.
69 page-worker Add-on SDK
Create a permanent, invisible page and access its DOM.
70 panel Add-on SDK, Add-ons, Extensions
Creates transient dialogs to implement part of an add-on's user interface.
71 passwords Add-on SDK
Interact with Firefox's Password Manager to add, retrieve and remove stored credentials.
72 private-browsing Add-on SDK
Check whether a given object is private, so an add-on can respect private browsing
73 querystring Add-on SDK
Utility functions for working with query strings.
74 request NeedsUpdate, SDK, add-on
Make simple network requests.
75 selection Add-on SDK
Get and set text and HTML selections in the current web page.
76 self Add-on SDK
Access data that is bundled with the add-on, and add-on metadata.
77 simple-prefs Add-on SDK
Store preferences across application restarts.
78 simple-storage Add-on SDK, Add-ons, Reference, Référence
Lets an add-on store data so that it's retained across Firefox restarts.
79 system Add-on SDK
Query the add-on's environment and access arguments passed to it.
80 tabs Add-on SDK
Open, manipulate, and access tabs, and receive tab events.
81 timers Add-on SDK
Set one-off and periodic timers.
82 ui Add-on SDK, Add-ons, Extensions, Reference
Provides access to button, toolbar, and sidebar UI objects.
83 url Add-on SDK
Construct, validate, and parse URLs.
84 webextension
Provides functions for communicating with an embedded WebExtension.
85 widget Add-on SDK
Create a simple user interface for an add-on in Firefox's add-on bar.
86 windows Add-on SDK
Enumerate and examine open browser windows, open new windows, and listen for window events.
87 Low-Level APIs
Modules in this section implement low-level APIs. These modules fall roughly into three categories:
88 /loader
Create CommonJS module loaders.
89 chrome
The chrome module gives an Add-on SDK add-on access to the Components object, which in turn gives it access to a large set of privileged low-level Firefox APIs.
90 console/plain-text
Constructor for a console instance.
91 console/traceback
Functionality similar to Python's traceback module.
92 content/content
Re-exports three objects from three other modules: Loader, Worker, and Symbiont.
93 content/loader
Provides one of the building blocks for those modules that use content scripts to interact with web content, such as panel and page-mod.
94 content/mod
Provides functions to modify a page content.
95 content/symbiont
Used by SDK modules that can load web content and attach content scripts to it.
96 content/worker
Used in the internal implementation of SDK modules which use content scripts to interact with web content.
97 core/heritage
Helper functions for inheritance.
98 core/namespace
Provides an API for creating namespaces for objects, which effectively may be used for creating fields that are not part of objects public API.
99 core/promise
Implementation of promises to make asynchronous programming easier.
100 dev/panel
Enables you to extend the Firefox Developer Tools.
101 event/core
The event/core module allows the creation of APIs to broadcast and subscribe to events.
102 event/target
Create objects that broadcast events.
103 frame/hidden-frame
Creates Firefox frames (i.e. XUL <iframe> elements) that are not displayed to the user.
104 frame/utils
Provides helper functions for working with platform internals like frames and browsers.
105 fs/path
Provides access to the local filesystem with the NodeJS path module API.
106 io/byte-streams
Provides streams for reading and writing bytes.
107 io/file
Provides access to the local filesystem.
108 io/text-streams
Provides streams for reading and writing text.
109 lang/functional
Functional helper methods.
110 lang/type
Functions for working with type detection.
111 loader/cuddlefish Add-on SDK, CFX
The SDK's module loader.
112 loader/sandbox
Create JavaScript sandboxes and execute scripts in them.
113 net/url
Enables you to read content from a URI.
114 net/xhr
Provides access to XMLHttpRequest functionality.
115 places/bookmarks
Create, modify, and retrieve bookmarks.
116 places/favicon
Helper functions for working with favicons.
117 places/history
Access the user's browsing history.
118 platform/xpcom
Implement XPCOM objects, factories, and services.
119 preferences/event-target Add-on SDK
Listen to changes to the Preferences system in Firefox.
120 preferences/service Add-on SDK, Jetpack, SDK
Access the Preferences system in Firefox.
121 remote/child Module, Reference, Référence, SDK
Enables an SDK module loaded into a child process to access web content in the child process and communicate with modules in the main process.
122 remote/parent Reference, Référence, SDK
Enables you to load modules, and privileged parts of your add-on in general, into child processes.
123 stylesheet/style
Modify styles using stylesheet files or CSS rules.
124 stylesheet/utils
Helper functions for working with stylesheets.
125 system/child_process
An implementation of the node.js child_process API.
126 system/environment
Access, set and clear environment variables.
127 system/events
API for working with the application observer service.
128 system/runtime
Access to information about Firefox's runtime environment.
129 system/unload
Register callbacks that are called when a module is unloaded.
130 system/xul-app
Information about the application on which your add-on is running.
131 tabs/utils
Functions for working with XUL tabs and the XUL tabbrowser object.
132 test/assert Add-on SDK, JPM
Implements the assert interface defined in the CommonJS Unit Testing specification version 1.1.
133 test/harness
Test harness setup and execution.
134 test/httpd
An HTTP server for the Mozilla platform, which can be used in unit tests.
135 test/runner
Sets up unit tests.
136 test/utils
Helper methods used in the CommonJS Unit Testing suite.
137 ui/button/action
Add a button to the Firefox user interface.
138 ui/button/toggle
Add a toggle button to the Firefox user interface.
139 ui/frame
Create HTML iframes, using bundled HTML, CSS and JavaScript, that can be added to a designated area of the Firefox user interface.
140 ui/id
Create UI component IDs.
141 ui/sidebar
Enables you to create sidebars.
142 ui/toolbar
Add a toolbar to the Firefox user interface.
143 util/array
Helper functions for working with arrays.
144 util/collection
A simple list-like class and utilities for using it.
145 util/deprecate
Functions to deprecate code.
146 util/list
Building blocks for composing lists.
147 util/match-pattern
Test strings containing URLs against simple patterns.
148 util/object
Functions for working with objects.
149 util/uuid
Generate or parse UUIDs.
150 window/utils
Functions for working with browser windows.
151 Release notes Add-on SDK
GitHub commits made between Firefox 34 and Firefox 35. This will not include any uplifts made after this release entered Aurora.
152 Tools Add-on SDK, CFX, JPM
Articles listed here provide a reference for the SDK's tools:
153 cfx Add-on SDK, CFX
Enables you to test, run, and package add-ons. cfx is is no longer supported as of Firefox 44 and no longer accepted for add-on submission, jpm should now be used instead.
154 cfx to jpm CFX, JPM, SDK, add-on
A guide to working with jpm if you're already familiar with cfx.
155 console Add-on SDK
Enables your add-on to log error, warning or informational messages.
156 jpm Add-on SDK, JPM
jpm is a command-line tool that enables you to test, run, and package add-ons.
157 jpm-mobile ADB, Add-ons, JPM, Mobile, Testing, travis-ci
The Node-based replacement for cfx --force-mobile. Enables you to run and test add-ons for Firefox Mobile (aka Fennec).
158 jpmignore JPM
Use .jpmignore to ignore files from your XPI builds created via jpm.
159 package.json CommonJS, JPM, SDK, add-on, package.json
The package.json file contains manifest data for your add-on, providing not only descriptive information about the add-on for presentation in the Add-ons Manager, but other metadata required of add-ons.
160 Tutorials Add-on SDK
This page lists practical hands-on articles about how to accomplish specific tasks using the SDK.
161 Add a Context Menu Item Add-on SDK, Firefox, Guide
To add items and submenus to the Firefox context menu, use the context-menu module.
162 Add a Menu Item to Firefox Add-on SDK
The SDK doesn't provide a built-in API to add new menu items to Firefox. But it's extensible by design, so anyone can build and publish modules for add-on developers to use.
163 Adding a Button to the Toolbar Add-on SDK
To add a button to the toolbar, use the action button or toggle button modules.
164 Annotator Add-on SDK
In this tutorial we'll build an add-on that uses many of the SDK's high-level APIs.
165 Creating annotations Add-on SDK, Add-ons, Beginner, Extensions, Tutorial
We'll use two objects to create annotations: a page-mod to find page elements that the user can annotate, and a panel for the user to enter the annotation text itself.
166 Displaying annotations Add-on SDK
In this chapter we'll use a page-mod to locate elements of web pages that have annotations associated with them, and a panel to display the annotations.
167 Implementing the widget Add-on SDK, Add-ons, Beginner, Extensions, Tutorial
We want the widget to do two things:
168 Overview Add-on SDK
The annotator uses content scripts to build user interfaces, get user input, and examine the DOM of pages loaded by the user.
169 Storing annotations Add-on SDK
Now we are able to create annotations, let's store them using the simple-storage module. In this chapter we will cover three topics relating to persistent storage:
170 Chrome Authority
The most powerful low-level modules are run with "chrome privileges", which gives them access to the infamous Components object, which grants unfettered access to the host system. From this, the module can do pretty much anything the browser is capable of. To obtain these privileges, the module must declare its intent with a statement like the following:
171 Creating Event Targets
This tutorial describes the use of low-level APIs. These APIs are still in active development, and we expect to make incompatible changes to them in future releases.
172 Creating Reusable Modules Add-on SDK
With the SDK you don't have to keep all your add-on in a single "index.js" file. You can split your code into separate modules with clearly defined interfaces between them. You then import and use these modules from other parts of your add-on using the require() statement, in exactly that same way that you import core SDK modules like page-mod or panel.
173 Developing for Firefox Mobile Add-on SDK
Firefox for Android implements its UI using native Android widgets instead of XUL. With the add-on SDK you can develop add-ons that run on this new version of Firefox Mobile as well as on the desktop version of Firefox.
174 Display a Popup Add-on SDK
To display a popup dialog, use the panel module. A panel's content is defined using HTML. You can run content scripts in the panel: although the script running in the panel can't directly access your main add-on code, you can exchange messages between the panel script and the add-on code.
175 Getting Started (jpm) Add-on SDK, JPM
In this tutorial we've built and packaged an add-on using three commands:
176 Getting started (cfx)
In this tutorial we've built and packaged an add-on using three commands:
177 List Open Tabs Add-on SDK
To list the open tabs, you can iterate over the tabs object itself.
178 Listen for Page Load Add-on SDK
You can get notifications about new pages loading using the tabs module. The following add-on listens to the tab's built-in ready event and just logs the URL of each tab as the user loads it:
179 Listening for Load and Unload
If your add-on exports a function called main(), then that function will be called whenever the add-on is loaded, and it will be passed an object containing a string describing the reason it was loaded as well as any arguments passed to it. If your add-on exports a function called onUnload(), then that function will be called when the add-on is unloaded, and it will be passed a string describing the reason it was unloaded.
180 Localization Add-on SDK, Localization
The SDK supports localization of strings appearing in:
181 Logging Add-on SDK
The DOM console object is useful for debugging JavaScript. Because DOM objects aren't available to the main add-on code, the SDK provides its own global console object with most of the same methods as the DOM console, including methods to log error, warning, or informational messages. You don't have to require() anything to get access to the console. It is automatically made available to you.
182 Modifying Web Pages Based on URL Add-on SDK
To modify any pages that match a particular pattern (for example, "http://example.org/") as they are loaded, use page-mod module.
183 Modifying the Page Hosted by a Tab Add-on SDK
To modify the page hosted by a particular tab, load one or more content scripts into it using attach() method of tab object. The job of these scripts is to interact with web content.
184 Open a Web Page Add-on SDK
To open a new web page, you can use the tabs module:
185 Troubleshooting
If you're having trouble getting the Add-on SDK up and running, don't panic! This page lists some starting points that might help you track down your problem.
186 Unit Testing Add-on SDK, JPM
The SDK provides a framework to help create and run unit tests for your code. To demonstrate how it works we'll write some unit tests for a simple Base64 encoding module.
187 Using XPCOM without chrome Bookmarks, Chrome, SDK, XPCOM
With the low-level module sdk/platform/xpcom , it's possible to exclude chrome and XPCOMUtils in some cases.
Below is an example for the XPCOM bookmark observer.
188 Using third-party modules (jpm) Addon-SDK, JPM
First, while in the root of your add-on, install the package that contains the modules you want to use:
189 Adding extensions using the Windows registry Add-ons, Extensions, Installing, Mozilla, Registry, Windows, Windows Registry
This document explains how to "install" Firefox and Thunderbird extensions using the Windows Registry. This mechanism is designed to make it easier for third-party installers to register extensions with Firefox and Thunderbird.
190 Bootstrapped extensions Add-ons, Extensions, Firefox 4, Gecko 2.0, Guide, Localization
Traditional extensions include overlays, wherein the application can load up XUL from the extension's package and automatically apply it on top its own UI. While this makes creating extensions that add to the application's user interface relatively easy, it means that updating, installing, or disabling an extension requires an application restart.
191 Code snippets Add-ons, Code snippets, Extensions
192 Alerts and Notifications Code snippets
non-modal notification and further interaction with users
193 Autocomplete Code snippets, Form Fill, Satchel
194 Bookmarks Code snippets, Developing Mozilla, Extensions, Places
195 Boxes Code snippets
Make the BOX style="display: block" and the wrapping behavior will occur when the box is resized:
196 Canvas code snippets Canvas, Code snippets, Graphics
197 Cookies Add-ons, Code snippets, Cookies, Extensions
198 Customizing the download progress bar
199 Delayed Execution Code snippets
200 Dialogs and Prompts Add-ons, Code snippets, Extensions, XUL
201 Downloading Files Code snippets
To download a file, create an instance of nsIWebBrowserPersist and call its nsIWebBrowserPersist.saveURI() method, passing it a URL to download and an nsIFile instance representing the local file name/path.
202 Drag & Drop Code snippets
203 Embedding SVG Code snippets
204 Examples and demos from articles
205 File I/O Add-ons, Code snippets, Extensions, Files, Streams, Tutorial
206 Finding window handles Add-ons, Code snippets, Extensions, XPCOM, js-ctypes
207 Forms related code snippets Code snippets, Forms
208 HTML in XUL for rich tooltips Code snippets, Examples, HTML, XUL
209 HTML to DOM Code snippets, DOM, Guide, HTML, Intermediate, NeedsUpdate
210 IsDefaultNamespace
211 JS XPCOM Code snippets, JavaScript, XPCOM, about:, nsIAboutModule
212 JavaScript Debugger Service Code snippets
213 JavaScript timers JavaScript timers, NeedsBetterPlace
214 JavaScript Daemons Management DOM, Guide, JavaScript, JavaScript timers, MakeBrowserAgnostic
215 Label and description Code snippets
216 LookupNamespaceURI
217 LookupPrefix
218 Miscellaneous Add-ons, Code, Code snippets, Extensions, Snippets
219 Modules
220 On page load Add-ons, Extensions
221 Page Loading Code snippets
222 Post data to window Add-ons, Extensions, NeedsContent
223 Preferences Add-ons, Code snippets, Extensions, Guide, Mozilla, Preferences
224 Progress Listeners Add-ons, Extensions
225 QuerySelector DOM
No summary!
226 Rosetta C, DOM, HTML, HTMLScriptElement, JavaScript, Non-JavaScript, Programming Languages
227 Running applications Add-ons, Code snippets, Extensions
228 SVG Animation NeedsContent
229 SVG General Code snippets
230 Scrollbar Code snippets
231 Sidebar Add-ons, Code snippets, Extensions
232 StringView Code snippet, Guide, JavaScript, JavaScript typed arrays, MDN JavaScript Libraries, Sample code, Typed Arrays, WebGL, WebSockets, js-ctypes
233 Tabbox
Assuming the tabbox, tabs, and tabpanels widgets with id's the same as their nodeName, this function will correctly remove the current tab and tab panel for the onclosetab tabs event:
234 Toolbar Add-ons, Code snippets, Extensions, Toolbars
235 Tree Code snippets
236 URI parsing
237 View Source for XUL Applications
238 Windows Add-ons, Code snippets, Extensions, Guide, NeedsContent, NeedsHelp
239 XML-related code snippets Add-ons, Code snippets, Extensions
240 xml:base support in old browsers Code snippets
241 XPath
242 getAttributeNS Code snippets
243 Creating OpenSearch plugins for Firefox Add-ons, Guide, OpenSearch, Search, Search plugins
Firefox supports the OpenSearch description format for search plugins. OpenSearch plugins are also compatible with Internet Explorer, Safari, and Chrome.
244 Creating custom Firefox extensions with the Mozilla build system Add-ons, Build documentation, Developing Mozilla, Extensions, Guide, NeedsContent, XPCOM
There is a wealth of material on creating extensions for Firefox. All of these documents currently assume, however, that you are developing your extension using XUL and JavaScript only. For complex extensions, it may be necessary to create components in C++ that provide additional functionality. Reasons why you might want to include C++ components in your extension include:
245 Extension Etiquette Add-ons, Extensions, Guide
This article describes best practices when making extensions, including how to be kind to your users. It assumes that you are already familiar with Building an Extension.
246 Extension Packaging Add-ons, Extensions, Guide, Toolkit API
By the end of 2017 WebExtensions will be the only supported add-on type in Firefox. To learn how to install a WebExtension for testing purposes, see Temporary Installation in Firefox. To learn how to package a WebExtension for distribution, see Publishing your WebExtension.
247 Extensions for Firefox for Android
Firefox for Android supports add-ons using the same extension system used by all other Gecko-based applications. You can use WebExtensions, the Add-on SDK or build manually bootstrapped restartless add-ons. You can even develop traditional restart-required add-ons, although WebExtensions are preferable.
248 API
There are a couple of differences between desktop Firefox and Firefox for Android that are particularly relevant to add-on developers:
249 Accounts.jsm
The Accounts API lets you check whether a Firefox Account or a legacy Sync account is currently present on the device, and to start the Firefox Account set-up process if an account is not present. Accounts is a single object that provides a Promise-based API.
250 BrowserApp Apps, CodingScripting, Firefox, Glossary, Guide, Mobile, add-on
Add-ons running on desktop Firefox can use the global gBrowser variable to interact with tabs and any HTML content they host. This object isn't available on Firefox for Android, and instead add-ons should use the BrowserApp object, which provides much of the same functionality.
251 addTab
BrowserApp.addTab() opens a new tab. By default, the new tab is made the selected tab.
252 closeTab
BrowserApp.closeTab(tab) closes the supplied tab. If no other tabs are open, then the tab is not closed.
253 deck
deck is a property of the BrowserApp object. It is a deck of all currently open browsers, represented as browser objects.
254 getBrowserForDocument
BrowserApp.getBrowserForDocument() retrieves a browser, given the DOM document hosted by that browser.
255 getBrowserForWindow
BrowserApp.getBrowserForWindow() retrieves a browser, given the DOM content window hosted by that browser.
256 getTabForBrowser
BrowserApp.getTabForBrowser() retrieves a tab, given the XUL browser object hosted by that tab.
257 getTabForId
BrowserApp.getTabForId() retrieves a browser tab, given its unique ID.
258 getTabForWindow
BrowserApp.getTabForWindow() retrieves a browser tab, given the DOM window hosted by that tab.
259 loadURI
BrowserApp.loadURI(uri, browser, params) loads the specified URI into the specified browser.
260 quit Apps, Firefox, Mobile, NeedsContent
BrowserApp.quit() closes the browser.
261 selectTab Mobile, NeedsContent, Reference, Référence
BrowserApp.selectTab(tab) makes the supplied tab the currently selected tab.
262 tabs Apps, CodingScripting, Firefox, JavaScript, Mobile
tabs is a property of the BrowserApp object. It is an Array of all currently open tabs, represented as Tab objects.
263 HelperApps.jsm
264 Home.jsm
The Home.jsm JavaScript code module offers utility routines dealing with customizing the home page in Fennec. This is the page that's shown on startup and new tabs, as well as when the user enters "editing mode" from the urlbar. To use it, you first need to import the code module into your JavaScript scope:
265 banner API, Glossary, Guide, JavaScript, glossary
The Home.banner API lets you customize a banner that appears at the bottom of the home page. You can use this API to add and remove messages from the set of messages that rotate through this banner.
266 panels API, CodingScripting, Firefox, Glossary, Guide, JavaScript, Mobile, add-on, glossary
Use the Home.panels API to add custom panels to the browser's home page.
267 HomeProvider.jsm
The HomeProvider API lets you store data that can be displayed in custom panels on the home page. HomeProvider is a single object that manages access to data and data syncing.
268 HomeStorage
Each HomeStorage object is associated with a single dataset. This object is used to save and delete data. Consumers can retreive a HomeStorage object through the HomeProvider API.
269 JavaAddonManager.jsm
The JavaAddonManager API lets you dynamically load compiled Java code and interact with it.  JavaAddonManager is a single object that provides a Promise-based API.  JavaAddonManager is a factory that produces JavaAddonV1 instances.
270 NativeWindow
The NativeWindow object enables Firefox for Android add-ons to create user interface components.
271 contextmenus API, Reference, Référence
Returns a reference to the NativeWindow.contextmenus object, which can be used to add items to the Firefox for Android context menu, and subsequently remove them. You can add a menu item to the context menu using NativeWindow.contextmenus.add() and remove it using NativeWindow.contextmenus.remove().
272 add API, Api, CodingScripting, Firefox, Guide, JavaScript, Mobile, add-on, guide
NativeWindow.contextmenus.add() adds a new context menu item to Firefox for Android.
273 remove API, CodingScripting, Firefox, JavaScript, Mobile, add-on
NativeWindow.contextmenus.add() adds an item to the context menu in Firefox for Android, returning an ID for the item. To remove the item, use NativeWindow.contextmenus.remove(), passing in the item's ID.
274 doorhanger Add-ons, Extensions, Mobile, Reference, Référence, add-ons
Returns a reference to the NativeWindow.doorhanger object, which can be used to display doorhanger notifications (also known as popup notifications) on Firefox for Android.
275 menu API, Reference, Référence
Returns a reference to the NativeWindow.menu object, which can be used to add items to the main Firefox for Android menu, and subsequently remove them. You can add a menu item to a browser window using NativeWindow.menu.add() and remove it using NativeWindow.menu.remove().
276 add NativeWindow, Reference, Référence, menu
NativeWindow.menu.add() adds a new item to the main menu in Firefox for Android. By specifying an optional parent attribute, a menu item can be added to the submenu of the parent.
277 remove
NativeWindow.menu.add() adds an item to the main menu in Firefox for Android, returning an ID for the item. To remove the item, use NativeWindow.menu.remove(), passing in the item's ID.
278 update Extensions, Fiferox for Android, NativeWindow
NativeWindow.menu.add() adds an item to the main menu in Firefox for Android, returning an ID for the item. To update the item, use NativeWindow.menu.update(), passing in the item's ID and a set of attributes to update.
279 toast Add-ons, CodingScripting, Firefox, Guide, JavaScript, Mobile, add-ons
Returns a reference to the NativeWindow.toast object, which can be used to display toast notifications on Firefox for Android.
280 show API, Add-ons, CodingScripting, Firefox, Glossary, Guide, JavaScript, Mobile, add-ons, glossary, toast
NativeWindow.toast.show() displays a toast notification on Firefox for Android.
281 Notifications.jsm
The Notifications.jsm JavaScript code module offers utility routines dealing with showing system notifications in Fennec. It duplicates some of what is available in the nsIAlertService already, but exposes to more advanced Android functionality.
282 PageActions.jsm
Contains the PageActions object, which can be used to add items to the Firefox for Android url/title bar, and subsequently remove them. You can add an item using PageActions.add() and remove it using PageActions.remove(). Import the script by inserting:
283 Prompt.jsm
284 RuntimePermissions.jsm
Contains the RuntimePermissions object, which can be used to check whether one or more runtime permissions have been granted to Firefox for Android, and to ask for them if they have not.
285 Snackbars.jsm
Contains the Snackbars object, which can be used to show notifications to let users know that some change has been made.
286 Sound.jsm
The Sound.jsm JavaScript code module offers the ability to play sounds simply using the HTML 5 audio APIs under the hood. For basic usage, see the Github readme.
287 Tab API, Add-ons, CodingScripting, Firefox, Mobile, Tab, add-ons
The Tab object represents a browser tab, and provides access to the browser and the DOM content window hosted by that tab.
288 Addons developer guide install, xpi
This guide walks you through the steps needed to make a restartless add-on for Firefox on Android. If you are familiar with building add-ons for desktop Firefox, much of this guide will be review. Firefox on Android uses native Android widgets for the browser UI so the big difference is how you interact with the browser UI.
289 Code snippets
This article includes code snippets to help you write an add-on for Firefox for Android. For additional code samples, check out the Firefox for Android Add-ons Github repo.
290 Creating a User Interface
See the NativeWindow documentation for examples the APIs Firefox for Android add-ons can use to create user interface components.
291 Firefox Hub Walkthrough
This guide walks you through developing a Firefox Hub add-on for Firefox for Android. The Firefox Hub APIs allow add-ons to add new content to the Firefox for Android home page. These APIs are new in Firefox 30, and increased capabilities are planned for future releases. The two main APIs that this guide covers are the Home.panels API and the HomeProvider API. For some example code to get started, you can copy the hub boilerplate add-on from github.
292 Initialization and Cleanup
Android add-ons don't have to be restartless, but with Firefox for Android you can't use XUL overlays to create your user interface, so there's much less incentive to write overlay-based add-ons.
293 Prerequisites Extensions, Mobile
While you're developing your add-on, it will be very important to have a way to test and run snippets of code; development will go very slowly if you have to build and install your entire app every time you need to test something. Once all of your snippets are working together, then you can start worrying about bringing together all of the add-on files to build the complete app (bootstrap.js, etc.). You can do this using WebIDE, by connecting your device to your development workstation.
294 Walkthrough Extensions, Mobile
This guide walks you through the process of developing a simple add-on for Firefox for Android. The add-on adds a menu item to display the source of the current web page.

If you're familiar with developing add-ons for desktop Firefox, much of this guide will not be new to you.
295 Extensions support in SeaMonkey 2 Add-ons, CodingScripting, Extensions, JavaScript, SeaMonkey, URL, add-ons, thunderbird
Starting with SeaMonkey 2 Alpha 1 SeaMonkey supports toolkit/-style extensions. These type of extensions have many advantages for both users and developers compared to the old xpinstall/-style extensions.
296 Hotfix Extension
This document has been moved to the Add-ons wiki.
297 How to convert an overlay extension to restartless Add-ons, Code snippets, Extensions, Firefox, Firefox OS, Guide, Preferences system
First off, what kind of add-on are we talking about here? Well, XUL overlays and windows, JSM files, chrome & resource mappings with localization, default preferences, but no XPCOM components of your own. Some of that will have to be replaced and the rest will need to be loaded differently.
298 Index Add-ons, Glossary, Guide, Index
Found 864 pages:
299 Inline options Add-ons, Extensions, XUL
Firefox 7 supports a new syntax for defining extensions' preferences for both bootstrapped and traditional extensions. The user interface for the preferences defined with this new syntax appears in the extension's detail view in the Add-on Manager. This functionality originally appeared in Firefox mobile and is now available in Firefox on the desktop as well.
300 Install Manifests Add-ons, Extensions, Manifests, NeedsUpdate, Toolkit API
An Install Manifest is the file an Add-on Manager-enabled XUL application (e.g. Firefox or Thunderbird) uses to determine information about an add-on as it is being installed. It contains metadata identifying the add-on, providing information about who created it, where more information can be found about it, which versions of what applications it is compatible with, how it should be updated, and so on.
301 Installing extensions Add-ons, Extensions, Guide
If you are developing a native tool or application which ships with an associated extension for toolkit-based application, such as Firefox, your native tool can initiate the extension installation by copying the extension into a predefined directory on the user's computer.  The next time that the toolkit-based application (Firefox) is launched, the user will be asked to approve of the installation, and if the user approves, the extension will be automatically loaded for subsequent launches.  If the user has more than one profile, the approval and installation will occur on the next launch of each profile.
302 Interfacing with the Add-on Repository AMO, Add-on Manager, Add-ons
The Add-on Repository JavaScript code module makes it easy for your extension to interface with the AMO repository. You an use the code module to get lists of add-ons and even install new add-ons. This article provides some sample code that queries the recommended add-ons list on AMO and lets the user click a button to install an add-on from the list.
303 Legacy extensions Add-ons, Extensions, Landing
This page contains links to documentation for the approach to developing extensions for Gecko-based applications which uses:
304 Firefox addons developer guide Add-ons, Extensions, Firefox, Guide
The Firefox add-ons developer guide was contributed by the Mozilla Japan community; it covers how to go about building Firefox extensions using XPCOM and XUL. These days, we recommend using the Add-on SDK instead, but there are times when you need the additional control offered by a more direct approach.
305 Appendix: What you should know about open-source software licenses
No summary!
306 Chapter 1: Introduction to Extensions
This document was authored by Hideyuki Emura and was originally published in Japanese for the Firefox Developers Conference Summer 2007. Emura-san is a co-author of Firefox 3 Hacks (O'Reilly Japan, 2008.)
307 Chapter 2: Technologies used in developing extensions
This document was authored by Hiroshi Shimoda of Clear Code Inc. and was originally published in Japanese for the Firefox Developers Conference Summer 2007. Shimoda-san is a co-author of Firefox 3 Hacks (O'Reilly Japan, 2008).
308 Chapter 3: Introduction to XUL—How to build a more intuitive UI Firefox, XUL
learn about XUL, the XML-based User-interface Language, which is one of the building blocks for extensions.
309 Chapter 4: Using XPCOM—Implementing advanced processes
This chapter explains how to use XPCOM to implement advanced processes using only JavaScript.
310 Chapter 5: Let's build a Firefox extension Archive, Obsolete
This document was authored by Taiga (Gomita) Gomibuchi and was originally published in Japanese for the Firefox Developers Conference Summer 2007. Gomita-san won "Most Useful Upgraded Extension" award in Mozilla's 2006 "Extend Firefox" competition for ScrapBook, and was runner-up in the "Extend Firefox 2" contest for FireGestures.
311 Chapter 6: Firefox extensions and XUL applications
This chapter discusses tools to assist in developing extensions.
312 License and authors
License: Attribution-Share Alike 2.1 Japan.
313 XUL School Tutorial Add-ons, Extensions, References, Tutorials, XUL
XUL School is a comprehensive add-on development tutorial, focusing on Firefox extension development. It is recommended that you read through all of it at least once. While Firefox changes rapidly, the content in this tutorial should be up to date and valid.
314 Adding Events and Commands Add-ons, CodingScripting, DOM, Glossary, Guide, JavaScript, XUL, events
Just like with HTML, most JavaScript code execution is triggered by event handlers attached to DOM elements. The most commonly used event is the onload event, which is used in overlays and other windows to detect when the window has loaded and then run initialization code:
315 Adding Toolbars and Toolbar Buttons Toolbars, XUL
Adding new toolbars to Firefox is easy, but adding them the wrong way is very easy as well.
316 Adding menus and submenus Add-ons, CodingScripting, Macs, XUL, apple
The Hello World example in the previous sections shows the two most common ways to add menus. In this section we'll look into more specialized menus and what you can do with them.
317 Adding sidebars
The sidebar in Firefox is a relatively large and flexible space to add rich interfaces without requiring new windows or complicated overlays. Sidebars take as much space as the user wants them to, and provide a frame where you can add elaborate data and controls. You're probably familiar with the Bookmarks and History sidebars. If not, you can open either one from the View > Sidebar menu. They also have shortcuts to open or close them using the keyboard.
318 Adding windows and dialogs
To open a new window, use the Javascript window.open function just like with HTML windows.
319 Appendix A: Add-on Performance Add-ons, Extensions, Performance
Add-ons can have a noticeable performance impact on Firefox. This is evident when opening a Firefox profile that has many add-ons installed; some profiles can take minutes to load, which is a serious inconvenience for users that gives them a negative view of Firefox. Add-on developers need to make sure that they minimize their add-ons' performance impact, and here are a few simple guidelines that should be followed to achieve that.
320 Appendix B: Install and Uninstall Scripts
Add-ons normally run code at startup, and as it is covered in the main tutorial, all you need is a load event handler and a little code. It is also common for an add-on to require to run a script only when it is installed for the first time, or every time it is updated. It can be used to write or copy necessary files to the profile folder, like the initial DB the add-on will use for storage. A few others require cleanup code to be run after the add-on is uninstalled. This appendix covers these cases with simple code that should work for most add-ons.
321 Appendix C: Avoiding using eval in Add-ons
Using eval in add-ons is almost always unnecessary, and many times even a security vulnerability. Moreover, code using eval is harder to parse for a human mind, is often pretty complex, and relies on assumptions that are not necessarily true in the future or even now.
322 Appendix D: Loading Scripts Extensions, XUL
Most add-ons and XUL Runner applications provide their primary functionality by loading and executing JavaScript code. Because there are such a diverse array of add-ons, and because the needs of developers have grown organically over time, the Gecko runtime provides a number of means to dynamically load and execute JavaScript files. Each of these means has its own advantages and disadvantages, as well as its own quirks which may trap the unwary. Below is an overview of the more common means of loading scripts, along with some of their primary advantages, disadvantages, quirks, and use cases.
323 Appendix E: DOM Building and Insertion (HTML & XUL)
Many add-ons need to dynamically generate DOM content, either XUL or HTML, from their scripts. For security reasons, and to prevent errors, care needs to be taken to avoid evaluating arbitrary text as HTML. Failure to do so can lead to execution or remote scripts, and in the worst cases to privilege escalation which can leave a user's PC open to remote attack.
324 Appendix F: Monitoring DOM changes
DOM mutation events were introduced to HTML several years ago in order to allow web applications to monitor changes to the DOM by other scripts. Unfortunately, adding listeners for any of these events to a document has a highly deleterious effect on performance, an effect which is not mitigated in the slightest by later removing those listeners. For this reason, it is best to avoid using mutation listeners at all costs, especially from extensions. This document lays out some alternatives which do not have such severe performance impacts.
325 Connecting to Remote Content
XMLHttpRequest is an API for transferring XML between a local script and a remote server via HTTP. It is an integral part of the modern web, and all major browsers support it. Besides XML, it can be used to retrieve data in other formats, for example JSON, HTML and plain text. In this section we'll look into the XML and JSON communication mechanisms.
326 Custom XUL Elements with XBL
Taken from the XBL page.
327 Getting Started with Firefox Extensions Extensions
an extension is a small application that adds something new to one or more Mozilla applications. This tutorial focuses on extensions for Firefox, but the same (or very similar) principles apply to creating extensions for other applications such as Thunderbird, Seamonkey, and Flock.
328 Handling Preferences Add-ons, Extensions, XUL, XUL School
Mozilla applications are highly customizable. Preferences are used to store settings and information to change their default behavior. To open the preferences window in Firefox, select the following from the main menu:
329 Intercepting Page Loads
There are several ways to detect and intercept loading of web pages and their content, be it only to realize when it happens, modify their contents, or to block them and do something else instead. Some of the techniques presented here apply only to content loaded in the main browser area, while others detect content being loaded in other XUL windows, or even detect XUL content being loaded. Also, the different techniques tap into different steps of the load process. Which one you should use solely depends on your needs. We will start with the simplest one, which is also the most common to use.
330 Introduction
Welcome to the XUL School Tutorial!
331 JavaScript Object Management JavaScript, Object, Tutorials
In this section we'll look into how to handle JavaScript data effectively, beginning with chrome code, in ways which will prevent pollution of shared namespaces and conflicts with other add-ons resulting from such global namespace pollution.
332 Local Storage Guide, Storage, XUL
It is very common for an extension to require some kind of local persistent storage. We recommend that you at least keep an error log, so that you can request error data from your users when you encounter problems that are hard to debug. We'll discuss logging in this section, but first let's look at the right (or at least, common and scalable) way of managing local files.
333 Mozilla Documentation Roadmap
Firefox extension development is still an immature discipline, with a developer base consisting mostly of hobbyists and just a few organized development groups. There's a great deal of free online documentation available on XUL and extension development, but finding it and turning it into useful information can be a daunting task. Knowing where to look is critical and non trivial. This tutorial was aimed at compiling all the right resources for extension development and putting them in the right context, but there's much more to learn, and knowing how to find it is part of what we felt was necessary to teach.
334 Observer Notifications
Sometimes you need your code to send a message to other parts of your code. For example, you might want to notify that a task is completed, and then several different actions must be performed. You could do that by calling all those functions directly, but XPCOM offers you a better and cleaner way to achieve that using observers and the observer service.
335 Setting Up a Development Environment
There are 3 tools that we think are essential for effective add-on development (or any kind of development, really): a source code editor, a source control system, and a build system.
336 The Box Model
In order to master XUL, you'll need to have a fairly good understanding of its Box Model. This is the system that determines how all elements are laid out visually in a XUL document. It is important to know how it works in order to make interfaces that are easy to localize, skin and use in different types of operating systems, screen sizes and resolutions.
337 The Essentials of an Extension
In the last section we looked at the contents of the Hello World extension. Now we'll look into its files and code, starting with the install.rdf file. You can open it with any text editor.
338 Useful Mozilla Community Sites
The Mozilla Community is very rich and active. It's a very powerful tool you have when developing on top of the Mozilla platform, and you should take advantage of it in order to create a truly successful add-on .
339 User Notifications and Alerts
It is often the case that extensions need to notify users about important events, often requiring some response. Using modal dialogs and alerts is usually a bad idea. They interrupt the user's workflow, demanding immediate action before anything else can be done. Users will find them annoying and probably will learn to dismiss them as quickly as possible without even reading what they have to say. Or they will just get rid of your add-on.
340 XPCOM Objects
Taken from the XPCOM page.
341 Performance best practices in extensions Add-ons, Best practices, Extensions, Guide, NeedsContent, NeedsExample, Performance
One of Firefox's great advantages is its extreme extensibility. Extensions can do almost anything. There is a down side to this: poorly written extensions can have a severe impact on the browsing experience, including on the overall performance of Firefox itself. This article offers some best practices and suggestions that can not only improve the performance and speed of your extension, but also of Firefox itself.
342 Security best practices in extensions Add-ons, Best practices, Extensions, Guide, Security
This document is intended as a guide for developers to promote best practices in securing your extension. Your goal is to keep your users safe. Some items mentioned are strict guidelines, meaning that if you don't follow them then your add-on will not be approved on Mozilla add-ons. Other items are recommendations. The difference will be clearly flagged.
343 Setting up an extension development environment Add-ons, Extensions, Guide
This article gives suggestions on how to set up your Mozilla application for extension development. Unless otherwise specified, these suggestions apply to both Firefox and Thunderbird as well as SeaMonkey version 2.0 and above.
344 Signing and distributing your add-on
Once you have a first build of your add-on, you'll want to distribute it so others can give it a try. Whether you are distributing your add-on publicly or privately, through addons.mozilla.org (AMO) or elsewhere, you'll want to have your add-on package signed.
345 Source Code Submission Add-ons, Review Policy, add-ons
When uploading extensions to addons.mozilla.org (AMO), you are given the option to attach source code. There are certain cases where this is required, but others where it is not recommended. This page will explain when and where source code should be uploaded, and how to provide reviewers with instructions on reading your source code. Providing clear instructions to the reviewer will help you get a speedier review for your add-on.
346 Techniques
.
347 Promises Add-ons, Examples, Snippets, async
Due to the performance and stability costs of synchronous IO, many APIs which rely on it have been deprecated. The following page contains examples of many Promise-based replacement APIs for common operations. These APIs allow asynchronous operation to be achieved with a coding style similar to synchronous variants.
348 Themes Add-ons, Look & Feel, Themes, add-ons
Themes are skins for different Mozilla applications. They allow you to change the look and feel of the user interface and personalize it to your tastes. A theme can simply change the colors of the UI or it can change every piece of its appearance.
349 Common Firefox theme issues and solutions Add-ons, Firefox, Look & Feel, Themes, add-ons
The purpose of this page is to provide provide theme developers with notes on how to fix common issues.  It is a companion document to the AMO editors guide Common Theme Problems, which provides editors with "boilerplate" copy and paste review notes for common theme issues. This document was started on July 27, 2012 so it will take some time to completely fill in and some issues still need to have solutions written for them.
350 Create Your Own Firefox Background Theme
No summary!
351 Lightweight themes Add-ons, Firefox 3.6, Lightweight themes, Personas, Themes
No summary!
352 Frequently Asked Questions for Lightweight themes
Lightweight themes are easy-to-install, easy-to-use skins that change the look of your Firefox web browser. There are hundreds of thousands community-designed themes to choose from, with more added every day. Start looking here for designs that fit your style.
353 Obsolete
This page collects theme docs that we don't expect will ever be updated, but which we're keeping for the time being as potential source material for updated docs.
354 Creating a Skin for Firefox Add-ons, Themes, add-ons
In order to create a skin for Firefox, there are three things you need to know: how to edit images, how to extract zip files, and how to modify CSS. Firefox uses standard GIF, PNG, and JPEG images for the buttons and CSS to style everything else in the interface.
355 UUID Add-ons, Themes, add-ons
A UUID can be obtained by visiting http://www.famkruithof.net/uuid/uuidgen or by typing "firebot: uuid?" on irc.mozilla.org in a channel where nickname "firebot" is present. Or you can also type "/query firebot uuid?" in any tab connected to the irc.mozilla.org (or, with ChatZilla, "moznet") network.
356 contents.rdf Add-ons, Themes, add-ons
Copy the following text and paste it into a text file, then save that file as "contents.rdf":
357 install.rdf Add-ons, Themes, add-ons
Copy the following text and paste it into a text file, then save that file as "install.rdf":
358 Theme changes in Firefox 2 Add-ons, Themes, add-ons
This article covers the changes that need to be made to update a Firefox theme to work properly in Firefox 2.
359 Theme changes in Firefox 3 Add-ons, NeedsUpdate, Themes, add-ons
This article covers the changes that need to be made to update a Firefox theme to work properly in Firefox 3.
360 Theme changes in Firefox 3.5
No summary!
361 Theme changes in Firefox 4 Firefox 4, Themes
This article covers changes in Firefox 4 that affect theme developers.
362 Thunderbird extensions Add-ons, Extensions, thunderbird
Categories
363 Adding items to the Folder Pane
This tutorial examines how to add items to an existing Folder Pane view. The result is a javascript file that will add a "Numbers" container to the end of Thunderbird's "All Folders" mode. That container will have 3 child-items, the numbers 1, 2, and 3. Clicking on those items will display the number in the main viewing pane of Thunderbird.
364 Adding views to the Folder Pane
This is a stub page for a tutorial for Thunderbird 3.
365 An overview of Thunderbird components thunderbird
The Thunderbird mail application is a group of components built on a set of technologies that can seem daunting to new developers. However, in many cases you only need to learn a few concepts to write an extension.
366 Building a Thunderbird extension 1: introduction Add-ons, Extensions, add-ons, thunderbird
Thunderbird is Mozilla's open-source email application. It shares many of the technologies used by Firefox, including JavaScript, the Gecko layout engine, the XUL XML User Interface Language and the XPCOM Cross-Platform Component Object Model. Similar to Firefox, Thunderbird functionality can be enhanced and customized via extensions.
367 Building a Thunderbird extension 2: extension file layout Extensions, thunderbird
Extensions are packaged and distributed in archive files (also known as Bundles), with the XPI (pronounced “zippy”) file extension. At a minimum, they contain an install.rdf, the chrome.manifest and a chrome/ folder. The chrome/ folder contains a content/ folder that contains the actual content files. These files contain the code that makes your extension actually do something. When this tutorial is finished, our extension will look like this:
368 Building a Thunderbird extension 3: install manifest Extensions, thunderbird
The install.rdf file is an XML file that provides general information about the extension.
369 Building a Thunderbird extension 4: chrome manifest Extensions, thunderbird
The file called chrome.manifest tells Thunderbird what packages and overlays are provided by the extension. Open the file called chrome.manifest that you created and add this code:
370 Building a Thunderbird extension 5: XUL Extensions, thunderbird
Thunderbird's user interface is written in XUL and JavaScript. XUL is an XML grammar that provides user interface widgets like buttons, menus, toolbars, trees etc. We add widgets by inserting new XUL DOM elements into the application window and modify them using scripts and attaching event handlers. While XUL provides the elements of the user interface, actions are written in JavaScript.
371 Building a Thunderbird extension 6: Adding JavaScript
In this step we will create a small piece of JavaScript code that inserts the current date into our statusbar widget. Depending on the installed theme the result will look something like this:
372 Building a Thunderbird extension 7: Installation Extensions, thunderbird
While you are developing the extension, there are two ways you can make Thunderbird load it so you can test it as you go. You can either put the folder with the extension files directly into Thunderbird's extensions folder, or you can put a file there that tells Thunderbird where your extension is located. (In step 7 you will learn how to package an .xpi file for distribution and installation.)
373 Building a Thunderbird extension 8: packaging Extensions, thunderbird
When you are satisfied with how your extension works, package it for deployment and installation.
374 Building a Thunderbird extension 9: distributing Extensions, thunderbird
The addons.mozilla.org site is a distribution site where you can host your extension for free. Your extension will be hosted on Mozilla's mirror network. Mozilla's site also provides users with easier installation and will automatically make new versions available to users of your existing versions when you upload them. In addition Mozilla Update allows users to comment and provide feedback on your extension. It is highly recommended that you use AMO to distribute your extensions.
375 Creating a Custom Column Add-ons, Extensions, add-ons, thunderbird
In this example we will be developing a small extension that will be adding a column that will display the "Reply-To:" field of an email (if it exists, it if often not set). If you are unfamiliar with the setup and creation of an extension please read Building a Thunderbird Extension.
376 Demo Addon
This demo add-on has been created by Jonathan Protzenko for his presentation at MozCamp 2011. It shows how to achieve various goals in a working live example, such as working with Gloda.
377 Error reporting tools thunderbird
Currently, Thunderbird tends to eat a lot of exceptions. Some make it to the error console, most don't. There are deep fixes to the platform needed (e.g. bug 493414), but in the meantime, it would be helpful to be able to get useful output on stderr about exceptions, events and pretty-printed objects.
378 FAQ Add-ons, Extensions, add-ons, thunderbird
The old contents of this FAQ page were duplicated in the Setting up extension development environment article and the Building a Thunderbird extension article. (Duplicate content has been removed from this page.)
379 Finding the code for a feature Add-ons, Extensions, add-ons, thunderbird
Frequently you are trying to figure out the code that implements a specific feature of the user interface. How do you find that out? As an example, I received the following inquiry, and I decided to follow my usual path and document what I do:
380 Styling the Folder Pane
The folder pane in Thunderbird is predominantly controlled by code in folderPane.js. Since Thunderbird 3, the folder pane is designed in a more modular and extensible fashion. It is now possible to place non-mail entities in the folder pane.
381 Thunderbird HowTos Add-ons, Extensions, add-ons, thunderbird
Please add questions or answers to this page so that other people can benefit from your work. Also, you will see that there are many topics for which there is a question, but no answer. Please help by adding an answer! (Adding another question helps too!)
382 Activity Manager examples
The Activity Manager is a simple component that understands how to display a combination of user activity and history. See the Activity Manager page for a general description of the component. See the Activity Manager interfaces page for an overview of the related interfaces.
383 Common Thunderbird Extension Techniques thunderbird
No summary!
384 Access StringBundle from Overlay thunderbird
No summary!
385 Access Thunderbird Window Areas thunderbird
To access particular parts of the Thunderbird window you can use these helper methods. An alternative to these methods is to directly access the element by it's ID as in the Detect When a Folder Opens example.
386 Access Window missing, thunderbird
The window object represents the Window of the Thunderbird application as well as the currently opened tabs. You can do many things with the window object, such as accessing the height or width of the window/tab or setting its title, registering timer events and much more. The Window API will give you the complete details. Since window is a global variable you can use it directly from your JavaScript file.
387 Access Window Area NeedsUpdate, missing, thunderbird
This page has no content. Enrich MDC by contributing.
388 Add New Tab missing, thunderbird
No summary!
389 Add Option to Context Menu incomplete, thunderbird
Assuming this on chrome.manifest:
390 Add Tab NeedsUpdate, missing, thunderbird
This page has no content. Enrich MDC by contributing.
391 Add Toolbar Button
Example XUL overlay file:
392 Create Custom Column thunderbird
The article "Creating a Custom Column" will get you well on the road to creating your own columns and populating them with custom data. The customDBHeaders Preference article provides information on a preference setting that exposes custom header data for use in a custom column within Thunderbird's main view.
393 Detect Opening Folder thunderbird
Some actions require execution every time you open a folder (for example, registering a custom column handler. To do this you need to capture the select event of the folder [[XUL:tree|tree]] whose id is (conveniently) folderTree like so:
394 Filter Incoming Mail filter, incoming, mails, thunderbird
To filter incoming mail, the first step is to detect new messages inconming. The, you've got Components.interfaces.nsIMsgDBHdr from where you can modify the mail. By example, to modify the mail subject :
395 Get Thunderbird version thunderbird
On Thunderbird version 3.0b3pre and later, you can use the following snippet to get the Thunderbird version. (Version 3.0b3pre was the first build to include STEEL.)
396 Modify Folder Pane Display missing, thunderbird
See https://addons.mozilla.org/en-US/thu...er-categories/ for an example.
397 Modify Message List NeedsContent, NeedsUpdate, missing, thunderbird
This page has no content. Enrich MDC by contributing.
398 Use SQLite thunderbird
If you'd like to use an SQLite database in your extension you'll need to look over the Storage docs for an API reference, however this code should get you started. Be careful of multi-thread access to your database.
399 Folders and message lists Guide, thunderbird
The FolderDisplayWidget for the current folder can be accessed via the global variable gFolderDisplay. This object provides many of the functions required for working with folder views. We'll look at some of them below.
400 Thunderbird developer reference docs
No summary!
401 Tips and Tricks from the newsgroups thunderbird
The following discussions on mozilla.dev.apps.thunderbird and mozilla.dev.extensions include useful tips for Thunderbird add-on developers. Please feel free to add links to threads. We will add a categorization system as the link list grows. You can also help by creating how-tos from any of these topics.
402 Working with the Folder Pane Add-ons, Extensions, add-ons, thunderbird
The "Folder Pane" refers to the main navigation element that appears on the left side of the main Thunderbird window. Here, users traditionally find a hierarchical view of their accounts and folders. Beginning in Thunderbird 2, additional views on those folders ("Recent Folders", "Favorite Folders", and "Unread Folders") were added, accessible via the scroll-arrows at the top of the pane.
403 customDBHeaders Preference
developing a custom column to display a 'Superfluous' column within Thunderbird's main view. The data will come from a custom header labeled X-Superfluous
404 Updates
Firefox supports automated updates to add-ons using JSON update manifests. Add-ons hosted on AMO automatically receive updates to new versions posted there. Other add-ons must specify the location of their update manifests.
405 WebExtensions
WebExtensions is a cross-browser system for developing browser add-ons. To a large extent the system is compatible with the extension API supported by Google Chrome and Opera. Extensions written for these browsers will in most cases run in Firefox or Microsoft Edge with just a few changes. The API is also fully compatible with multiprocess Firefox.
406 Add a button to the toolbar WebExtensions
Toolbar buttons are one of the main UI components available to WebExtensions. Toolbar buttons live in the main browser toolbar and contain an icon. When the user clicks the icon, one of two things can happen:
407 Anatomy of a WebExtension WebExtensions
A WebExtension consists of a collection of files, packaged for distribution and installation. In this article, we will quickly go through the files that might be present in a WebExtension.
408 Browser actions WebExtensions
A browser action is a button you can add to the browser toolbar. Users can click the button to interact with your add-on.
409 Browser actions WebExtension
A browser action is a button you can add to the browser toolbar. Users can click the button to interact with your add-on.
410 Browser support for JavaScript APIs WebExtensions
The compatibility table in this page is generated from structured data. If you'd like to contribute to the data, please check out https://github.com/mdn/browser-compat-data and send us a pull request.
411 Chrome incompatibilities WebExtensions
WebExtensions are designed to be compatible with Chrome and Opera extensions: as far as possible, extensions written for those browsers should run on Firefox with minimal changes.
412 Comparison with XUL/XPCOM extensions WebExtensions
At a very basic level, XUL/XPCOM extensions are similar to WebExtensions. They both include:
413 Comparison with the Add-on SDK WebExtensions
The basic structure and concepts of the Add-on SDK are shared by WebExtensions. Both technologies include:
414 Content Security Policy WebExtensions
Content Security Policy (CSP) is a mechanism to help prevent websites from inadvertantly executing malicious content. A website specifies a CSP using an HTTP header sent from the server. The CSP is mostly concerned with specifying legitimate sources of various types of content, such as scripts or embedded plugins. For example, a website can use it to specify that the browser should only execute JavaScript served from the website itself, and not from any other sources. A CSP can also instruct the browser to disallow potentially unsafe practices, such as the use of eval().
415 Content scripts WebExtensions
A content script is a part of your extension that runs in the context of a particular web page (as opposed to background scripts which are part of the extension, or scripts which are part of the web site itself, such as those loaded using the <script> element).
416 Context menu items WebExtensions
No summary!
417 Debugging WebExtensions
This article explains how you can use the Firefox developer tools to debug WebExtensions.
418 Debugging (before Firefox 50)
This article explains how you can use the built-in Firefox developer tools to debug WebExtensions. If you're trying to debug an add-on developed with the Add-on SDK, please see the guide to the Add-on Debugger.
419 Embedded WebExtensions WebExtensions
Starting in Firefox 51, you can embed a WebExtension in a classic bootstrapped extension or an Add-on SDK add-on.
420 Example WebExtensions WebExtensions
To help illustrate how to develop WebExtensions, we maintain a repository of simple example WebExtensions at https://github.com/mdn/webextensions-examples. This article describes the extensions in that repository.
421 Extending the developer tools
You can use the WebExtensions APIs to extend the browser's built-in developer tools. To create a devtools add-on, include the "devtools_page" key in manifest.json:
422 Getting started with web-ext Guide, Installing, Testing, Tools, WebExtension, packaging, web-ext
web-ext is a command line tool designed to speed up various parts of the WebExtension development process, making development faster and easier. This article explains how to install and use web-ext.
423 Implement a settings page WebExtensions
A settings page gives users a way to see and change settings (sometimes also called "preferences" or "options") for the add-on.
424 Interact with the clipboard WebExtensions
WebExtensions can interact with the system clipboard using document.execCommand():
425 Intercept HTTP requests Add-ons, Extensions, How-to, WebExtensions
To intercept HTTP requests, use the webRequest API. This API enables you to add listeners for various stages of making an HTTP request. In the listeners, you can:
426 Internationalization Article, Guide, Internationalization, Localization, WebExtensions, i18n, messages.json, placeholders, predefined messages
The WebExtensions API has a rather handy module available for internationalizing add-ons — i18n. In this article we'll explore its features and provide a practical example of how it works. The WebExtensions i18n system is similar to common JavaScript libraries for i18n such as i18n.js.
427 JavaScript APIs WebExtensions
No summary!
428 alarms
Schedule code to run at a specific time in the future. This is like setTimeout() and setInterval(), except that those functions don't work with background pages that are loaded on demand.
429 alarms.Alarm API, Add-ons, Extensions, Non-standard, Reference, Type, WebExtensions, alarm, alarms
Information about a single alarm. This object is returned from alarms.get() and alarms.getAll(), and is passed into the alarms.onAlarm listener.
430 alarms.clear() API, Add-ons, Extensions, Method, Non-standard, Reference, WebExtensions, alarms, clear
Cancels an alarm, given its name.
431 alarms.clearAll() API, Add-ons, Extensions, Method, Non-standard, Reference, WebExtensions, alarms, clearAll
Cancels all active alarms.
432 alarms.create() API, Add-ons, Create, Extensions, Method, Non-standard, Reference, WebExtensions, alarms
Creates a new alarm.
433 alarms.get() API, Add-ons, Extensions, Method, Non-standard, Reference, WebExtensions, alarms, get
Gets an alarm, given its name.
434 alarms.getAll() API, Add-ons, Extensions, Method, Non-standard, Reference, WebExtensions, alarms, getAll
Gets all active alarms for this WebExtension.
435 alarms.onAlarm API, Add-ons, Event, Extensions, Non-standard, Reference, WebExtensions, alarms, onAlarm
Fired when any alarm set by this add-on goes off.
436 bookmarks API, Add-ons, Bookmarks, Extensions, Interface, Non-standard, Reference, WebExtensions
The WebExtensions bookmarks API lets an add-on interact with and manipulate the browser's bookmarking system. You can use it to bookmark pages, retrieve existing bookmarks, and edit, remove, and organize bookmarks.
437 bookmarks.BookmarkTreeNode API, Add-ons, BookmarkTreeNode, Bookmarks, Extensions, Non-standard, Reference, Type, WebExtensions
An object of type bookmarks.BookmarkTreeNode represents a node in the bookmark tree, where each node is a bookmark or bookmark folder. Child nodes are ordered by an index within their respective parent folders.
438 bookmarks.BookmarkTreeNodeUnmodifiable API, Add-ons, BookmarkTreeNodeUnmodifiable, Bookmarks, Extensions, Non-standard, Reference, Type, WebExtensions
The bookmarks.BookmarkTreeNodeUnmodifiable type is used to indicate the reason that a node in the bookmark tree (where each node is either a bookmark or a bookmark folder) cannot be changed. This is used as the value of the bookmarks.BookmarkTreeNode.unmodifiable.unmodifiable field on bookmark nodes.
439 bookmarks.CreateDetails API, Add-ons, Bookmarks, CreateDetails, Extensions, Non-standard, Reference, Type, WebExtensions
The CreateDetails type is used to describe the properties of a new bookmark or bookmark folder when calling the bookmarks.create() method.
440 bookmarks.create() API, Add-ons, Bookmarks, Create, Extensions, Method, Non-standard, Reference, WebExtensions
Creates a bookmark or folder as a child of the BookmarkTreeNode with the specified parentId. To create a folder, omit or leave empty the CreateDetails.url parameter.
441 bookmarks.get() API, Add-ons, Bookmarks, Extensions, Method, Non-standard, Reference, WebExtensions, get
Given the ID of a bookmarks.BookmarkTreeNode or an array of such IDs, the bookmarks.get() method retrieves the matching nodes.
442 bookmarks.getChildren() API, Add-ons, Bookmarks, Extensions, Method, Non-standard, Reference, WebExtensions, getChildren
bookmarks.getChildren() retrieves all the immediate children of a given bookmark folder, identified as a BookmarkTreeNode ID.
443 bookmarks.getRecent() API, Add-ons, Bookmarks, Extensions, Method, Non-standard, Reference, WebExtensions, getRecent
The bookmarks.getRecent() method retrieves a specified number of the most recently added bookmarks as an array of BookmarkTreeNode objects.
444 bookmarks.getSubTree() API, Add-ons, Bookmarks, Extensions, Method, Non-standard, Reference, WebExtensions, getSubTree
The bookmarks.getSubTree() method asynchronously retrieves a bookmarks.BookmarkTreeNode, given its ID.
445 bookmarks.getTree() API, Add-ons, Bookmarks, Extensions, Method, Non-standard, Reference, WebExtensions, getTree
bookmarks.getTree() returns an array containing the root of the bookmarks tree as a bookmarks.BookmarkTreeNode object.
446 bookmarks.move() API, Add-ons, Bookmarks, Extensions, Method, Non-standard, Reference, WebExtensions, move
The bookmarks.move() method moves the specified BookmarkTreeNode to the specified destination within the tree of bookmarks. This lets you move a bookmark to a new folder and/or position within the folder.
447 bookmarks.onChanged API, Add-ons, Bookmarks, Event, Extensions, Non-Standard, Non-standard, Reference, WebExtensions, add-ons, onChanged
Fired when there is a change to:
448 bookmarks.onChildrenReordered API, Add-ons, Bookmarks, Event, Extensions, Non-standard, Reference, WebExtensions, onChildrenReordered
Fired when the children of a folder have changed their order due to the order being sorted in the UI. This is not called as a result of a call to bookmarks.move() or a drag operation in the UI.
449 bookmarks.onCreated API, Add-ons, Bookmarks, Event, Extensions, Non-standard, Reference, WebExtensions, onCreated
Fired when a bookmark item (a bookmark or a folder) is created.
450 bookmarks.onImportBegan API, Add-ons, Bookmarks, Event, Extensions, Non-standard, Reference, WebExtensions, onImportBegan
Fired when the browser has started importing a set of bookmarks.
451 bookmarks.onImportEnded API, Add-ons, Bookmarks, Event, Extensions, Non-Standard, Non-standard, Reference, WebExtensions, add-ons, onImportEnded
Fired when the browser has finished importing a set of bookmarks.
452 bookmarks.onMoved API, Add-ons, Bookmarks, Event, Extensions, Non-standard, Reference, WebExtensions, onMoved
Fired when a bookmark or folder is moved to a different parent folder and/or position within a folder.
453 bookmarks.onRemoved API, Add-ons, Bookmarks, Event, Extensions, Non-standard, Reference, WebExtensions, onRemoved
Fired when a bookmark or folder is removed. When a folder is removed recursively, a single notification is fired for the folder, and none for its contents.
454 bookmarks.remove() API, Add-ons, Bookmarks, Extensions, Method, Non-standard, Reference, WebExtensions, remove
The bookmarks.remove() method removes a single bookmark or an empty bookmark folder.
455 bookmarks.removeTree() API, Add-ons, Bookmarks, Extensions, Method, Non-standard, Reference, WebExtensions, removeTree
The bookmarks.removeTree() method recursively removes a bookmark folder and all of its contents.
456 bookmarks.search() API, Add-ons, Bookmarks, Extensions, Method, Non-standard, Reference, Search, WebExtensions
The bookmarks.search() function searches for bookmarks matching the given query.
457 bookmarks.update() API, Add-ons, Bookmarks, Extensions, Method, Non-standard, Reference, Update, WebExtensions
bookmarks.update() updates the title and/or URL of a bookmark, or the name of a bookmark folder.
458 browserAction API, Add-ons, Extensions, Interface, Non-standard, Reference, WebExtensions, browserAction
Adds a button to the browser's toolbar.
459 browserAction.ColorArray API, Add-ons, ColorArray, Extensions, Non-standard, Reference, Type, WebExtensions, browserAction
An array of four integers in the range 0-255, defining an RGBA color. The four values specify the following channels:
460 browserAction.ImageDataType API, Add-ons, Extensions, ImageDataType, Non-standard, Reference, Type, WebExtensions, browserAction
Pixel data for an image. Must be an ImageData object (for example, from a <canvas> element).
461 browserAction.disable() API, Add-ons, Extensions, Method, Non-standard, Reference, WebExtensions, browserAction, disable
Disables the browser action for a tab, meaning that it cannot be clicked when that tab is active.
462 browserAction.enable() API, Add-ons, Enable, Extensions, Method, Non-standard, Reference, WebExtensions, browserAction
Enables the browser action for a tab. By default, browser actions are enabled for all tabs.
463 browserAction.getBadgeBackgroundColor() API, Add-ons, Extensions, Method, Non-standard, Reference, WebExtensions, browserAction, getBadgeBackgroundColor
Gets the background color of the browser action's badge.
464 browserAction.getBadgeText() API, Add-ons, Extensions, Method, Non-standard, Reference, WebExtensions, browserAction, getBadgeText
Gets the browser action's badge text.
465 browserAction.getPopup() API, Add-ons, Extensions, Method, Non-standard, Reference, WebExtensions, browserAction, getPopup
Gets the HTML document set as the popup for this browser action.
466 browserAction.getTitle() API, Add-ons, Extensions, Method, Non-standard, Reference, WebExtensions, browserAction, getTitle
Gets the browser action's title.
467 browserAction.onClicked API, Add-ons, Event, Extensions, Non-standard, Reference, WebExtensions, browserAction, onClicked
Fired when a browser action icon is clicked. This event will not fire if the browser action has a popup.
468 browserAction.openPopup() API, Add-ons, Extensions, Non-standard, Reference, WebExtensions, browserAction, openPopup
This API is also available as browser.browserAction.openPopup() in a version that returns a promise.
469 browserAction.setBadgeBackgroundColor() API, Add-ons, Extensions, Method, Non-standard, Reference, WebExtensions, browserAction, setBadgeBackgroundColor
Sets the background color for the badge.
470 browserAction.setBadgeText() API, Add-ons, Extensions, Method, Non-standard, Reference, WebExtensions, browserAction, setBadgeText
Sets the badge text for the browser action. The badge is displayed on top of the icon.
471 browserAction.setIcon() API, Add-ons, Extensions, Method, Non-standard, Reference, WebExtensions, browserAction, setIcon
Sets the icon for the browser action.
472 browserAction.setPopup() API, Add-ons, Extensions, Method, Non-standard, Reference, WebExtensions, browserAction, setPopup
Sets the HTML document that will be opened as a popup when the user clicks on the browser action's icon.
473 browserAction.setTitle() API, Add-ons, Extensions, Method, Non-standard, Reference, WebExtensions, browserAction, setTitle
Sets the browser action's title. The title is displayed in a tooltip over the browser action's icon. You can pass a tabId in as an optional parameter — if you do this then the title is changed only for the given tab.
474 browsingData
Enables WebExtensions to clear data that is accumulated while the user is browsing.
475 browsingData.DataTypeSet API, Add-ons, DataTypeSet, Extensions, Reference, Type, WebExtensions, browsingData
The browsingData.DataTypeSet type describes a set of data types.
476 browsingData.RemovalOptions API, Add-ons, Extensions, Reference, RemovalOptions, Type, WebExtensions, browsingData
The browsingData.RemovalOptions type contains options to control certain aspects of browsing data removal.
477 browsingData.remove() API, Add-ons, Extensions, Method, Reference, WebExtensions, browsingData, remove
Removes the specified browsing data.
478 browsingData.removeCache() API, Add-ons, Extensions, Method, Reference, WebExtensions, browsingData, removeCache
Clears the browser's cache.
479 browsingData.removeCookies() API, Add-ons, Extensions, Method, Reference, WebExtensions, browsingData, removeCookies
Clears the browser's cookies.
480 browsingData.removeDownloads() API, Add-ons, Extensions, Method, Reference, WebExtensions, browsingData, removeDownloads
Clears the browser's download history. Note that this does not delete the downloaded objects themselves, only records of downloads in the browser's history.
481 browsingData.removeFormData() API, Add-ons, Extensions, Method, Reference, WebExtensions, browsingData, removeDownloads
Clears data that the browser has saved for autofilling forms.
482 browsingData.removeHistory() API, Add-ons, Extensions, Method, Reference, WebExtensions, browsingData, removeHistory
Clears the record of web pages that the user has visited (browsing history).
483 browsingData.removePasswords() API, Add-ons, Extensions, Method, Reference, WebExtensions, browsingData, removePasswords
Clears saved passwords.
484 browsingData.removePluginData() API, Add-ons, Extensions, Method, Reference, WebExtensions, browsingData, removePluginData
Clears data stored by browser plugins.
485 browsingData.settings() API, Add-ons, Extensions, Method, Reference, Settings, WebExtensions, browsingData
Browsers have a built-in "Clear History" feature, which enables the user to clear various types of browsing data. This has a UI that enables the user to select what type of data to remove (e.g. history, downloads, ...) and how far back in time to remove data.
486 commands
Listen for the user executing commands that you have registered using the commands manifest.json key.
487 Command API, Add-ons, Command, Extensions, Non-standard, Reference, Type, WebExtensions, commands
Information about a command. This contains the information specified for the command in the commands manifest.json key.
488 getAll() API, Add-ons, Extensions, Method, Non-Standard, Non-standard, Reference, WebExtensions, add-ons, commands, getAll
Gets all commands for this add-on that you have registered using the commands manifest.json key.
489 onCommand API, Add-ons, Event, Extensions, Non-Standard, Non-standard, Reference, WebExtensions, add-ons, commands, onCommand
Events have three functions:
490 contextMenus API, Add-ons, Extensions, Interface, Non-standard, Reference, WebExtensions, contextMenus
Add items to the browser's context menu, to be displayed in the contexts you specify. For example, you can show the item only when the user clicks on an image, or on an editable element, or when part of a page is selected.
491 contextMenus.ACTION_MENU_TOP_LEVEL_LIMIT ACTION_MENU_TOP_LEVEL_LIMIT, API, Add-ons, Extensions, Non-Standard, Non-standard, Property, Reference, WebExtensions, add-ons, contextMenus
The maximum number of top level extension items that can be added to a context menu item whose ContextType is "browser_action" or "page_action". Any items beyond this limit will be ignored.
492 contextMenus.ContextType API, Add-ons, ContextType, Extensions, Non-standard, Reference, Type, WebExtensions, contextMenus
The different contexts a menu can appear in.
493 contextMenus.ItemType API, Add-ons, Extensions, ItemType, Non-Standard, Non-standard, Reference, Type, WebExtensions, add-ons, contextMenus, itemtype
The type of menu item.
494 contextMenus.OnClickData API, Add-ons, Extensions, Non-standard, OnClickData, Reference, Type, WebExtensions, contextMenus
Information sent when a context menu item is clicked.
495 contextMenus.create() API, Add-ons, Create, Extensions, Method, Non-standard, Reference, WebExtensions, contextMenus
Creates a new context menu item, given an options object defining properties for the item.
496 contextMenus.onClicked API, Add-ons, Event, Extensions, Non-Standard, Non-standard, Reference, WebExtensions, add-ons, contextMenus, onClicked
Fired when a context menu item is clicked.
497 contextMenus.remove() API, Add-ons, Extensions, Method, Non-Standard, Non-standard, Reference, WebExtensions, add-ons, contextMenus, remove
Removes a context menu item.
498 contextMenus.removeAll() API, Add-ons, Extensions, Method, Non-Standard, Non-standard, Reference, WebExtensions, add-ons, contextMenus, removeAll
Removes all context menu items added by this add-on.
499 contextMenus.update() API, Add-ons, Extensions, Method, Non-Standard, Non-standard, Reference, Update, WebExtensions, add-ons, contextMenus, update
Updates a previously created context menu item.
500 contextualIdentities WebExtensions
Work with contextual identities: list, create, remove, and update contextual identities.
501 contextualIdentities.create() API, Add-ons, Create, Extensions, Method, Reference, WebExtensions, contextualIdentities
Creates a new contextual identity. Once created, the user will be able to create new tabs belonging to this contextual identity, just as they can with the built-in identities.
502 contextualIdentities.get() API, Add-ons, Extensions, Method, Reference, WebExtensions, contextualIdentities, get
Gets information about a contextual identity, given its cookie store ID.
503 contextualIdentities.query() API, Add-ons, Extensions, Method, Reference, WebExtensions, contextualIdentities, query
Gets information about all contextual identities, or about those contextual identities that match a given filter argument.
504 contextualIdentities.remove() API, Add-ons, Extensions, Method, Reference, WebExtensions, contextualIdentities, remove
Removes a contextual identity, given its cookie store ID.
505 contextualIdentities.update() API, Add-ons, Extensions, Method, Reference, Update, WebExtensions, contextualIdentities
Updates properties of a contextual identity, given its cookie store ID.
506 contextualIdentitities.ContextualIdentity API, Add-ons, ContextualIdentity, Extensions, Reference, Type, WebExtensions, contextualIdentities
The contextualIdentities.ContextualIdentity type describes a single contextual identity.
507 cookies API, Add-ons, Cookies, Extensions, Interface, Non-standard, Reference, WebExtensions
Enables WebExtensions to get and set cookies, and be notified when they change.
508 cookies.Cookie API, Add-ons, Cookies, Extensions, Non-standard, Reference, Type, WebExtensions, cookie
The Cookie type of the cookies API represents information about an HTTP cookie.
509 cookies.CookieStore API, Add-ons, CookieStore, Cookies, Extensions, Non-Standard, Non-standard, Reference, Type, WebExtensions, add-ons, cookies
The CookieStore type of the cookies API represents a cookie store in the browser.
510 cookies.OnChangedCause API, Add-ons, Cookies, Extensions, Non-Standard, Non-standard, OnChangedCause, Reference, Type, WebExtensions, add-ons, cookies
The OnChangedCause type of the cookies API represents the reason a cookie changed.
511 cookies.get() API, Add-ons, Cookies, Extensions, Method, Non-Standard, Non-standard, Reference, WebExtensions, add-ons, cookies, get
The get() method of the cookies API retrieves information about a single cookie, given its name and URL.
512 cookies.getAll() API, Add-ons, Cookies, Extensions, Method, Non-standard, Reference, WebExtensions, getAll
The getAll() method of the cookies API retrieves all cookies from a single cookie store that match the given information.
513 cookies.getAllCookieStores() API, Add-ons, Cookies, Extensions, Method, Non-Standard, Non-standard, Reference, WebExtensions, add-ons, cookies, getAllCookieStores
The getAllCookieStores() method of the cookies API returns a list of all cookie stores.
514 cookies.onChanged API, Add-ons, Cookies, Event, Extensions, Non-standard, Reference, WebExtensions, onChanged
The onChanged event of the cookies API is fired when a cookie is set or removed.
515 cookies.remove() API, Add-ons, Cookies, Extensions, Method, Non-Standard, Non-standard, Reference, WebExtensions, add-ons, cookies, remove
The remove() method of the cookies API deletes a cookie, given its name and URL.
516 cookies.set() API, Add-ons, Cookies, Extensions, Method, Non-Standard, Non-standard, Reference, WebExtensions, add-ons, cookies, set
The set() method of the cookies API sets a cookie containing the specified cookie data. This method is equivalent to issuing an HTTP Set-Cookie header during a request to a given URL.
517 devtools.inspectedWindow API, Add-ons, Extensions, Reference, WebExtensions, devtools.inspectedWindow
The devtools.inspectedWindow API lets a devtools add-on interact with the window that the developer tools are attached to.
518 devtools.inspectedWindow.eval() API, Add-ons, Extensions, Reference, WebExtensions, devtools.inspectedWindow, eval
Executes JavaScript in the window that the devtools are attached to.
519 devtools.inspectedWindow.reload() API, Add-ons, Extensions, Reference, WebExtensions, devtools.inspectedWindow, reload
Reloads the window that the devtools are attached to.
520 devtools.inspectedWindow.tabId API, Add-ons, Extensions, Reference, WebExtensions, devtools.inspectedWindow, tabId
The ID of the tab that this instance of the devtools is attached to, represented as a number.
521 devtools.network API, Add-ons, Extensions, Reference, WebExtensions, devtools.network
The devtools.network API lets a devtools add-on get information about network requests associated with the window that the devtools are attached to (the inspected window).
522 devtools.network.onNavigated API, Add-ons, Extensions, Reference, WebExtensions, devtools.network
Fired when the user navigates the inspected window to a new page.
523 devtools.panels API, Add-ons, Extensions, Reference, WebExtensions, devtools.panels
The devtools.panels API lets a devtools add-on define its user interface inside the devtools window.
524 devtools.panels.ExtensionPanel API, Add-ons, Extensions, Reference, WebExtensions, devtools.panels
An ExtensionPanel represents a panel added to the devtools. It's the resolution of the Promise returned by browser.devtools.panels.create().
525 devtools.panels.create() API, Add-ons, Create, Extensions, Reference, WebExtensions, devtools.panels
Adds a new panel to the devtools.
526 downloads API, Add-ons, Extensions, Interface, Non-standard, Reference, WebExtensions, downloads
Enables WebExtensions to interact with the browser's download manager. You can use this API module to download files, cancel, pause, resume downloads, and show downloaded files in the file manager.
527 downloads.BooleanDelta API, Add-ons, BooleanDelta, Extensions, Non-standard, Reference, Type, WebExtensions, add-ons, downloads
The BooleanDelta type of the downloads API represents the difference between two booleans.
528 downloads.DangerType API, Add-ons, DangerType, Extensions, Non-standard, Reference, Type, WebExtensions, add-ons, downloads
The DangerType type of the downloads API defines a set of possible reasons that a downloadable file might be considered dangerous.
529 downloads.DoubleDelta API, Add-ons, DoubleDelta, Extensions, Non-standard, Reference, Type, WebExtensions, add-ons, downloads
The DoubleDelta type of the downloads API represents the difference between two doubles.
530 downloads.DownloadItem API, Add-ons, DownloadItem, Extensions, Non-standard, Reference, Type, WebExtensions, add-ons, downloads
The DownloadItem type of the downloads API represents a downloaded file.
531 downloads.DownloadQuery API, Add-ons, DownloadQuery, Extensions, Non-standard, Reference, Type, WebExtensions, add-ons, downloads
The DownloadQuery type of the downloads API defines a set of parameters that can be used to search the downloads manager for a specific set of downloads.
532 downloads.DownloadTime API, Add-ons, DownloadTime, Extensions, Non-standard, Reference, Type, WebExtensions, add-ons, downloads
The DownloadTime type of the downloads API represents the time a download took to complete.
533 downloads.FilenameConflictAction API, Add-ons, Extensions, FilenameConflictAction, Non-standard, Reference, Type, WebExtensions, add-ons, downloads
The FilenameConflictAction type of the downloads API specifies what to do if the name of a downloaded file conflicts with an existing file.
534 downloads.InterruptReason API, Add-ons, Extensions, InterruptReason, Non-standard, Reference, Type, WebExtensions, add-ons, downloads
The InteruptReason type of the downloads API defines a set of possible reasons why a download was interrupted.
535 downloads.State API, Add-ons, Extensions, Non-standard, Reference, State, Type, WebExtensions, add-ons, downloads, state
The State type of the downloads API defines different states that a current download can be in.
536 downloads.StringDelta API, Add-ons, Extensions, Non-standard, Reference, StringDelta, Type, WebExtensions, add-ons, downloads
The StringDelta type of the downloads API represents the difference between two strings.
537 downloads.acceptDanger() API, Add-ons, Extensions, Method, Non-Standard, Non-standard, Reference, WebExtensions, acceptDanger, add-ons, downloads
The acceptDanger() function of the downloads API prompts the user to either accept or cancel a potentially dangerous download.
538 downloads.cancel() API, Add-ons, Extensions, Method, Non-standard, Reference, WebExtensions, cancel, downloads
The cancel() function of the downloads API cancels a download. The call will fail if the download is not active: for example, because it has completed downloading.
539 downloads.download() API, Add-ons, Extensions, Method, Non-standard, Reference, WebExtensions, download, downloads
The download() function of the downloads API downloads a file, given its URL and other optional preferences.
540 downloads.drag() API, Add-ons, Drag, Extensions, Method, Non-Standard, Non-standard, Reference, WebExtensions, add-ons, downloads, drag
The drag() function of the downloads API initiates dragging the downloaded file to another application.
541 downloads.erase() API, Add-ons, Extensions, Method, Non-Standard, Non-standard, Reference, WebExtensions, add-ons, downloads, erase
The erase() function of the downloads API erases matching DownloadItems from the browser's download history, without deleting the downloaded files from disk.
542 downloads.getFileIcon() API, Add-ons, Extensions, Method, Non-Standard, Non-standard, Reference, WebExtensions, add-ons, downloads, getFileIcon
The getFileIcon() function of the downloads API retrieves an icon for the specified download.
543 downloads.onChanged API, Add-ons, Event, Extensions, Non-Standard, Non-standard, Reference, WebExtensions, add-ons, downloads, onChanged
The onChanged() event of the downloads API is fired when any of a downloads.DownloadItem's properties changes (except for bytesReceived).
544 downloads.onCreated API, Add-ons, Event, Extensions, Non-Standard, Non-standard, Reference, WebExtensions, add-ons, downloads, onCreated
The onCreated() event of the downloads API fires when a download begins, i.e. when downloads.download() is sucessfully invoked.
545 downloads.onErased API, Add-ons, Event, Extensions, Non-Standard, Non-standard, Reference, WebExtensions, add-ons, downloads, onErased
The onErased() event of the downloads API fires when a download is erased from the browser history.
546 downloads.open() API, Add-ons, Extensions, Method, Non-Standard, Non-standard, Reference, WebExtensions, add-ons, downloads, open
The open() function of the downloads API opens the downloaded file with its associated application.
547 downloads.pause() API, Add-ons, Extensions, Method, Non-standard, Reference, WebExtensions, downloads, pause
The pause() function of the downloads API pauses a download.
548 downloads.removeFile() API, Add-ons, Extensions, Method, Non-Standard, Non-standard, Reference, WebExtensions, add-ons, downloads, removeFile
The removeFile() function of the downloads API removes a downloaded file from disk.
549 downloads.resume() API, Add-ons, Extensions, Method, Non-Standard, Non-standard, Reference, WebExtensions, add-ons, downloads, resume
The resume() function of the downloads API resumes a paused download. If the request was successful, the download will be unpaused and progress will resume. The resume() call will fail if the download is not active: for example, because it has finished downloading.
550 downloads.search() API, Add-ons, Extensions, Method, Non-standard, Reference, Search, WebExtensions, downloads
The search() function of the downloads API queries the DownloadItems available in the browser's downloads manager, and returns those that match the specified search criteria.
551 downloads.setShelfEnabled() API, Add-ons, Extensions, Method, Non-Standard, Non-standard, Reference, WebExtensions, add-ons, downloads, setShelfEnabled
The setShelfEnabled() function of the downloads API enables or disables the gray shelf at the bottom of every window associated with the current browser profile. The shelf will be disabled as long as at least one extension has disabled it.
552 downloads.show() API, Add-ons, Extensions, Method, Non-Standard, Non-standard, Reference, WebExtensions, add-ons, downloads, show
The show() function of the downloads API shows the downloaded file in its containing folder in the underlying platform's file manager.
553 downloads.showDefaultFolder() API, Add-ons, Extensions, Method, Non-standard, Reference, WebExtensions, downloads, showDefaultFolder
The showDefaultFolder() function of the downloads API opens the default downloads folder in the platform's file manager.
554 events API, Add-ons, Extensions, Interface, Non-standard, Reference, WebExtensions, events
Common types used by APIs that dispatch events.
555 events.Event API, Add-ons, Event, Extensions, Non-standard, Reference, Type, WebExtensions, events
An object which allows the addition and removal of listeners for a browser event.
556 events.Rule API, Add-ons, Events, Extensions, Non-standard, Reference, Rule, Type, WebExtensions, add-ons, events
Description of a declarative rule for handling events.
557 events.UrlFilter API, Add-ons, Extensions, Non-standard, Reference, Type, UrlFilter, WebExtensions, events
Describes various criteria for filtering URLs. If all of the criteria specified in the filter's properties match the URL, then the filter matches. Filters are often provided to API methods in an Array of UrlFilters. For example, webNavigation listeners can be added with a filter which is an object with a single url property that is an Array of UrlFilters, e.g. {url:[UrlFilter,UrlFilter,...]}. If any filter within the Array of UrlFilters matches, then it is considered a match for the Array. Effectively, the criteria specified within a single filter are AND'ed together, while all of the individual filters within an Array are OR'ed.
558 extension API, Add-ons, Extension, Extensions, Interface, Non-standard, Reference, WebExtensions
Utilities related to your add-on. Get URLs to resources packages with your add-on, get the Window object for your add-on's pages, get the values for various settings. Note that the messaging APIs in this module are deprecated in favor of the equivalent APIs in the runtime module.
559 extension.ViewType API, Add-ons, Extension, Extensions, Non-Standard, Non-standard, Reference, Type, ViewType, WebExtensions, add-ons, extension
The type of extension view.
560 extension.getBackgroundPage() API, Add-ons, Extension, Extensions, Method, Non-Standard, Non-standard, Reference, WebExtensions, add-ons, extension, getBackgroundPage
Alias for runtime.getBackgroundPage().
561 extension.getExtensionTabs() API, Add-ons, Extension, Extensions, Method, Non-Standard, Non-standard, Reference, WebExtensions, add-ons, extension, getExtensionTabs
Returns an array of the JavaScript Window objects for each of the tabs running inside the current extension. If windowId is specified, returns only the Window objects of tabs attached to the specified window.
562 extension.getURL() API, Add-ons, Extension, Extensions, Method, Non-Standard, Non-standard, Reference, WebExtensions, add-ons, extension, getURL
Converts a relative path within an add-on's install directory to a fully-qualified URL.
563 extension.getViews() API, Add-ons, Extension, Extensions, Method, Non-standard, Reference, WebExtensions, getViews
Returns an array of the Window objects for each of the pages running inside the current extension. This includes, for example:
564 extension.inIncognitoContext API, Add-ons, Extension, Extensions, Non-Standard, Non-standard, Property, Reference, WebExtensions, add-ons, extension, inIncognitoContext
Boolean value, true for content scripts running inside private browsing tabs and for extension pages running inside a private browsing process.
565 extension.isAllowedFileSchemeAccess() API, Add-ons, Extension, Extensions, Method, Non-standard, Reference, WebExtensions, isAllowedFileSchemeAccess
None.
566 extension.isAllowedIncognitoAccess() API, Add-ons, Extension, Extensions, Method, Non-Standard, Non-standard, Reference, WebExtensions, add-ons, extension, isAllowedIncognitoAccess
Check whether the add-on is allowed access to tabs opened in "private browsing" mode.
567 extension.lastError API, Add-ons, Extension, Extensions, Non-Standard, Non-standard, Property, Reference, WebExtensions, add-ons, extension, lastError
An alias for runtime.lastError.
568 extension.onRequest API, Add-ons, Event, Extension, Extensions, Non-Standard, Non-standard, Reference, WebExtensions, add-ons, extension, onRequest
Fired when a request is sent from either an extension process or a content script.
569 extension.onRequestExternal API, Add-ons, Event, Extension, Extensions, Non-Standard, Non-standard, Reference, WebExtensions, add-ons, extension, onRequestExternal
Fired when a request is sent from another extension.
570 extension.sendRequest() API, Add-ons, Extension, Extensions, Method, Non-Standard, Non-standard, Reference, WebExtensions, add-ons, extension, sendRequest
Sends a single request to other listeners within the extension. Similar to runtime.connect, but only sends a single request with an optional response. The extension.onRequest event is fired in each page of the extension.
571 extension.setUpdateUrlData() API, Add-ons, Extension, Extensions, Method, Non-Standard, Non-standard, Reference, WebExtensions, add-ons, extension, setUpdateUrlData
Sets parameters for the extension's update URL. This value is ignored for extensions that are hosted in the browser vendor's store.
572 extensionTypes API, Add-ons, Extensions, Interface, Non-standard, Reference, WebExtensions, extensionTypes
Some common types used in other WebExtension APIs.
573 extensionTypes.ImageDetails API, Add-ons, Extensions, ImageDetails, Non-Standard, Non-standard, Reference, Type, WebExtensions, add-ons, extensionTypes
Details about the format and quality of an image.
574 extensionTypes.ImageFormat API, Add-ons, Extensions, ImageFormat, Non-Standard, Non-standard, Reference, Type, WebExtensions, add-ons, extensionTypes
The format of an image.
575 extensionTypes.InjectDetails API, Add-ons, Extensions, InjectDetails, Non-Standard, Non-standard, Reference, Type, WebExtensions, add-ons, extensionTypes
This object is used by:
576 extensionTypes.RunAt API, Add-ons, Extensions, Non-Standard, Non-standard, Reference, RunAt, Type, WebExtensions, add-ons, extensionTypes
The soonest that the JavaScript or CSS will be injected into the tab.
577 history API, Add-ons, Extensions, History, Interface, Non-standard, Reference, WebExtensions
Use the history API to interact with the browser history.
578 history.HistoryItem API, Add-ons, Extensions, History, HistoryItem, Non-Standard, Non-standard, Reference, Type, WebExtensions, add-ons, history
A HistoryItem object provides information about a page in the browser history.
579 history.TransitionType API, Add-ons, Extensions, History, Non-Standard, Non-standard, Reference, TransitionType, Type, WebExtensions, add-ons, history
This describes how the browser navigated to a particular page. For example, "link" means that the browser navigated to the page because the user clicked a link.
580 history.VisitItem API, Add-ons, Extensions, History, Non-Standard, Non-standard, Reference, Type, VisitItem, WebExtensions, add-ons, history
An object describing a single visit to a page.
581 history.addUrl() API, Add-ons, Extensions, History, Method, Non-Standard, Non-standard, Reference, WebExtensions, add-ons, addUrl, history
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".
582 history.deleteAll() API, Add-ons, Extensions, History, Method, Non-Standard, Non-standard, Reference, WebExtensions, add-ons, deleteAll, history
Deletes all visits from the browser's history.
583 history.deleteRange() API, Add-ons, Extensions, History, Method, Non-Standard, Non-standard, Reference, WebExtensions, add-ons, deleteRange, history
Removes all visits to pages that the user made during the given time range. If this removes all visits made to a given page, then the page will be no longer appear in the browser history and history.onVisitRemoved will fire for it.
584 history.deleteUrl() API, Add-ons, Extensions, History, Method, Non-Standard, Non-standard, Reference, WebExtensions, add-ons, deleteUrl, history
Removes all visits to the given URL from the browser history.
585 history.getVisits() API, Add-ons, Extensions, History, Method, Non-Standard, Non-standard, Reference, WebExtensions, add-ons, getVisits, history
Retrieves information about all visits to the given URL.
586 history.onVisitRemoved API, Add-ons, Event, Extensions, History, Non-Standard, Non-standard, Reference, WebExtensions, add-ons, history, onVisitRemoved
Fired when a page is removed completely from the browser history.
587 history.onVisited API, Add-ons, Event, Extensions, History, Non-Standard, Non-standard, Reference, WebExtensions, add-ons, history, onVisited
Fired each time the user visits a page. A history.HistoryItem object is passed to the listener. This event fires before the page has loaded.
588 history.search() API, Add-ons, Extensions, History, Method, Non-Standard, Non-standard, Reference, Search, WebExtensions, add-ons, history, search
Searches the browser's history for history.HistoryItem objects matching the given criteria.
589 i18n API, Add-ons, Extensions, Interface, Non-standard, Reference, WebExtensions, i18n
Functions to internationalize your add-on. You can use these APIs to get localized strings from locale files packaged with your add-on, find out the browser's current language, and find out the value of its Accept-Language header.
590 Locale-Specific Message reference Internationalization, Localization, Reference, String, WebExtensions, i18n, message, messages.json, placeholders
Each internationalized WebExtension has at least one file named messages.json that provides locale-specific strings. This page describes the format of messages.json files.
591 i18n.LanguageCode API, Add-ons, Extensions, LanguageCode, Non-Standard, Non-standard, Reference, Type, WebExtensions, add-ons, i18n
A language tag such as "en-US" or "fr".
592 i18n.detectLanguage() API, Add-ons, Extensions, Method, Non-standard, Reference, WebExtensions, detectLanguage, i18n
Detects the language of the provided text using the Compact Language Detector (CLD).
593 i18n.getAcceptLanguages() API, Add-ons, Extensions, Method, Non-Standard, Non-standard, Reference, WebExtensions, add-ons, getAcceptLanguages, i18n
Gets the accept-languages of the browser. This is different from the locale used by the browser. To get the locale, use i18n.getUILanguage.
594 i18n.getMessage() API, Add-ons, Extensions, Method, Non-Standard, Non-standard, Reference, WebExtensions, add-ons, getMessage, i18n
Gets the localized string for the specified message.
595 i18n.getUILanguage() API, Add-ons, Extensions, Method, Non-Standard, Non-standard, Reference, WebExtensions, add-ons, getUILanguage, i18n
Gets the UI language of the browser. This is different from i18n.getAcceptLanguages which returns the preferred user languages.
596 identity API, Add-ons, Extensions, Identity, Reference, WebExtensions
Use the identity API to get an OAuth2 authorization code or access token, which an add-on can then use to access user data from a service which supports OAuth2 access (such as a Google or a Facebook account).
597 identity.getRedirectURL() API, Add-ons, Extensions, Identity, Method, Reference, WebExtensions, getRedirectURL
Generates a URL that you can use as a redirect URL.
598 identity.launchWebAuthFlow API, Add-ons, Extensions, Identity, Method, Reference, WebExtensions, launchWebAuthFlow
Performs the first part of an OAuth2 flow, including user authentication and client authorization.
599 idle API, Add-ons, Extensions, Idle, Interface, Non-standard, Reference, WebExtensions
Find out when the user's system is idle, locked, or active.
600 idle.IdleState API, Add-ons, Extensions, Idle, IdleState, Non-standard, Reference, Type, WebExtensions, add-ons
String describing the device's idle state.
601 idle.onStateChanged API, Add-ons, Event, Extensions, Idle, Non-Standard, Non-standard, Reference, WebExtensions, add-ons, onStateChanged
Fired when the system changes to an active, idle or locked state. The event listener is passed a string that has one of three values:
602 idle.queryState() API, Add-ons, Extensions, Idle, Method, Non-Standard, Non-standard, Reference, WebExtensions, add-ons, queryState
Returns "locked" if the system is locked, "idle" if the user has not generated any input for a specified number of seconds, or "active" otherwise.
603 idle.setDetectionInterval() API, Add-ons, Extensions, Idle, Method, Non-Standard, Non-standard, Reference, WebExtensions, add-ons, setDetectionInterval
Sets the interval, in seconds, used to determine when the system is in an idle state for idle.onStateChanged events. The default interval is 60 seconds.
604 management API, Add-ons, Extensions, Reference, WebExtensions, management
Get information about installed add-ons.
605 ExtensionInfo API, Add-ons, ExtensionInfo, Extensions, Reference, Type, WebExtensions, add-ons, management
An ExtensionInfo object contains information about an add-on.
606 management.get() API, Add-ons, Method, Reference, WebExtensions, add-ons, get, management
Retrieves an ExtensionInfo object containing information about the specified add-on.
607 management.getAll() API, Add-ons, Method, Reference, WebExtensions, add-ons, getAll, management
Retrieves an array of ExtensionInfo objects, one for each installed add-on.
608 management.getPermissionWarningsById() API, Add-ons, Method, Reference, WebExtensions, add-ons, getPermissionWarningsById, management
Given the ID of an add-on, this function returns the permission warnings for it as an array of strings.
609 management.getPermissionWarningsByManifest() API, Add-ons, Method, Reference, WebExtensions, add-ons, getPermissionWarningsByManifest, management
Given the text of a manifest.json file, this function returns the permission warnings that would be given for the resulting add-on, as an array of strings.
610 management.getSelf() API, Add-ons, Method, Reference, WebExtensions, add-ons, getSelf, management
Retrieves an ExtensionInfo object containing information about the calling add-on.
611 management.onDisabled() API, Add-ons, Event, Reference, WebExtensions, add-ons, management, onDisabled
Fired when an add-on is disabled.
612 management.onEnabled() API, Add-ons, Event, Reference, WebExtensions, add-ons, management, onEnabled
Fired when an add-on is enabled.
613 management.onInstalled() API, Add-ons, Event, Reference, WebExtensions, add-ons, management, onInstalled
Fired when an add-on is installed.
614 management.onUninstalled() API, Add-ons, Event, Reference, WebExtensions, add-ons, management, onUninstalled
Fired when an add-on is uninstalled.
615 management.setEnabled() API, Add-ons, Method, Reference, WebExtensions, add-ons, management, setEnabled
Enables or disables the given add-on.
616 management.uninstall() API, Add-ons, Method, Reference, WebExtensions, add-ons, management, uninstall
Uninstalls an add-on, given its ID.
617 management.uninstallSelf() API, Add-ons, Method, Reference, WebExtensions, add-ons, management, uninstallSelf
Uninstalls the calling add-on.
618 notifications
Display notifications to the user, using the underlying operating system's notification mechanism. Because this API uses the operating system's notification mechanism, the details of how notifications appear and behave may differ according to the operating system and the user's settings.
619 notifications.NotificationOptions API, Add-ons, Extensions, Non-Standard, Non-standard, NotificationOptions, Notifications, Reference, Type, WebExtensions, add-ons
This type contains all the data needed to:
620 notifications.TemplateType API, Add-ons, Extensions, Non-Standard, Non-standard, Notifications, Reference, TemplateType, Type, WebExtensions, add-ons
This is a string, and represents the type of notification to create. There are four types of notification: "basic", "image", "list", "progress".
621 notifications.clear() API, Add-ons, Extensions, Method, Non-Standard, Non-standard, Notifications, Reference, WebExtensions, add-ons, clear
Clears a notification, given its ID.
622 notifications.create() API, Add-ons, Create, Extensions, Method, Non-standard, Notifications, Reference, WebExtensions
Creates and displays a notification.
623 notifications.getAll() API, Add-ons, Extensions, Method, Non-standard, Notifications, Reference, WebExtensions, getAll
Gets all currently active notifications created by the add-on.
624 notifications.onButtonClicked API, Add-ons, Event, Extensions, Non-Standard, Non-standard, Notifications, Reference, WebExtensions, add-ons, onButtonClicked
Fired when the user clicks one of the notification's buttons.
625 notifications.onClicked API, Add-ons, Event, Extensions, Non-Standard, Non-standard, Notifications, Reference, WebExtensions, add-ons, onClicked
Fired when the user clicks a notification, but not on any of the notification's buttons (for that, see notifications.onButtonClicked).
626 notifications.onClosed API, Add-ons, Event, Extensions, Non-Standard, Non-standard, Notifications, Reference, WebExtensions, add-ons, onClosed
Fired when a notification is closed, either by the system or by the user.
627 notifications.update() API, Add-ons, Extensions, Method, Non-Standard, Non-standard, Notifications, Reference, Update, WebExtensions, add-ons, update
Updates a notification, given its ID.
628 omnibox API, Add-ons, Extensions, Reference, WebExtensions, omnibox
Enables WebExtensions to implement customised behavior when the user types into the browser's address bar.
629 omnibox.OnInputEnteredDisposition API, Add-ons, Extensions, OnInputEnteredDisposition, Reference, Type, WebExtensions, omnibox
The omnibox.OnInputEnteredDisposition type describes how the WebExtension should handle a user selection from the suggestions in the address bar's drop-down list.
630 omnibox.SuggestResult API, Add-ons, Extensions, Reference, SuggestResult, Type, WebExtensions, omnibox
The omnibox.SuggestResult type defines a single suggestion that the WebExtension can add to the address bar's drop-down list.
631 omnibox.onInputCancelled API, Add-ons, Event, Extensions, Reference, WebExtensions, omnibox, onInputCancelled
Fired when the user has cancelled their interaction with your add-on (for example, by clicking outside the address bar).
632 omnibox.onInputChanged API, Add-ons, Event, Extensions, Reference, WebExtensions, omnibox, onInputChanged
Fired whenever the user changes their input, after they have started interacting with your add-on by entering its keyword in the address bar and then pressing the space key.
633 omnibox.onInputEntered API, Add-ons, Event, Extensions, Reference, WebExtensions, omnibox, onInputEntered
Fired when the user has selected one of the suggestions your add-on has added to the address bar's drop-down list.
634 omnibox.onInputStarted API, Add-ons, Event, Extensions, Reference, WebExtensions, omnibox, onInputStarted
Fired when the user starts interacting with your add-on by entering its keyword in the address bar and then pressing the space key.
635 omnibox.setDefaultSuggestion() API, Add-ons, Extensions, Method, Reference, WebExtensions, omnibox, setDefaultSuggestion
Set the default suggestion to appear in the address bar drop-down list when the user starts interacting with your add-on.
636 pageAction API, Add-ons, Extensions, Interface, Non-standard, Reference, WebExtensions, pageAction
A page action is a clickable icon inside the browser's address bar.
637 pageAction.ImageDataType API, Add-ons, Extensions, ImageDataType, Non-standard, Reference, Type, WebExtensions, add-ons, pageAction
Pixel data for an image.
638 pageAction.getPopup() API, Add-ons, Extensions, Method, Non-Standard, Non-standard, Reference, WebExtensions, add-ons, getPopup, pageAction
Gets the URL for the HTML document set as the popup for this page action.
639 pageAction.getTitle() API, Add-ons, Extensions, Method, Non-standard, Reference, WebExtensions, getTitle, pageAction
Gets the title of the page action.
640 pageAction.hide() API, Add-ons, Extensions, Method, Non-Standard, Non-standard, Reference, WebExtensions, add-ons, hide, pageAction
Hides the page action for a given tab.
641 pageAction.onClicked API, Add-ons, Event, Extensions, Non-standard, Reference, WebExtensions, onClicked, pageAction
Fired when a page action icon is clicked. This event will not fire if the page action has a popup.
642 pageAction.setIcon() API, Add-ons, Extensions, Method, Non-standard, Reference, WebExtensions, add-ons, pageAction, setIcon
Sets the icon for the page action.
643 pageAction.setPopup() API, Add-ons, Extensions, Method, Non-Standard, Non-standard, Reference, WebExtensions, add-ons, pageAction, setPopup
Sets the HTML document to be opened as a popup when the user clicks on the page action's icon.
644 pageAction.setTitle() API, Add-ons, Extensions, Method, Non-Standard, Non-standard, Reference, WebExtensions, add-ons, pageAction, setTitle
Sets the title of the page action. The title is displayed in a tooltip when the user hovers over the page action.
645 pageAction.show() API, Add-ons, Extensions, Method, Non-standard, Reference, WebExtensions, pageAction, show
Shows the page action for a given tab. The page action is shown whenever the given tab is the active tab.
646 privacy API, Add-ons, Extensions, Privacy, Reference, WebExtensions
Access and modify various privacy-related browser settings.
647 BrowserSetting API, Add-ons, BrowserSetting, Extensions, Reference, Type, Types, WebExtensions
A BrowserSetting is an object representing a browser setting.
648 clear()
Use BrowserSetting.clear() to clear any changes the add-on has made to the browser setting. The browser setting will revert to its previous value.
649 get() API, Add-ons, Extensions, Method, Reference, Types, WebExtensions, get
The BrowserSetting.get() method gets the current value of the browser setting, and an enumeration indicating how the setting's value is currently controlled.
650 onChange API, Add-ons, BrowserSetting, Event, Extensions, Privacy, Reference, WebExtensions, onchange
The BrowserSetting.onChanged event is fired when the setting is changed.
651 set() API, Add-ons, BrowserSetting, Extensions, Privacy, Reference, WebExtensions, set
Use BrowserSetting.set() to change the browser setting to a new value.
652 privacy.network API, Add-ons, Extensions, Network, Privacy, Property, Reference, WebExtensions
No summary!
653 privacy.websites API, Add-ons, Extensions, Privacy, Property, Reference, WebExtensions, websites
No summary!
654 runtime API, Add-ons, Extensions, Interface, Non-standard, Reference, WebExtensions, runtime
This module provides information about your add-on and the environment it's running in.
655 runtime.MessageSender API, Add-ons, Extensions, MessageSender, Non-standard, Reference, Type, WebExtensions, runtime
An object containing information about the sender of a message or connection request; this is passed to the runtime.onMessage() listener.
656 runtime.OnInstalledReason API, Add-ons, Extensions, Non-standard, OnInstalledReason, Reference, Type, WebExtensions, add-ons, runtime
The reason that the runtime.onInstalled event is being dispatched.
657 runtime.OnRestartRequiredReason API, Add-ons, Extensions, Non-standard, OnRestartRequiredReason, Reference, Type, WebExtensions, add-ons, runtime
The reason that the onRestartRequired event is being dispatched.
658 runtime.PlatformArch API, Add-ons, Extensions, Non-standard, PlatformArch, Reference, Type, WebExtensions, add-ons, runtime
The machine's processor architecture.
659 runtime.PlatformInfo API, Add-ons, Extensions, Non-standard, PlatformInfo, Reference, Type, WebExtensions, add-ons, runtime
An object containing information about the current platform.
660 runtime.PlatformNaclArch API, Add-ons, Extensions, Non-Standard, Non-standard, PlatformNaclArch, Reference, Type, WebExtensions, add-ons, runtime
The native client architecture. This may be different from arch on some platforms.
661 runtime.PlatformOs API, Add-ons, Extensions, Non-standard, PlatformOs, Reference, Type, WebExtensions, add-ons, runtime
The operating system the browser is running on.
662 runtime.Port API, Add-ons, Extensions, Non-standard, Reference, Type, WebExtensions, port, runtime
A Port object represents one end of a connection between two specific contexts, which can be used to exchange messages.
663 runtime.RequestUpdateCheckStatus API, Add-ons, Extensions, Non-standard, Reference, RequestUpdateCheckStatus, Type, WebExtensions, add-ons, runtime
Result of a call to runtime.requestUpdateCheck().
664 runtime.connect() API, Add-ons, Extensions, Method, Non-standard, Reference, WebExtensions, connect, runtime
Make a connection between different contexts inside the add-on.
665 runtime.connectNative() API, Add-ons, Extensions, Method, Non-standard, Reference, WebExtensions, connectNative, runtime
For more information, see Native messaging.
666 runtime.getBackgroundPage() API, Add-ons, Extensions, Method, Non-Standard, Non-standard, Reference, WebExtensions, add-ons, getBackgroundPage, runtime
Retrieves the Window object for the background page running inside the current add-on.
667 runtime.getBrowserInfo()
Returns information about the browser in which this add-on is installed.
668 runtime.getManifest() API, Add-ons, Extensions, Method, Non-Standard, Non-standard, Reference, WebExtensions, add-ons, getManifest, runtime
None.
669 runtime.getPackageDirectoryEntry() API, Add-ons, Extensions, Method, Non-Standard, Non-standard, Reference, WebExtensions, add-ons, getPackageDirectoryEntry, runtime
Returns a DirectoryEntry object representing the package directory.
670 runtime.getPlatformInfo() API, Add-ons, Extensions, Method, Non-Standard, Non-standard, Reference, WebExtensions, add-ons, getPlatformInfo, runtime
Returns information about the current platform.
671 runtime.getURL() API, Add-ons, Extensions, Method, Non-Standard, Non-standard, Reference, WebExtensions, add-ons, getURL, runtime
string. The fully-qualified URL to the resource.
672 runtime.id API, Add-ons, Extensions, Non-standard, Property, Reference, WebExtensions, id, runtime
The ID of the add-on.
673 runtime.lastError API, Add-ons, Extensions, Non-Standard, Non-standard, Property, Reference, WebExtensions, add-ons, lastError, runtime
The runtime.lastError property is set when an asynchronous function has an error condition that it needs to report to its caller.
674 runtime.onBrowserUpdateAvailable API, Add-ons, Event, Extensions, Non-Standard, Non-standard, Reference, WebExtensions, add-ons, onBrowserUpdateAvailable, runtime
Fired when an update for the browser is available, but it isn't installed immediately because a browser restart is required.
675 runtime.onConnect API, Add-ons, Event, Extensions, Non-standard, Reference, WebExtensions, onconnect, runtime
Fired when a connection is made with either an add-on process or a content script.
676 runtime.onConnectExternal API, Add-ons, Event, Extensions, Non-standard, Reference, WebExtensions, onConnectExternal, runtime
Fired when an add-on receives a connection request from a different add-on.
677 runtime.onInstalled API, Add-ons, Event, Extensions, Non-Standard, Non-standard, Reference, WebExtensions, add-ons, onInstalled, runtime
Fired when the add-on is first installed, when the add-on is updated to a new version, and when the browser is updated to a new version.
678 runtime.onMessage API, Add-ons, Event, Extensions, Non-standard, Reference, WebExtensions, onmessage, runtime
To send a message which will be received by the onMessage listener, use runtime.sendMessage() or (to send a message to a content script) tabs.sendMessage().
679 runtime.onMessageExternal API, Add-ons, Event, Extensions, Non-standard, Reference, WebExtensions, onMessageExternal, runtime
This API can't be used in a content script.
680 runtime.onRestartRequired API, Add-ons, Event, Extensions, Non-Standard, Non-standard, Reference, WebExtensions, add-ons, onRestartRequired, runtime
Fired when an app or the device that it runs on needs to be restarted. The app should close all its windows at its earliest convenience to let the restart happen. If the app does nothing, a restart will be enforced after a 24-hour grace period has passed. Currently, this event is only fired for Chrome OS kiosk apps.
681 runtime.onStartup API, Add-ons, Event, Extensions, Non-standard, Reference, WebExtensions, onStartup, runtime
Fired when a profile that has this extension installed first starts up. This event is not fired when a private browsing/incognito profile is started, even if this extension is operating in 'split' incognito mode.
682 runtime.onSuspend API, Add-ons, Event, Extensions, Non-Standard, Non-standard, Reference, WebExtensions, add-ons, onSuspend, runtime
Sent to the event page just before it is unloaded. This gives the add-on an opportunity to do some cleanup. Note that since the page is unloading, any asynchronous operations started while handling this event are not guaranteed to complete.
683 runtime.onSuspendCanceled API, Add-ons, Event, Extensions, Non-Standard, Non-standard, Reference, WebExtensions, add-ons, onSuspendCanceled, runtime
Sent after runtime.onSuspend to indicate that the app won't be unloaded after all.
684 runtime.onUpdateAvailable API, Add-ons, Event, Extensions, Non-Standard, Non-standard, Reference, WebExtensions, add-ons, onUpdateAvailable, runtime
Fired when an update to the add-on is available. This event enables an add-on to delay an update: for example, because it is in the middle of some operation which should not be interrupted.
685 runtime.openOptionsPage() API, Add-ons, Extensions, Method, Non-standard, Reference, WebExtensions, openOptionsPage, runtime
This is an asynchronous function that returns a Promise.
686 runtime.reload() API, Add-ons, Extensions, Method, Non-Standard, Non-standard, Reference, WebExtensions, add-ons, reload, runtime
Reloads the add-on.
687 runtime.requestUpdateCheck() API, Add-ons, Extensions, Method, Non-Standard, Non-standard, Reference, WebExtensions, add-ons, requestUpdateCheck, runtime
Checks to see if an update for this add-on is available.
688 runtime.sendMessage() API, Add-ons, Extensions, Method, Non-standard, Reference, WebExtensions, runtime, sendMessage
Sends a single message to event listeners within your add-on or a different add-on.
689 runtime.sendNativeMessage() API, Add-ons, Extensions, Method, Non-Standard, Non-standard, Reference, WebExtensions, add-ons, runtime, sendNativeMessage
Sends a single message from a WebExtension to a native application.
690 runtime.setUninstallURL() API, Add-ons, Extensions, Method, Non-Standard, Non-standard, Reference, WebExtensions, add-ons, runtime, setUninstallURL
Sets the URL to be visited when the add-on is uninstalled. This may be used to clean up server-side data, do analytics, or implement surveys. The URL can be a maximum 255 characters.
691 sessions
Use the sessions API to list, and restore, tabs and windows that have been closed while the browser has been running.
692 sessions.Filter API, Add-ons, Extensions, Non-standard, Reference, Type, WebExtensions, add-ons, filter, sessions
The Filter object enables you to restrict the number of Session objects returned by a call to sessions.getRecentlyClosed().
693 sessions.MAX_SESSION_RESULTS API, Add-ons, Extensions, MAX_SESSION_RESULTS, Non-standard, Property, Reference, WebExtensions, add-ons, sessions
This value represents the maximum number of sessions that will be returned by a call to sessions.getRecentlyClosed(). It is read-only for WebExtension code, and is set to 25.
694 sessions.Session API, Add-ons, Extensions, Non-standard, Reference, Session, Type, WebExtensions, sessions
The Session object represents a tab or window that the user has closed in the current browsing session.
695 sessions.getRecentlyClosed() API, Add-ons, Extensions, Method, Non-standard, Reference, WebExtensions, add-ons, getRecentlyClosed, sessions
Returns an array of Session objects, representing windows and tabs that were closed in the current browsing session (that is: the time since the browser was started).
696 sessions.onChanged API, Add-ons, Event, Extensions, Non-standard, Reference, WebExtensions, onChanged, sessions
Fired whenever the list of closed tabs or windows changes.
697 sessions.restore() API, Add-ons, Extensions, Method, Non-standard, WebExtensions, add-ons, restore, sessions
Restores a closed tab or window. Restoring doesn't just reopen the tab or window: it also restores the tab's navigation history so the back/forward buttons will work. Restoring a window will restore all the tabs that the window contained when it was closed.
698 sidebarAction
Gets and sets properties of an add-on's sidebar.
699 sidebarAction.ImageDataType API, Add-ons, Extensions, ImageDataType, Reference, Type, WebExtensions, sidebarAction
Pixel data for an image. Must be an ImageData object (for example, from a <canvas> element).
700 sidebarAction.getPanel() API, Add-ons, Extensions, Method, Reference, WebExtensions, getPanel, sidebarAction
Gets a URL to the HTML document that defines the sidebar's contents.
701 sidebarAction.getTitle() API, Add-ons, Extensions, Method, Reference, WebExtensions, getTitle, sidebarAction
Gets the sidebar's title.
702 sidebarAction.setIcon() API, Add-ons, Extensions, Method, Reference, WebExtensions, setIcon, sidebarAction
Sets the icon for the sidebar.
703 sidebarAction.setPanel() API, Add-ons, Extensions, Method, Reference, WebExtensions, setPanel, sidebarAction
Sets the HTML document that defines the content of this sidebar.
704 sidebarAction.setTitle() API, Add-ons, Extensions, Method, Reference, WebExtensions, setTitle, sidebarAction
Sets the sidebar's title. The title is displayed anywhere the browser lists available sidebars. For example, Firefox will show it in the "View > Sidebar" menu. It's also shown at the top o the sidebar when the sidebar is open.
705 storage API, Add-ons, Extensions, Interface, Non-standard, Reference, Storage, WebExtensions
Enables WebExtensions to store and retrieve data, and listen for changes to stored items.
706 storage.StorageArea API, Add-ons, Extensions, Non-Standard, Non-standard, Reference, Storage, StorageArea, Type, WebExtensions, add-ons, storage
StorageArea is an object representing a change to a storage area.
707 StorageArea.clear() API, Add-ons, Extensions, Method, Non-Standard, Non-standard, Reference, Storage, StorageArea, WebExtensions, add-ons, remove, storage
Removes all items from the storage area.
708 StorageArea.get() API, Add-ons, Extensions, Method, Non-standard, Reference, Storage, StorageArea, WebExtensions, get
Retrieves one or more items from the storage area.
709 StorageArea.getBytesInUse() API, Add-ons, Extensions, Method, Non-Standard, Non-standard, Reference, Storage, StorageArea, WebExtensions, add-ons, getBytesInUse, storage
Gets the amount of storage space, in bytes, used one or more items being stored in the storage area.
710 StorageArea.remove() API, Add-ons, Extensions, Method, Non-standard, Reference, Storage, StorageArea, WebExtensions, remove
Removes one or more items from the storage area.
711 StorageArea.set() API, Add-ons, Extensions, Method, Non-standard, Reference, Storage, StorageArea, WebExtensions, set
Stores one or more items in the storage area, or update existing items.
712 storage.StorageChange API, Add-ons, Extensions, Non-Standard, Non-standard, Reference, Storage, StorageChange, Type, WebExtensions, add-ons, storage
StorageChange objects contain the following properties:
713 storage.local API, Add-ons, Extensions, Non-standard, Property, Reference, Storage, WebExtensions, local
Represents the local storage area. Items in local storage are local to the machine the add-on was installed on.
714 storage.managed API, Add-ons, Extensions, Non-Standard, Non-standard, Property, Reference, Storage, WebExtensions, add-ons, managed, storage
Respresents the managed storage area. Items in managed storage are set by the domain administrator and are read-only for the extension. Trying to modify this namespace results in an error.
715 storage.onChanged API, Add-ons, Event, Extensions, Non-standard, Reference, Storage, WebExtensions, add-ons, onChanged
Fired when one or more items change.
716 storage.sync API, Add-ons, Extensions, Non-standard, Property, Reference, Storage, Sync, WebExtensions
Represents the sync storage area. Items in sync storage are synced by the browser, and are available across all instances of that browser that the user is logged into (e.g. via Firefox sync, or a Google account), across different devices.
717 tabs API, Add-ons, Extensions, Interface, Non-standard, Reference, WebExtensions, tabs
Interact with the browser's tab system.
718 tabs.MutedInfo API, Add-ons, Extensions, MutedInfo, Non-standard, Reference, Type, WebExtensions, add-ons, tabs
This object contains a boolean indicating whether the tab is muted, and the reason for the last state change.
719 tabs.MutedInfoReason API, Add-ons, Extensions, MutedInfoReason, Non-standard, Reference, Type, WebExtensions, add-ons, tabs
Specifies the reason a tab was muted or unmuted.
720 tabs.TAB_ID_NONE API, Add-ons, Extensions, Non-Standard, Non-standard, Property, Reference, TAB_ID_NONE, WebExtensions, add-ons, tabs
A special ID value given to tabs that are not browser tabs (for example, tabs in devtools windows).
721 tabs.Tab API, Add-ons, Extensions, Non-standard, Reference, Tab, Type, WebExtensions, add-ons, tabs
The type tabs.Tab contains information about a tab. This provides access to information about what content is in the tab, how large the content is, what special states or restrictions are in effect, and so forth.
722 tabs.TabStatus API, Add-ons, Extensions, Non-Standard, Non-standard, Reference, TabStatus, Type, WebExtensions, add-ons, tabs
Indicates whether the tab has finished loading.
723 tabs.WindowType API, Add-ons, Extensions, Non-standard, Reference, Type, WebExtensions, WindowType, add-ons, tabs
The type of window that hosts this tab.
724 tabs.ZoomSettings API, Add-ons, Extensions, Non-standard, Reference, Type, WebExtensions, ZoomSettings, add-ons, tabs
Defines zoom settings for a tab: modescope, and default zoom factor.
725 tabs.ZoomSettingsMode API, Add-ons, Extensions, Non-standard, Reference, Type, WebExtensions, ZoomSettingsMode, add-ons, tabs
Defines how zoom changes are handled. Add-ons can pass this value into tabs.setZoomSettings() to control how the browser handles attempts to change zoom settings for a tab. Defaults to "automatic".
726 tabs.ZoomSettingsScope API, Add-ons, Extensions, Non-Standard, Non-standard, Reference, Type, WebExtensions, ZoomSettingsScope, add-ons, tabs
Defines whether zoom changes will persist for the page's origin, or only take effect in this tab. This defaults to per-origin when tabs.zoomSettingsMode is "automatic", and is always per-tab otherwise.
727 tabs.captureVisibleTab() API, Add-ons, Extensions, Method, Non-Standard, Non-standard, Reference, WebExtensions, add-ons, captureVisibleTab, tabs
Creates a data URI encoding an image of the visible area of the currently active tab in the specified window. You must have the <all_urls> permission to use this method.
728 tabs.connect() API, Add-ons, Extensions, Method, Non-Standard, Non-standard, Reference, WebExtensions, add-ons, connect, tabs
Call this function to set up a connection between the add-on's background scripts (or other privileged scripts, such as popup scripts or options page scripts) and any content scripts that belong to this add-on and are running in the specified tab. This function returns a runtime.Port object.
729 tabs.create() API, Add-ons, Create, Extensions, Method, Non-standard, Reference, WebExtensions, tabs
Creates a new tab.
730 tabs.detectLanguage() API, Add-ons, Extensions, Method, Non-Standard, Non-standard, Reference, WebExtensions, add-ons, detectLanguage, tabs
Detects the primary language of the content in a tab, using the Compact Language Detector (CLD).
731 tabs.duplicate() API, Add-ons, Duplicate, Extensions, Method, Non-Standard, Non-standard, Reference, WebExtensions, add-ons, duplicate, tabs
Duplicates a tab, given its ID.
732 tabs.executeScript() API, Add-ons, Extensions, Method, Non-standard, Reference, WebExtensions, executeScript, tabs
Injects JavaScript code into a page.
733 tabs.get() API, Add-ons, Extensions, Method, Non-Standard, Non-standard, Reference, WebExtensions, add-ons, get, tabs
Given a tab ID, get the tab's details as a tabs.Tab object.
734 tabs.getAllInWindow() API, Add-ons, Deprecated, Extensions, Method, Non-Standard, Non-standard, Reference, WebExtensions, add-ons, getAllInWindow, tabs
Gets details about all tabs in the specified window.
735 tabs.getCurrent() API, Add-ons, Extensions, Method, Non-Standard, Non-standard, Reference, WebExtensions, add-ons, getCurrent, tabs
Get a tabs.Tab containing information about the tab that this script is running in.
736 tabs.getSelected() API, Add-ons, Deprecated, Extensions, Method, Non-Standard, Non-standard, Reference, WebExtensions, add-ons, getSelected, tabs
Gets the tab that is selected in the specified window.
737 tabs.getZoom() API, Add-ons, Extensions, Method, Non-Standard, Non-standard, Reference, WebExtensions, add-ons, getZoom, tabs
Gets the current zoom factor for the specified tab.
738 tabs.getZoomSettings() API, Add-ons, Extensions, Method, Non-Standard, Non-standard, Reference, WebExtensions, add-ons, getZoomSettings, tabs
Gets the current zoom settings for a specified tab.
739 tabs.highlight() API, Add-ons, Extensions, Method, Non-Standard, Non-standard, Reference, WebExtensions, add-ons, highlight, tabs
A Promise that will be fulfilled with a windows.Window object containing details about the window whose tabs were highlighted. If the window could not be found or some other error occurs, the promise will be rejected with an error message.
740 tabs.insertCSS() API, Add-ons, Extensions, Method, Non-standard, Reference, WebExtensions, insertCSS, tabs
Injects CSS into a page.
741 tabs.move() API, Add-ons, Extensions, Method, Non-Standard, Non-standard, Reference, WebExtensions, add-ons, move, tabs
Moves one or more tabs to a new position in the same window or to a different window.
742 tabs.onActivated API, Add-ons, Event, Extensions, Non-Standard, Non-standard, Reference, WebExtensions, add-ons, onActivated, tabs
Fires when the active tab in a window changes. Note that the tab's URL may not be set at the time this event fired, but you can listen to tabs.onUpdated events to be notified when a URL is set.
743 tabs.onActiveChanged API, Add-ons, Deprecated, Event, Extensions, Non-Standard, Non-standard, Reference, WebExtensions, add-ons, onActiveChanged, tabs
Fires when the selected tab in a window changes. Note that the tab's URL may not be set at the time this event fired, but you can listen to tabs.onUpdated events to be notified when a URL is set.
744 tabs.onAttached API, Add-ons, Event, Extensions, Non-Standard, Non-standard, Reference, WebExtensions, add-ons, onAttached, tabs
Fired when a tab is attached to a window, for example because it was moved between windows.
745 tabs.onCreated API, Add-ons, Event, Extensions, Non-standard, Reference, WebExtensions, onCreated, tabs
Fired when a tab is created.
746 tabs.onDetached API, Add-ons, Event, Extensions, Non-Standard, Non-standard, Reference, WebExtensions, add-ons, onDetached, tabs
Fired when a tab is detached from a window, for example because it is being moved between windows.
747 tabs.onHighlightChanged API, Add-ons, Deprecated, Event, Extensions, Non-Standard, Non-standard, Reference, WebExtensions, add-ons, onHighlightChanged, tabs
Fired when the highlighted or selected tabs in a window changes.
748 tabs.onHighlighted API, Add-ons, Event, Extensions, Non-Standard, Non-standard, Reference, WebExtensions, add-ons, onHighlighted, tabs
Fired when the set of highlighted tabs in a window changes.
749 tabs.onMoved API, Add-ons, Event, Extensions, Non-Standard, Non-standard, Reference, WebExtensions, add-ons, onMoved, tabs
Fired when a tab is moved within a window.
750 tabs.onRemoved API, Add-ons, Event, Extensions, Non-standard, Reference, WebExtensions, add-ons, onRemoved, tabs
Fired when a tab is closed.
751 tabs.onReplaced API, Add-ons, Event, Extensions, Non-standard, Reference, WebExtensions, onReplaced, tabs
Fired when a tab is replaced with another tab due to prerendering or instant.
752 tabs.onSelectionChanged API, Add-ons, Deprecated, Event, Extensions, Non-Standard, Non-standard, Reference, WebExtensions, add-ons, onSelectionChanged, tabs
Fires when the selected tab in a window changes.
753 tabs.onUpdated API, Add-ons, Event, Extensions, Non-standard, Reference, WebExtensions, onUpdated, tabs
Fired when a tab is updated.
754 tabs.onZoomChange API, Add-ons, Event, Extensions, Non-Standard, Non-standard, Reference, WebExtensions, add-ons, onZoomChange, tabs
Fired when a tab is zoomed.
755 tabs.query() API, Add-ons, Extensions, Method, Non-standard, Reference, WebExtensions, query, tabs
Gets all tabs that have the specified properties, or all tabs if no properties are specified.
756 tabs.reload() API, Add-ons, Extensions, Method, Non-Standard, Non-standard, Reference, WebExtensions, add-ons, reload, tabs
Reload a tab, optionally bypassing the local web cache.
757 tabs.remove() API, Add-ons, Extensions, Method, Non-Standard, Non-standard, Reference, WebExtensions, add-ons, remove, tabs
Closes one or more tabs.
758 tabs.removeCSS() API, Add-ons, Non-Standard, Non-standard, Reference, WebExtensions, add-ons, removeCSS, tabs
Removes from a page CSS which was previously injected by a call to tabs.insertCSS().
759 tabs.sendMessage() API, Add-ons, Extensions, Method, Non-Standard, Non-standard, Reference, WebExtensions, add-ons, sendMessage, tabs
Sends a single message from the add-on's background scripts (or other privileged scripts, such as popup scripts or options page scripts) and any content scripts that belong to this add-on and are running in the specified tab.
760 tabs.sendRequest() API, Add-ons, Deprecated, Extensions, Method, Non-Standard, Non-standard, Reference, WebExtensions, add-ons, sendRequest, tabs
Sends a single request to the content script(s) in the specified tab, with an optional callback to run when a response is sent back. The extension.onRequest event is fired in each content script running in the specified tab for the current extension.
761 tabs.setZoom() API, Add-ons, Extensions, Method, Non-Standard, Non-standard, Reference, WebExtensions, add-ons, setZoom, tabs
Zooms the specified tab.
762 tabs.setZoomSettings() API, Add-ons, Extensions, Method, Non-Standard, Non-standard, Reference, WebExtensions, add-ons, setZoomSettings, tabs
Sets zoom settings for the specified tab. These settings are reset to the default settings upon navigating the tab.
763 tabs.update() API, Add-ons, Extensions, Method, Non-standard, Reference, Update, WebExtensions, tabs
Navigate the tab to a new URL, or modify other properties of the tab.
764 topSites
Use the topSites API to get an array containing all the sites listed in the browser's "New Tab" page.
765 topSites.MostVisitedURL API, Add-ons, Extensions, MostVisitedURL, Non-standard, Reference, Type, WebExtensions, add-ons, topSites
The MostVisitedURL type contains two properties: the title of a page and its URL.
766 topSites.get() API, Add-ons, Extensions, Method, Non-standard, Reference, WebExtensions, add-ons, get, topSites
Gets an array containing all the sites listed in the browser's "New Tab" page.
767 webNavigation API, Add-ons, Extensions, Interface, Non-standard, Reference, WebExtensions, webNavigation
Add event listeners for the various stages of a navigation. A navigation consists of a frame in the browser transitioning from one URL to another, usually (but not always) in response to a user action like clicking a link or entering a URL in the location bar.
768 webNavigation.TransitionQualifier API, Add-ons, Extensions, Non-Standard, Non-standard, Reference, TransitionQualifier, Type, WebExtensions, add-ons, webNavigation
Values of this type are strings. Possible values are:
769 webNavigation.TransitionType API, Add-ons, Extensions, Non-standard, Reference, TransitionType, Type, WebExtensions, webNavigation
Cause of the navigation: for example, the user clicked a link, or typed an address, or clicked a bookmark.
770 webNavigation.getAllFrames() API, Add-ons, Extensions, Method, Non-Standard, Non-standard, Reference, WebExtensions, add-ons, getAllFrames, webNavigation
Given a tab ID, retrieves information about all the frames it contains.
771 webNavigation.getFrame() API, Add-ons, Extensions, Method, Non-Standard, Non-standard, Reference, WebExtensions, add-ons, getFrame, webNavigation
Retrieves information about a particular frame. A frame may be the top-level frame in a tab or a nested iframe, and is uniquely identified by a tab ID and a frame ID.
772 webNavigation.onBeforeNavigate API, Add-ons, Event, Extensions, Non-standard, Reference, WebExtensions, onBeforeNavigate, webNavigation
Fired when the browser is about to start a navigation event.
773 webNavigation.onCommitted API, Add-ons, Event, Extensions, Non-standard, Reference, WebExtensions, onCommitted, webNavigation
Fired when a navigation is committed. At least part of the new document has been received from the server and the browser has decided to switch to the new document.
774 webNavigation.onCompleted API, Add-ons, Event, Extensions, Non-standard, Reference, WebExtensions, onCompleted, webNavigation
Fired when a document, including the resources it refers to, is completely loaded and initialized. This is equivalent to the DOM load event.
775 webNavigation.onCreatedNavigationTarget API, Add-ons, Event, Extensions, Non-standard, Reference, WebExtensions, onCreatedNavigationTarget, webNavigation
Fired when a new window, or a new tab in an existing window, is created to host the target of a navigation. For example, this event is sent when:
776 webNavigation.onDOMContentLoaded API, Add-ons, Event, Extensions, Non-standard, Reference, WebExtensions, onDOMContentLoaded, webNavigation
Fired when the DOMContentLoaded event is fired in the page. At this point the document is loaded and parsed, and the DOM is fully constructed, but linked resources such as images, stylesheets and subframes may not yet be loaded.
777 webNavigation.onErrorOccurred API, Add-ons, Event, Extensions, Non-standard, Reference, WebExtensions, onErrorOccurred, webNavigation
Fired when an error occurs and the navigation is aborted. This can happen if either a network error occurred, or the user aborted the navigation.
778 webNavigation.onHistoryStateUpdated API, Add-ons, Event, Extensions, Non-standard, Reference, WebExtensions, onHistoryStateUpdated, webNavigation
Fired when the page used the history API to update the URL displayed in the browser's location bar. All future events for this frame will use the updated URL.
779 webNavigation.onReferenceFragmentUpdated API, Add-ons, Event, Extensions, Non-standard, Reference, WebExtensions, onReferenceFragmentUpdated, webNavigation
Events have three functions:
780 webNavigation.onTabReplaced API, Add-ons, Event, Extensions, Non-standard, Reference, WebExtensions, onTabReplaced, webNavigation
Fired when the contents of the tab is replaced by a different (usually previously pre-rendered) tab.
781 webRequest API, Add-ons, Extensions, Interface, Non-standard, Reference, WebExtensions, webRequest
Add event listeners for the various stages of making an HTTP request. The event listener receives detailed information about the request, and can modify or cancel the request.
782 webRequest.BlockingResponse API, Add-ons, BlockingResponse, Extensions, Non-Standard, Non-standard, Reference, Type, WebExtensions, add-ons, webRequest
An object of this type is returned by event listeners that have set "blocking" in their extraInfoSpec argument.
783 webRequest.HttpHeaders API, Add-ons, Extensions, HttpHeaders, Non-Standard, Non-standard, Reference, Type, WebExtensions, add-ons, webRequest
An array of HTTP headers. Each header is represented as an object with two properties: name and either value or binaryValue.
784 webRequest.MAX_HANDLER_BEHAVIOR_CHANGED_CALLS_PER_10_MINUTES API, Add-ons, Extensions, MAX_HANDLER_BEHAVIOR_CHANGED_CALLS_PER_10_MINUTES, Non-Standard, Non-standard, Property, Reference, WebExtensions, add-ons, webRequest
The maximum number of times that handlerBehaviorChanged() can be called in a 10 minute period.
785 webRequest.RequestFilter API, Add-ons, Extensions, Non-standard, Reference, RequestFilter, Type, WebExtensions, webRequest
An object describing filters to apply to webRequest events.
786 webRequest.ResourceType API, Add-ons, Extensions, Non-Standard, Non-standard, Reference, ResourceType, Type, WebExtensions, add-ons, webRequest
This type is a string, which represents a particular kind of resource fetched in a web request.
787 webRequest.UploadData API, Add-ons, Extensions, Non-Standard, Non-standard, Reference, Type, UploadData, WebExtensions, add-ons, webRequest
Contains data uploaded in a URL request.
788 webRequest.handlerBehaviorChanged() API, Add-ons, Extensions, Method, Non-Standard, Non-standard, Reference, WebExtensions, add-ons, handlerBehaviorChanged, webRequest
Suppose an add-on's job is to block web requests against a pattern, and the following scenario happens:
789 webRequest.onAuthRequired API, Add-ons, Event, Extensions, Non-standard, Reference, WebExtensions, onAuthRequired, webRequest
Fired when the server sends a 401 status code: that is, when the server is asking the client to provide authentication credentials such as a username and password.
790 webRequest.onBeforeRedirect API, Add-ons, Event, Extensions, Non-Standard, Non-standard, Reference, WebExtensions, add-ons, onBeforeRedirect, webRequest
Fired when a server-initiated redirect is about to occur.
791 webRequest.onBeforeRequest API, Add-ons, Event, Extensions, Non-standard, Reference, WebExtensions, onBeforeRequest, webRequest
This event is triggered when a request is about to be made, and before headers are available. This is a good place to listen if you want to cancel or redirect the request.
792 webRequest.onBeforeSendHeaders API, Add-ons, Event, Extensions, Non-Standard, Non-standard, Reference, WebExtensions, add-ons, onBeforeSendHeaders, webRequest
This event is triggered before sending any HTTP data, but after all HTTP headers are available. This is a good place to listen if you want to modify HTTP request headers.
793 webRequest.onCompleted API, Add-ons, Event, Extensions, Non-Standard, Non-standard, Reference, WebExtensions, add-ons, onCompleted, webRequest
Fired when a request has completed.
794 webRequest.onErrorOccurred API, Add-ons, Event, Extensions, Non-Standard, Non-standard, Reference, WebExtensions, add-ons, onErrorOccurred, webRequest
Fired when a request could not be processed due to an error: for example, a lack of Internet connectivity.
795 webRequest.onHeadersReceived API, Add-ons, Event, Extensions, Non-standard, Reference, WebExtensions, onHeadersReceived, webRequest
Fired when the HTTP response headers associated with a request have been received. You can use this event to modify HTTP response headers.
796 webRequest.onResponseStarted API, Add-ons, Event, Extensions, Non-Standard, Non-standard, Reference, WebExtensions, add-ons, onResponseStarted, webRequest
Fired when the first byte of the response body is received.
797 webRequest.onSendHeaders API, Add-ons, Event, Extensions, Non-Standard, Non-standard, Reference, WebExtensions, add-ons, onSendHeaders, webRequest
This event is fired just before sending headers. If your add-on or some other add-on modified headers in onBeforeSendHeaders, you'll see the modified version here.
798 windows API, Add-ons, Extensions, Interface, Non-standard, Reference, WebExtensions, Windows
Interact with browser windows. You can use this API to get information about open windows and to open, modify, and close windows. You can also listen for window open, close, and activate events.
799 windows.CreateType API, Add-ons, CreateType, Extensions, Non-standard, Reference, Type, WebExtensions, Windows
Specifies the type of browser window to create.
800 windows.WINDOW_ID_CURRENT API, Add-ons, Extensions, Non-Standard, Non-standard, Property, Reference, WINDOW_ID_CURRENT, WebExtensions, Windows, add-ons, windows
The windowId for the current window.
801 windows.WINDOW_ID_NONE API, Add-ons, Extensions, Non-Standard, Non-standard, Property, Reference, WINDOW_ID_NONE, WebExtensions, Windows, add-ons, windows
The windowId value that represents the absence of a browser window.
802 windows.Window API, Add-ons, Extensions, Non-standard, Reference, Type, WebExtensions, Window, Windows, add-ons, windows
Information about a browser window.
803 windows.WindowState API, Add-ons, Extensions, Non-standard, Reference, Type, WebExtensions, WindowState, Windows, add-ons, windows
The state of this browser window.
804 windows.WindowType API, Add-ons, Extensions, Non-standard, Reference, Type, WebExtensions, WindowType, Windows, add-ons, windows
The type of browser window this is.
805 windows.create() API, Add-ons, Create, Extensions, Method, Non-Standard, Non-standard, Reference, WebExtensions, Windows, add-ons, create, windows
Creates a new window.
806 windows.get() API, Add-ons, Extensions, Method, Non-Standard, Non-standard, Reference, WebExtensions, Windows, add-ons, get, windows
Gets details about a window, given its ID. The details are passed into a callback.
807 windows.getAll() API, Add-ons, Extensions, Method, Non-Standard, Non-standard, Reference, WebExtensions, Windows, add-ons, getAll, windows
Gets information about all open windows, passing them into a callback.
808 windows.getCurrent() API, Add-ons, Extensions, Method, Non-standard, Reference, WebExtensions, Windows, getCurrent
Gets the current browser window, passing its details into a callback.
809 windows.getLastFocused() API, Add-ons, Extensions, Method, Non-Standard, Non-standard, Reference, WebExtensions, Windows, add-ons, getLastFocused, windows
Gets the window that was most recently focused — typically the window 'on top' — and passes it into a callback.
810 windows.onCreated API, Add-ons, Event, Extensions, Non-Standard, Non-standard, Reference, WebExtensions, Windows, add-ons, onCreated, windows
Fired when a window is created.
811 windows.onFocusChanged API, Add-ons, Event, Extensions, Non-Standard, Non-standard, Reference, WebExtensions, Windows, add-ons, onFocusChanged, windows
Fired when the currently focused window changes. Will be windows.WINDOW_ID_NONE if all browser windows have lost focus.
812 windows.onRemoved API, Add-ons, Event, Extensions, Non-Standard, Non-standard, Reference, WebExtensions, Windows, add-ons, onRemoved, windows
Fired when a window is closed.
813 windows.remove() API, Add-ons, Extensions, Method, Non-Standard, Non-standard, Reference, WebExtensions, Windows, add-ons, remove, windows
Closes a window and all the tabs inside it, given the window's ID.
814 windows.update() API, Add-ons, Extensions, Method, Non-Standard, Non-standard, Reference, Update, WebExtensions, Windows, add-ons, update, windows
Updates the properties of a window. Use this to move, resize, and (un)focus a window, etc.
815 Match patterns WebExtensions
Match patterns are a way to specify groups of URLs: a match pattern matches a specific set of URLs. They are used by WebExtensions in a few places, most notably to specify which documents to load content scripts into, and to specify which URLs to add webRequest listeners to.
816 Modify a web page WebExtensions
One of the most common use cases for a browser add-on is to modify a web page. For example, an add-on might want to change the style applied to a page, hide particular DOM nodes, or inject extra DOM nodes into the page.
817 Native messaging WebExtensions
Native messaging enables a WebExtension to exchange messages with a native application installed on the user's computer. This enables native applications to provide a service to add-ons without needing to be reachable over the web. One common example here is password managers: the native application manages storage and encryption of passwords, and communicates with the add-on to populate web forms. Native messaging also enables add-ons to access resources that are not accessible through WebExtension APIs, such as some particular piece of hardware.
818 Notifications WebExtensions
No summary!
819 Options pages WebExtensions
No summary!
820 Page actions WebExtensions
Page actions are like browser actions in most respects, except that:
821 Popups WebExtensions
No summary!
822 Porting a Google Chrome extension WebExtensions
WebExtensions are designed for cross-browser compatibility: to a large extent the technology is compatible with the extension API supported by Google Chrome and Opera. Extensions written for these browsers will in most cases run in Firefox with just a few changes. The process of porting an extension from Chrome or Opera is like this:
823 Porting a legacy Firefox add-on WebExtensions
If you have a Firefox add-on developed using a legacy technology, such as XUL/XPCOM or the Add-on SDK, here's a very quick guide to updating.
824 Prerequisites
All you need is Firefox 45 or higher. See Your first WebExtension to get started.
825 Publishing your WebExtension WebExtensions
Once you've finished writing and testing your WebExtension, you'll probably want to share it with other people. Mozilla operates a website: addons.mozilla.org (commonly abbreviated to AMO), where developers can publish add-ons and users can find them. By publishing your add-on on AMO, you can participate in our community of users and creators, and find an audience for your add-on.
826 Sidebars WebExtensions
No summary!
827 Temporary Installation in Firefox WebExtensions
To install an add-on temporarily:
828 Tips and Tricks
This page contains various tips and tricks which should be useful to many people developing WebExtensions.
829 User interface components WebExtensions
This article is an overview of the components you can use to build a WebExtension's user interface.
830 WebExtensions and the Add-on ID WebExtensions
Firefox add-ons contain a unique identifier which is used both inside Firefox itself and on the addons.mozilla.org (AMO) website. For example, it's used by Firefox to check for updates to installed add-ons and to identify which objects (such as data stores) are controlled by this add-on.
831 What are WebExtensions? WebExtensions
Add-ons extend and modify the functionality of a web browser. They are written using standard Web technologies - JavaScript, HTML, and CSS - plus some dedicated JavaScript APIs. Among other things, add-ons can add new features to the browser or change the appearance or content of particular websites.
832 Your first WebExtension Guide, WebExtensions
In this article we'll walk through creating a WebExtension for Firefox, from start to finish. The add-on just adds a red border to any pages loaded from "mozilla.org" or any of its subdomains.
833 Your second WebExtension WebExtensions
No summary!
834 manifest.json Add-ons, Extensions, WebExtensions
The manifest.json file is a JSON-formatted file, and is the only file that every WebExtension must contain.
835 applications Add-ons, Extensions, WebExtensions
The applications key contains keys that are specific to a particular host application.
836 author Add-ons, Extensions, WebExtensions
The extension's author, intended for display in the browser's user interface. If the developer key is supplied and it contains the "name" property, it will override the author key. There's no way to specify multiple authors.
837 background Add-ons, Extensions, WebExtensions
Use the background key to include one or more background scripts, and optionally a background page in your extension.
838 browser_action Add-ons, Extensions, WebExtensions
A browser action is a button that your extension adds to the browser's toolbar. The button has an icon, and may optionally have a popup whose content is specified using HTML, CSS, and JavaScript.
839 chrome_settings_overrides Add-ons, Extensions, WebExtensions, chrome_settings_overrides, manifest.json
Use the chrome_settings_overrides key to override certain browser settings. At the moment, only one setting is available: "homepage", which enables you to override the browser's home page.
840 chrome_url_overrides Add-ons, Extensions, WebExtensions
Use the chrome_url_overrides key to provide a custom replacement for the documents loaded into various special pages usually provided by the browser itself.
841 commands Add-ons, Extensions, WebExtensions
Use the commands key to define one or more keyboard shortcuts for your add-on.
842 content_scripts Add-ons, Extensions, WebExtensions
Instructs the browser to load content scripts into web pages whose URL matches a given pattern.
843 content_security_policy Add-ons, Extensions, WebExtensions
WebExtensions have a content security policy applied to them by default. The default policy restricts the sources from which they can load<script> and <object> resources, and disallows potentially unsafe practices such as the use of eval(). See Default content security policy to learn more about the implications of this.
844 default_locale Add-ons, Extensions, WebExtensions
This key must be present if the extension contains the _locales directory, and must be absent otherwise. It identifies a subdirectory of _locales, and this subdirectory will be used to find the default strings for your extension.
845 description Add-ons, Extensions, WebExtensions
A short description of the extension, intended for display in the browser's user interface.
846 developer Add-ons, Extensions, WebExtensions
The name of the extension's developer and their homepage URL, intended for display in the browser's user interface.
847 devtools_page
Use this key to enable your add-on to extend the browser's built-in devtools.
848 homepage_url Add-ons, Extensions, WebExtensions
URL for the add-on's home page.
849 icons Add-ons, Extensions, WebExtensions
The icons key specifies icons for your extension. Those icons will be used to represent the extension in components such as the Add-ons Manager.
850 manifest_version Add-ons, Extensions, WebExtensions
This key specifies the version of manifest.json used by this extension.
851 name Add-ons, Extensions, WebExtensions
Name of the extension. This is used to identify the extension in the browser's user interface and on sites like addons.mozilla.org.
852 omnibox Add-ons, Extensions, WebExtensions
Use the omnibox key to define an omnibox keyword for your WebExtension.
853 options_ui Add-ons, Extensions, WebExtensions
Use the options_ui key to define an options page for your add-on.
854 page_action Add-ons, Extensions, WebExtensions
A page action is an icon that your extension adds inside the browser's URL bar.
855 permissions Add-ons, Extensions, WebExtensions
Use the permissions key to request special powers for your extension. This key is an array of strings, and each string is a request for a permission.
856 protocol_handlers Add-ons, Extensions, WebExtensions, manifest.json
Use this key to register one of more web-based protocol handlers.
857 short_name Add-ons, Extensions, WebExtensions
Short name for the extension. If given, this will be used in contexts where the name field is too long. It's recommended that the short name should not exceed 12 characters. If the short name field is not included in manifest.json, then name will be used instead and may be truncated.
858 sidebar_action WebExtensions
A sidebar is a pane that is displayed at the left-hand side of the browser window, next to the web page. The browser provides a UI that enables the user to see the currently available sidebars and to select a sidebar to display.
859 version Add-ons, Extensions, WebExtensions
Version of the extension, formatted as numbers and ASCII characters separated by dots. For the details of the version format, see the Version format page.
860 web_accessible_resources Add-ons, Extensions, WebExtensions
Sometimes you will want to package some resources - for example, images, HTML, CSS, or JavaScript - with your extension, and make them available to web pages.
861 web-ext command reference Options, Reference, Tools, WebExtensions, commands, web-ext
This page lists all the commands and options available under the web-ext command line tool.
862 Working with AMO AMO, Add-ons, Extensions, Preferences, add-ons
AMO (addons.mozilla.org) is the main add-ons hosting site for Firefox and other Mozilla applications. Although you can distribute your add-ons on your own website, AMO provides free hosting and update services as long as you comply with their basic guidelines.
863 Working with multiprocess Firefox
In older versions of Firefox, chrome code (including code inserted by extensions) and content run in the same operating system process. So extensions can access content directly:
864 Using the message manager from Firefox extensions
This article explains how to refactor a Firefox extension to use the message manager. This enables the extension to work in multiprocess Firefox.

Document Tags and Contributors

 Contributors to this page: wbamberg, dkocho4, fscholz
 Last updated by: wbamberg,