Bug 1340078 Show the correct permissions list in webextensions notifications r=rhelmer
authorAndrew Swan <aswan@mozilla.com>
Thu, 16 Feb 2017 13:31:50 -0800
changeset 373524 8cee574417c0cb0c8f38d8c5c6f4c9021e6e13d3
parent 373523 8593e5ed3fdb836f70a1d79ca6da5c0179a47e6a
child 373525 4ffa890ec8ada2fdd64f9e92ddc33d75c620516e
push id10863
push userjlorenzo@mozilla.com
push dateMon, 06 Mar 2017 23:02:23 +0000
treeherdermozilla-aurora@0931190cd725 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersrhelmer
bugs1340078
milestone54.0a1
Bug 1340078 Show the correct permissions list in webextensions notifications r=rhelmer MozReview-Commit-ID: 5YiYG6k5MJj
browser/base/content/test/general/browser_extension_update_background.js
browser/base/content/test/general/browser_extension_update_interactive.js
browser/base/content/test/general/browser_webext_update.json
browser/base/content/test/general/browser_webext_update1.xpi
browser/base/content/test/general/browser_webext_update2.xpi
browser/base/content/test/general/browser_webext_update_icon1.xpi
browser/base/content/test/general/browser_webext_update_icon2.xpi
browser/modules/ExtensionsUI.jsm
toolkit/mozapps/extensions/AddonManager.jsm
toolkit/mozapps/extensions/content/extensions.xml
--- a/browser/base/content/test/general/browser_extension_update_background.js
+++ b/browser/base/content/test/general/browser_extension_update_background.js
@@ -1,13 +1,13 @@
 const {AddonManagerPrivate} = Cu.import("resource://gre/modules/AddonManager.jsm", {});
 
 const URL_BASE = "https://example.com/browser/browser/base/content/test/general";
-const ID = "update@tests.mozilla.org";
-const ID_ICON = "update_icon@tests.mozilla.org";
+const ID = "update2@tests.mozilla.org";
+const ID_ICON = "update_icon2@tests.mozilla.org";
 const ID_PERMS = "update_perms@tests.mozilla.org";
 const ID_LEGACY = "legacy_update@tests.mozilla.org";
 
 registerCleanupFunction(async function() {
   for (let id of [ID, ID_ICON, ID_PERMS, ID_LEGACY]) {
     let addon = await AddonManager.getAddonByID(id);
     if (addon) {
       ok(false, `Addon ${id} was still installed at the end of the test`);
@@ -149,19 +149,27 @@ function* backgroundUpdateTest(url, id, 
   is(tab.linkedBrowser.currentURI.spec, "about:addons", "Browser is at about:addons");
 
   const VIEW = "addons://list/extension";
   yield promiseViewLoaded(tab, VIEW);
   let win = tab.linkedBrowser.contentWindow;
   ok(!win.gViewController.isLoading, "about:addons view is fully loaded");
   is(win.gViewController.currentViewId, VIEW, "about:addons is at extensions list");
 
-  // Wait for the permission prompt, check the contents, then cancel the update
+  // Wait for the permission prompt, check the contents
   let panel = yield popupPromise;
   checkIconFn(panel.getAttribute("icon"));
+
+  // The original extension has 1 promptable permission and the new one
+  // has 2 (history and <all_urls>) plus 1 non-promptable permission (cookies).
+  // So we should only see the 1 new promptable permission in the notification.
+  let list = document.getElementById("addon-webext-perm-list");
+  is(list.childElementCount, 1, "Permissions list contains 1 entry");
+
+  // Cancel the update.
   panel.secondaryButton.click();
 
   addon = yield AddonManager.getAddonByID(id);
   is(addon.version, "1.0", "Should still be running the old version");
 
   yield BrowserTestUtils.removeTab(tab);
 
   // Alert badge and hamburger menu items should be gone
--- a/browser/base/content/test/general/browser_extension_update_interactive.js
+++ b/browser/base/content/test/general/browser_extension_update_interactive.js
@@ -1,12 +1,12 @@
 const {AddonManagerPrivate} = Cu.import("resource://gre/modules/AddonManager.jsm", {});
 
 const URL_BASE = "https://example.com/browser/browser/base/content/test/general";
-const ID = "update@tests.mozilla.org";
+const ID = "update2@tests.mozilla.org";
 const ID_LEGACY = "legacy_update@tests.mozilla.org";
 
 registerCleanupFunction(async function() {
   for (let id of [ID, ID_LEGACY]) {
     let addon = await AddonManager.getAddonByID(id);
     if (addon) {
       ok(false, `Addon ${id} was still installed at the end of the test`);
       addon.uninstall();
--- a/browser/base/content/test/general/browser_webext_update.json
+++ b/browser/base/content/test/general/browser_webext_update.json
@@ -1,25 +1,25 @@
 {
   "addons": {
-    "update@tests.mozilla.org": {
+    "update2@tests.mozilla.org": {
       "updates": [
         {
           "version": "2.0",
           "update_link": "https://example.com/browser/browser/base/content/test/general/browser_webext_update2.xpi",
           "applications": {
             "gecko": {
               "strict_min_version": "1",
               "advisory_max_version": "55.0"
             }
           }
         }
       ]
     },
-    "update_icon@tests.mozilla.org": {
+    "update_icon2@tests.mozilla.org": {
       "updates": [
         {
           "version": "2.0",
           "update_link": "https://example.com/browser/browser/base/content/test/general/browser_webext_update_icon2.xpi",
           "applications": {
             "gecko": {
               "strict_min_version": "1",
               "advisory_max_version": "55.0"
index 8eac9daa01745a2247eb9284b51858546b52f6a1..d4cc2453262d48826337b23f92a7e24642743d52
GIT binary patch
literal 313
zc$^FHW@Zs#U|`^2IGY*Z74;?8t`o?+2*kV$G7Pzid6{Xc#U*-K#rb)mA)E}%Mq<k%
zK)AGmn}Lz#D<cB~Si5h}X)Y#19@p=mMOCvkt-QnkwRcQ0>pQqFW7PuZ|94B=uJ}Hf
zS6uwuQIkXM66?-+@)0wFTJ}nr$GQjyFojIqAkdz}{dCv1e@EVnmQ`u5ah|+cJ-cf5
z(KCly{4(-iO0!OQo&Wuf&(V(;%p=>sD829XOKn<u{mHgcvt-UAe<E!UP2I8VQ_JNG
vZRP>qj7)OOxO^nR00KZqGc0KYvC#a-3h^JB-vYc@*&x~&8G?cI1+XCi!~kcI
index 81c7407ba7f17e486ce553318369dc7aaf1b017b..26565b50b8407c92b9ff50e60a04e207c27de073
GIT binary patch
literal 4340
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
index ccb61e7c5f25ab77cca0934373d7311498e515db..25d6f8ec4a4f4300f46ced58e9f1a86081ba8b57
GIT binary patch
literal 12570
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
F{y&jhwT%D(
index 9f1c5fb34bade3b1445fa0ce2260c1b9207f7a2f..6885ec08e6fa7be509ac575b9f15b24f2d65f083
GIT binary patch
literal 12586
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
V9~#tuLVf`Fzxv<FU0D7b{U2L1xYYmv
--- a/browser/modules/ExtensionsUI.jsm
+++ b/browser/modules/ExtensionsUI.jsm
@@ -115,32 +115,24 @@ this.ExtensionsUI = {
       // Dismiss the progress notification.  Note that this is bad if
       // there are multiple simultaneous installs happening, see
       // bug 1329884 for a longer explanation.
       let progressNotification = target.ownerGlobal.PopupNotifications.getNotification("addon-progress", target);
       if (progressNotification) {
         progressNotification.remove();
       }
 
-      let reply = answer => {
+      let strings = this._buildStrings(info);
+      this.showPermissionsPrompt(target, strings, info.icon).then(answer => {
         if (answer) {
           info.resolve();
         } else {
           info.reject();
         }
-      };
-
-      let perms = info.addon.userPermissions;
-      if (!perms) {
-        reply(true);
-      } else {
-        info.permissions = perms;
-        let strings = this._buildStrings(info);
-        this.showPermissionsPrompt(target, strings, info.icon).then(reply);
-      }
+      });
     } else if (topic == "webextension-update-permissions") {
       let info = subject.wrappedJSObject;
       info.type = "update";
       let strings = this._buildStrings(info);
 
       // If we don't prompt for any new permissions, just apply it
       if (strings.msgs.length == 0) {
         info.resolve();
--- a/toolkit/mozapps/extensions/AddonManager.jsm
+++ b/toolkit/mozapps/extensions/AddonManager.jsm
@@ -2847,16 +2847,17 @@ var AddonManagerInternal = {
       // does not implement its own prompt, use the built-in xul dialog.
       if (info.addon.userPermissions && WEBEXT_PERMISSION_PROMPTS) {
         let subject = {
           wrappedJSObject: {
             target: browser,
             info: Object.assign({resolve, reject}, info),
           }
         };
+        subject.wrappedJSObject.info.permissions = info.addon.userPermissions;
         Services.obs.notifyObservers(subject, "webextension-permission-prompt", null);
       } else if (requireConfirm) {
         // The methods below all want to call the install() or cancel()
         // method on the provided AddonInstall object to either accept
         // or reject the confirmation.  Fit that into our promise-based
         // control flow by wrapping the install object.  However,
         // xpInstallConfirm.xul matches the install object it is passed
         // with the argument passed to an InstallListener, so give it
--- a/toolkit/mozapps/extensions/content/extensions.xml
+++ b/toolkit/mozapps/extensions/content/extensions.xml
@@ -661,16 +661,17 @@
             this.mInstall.promptHandler = info => new Promise((resolve, reject) => {
               let subject = {
                 wrappedJSObject: {
                   target: window.QueryInterface(Ci.nsIInterfaceRequestor)
                                 .getInterface(Ci.nsIDocShell).chromeEventHandler,
                   info: {
                     addon: info.addon,
                     icon: info.addon.iconURL,
+                    permissions: info.addon.userPermissions,
                     resolve,
                     reject,
                   },
                 },
               };
               Services.obs.notifyObservers(subject, "webextension-permission-prompt", null);
             });
           }