Bug 1462345 - Show WebExtension names instead of IDs in Fennec permission doorhangers. draft
authorLuca Greco <lgreco@mozilla.com>
Thu, 17 May 2018 15:43:47 +0200
changeset 796313 2320790aa05cd594bbe4c62446c214f0f35e50c1
parent 796273 97df5d6b86b6cc1ecac3d17f3a91aca916d66c40
push id110207
push userluca.greco@alcacoop.it
push dateThu, 17 May 2018 13:54:17 +0000
bugs1462345
milestone62.0a1
Bug 1462345 - Show WebExtension names instead of IDs in Fennec permission doorhangers. MozReview-Commit-ID: 4uTcsScV5YR
mobile/android/components/ContentPermissionPrompt.js
mobile/android/modules/WebrtcUI.jsm
--- a/mobile/android/components/ContentPermissionPrompt.js
+++ b/mobile/android/components/ContentPermissionPrompt.js
@@ -129,18 +129,26 @@ ContentPermissionPrompt.prototype = {
         }
 
         callback(/* allow */ true);
       },
       positive: true
     }];
 
     let chromeWin = this.getChromeForRequest(request);
-    let requestor = (chromeWin.BrowserApp && chromeWin.BrowserApp.manifest) ?
-        "'" + chromeWin.BrowserApp.manifest.name + "'" : request.principal.URI.host;
+    let requestor;
+
+    if (chromeWin.BrowserApp && chromeWin.BrowserApp.manifest) {
+      requestor = `'${chromeWin.BrowserApp.manifest.name}'`;
+    } else if (request.principal.URI.schemeIs("moz-extension")) {
+      requestor = `'${WebExtensionPolicy.getByURI(request.principal.URI).name}'`;
+    } else {
+      requestor = request.principal.URI.host;
+    }
+
     let message = browserBundle.formatStringFromName(entityName + ".ask", [requestor], 1);
     // desktopNotification doesn't have a checkbox
     let options;
     if (entityName == "desktopNotification2") {
       options = {
         link: {
           label: browserBundle.GetStringFromName("doorhanger.learnMore"),
           url: "https://www.mozilla.org/firefox/push/"
--- a/mobile/android/modules/WebrtcUI.jsm
+++ b/mobile/android/modules/WebrtcUI.jsm
@@ -319,18 +319,26 @@ var WebrtcUI = {
     else if (videoDevices.length)
       requestType = "Camera";
     else
       return;
 
     let chromeWin = this.getChromeWindow(aContentWindow);
     let uri = aContentWindow.document.documentURIObject;
     let host = uri.host;
-    let requestor = (chromeWin.BrowserApp && chromeWin.BrowserApp.manifest) ?
-          "'" + chromeWin.BrowserApp.manifest.name + "'" : host;
+    let requestor;
+
+    if (chromeWin.BrowserApp && chromeWin.BrowserApp.manifest) {
+      requestor = `'${chromeWin.BrowserApp.manifest.name}'`;
+    } else if (uri.schemeIs("moz-extension")) {
+      requestor = `'${WebExtensionPolicy.getByURI(uri).name}'`;
+    } else {
+      requestor = host;
+    }
+
     let message = Strings.browser.formatStringFromName("getUserMedia.share" + requestType + ".message", [ requestor ], 1);
 
     let options = { inputs: [] };
     if (videoDevices.length > 1 || audioDevices.length > 0) {
       // videoSource is both the string used for l10n lookup and the object that will be returned
       this._addDevicesToOptions(videoDevices, "videoSource", options);
     }