Closed Bug 1339552 Opened 8 years ago Closed 8 years ago

Do not prompt with permissions when upgrading from a legacy add-on to a WebExtension version

Categories

(Toolkit :: Add-ons Manager, defect, P1)

defect

Tracking

()

VERIFIED FIXED
mozilla54
Tracking Status
firefox54 --- verified

People

(Reporter: andy+bugzilla, Assigned: aswan)

References

Details

(Whiteboard: [triaged])

Attachments

(1 file)

This isn't the perfect solution, but we'd like to not show a user permission prompt when upgrading from a legacy add-on to a webextension. 

When a user installed a legacy add-on there was no concept of permissions and so a user implicitly agreed to all permissions and let the add-on do absolutely anything that they could.

If a user says no to this permission prompt they will end up with an add-on that will break in Firefox 57 because they have said no to the WebExtensions version. 

This would be quite a hurdle for legacy add-ons and also anything change in the way of migrating the users over to WebExtensions.

For those reasons, we'd like to not prompt the user with permissions on upgrade from legacy to WebExtension.
A legacy extension should essentially be treated as having all permissions, and since we only prompt for new permissions on upgrade, I'd expect this to Just Work.
Yup, that's the proposal.
Component: WebExtensions: Frontend → Add-ons Manager
Blocks: webext-permissions
No longer blocks: 1309288
The new test extensions need to be signed before this lands but I'd like to get everything reviewed first.
Attachment #8838121 - Flags: review?(dtownsend)
Comment on attachment 8838121 [details]
Bug 1339552 Don't show permissions for updates from legacy extension to webextension

https://reviewboard.mozilla.org/r/113120/#review114658

::: toolkit/mozapps/extensions/AddonManager.jsm:1385
(Diff revision 1)
> -    let oldPerms = info.existingAddon.userPermissions || {hosts: [], permissions: []};
> +    let oldPerms = info.existingAddon.userPermissions;
> +    if (!oldPerms) {
> +      // Updating from a legacy add-on, just let it proceed
> +      return Promise.resolve();
> +    }
> +    

Nit: whitespace
Attachment #8838121 - Flags: review?(dtownsend) → review+
Andy, the xpis in the attached patch need to be signed before this lands.  browser_legacy.xpi is a plain bootstrap extension and I wrestled with "jpm sign" for a while but it keeps failing validation.  If you want to sign them both that would be swell, or I can sign the webextension easily enough if you can sign the other one.
Flags: needinfo?(amckay)
Pushed by aswan@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/177585f938f6
Don't show permissions for updates from legacy extension to webextension r=mossop
https://hg.mozilla.org/mozilla-central/rev/177585f938f6
Status: NEW → RESOLVED
Closed: 8 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla54
Flags: needinfo?(amckay)
Verified fixed, via both background and interactive update methods on Firefox 54.0a1 (2017-02-21/22) under Windows 10 64-bit, Mac OS X 10.12.1 and Ubuntu 16.04 32-bit. There are no permissions prompted while upgrading from a legacy add-on to a webextension version with promptable permissions. We will also add this scenario in our “version check” weekly test run.
Status: RESOLVED → VERIFIED
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: