Bug 1398327 Part 1: Skip permission dialog access keys on Android draft
authorAndrew Swan <aswan@mozilla.com>
Mon, 11 Sep 2017 14:25:23 -0700
changeset 663102 5acd02d43c1030edead763526a2e2f796767d065
parent 662980 b0e945eed81db8bf076daf64e381c514f70144f0
child 663103 9373aa28e6c7a910a22fc4ed0ff48c40540716eb
push id79321
push useraswan@mozilla.com
push dateTue, 12 Sep 2017 16:46:55 +0000
bugs1398327
milestone57.0a1
Bug 1398327 Part 1: Skip permission dialog access keys on Android MozReview-Commit-ID: 1rbludpEmdm
mobile/android/locales/en-US/chrome/browser.properties
toolkit/components/extensions/Extension.jsm
--- a/mobile/android/locales/en-US/chrome/browser.properties
+++ b/mobile/android/locales/en-US/chrome/browser.properties
@@ -117,19 +117,17 @@ xpinstallDisabledButton=Enable
 # Note, this string will be used as raw markup. Avoid characters like <, >, &
 webextPerms.header=Add %S?
 
 # LOCALIZATION NOTE (webextPerms.listIntro)
 # This string will be followed by a list of permissions requested
 # by the webextension.
 webextPerms.listIntro=It requires your permission to:
 webextPerms.add.label=Add
-webextPerms.add.accessKey=A
 webextPerms.cancel.label=Cancel
-webextPerms.cancel.accessKey=C
 
 webextPerms.description.bookmarks=Read and modify bookmarks
 webextPerms.description.browserSettings=Read and modify browser settings
 webextPerms.description.clipboardRead=Get data from the clipboard
 webextPerms.description.clipboardWrite=Input data to the clipboard
 webextPerms.description.downloads=Download files and read and modify the browser’s download history
 webextPerms.description.geolocation=Access your location
 webextPerms.description.history=Access browsing history
--- a/toolkit/components/extensions/Extension.jsm
+++ b/toolkit/components/extensions/Extension.jsm
@@ -899,48 +899,58 @@ this.ExtensionData = class {
       try {
         result.msgs.push(bundle.GetStringFromName(permissionKey(permission)));
       } catch (err) {
         // We deliberately do not include all permissions in the prompt.
         // So if we don't find one then just skip it.
       }
     }
 
+    const haveAccessKeys = (AppConstants.platform !== "android");
+
     result.header = bundle.formatStringFromName("webextPerms.header", [info.addonName], 1);
     result.text = info.unsigned ?
                   bundle.GetStringFromName("webextPerms.unsignedWarning") : "";
     result.listIntro = bundle.GetStringFromName("webextPerms.listIntro");
 
     result.acceptText = bundle.GetStringFromName("webextPerms.add.label");
-    result.acceptKey = bundle.GetStringFromName("webextPerms.add.accessKey");
     result.cancelText = bundle.GetStringFromName("webextPerms.cancel.label");
-    result.cancelKey = bundle.GetStringFromName("webextPerms.cancel.accessKey");
+    if (haveAccessKeys) {
+      result.acceptKey = bundle.GetStringFromName("webextPerms.add.accessKey");
+      result.cancelKey = bundle.GetStringFromName("webextPerms.cancel.accessKey");
+    }
 
     if (info.type == "sideload") {
       result.header = bundle.formatStringFromName("webextPerms.sideloadHeader", [info.addonName], 1);
       let key = result.msgs.length == 0 ?
                 "webextPerms.sideloadTextNoPerms" : "webextPerms.sideloadText2";
       result.text = bundle.GetStringFromName(key);
       result.acceptText = bundle.GetStringFromName("webextPerms.sideloadEnable.label");
-      result.acceptKey = bundle.GetStringFromName("webextPerms.sideloadEnable.accessKey");
       result.cancelText = bundle.GetStringFromName("webextPerms.sideloadCancel.label");
-      result.cancelKey = bundle.GetStringFromName("webextPerms.sideloadCancel.accessKey");
+      if (haveAccessKeys) {
+        result.acceptKey = bundle.GetStringFromName("webextPerms.sideloadEnable.accessKey");
+        result.cancelKey = bundle.GetStringFromName("webextPerms.sideloadCancel.accessKey");
+      }
     } else if (info.type == "update") {
       result.header = "";
       result.text = bundle.formatStringFromName("webextPerms.updateText", [info.addonName], 1);
       result.acceptText = bundle.GetStringFromName("webextPerms.updateAccept.label");
-      result.acceptKey = bundle.GetStringFromName("webextPerms.updateAccept.accessKey");
+      if (haveAccessKeys) {
+        result.acceptKey = bundle.GetStringFromName("webextPerms.updateAccept.accessKey");
+      }
     } else if (info.type == "optional") {
       result.header = bundle.formatStringFromName("webextPerms.optionalPermsHeader", [info.addonName], 1);
       result.text = "";
       result.listIntro = bundle.GetStringFromName("webextPerms.optionalPermsListIntro");
       result.acceptText = bundle.GetStringFromName("webextPerms.optionalPermsAllow.label");
-      result.acceptKey = bundle.GetStringFromName("webextPerms.optionalPermsAllow.accessKey");
       result.cancelText = bundle.GetStringFromName("webextPerms.optionalPermsDeny.label");
-      result.cancelKey = bundle.GetStringFromName("webextPerms.optionalPermsDeny.accessKey");
+      if (haveAccessKeys) {
+        result.acceptKey = bundle.GetStringFromName("webextPerms.optionalPermsAllow.accessKey");
+        result.cancelKey = bundle.GetStringFromName("webextPerms.optionalPermsDeny.accessKey");
+      }
     }
 
     return result;
   }
 };
 
 const PROXIED_EVENTS = new Set(["test-harness-message", "add-permissions", "remove-permissions"]);