diff --git a/src/background/controllers/command.js b/src/background/controllers/command.js index 41057e0..befab42 100644 --- a/src/background/controllers/command.js +++ b/src/background/controllers/command.js @@ -48,6 +48,10 @@ export default class CommandController { let trimmed = line.trimStart(); let words = trimmed.split(/ +/); let name = words[0]; + if (words[0].length === 0) { + return Promise.resolve(); + } + let keywords = trimmed.slice(name.length).trimStart(); switch (words[0]) { case 'o': @@ -85,5 +89,6 @@ export default class CommandController { case 'set': return this.commandIndicator.set(keywords); } + throw new Error(words[0] + ' command is not defined'); } } diff --git a/src/background/infrastructures/content-message-listener.js b/src/background/infrastructures/content-message-listener.js index 2fa5f54..58716fb 100644 --- a/src/background/infrastructures/content-message-listener.js +++ b/src/background/infrastructures/content-message-listener.js @@ -18,12 +18,19 @@ export default class ContentMessageListener { run() { browser.runtime.onMessage.addListener((message, sender) => { - return this.onMessage(message, sender).catch((e) => { + try { + return this.onMessage(message, sender).catch((e) => { + return browser.tabs.sendMessage(sender.tab.id, { + type: messages.CONSOLE_SHOW_ERROR, + text: e.message, + }); + }); + } catch (e) { return browser.tabs.sendMessage(sender.tab.id, { type: messages.CONSOLE_SHOW_ERROR, text: e.message, }); - }); + } }); }