Specifying data types
You specify the data types your extension transmits in the browser_specific_settings.gecko.data_collection_permissions key in the manifest.json file. As a reminder, the policies state that data transmission refers to any data collected, used, transferred, shared, or handled outside the add-on or the local browser.
Personal data
Personal data permissions can be required or optional, except for technicalAndInteraction that cannot be required:
"browser_specific_settings": {
"gecko": {
"data_collection_permissions": {
"required": [...],
"optional": [...]
}
}
}
The rest of this section describes each key in the data_collection_permissions object.
Required data
When you specify data types in the required list, users must accept this data collection to use the extension; they cannot opt out. So the user can review the data-collection requirements of an extension before installing it, data collection information is presented to the user in the installation prompt, like this:

If the user doesn’t agree to data collection, they can cancel the extension installation.
This installation prompt is the result of a manifest.json file that specifies one required data type, locationInfo, and one optional data type, technicalAndInteraction.
{
"manifest_version": 2,
"name": "Example - Data collection with fallback",
"version": "1.0.0",
"permissions": [
"storage",
"management"
],
"browser_specific_settings": {
"gecko": {
"id": "@example-data-collection-with-fallback",
"data_collection_permissions": {
"required": [
"locationInfo"
],
"optional": [
"technicalAndInteraction"
]
}
}
},
"background": {
"scripts": [
"background.js"
]
},
"browser_action": {},
"options_ui": {
"page": "options/page.html"
}
}
This adds the "required" data collection paragraph to the installation prompt. The data permissions are also listed in about:addons like this:

Optional data
Optional data collection permissions are specified using the optional list. These aren’t presented during installation (except for technicalAndInteraction), and they aren’t granted by default. The extension can request that the user opts in to this data collection after installation by calling permissions.request() in a user-activated event handler, and the user can turn this optional data collection on or off in about:addons in the Permissions and data section of the extension settings.
Technical and interaction data
The technicalAndInteraction data type behaves differently from all other data types. This data permission must be optional, but unlike other optional data collection options, the user can turn this permission on or off during the installation flow. This choice is available in the optional settings section of the extension installation prompt.
No data collection
If your extension doesn’t collect or transmit any data, you indicate that by specifying the none required permission in the manifest, as follows:
{
"manifest_version": 2,
"name": "extension without data collection",
"version": "1.0.0",
"browser_specific_settings": {
"gecko": {
"id": "@extension-without-data-collection",
"data_collection_permissions": {
"required": ["none"]
}
}
},
"permissions": [
"bookmarks",
"<all_urls>"
]
}
When a user attempts to install this extension, Firefox shows the usual installation prompt with the description of the required (API) permissions and a description to indicate that the extension doesn’t collect any data, like this:

The "no data collected" type is also listed in the Permissions and data tab of the extension in about:addons, like this:
