Bug 1335333 Fix icon handling for updates draft
authorAndrew Swan <aswan@mozilla.com>
Fri, 03 Feb 2017 17:11:49 -0800
changeset 479580 ab4514cd7856b0436726d0e2121b46d855010c32
parent 470437 bf15d4078c2a6db7df37ab466d28a1e075c9eb4d
child 544735 a392e454a0fdfee1552ff49484e73361e9a2144c
push id44306
push useraswan@mozilla.com
push dateTue, 07 Feb 2017 00:02:38 +0000
bugs1335333
milestone54.0a1
Bug 1335333 Fix icon handling for updates MozReview-Commit-ID: JWyK54Gphf8
browser/base/content/test/general/browser.ini
browser/base/content/test/general/browser_extension_update.js
browser/base/content/test/general/browser_webext_update.json
browser/base/content/test/general/browser_webext_update_icon1.xpi
browser/base/content/test/general/browser_webext_update_icon2.xpi
browser/modules/ExtensionsUI.jsm
--- a/browser/base/content/test/general/browser.ini
+++ b/browser/base/content/test/general/browser.ini
@@ -74,16 +74,18 @@ support-files =
   web_video1.ogv
   web_video1.ogv^headers^
   zoom_test.html
   file_install_extensions.html
   browser_webext_permissions.xpi
   browser_webext_nopermissions.xpi
   browser_webext_update1.xpi
   browser_webext_update2.xpi
+  browser_webext_update_icon1.xpi
+  browser_webext_update_icon2.xpi
   browser_webext_update.json
   !/image/test/mochitest/blue.png
   !/toolkit/content/tests/browser/common/mockTransfer.js
   !/toolkit/modules/tests/browser/metadata_*.html
   !/toolkit/mozapps/extensions/test/xpinstall/amosigned.xpi
   !/toolkit/mozapps/extensions/test/xpinstall/corrupt.xpi
   !/toolkit/mozapps/extensions/test/xpinstall/incompatible.xpi
   !/toolkit/mozapps/extensions/test/xpinstall/installtrigger.html
--- a/browser/base/content/test/general/browser_extension_update.js
+++ b/browser/base/content/test/general/browser_extension_update.js
@@ -1,12 +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";
 
 function promiseInstallAddon(url) {
   return AddonManager.getInstallForURL(url, null, "application/x-xpinstall")
                      .then(install => {
                        ok(install, "Created install");
                        return new Promise(resolve => {
                          install.addListener({
                            onInstallEnded(_install, addon) {
@@ -79,27 +80,28 @@ add_task(function setup() {
     ["extensions.install.requireBuiltInCerts", false],
     ["extensions.update.requireBuiltInCerts", false],
 
     // XXX remove this when prompts are enabled by default
     ["extensions.webextPermissionPrompts", true],
   ]});
 });
 
-add_task(function* test_background_update() {
+// Helper function to test background updates.
+function* backgroundUpdateTest(url, id, checkIconFn) {
   yield SpecialPowers.pushPrefEnv({set: [
     // Turn on background updates
     ["extensions.update.enabled", true],
 
     // Point updates to the local mochitest server
     ["extensions.update.background.url", `${URL_BASE}/browser_webext_update.json`],
   ]});
 
   // Install version 1.0 of the test extension
-  let addon = yield promiseInstallAddon(`${URL_BASE}/browser_webext_update1.xpi`);
+  let addon = yield promiseInstallAddon(url);
 
   ok(addon, "Addon was installed");
   is(getBadgeStatus(), "", "Should not start out with an addon alert badge");
 
   // Trigger an update check and wait for the update for this addon
   // to be downloaded.
   let updatePromise = promiseInstallEvent(addon, "onDownloadEnded");
 
@@ -124,21 +126,22 @@ add_task(function* test_background_updat
   is(tab.linkedBrowser.currentURI.spec, "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 and cancel it
+  // Wait for the permission prompt, check the contents, then cancel the update
   let panel = yield popupPromise;
+  checkIconFn(panel.getAttribute("icon"));
   panel.secondaryButton.click();
 
-  addon = yield AddonManager.getAddonByID(ID);
+  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
   is(getBadgeStatus(), "", "Addon alert badge should be gone");
 
   yield PanelUI.show();
@@ -182,17 +185,36 @@ add_task(function* test_background_updat
   is(addon.version, "2.0", "Should have upgraded to the new version");
 
   yield BrowserTestUtils.removeTab(tab);
 
   is(getBadgeStatus(), "", "Addon alert badge should be gone");
 
   addon.uninstall();
   yield SpecialPowers.popPrefEnv();
-});
+}
+
+function checkDefaultIcon(icon) {
+  is(icon, "chrome://mozapps/skin/extensions/extensionGeneric.svg",
+     "Popup has the default extension icon");
+}
+
+add_task(() => backgroundUpdateTest(`${URL_BASE}/browser_webext_update1.xpi`,
+                                    ID, checkDefaultIcon));
+
+function checkNonDefaultIcon(icon) {
+  // The icon should come from the extension, don't bother with the precise
+  // path, just make sure we've got a jar url pointing to the right path
+  // inside the jar.
+  ok(icon.startsWith("jar:file://"), "Icon is a jar url");
+  ok(icon.endsWith("/icon.png"), "Icon is icon.png inside a jar");
+}
+
+add_task(() => backgroundUpdateTest(`${URL_BASE}/browser_webext_update_icon1.xpi`,
+                                    ID_ICON, checkNonDefaultIcon));
 
 // Helper function to test a specific scenario for interactive updates.
 // `checkFn` is a callable that triggers a check for updates.
 // `autoUpdate` specifies whether the test should be run with
 // updates applied automatically or not.
 function* interactiveUpdateTest(autoUpdate, checkFn) {
   yield SpecialPowers.pushPrefEnv({set: [
     ["extensions.update.autoUpdateDefault", autoUpdate],
--- a/browser/base/content/test/general/browser_webext_update.json
+++ b/browser/base/content/test/general/browser_webext_update.json
@@ -8,11 +8,25 @@
           "applications": {
             "gecko": {
               "strict_min_version": "1",
               "advisory_max_version": "55.0"
             }
           }
         }
       ]
+    },
+    "update_icon@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"
+            }
+          }
+        }
+      ]
     }
   }
 }
new file mode 100644
index 0000000000000000000000000000000000000000..ccb61e7c5f25ab77cca0934373d7311498e515db
GIT binary patch
literal 16543
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
new file mode 100644
index 0000000000000000000000000000000000000000..9f1c5fb34bade3b1445fa0ce2260c1b9207f7a2f
GIT binary patch
literal 16557
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
P@}JA~pJhpe{#E;bQ~oOB
--- a/browser/modules/ExtensionsUI.jsm
+++ b/browser/modules/ExtensionsUI.jsm
@@ -87,25 +87,26 @@ this.ExtensionsUI = {
   showSideloaded(browser, addon) {
     addon.markAsSeen();
     this.sideloaded.delete(addon);
     this.emit("change");
 
     let info = {
       addon,
       permissions: addon.userPermissions,
-      icon: addon.iconURL || DEFAULT_EXTENSION_ICON,
+      icon: addon.iconURL,
       type: "sideload",
     };
     this.showAddonsManager(browser, info).then(answer => {
       addon.userDisabled = !answer;
     });
   },
 
   showUpdate(browser, info) {
+    info.icon = info.addon.iconURL;
     info.type = "update";
     this.showAddonsManager(browser, info).then(answer => {
       if (answer) {
         info.resolve();
       } else {
         info.reject();
       }
       // At the moment, this prompt will re-appear next time we do an update
@@ -263,17 +264,17 @@ this.ExtensionsUI = {
       format(wildcards, "webextPerms.hostDescription.wildcard",
              "webextPerms.hostDescription.tooManyWildcards");
       format(sites, "webextPerms.hostDescription.oneSite",
              "webextPerms.hostDescription.tooManySites");
     }
 
     let popupOptions = {
       hideClose: true,
-      popupIconURL: info.icon,
+      popupIconURL: info.icon || DEFAULT_EXTENSION_ICON,
       persistent: true,
 
       eventCallback(topic) {
         if (topic == "showing") {
           let doc = this.browser.ownerDocument;
           doc.getElementById("addon-webext-perm-header").innerHTML = header;
 
           let textEl = doc.getElementById("addon-webext-perm-text");