aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ext/mixed/js/comm.js11
1 files changed, 6 insertions, 5 deletions
diff --git a/ext/mixed/js/comm.js b/ext/mixed/js/comm.js
index 27cb0c34..10e1f93b 100644
--- a/ext/mixed/js/comm.js
+++ b/ext/mixed/js/comm.js
@@ -171,13 +171,14 @@ class CrossFrameAPIPort extends EventDispatcher {
// Invocation
_onInvoke(id, {action, params}) {
- const callback = (response) => this._sendResponse({type: 'result', id, data: response});
const messageHandler = this._messageHandlers.get(action);
+ this._sendAck(id);
if (typeof messageHandler === 'undefined') {
- callback({error: new Error(`Unknown action: ${action}`)});
+ this._sendError(id, new Error(`Unknown action: ${action}`));
return false;
}
- this._sendAck(id);
+
+ const callback = (data) => this._sendResult(id, data);
return yomichan.invokeMessageHandler(messageHandler, params, callback);
}
@@ -194,8 +195,8 @@ class CrossFrameAPIPort extends EventDispatcher {
this._sendResponse({type: 'ack', id});
}
- _sendResult(id, result) {
- this._sendResponse({type: 'result', id, data: {result}});
+ _sendResult(id, data) {
+ this._sendResponse({type: 'result', id, data});
}
_sendError(id, error) {