WebExtensions/Permissions

From MozillaWiki
Jump to: navigation, search

This page covers permissions for WebExtensions in Firefox. There are a few main parts: required permissions, optional permissions and the permissions API.

Initial product requirements document.

Status

Update January 2017: Mostly landed in Nightly and should be on by default in Firefox 54.

You can try it out until its on by default by creating the preference: extensions.webextPermissionPrompts as a boolean set to true. Then install a WebExtension. Here are some examples.

Required permissions

This is the biggest class and it covers prompting a user when they install an add-on. If they upgrade an add-on and the permissions change then they will also be prompted with a warning for the upgrades.

When: aiming for Firefox 53.

Scenarios being looked at include:

  • installing a WebExtension from a third party site
  • installing a WebExtension from AMO or the disco pane
  • installing a WebExtension temporarily through about:debugging (no permissions should be shown)
  • installing a WebExtension through about:addons
  • have a WebExtension be side loaded
  • have a WebExtension be upgraded

Not covered:

  • changes to legacy extension types

Tracking bug: 1308292

ID Priority Status Summary
1329884 P3 NEW Handle notifications for simultaneous installs better
1340102 P3 NEW No updates found after closing the Add-ons Manager tab which displays the interactive update pop-up
1340109 P5 NEW ”No updates found” message is displayed after canceling the interactive update pop-up
1340471 P3 NEW Test for: Legacy add-ons update is broken while permission preference is enabled
1340531 P5 NEW A sideloaded add-on can be enabled/updated after it is removed
1342133 P3 NEW Support non-permission properties in manifest as permissions
1342350 P5 NEW Canceling the permissions pop-up removes the webextension from the search results list
1342506 P3 NEW Improve presentation of long add-on names in sideload/update menu items
1342914 P3 NEW Add-ons Manager ”Enable” button should not be clickable as long as permissions pop-up is displayed
1343179 P3 NEW Permissions pop-up appears every time a sideloaded webextension is enabled
1343201 P5 NEW Sideload/Update notifications are displayed in Customize Mode
1343222 P3 NEW Sideloading notification does not disappear after canceling the permissions doorhanger
1343518 P5 NEW Sideloading notification is still displayed after removing the webextension
1345818 P2 NEW Installed webextensions should display the permissions in about:addons
1346138 P5 NEW Icon is not displayed in the sideloading pop-up after upgrading from a disabled legacy add-on to a WebExtension version
1346722 P5 REOPENED Display permissions in alphabetical order
1347170 P3 NEW Permissions pop-up points to “Show site information” icon after moving the tab to new window
1347478 P5 NEW After the update for a WebExtension that is installed via sideloading method a user can enable the first version while the last version will be disabled in about:addons
1361730 P2 NEW No permission confirmation pop-up displayed after moving the tab to a new window
1370523 P5 NEW Layout issue in add-on confirmation pop-up for “fr” and “ca” localizations

20 Total; 20 Open (100%); 0 Resolved (0%); 0 Verified (0%);


UX

The main UX flow for this is on Figma. However at the time of writing there a few divergences from the user interface, noted above.

Optional permissions and associated permissions API

Optional permissions are currently in the planning stage and will land after required permissions. This is because the majority of extensions on the Chrome store have a required permission (around 90%). Where as only about 8% have an optional permission.

When: aiming for Firefox 54.

Tracking bug: 1197420

ID Priority Status Summary
1375485 P5 NEW urls or <all_urls> can be requested as "permissions" instead of "origins"

1 Total; 1 Open (100%); 0 Resolved (0%); 0 Verified (0%);


UX

The main UX flow for this is on Figma. However at the time of writing there a few divergences from the user interface, noted above.