Update frontend API receiver handlers
This commit is contained in:
parent
b7144ed879
commit
573f83b65a
@ -18,9 +18,9 @@
|
||||
|
||||
|
||||
class FrontendApiReceiver {
|
||||
constructor(source='', handlers={}) {
|
||||
this.source = source;
|
||||
this.handlers = handlers;
|
||||
constructor(source='', handlers=new Map()) {
|
||||
this._source = source;
|
||||
this._handlers = handlers;
|
||||
|
||||
chrome.runtime.onConnect.addListener(this.onConnect.bind(this));
|
||||
}
|
||||
@ -32,16 +32,13 @@ class FrontendApiReceiver {
|
||||
}
|
||||
|
||||
onMessage(port, {id, action, params, target, senderId}) {
|
||||
if (
|
||||
target !== this.source ||
|
||||
!hasOwn(this.handlers, action)
|
||||
) {
|
||||
return;
|
||||
}
|
||||
if (target !== this._source) { return; }
|
||||
|
||||
const handler = this._handlers.get(action);
|
||||
if (typeof handler !== 'function') { return; }
|
||||
|
||||
this.sendAck(port, id, senderId);
|
||||
|
||||
const handler = this.handlers[action];
|
||||
handler(params).then(
|
||||
(result) => {
|
||||
this.sendResult(port, id, senderId, {result});
|
||||
|
@ -36,17 +36,17 @@ class PopupProxyHost {
|
||||
const {frameId} = await this.frameIdPromise;
|
||||
if (typeof frameId !== 'number') { return; }
|
||||
|
||||
this.apiReceiver = new FrontendApiReceiver(`popup-proxy-host#${frameId}`, {
|
||||
createNestedPopup: ({parentId}) => this.createNestedPopup(parentId),
|
||||
setOptions: ({id, options}) => this.setOptions(id, options),
|
||||
hide: ({id, changeFocus}) => this.hide(id, changeFocus),
|
||||
isVisibleAsync: ({id}) => this.isVisibleAsync(id),
|
||||
setVisibleOverride: ({id, visible}) => this.setVisibleOverride(id, visible),
|
||||
containsPoint: ({id, x, y}) => this.containsPoint(id, x, y),
|
||||
showContent: ({id, elementRect, writingMode, type, details}) => this.showContent(id, elementRect, writingMode, type, details),
|
||||
setCustomCss: ({id, css}) => this.setCustomCss(id, css),
|
||||
clearAutoPlayTimer: ({id}) => this.clearAutoPlayTimer(id)
|
||||
});
|
||||
this.apiReceiver = new FrontendApiReceiver(`popup-proxy-host#${frameId}`, new Map([
|
||||
['createNestedPopup', ({parentId}) => this.createNestedPopup(parentId)],
|
||||
['setOptions', ({id, options}) => this.setOptions(id, options)],
|
||||
['hide', ({id, changeFocus}) => this.hide(id, changeFocus)],
|
||||
['isVisibleAsync', ({id}) => this.isVisibleAsync(id)],
|
||||
['setVisibleOverride', ({id, visible}) => this.setVisibleOverride(id, visible)],
|
||||
['containsPoint', ({id, x, y}) => this.containsPoint(id, x, y)],
|
||||
['showContent', ({id, elementRect, writingMode, type, details}) => this.showContent(id, elementRect, writingMode, type, details)],
|
||||
['setCustomCss', ({id, css}) => this.setCustomCss(id, css)],
|
||||
['clearAutoPlayTimer', ({id}) => this.clearAutoPlayTimer(id)]
|
||||
]));
|
||||
}
|
||||
|
||||
createPopup(parentId, depth) {
|
||||
|
Loading…
Reference in New Issue
Block a user