summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjanekptacijarabaci <janekptacijarabaci@seznam.cz>2018-04-20 18:08:43 +0200
committerjanekptacijarabaci <janekptacijarabaci@seznam.cz>2018-04-20 18:08:43 +0200
commit11c9f20ea8e15cb5ef51c5cab0863d311ac00025 (patch)
tree719a836f54e5e6ec3e6dd677cd5aee1523a4d576
parent20a3f8c006445b176fa8559f6529c2cf3cb75b0d (diff)
downloadUXP-11c9f20ea8e15cb5ef51c5cab0863d311ac00025.tar
UXP-11c9f20ea8e15cb5ef51c5cab0863d311ac00025.tar.gz
UXP-11c9f20ea8e15cb5ef51c5cab0863d311ac00025.tar.lz
UXP-11c9f20ea8e15cb5ef51c5cab0863d311ac00025.tar.xz
UXP-11c9f20ea8e15cb5ef51c5cab0863d311ac00025.zip
moebius#219: WebExtensions - add-on throws error on load when suggested_key is null / missing
https://github.com/MoonchildProductions/moebius/pull/219
-rw-r--r--browser/components/webextensions/ext-commands.js23
1 files changed, 12 insertions, 11 deletions
diff --git a/browser/components/webextensions/ext-commands.js b/browser/components/webextensions/ext-commands.js
index 416544e86..3f0bf8d1a 100644
--- a/browser/components/webextensions/ext-commands.js
+++ b/browser/components/webextensions/ext-commands.js
@@ -74,15 +74,14 @@ CommandList.prototype = {
// For Windows, chrome.runtime expects 'win' while chrome.commands
// expects 'windows'. We can special case this for now.
let os = PlatformInfo.os == "win" ? "windows" : PlatformInfo.os;
- for (let name of Object.keys(manifest.commands)) {
- let command = manifest.commands[name];
- let shortcut = command.suggested_key[os] || command.suggested_key.default;
- if (shortcut) {
- commands.set(name, {
- description: command.description,
- shortcut: shortcut.replace(/\s+/g, ""),
- });
- }
+ for (let [name, command] of Object.entries(manifest.commands)) {
+ let suggested_key = command.suggested_key || {};
+ let shortcut = suggested_key[os] || suggested_key.default;
+ shortcut = shortcut ? shortcut.replace(/\s+/g, "") : null;
+ commands.set(name, {
+ description: command.description,
+ shortcut,
+ });
}
return commands;
},
@@ -96,8 +95,10 @@ CommandList.prototype = {
let keyset = doc.createElementNS(XUL_NS, "keyset");
keyset.id = `ext-keyset-id-${this.id}`;
this.commands.forEach((command, name) => {
- let keyElement = this.buildKey(doc, name, command.shortcut);
- keyset.appendChild(keyElement);
+ if (command.shortcut) {
+ let keyElement = this.buildKey(doc, name, command.shortcut);
+ keyset.appendChild(keyElement);
+ }
});
doc.documentElement.appendChild(keyset);
this.keysetsMap.set(window, keyset);