Bug 1350277 remove duplicates when showing host permissons r=aswan
☠☠ backed out by 9ac8940da5c3 ☠ ☠
authorAndy McKay <amckay@mozilla.com>
Mon, 11 Sep 2017 17:40:08 -0700
changeset 430224 2b74ec6bb1d84093e3367e8903aa6d94817cfa00
parent 430223 2ce3e68d72429226b6fb79bbebc4b19b3d124d76
child 430225 85716b58bbf2ffc39f97410ba5891e8952e641b2
push id7761
push userjlund@mozilla.com
push dateFri, 15 Sep 2017 00:19:52 +0000
treeherdermozilla-beta@c38455951db4 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersaswan
bugs1350277
milestone57.0a1
first release with
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
Bug 1350277 remove duplicates when showing host permissons r=aswan MozReview-Commit-ID: 2GzUwFHuEe6
browser/base/content/test/webextensions/browser_webext_permissions.xpi
toolkit/components/extensions/Extension.jsm
index 9241ab3159892136e7e77f8d738c36baf47f2930..a6ff5c490bad93b9a75437681e294a18bfebf22e
GIT binary patch
literal 12530
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
A!vFvP
--- a/toolkit/components/extensions/Extension.jsm
+++ b/toolkit/components/extensions/Extension.jsm
@@ -826,33 +826,33 @@ this.ExtensionData = class {
    *                   for various elements of a permission dialog.
    */
   static formatPermissionStrings(info, bundle) {
     let result = {};
 
     let perms = info.permissions || {origins: [], permissions: []};
 
     // First classify our host permissions
-    let allUrls = false, wildcards = [], sites = [];
+    let allUrls = false, wildcards = new Set(), sites = new Set();
     for (let permission of perms.origins) {
       if (permission == "<all_urls>") {
         allUrls = true;
         break;
       }
       let match = /^[htps*]+:\/\/([^/]+)\//.exec(permission);
       if (!match) {
         Cu.reportError(`Unparseable host permission ${permission}`);
         continue;
       }
       if (match[1] == "*") {
         allUrls = true;
       } else if (match[1].startsWith("*.")) {
-        wildcards.push(match[1].slice(2));
+        wildcards.add(match[1].slice(2));
       } else {
-        sites.push(match[1]);
+        sites.add(match[1]);
       }
     }
 
     // Format the host permissions.  If we have a wildcard for all urls,
     // a single string will suffice.  Otherwise, show domain wildcards
     // first, then individual host permissions.
     result.msgs = [];
     if (allUrls) {
@@ -871,19 +871,19 @@ this.ExtensionData = class {
           formatItems(list.slice(0, 3));
 
           let remaining = list.length - 3;
           result.msgs.push(PluralForm.get(remaining, bundle.GetStringFromName(moreKey))
                                      .replace("#1", remaining));
         }
       };
 
-      format(wildcards, "webextPerms.hostDescription.wildcard",
+      format(Array.from(wildcards), "webextPerms.hostDescription.wildcard",
              "webextPerms.hostDescription.tooManyWildcards");
-      format(sites, "webextPerms.hostDescription.oneSite",
+      format(Array.from(sites), "webextPerms.hostDescription.oneSite",
              "webextPerms.hostDescription.tooManySites");
     }
 
     let permissionKey = perm => `webextPerms.description.${perm}`;
 
     // Next, show the native messaging permission if it is present.
     const NATIVE_MSG_PERM = "nativeMessaging";
     if (perms.permissions.includes(NATIVE_MSG_PERM)) {