From e14bd75a4f2f25c8fc36ee801d952960987e76ad Mon Sep 17 00:00:00 2001 From: toasted-nutbread Date: Fri, 20 Dec 2019 13:15:26 -0500 Subject: [PATCH] Change how getUrl message is handled --- ext/mixed/js/core.js | 30 ++++++++++++++++++++++-------- 1 file changed, 22 insertions(+), 8 deletions(-) diff --git a/ext/mixed/js/core.js b/ext/mixed/js/core.js index 36056c36..edb1f913 100644 --- a/ext/mixed/js/core.js +++ b/ext/mixed/js/core.js @@ -231,15 +231,29 @@ class EventDispatcher { * Default message handlers */ -(() => { - function onMessage({action}, sender, callback) { - switch (action) { - case 'getUrl': - callback({url: window.location.href}); - break; +const yomichan = (() => { + class Yomichan { + constructor() { + this._messageHandlers = new Map([ + ['getUrl', this._onMessageGetUrl.bind(this)] + ]); + + chrome.runtime.onMessage.addListener(this._onMessage.bind(this)); + } + + _onMessage({action, params}, sender, callback) { + const handler = this._messageHandlers.get(action); + if (typeof handler !== 'function') { return false; } + + const result = handler(params, sender); + callback(result); + return false; + } + + _onMessageGetUrl() { + return {url: window.location.href}; } - return false; } - chrome.runtime.onMessage.addListener(onMessage); + return new Yomichan(); })();