diff options
author | toasted-nutbread <toasted-nutbread@users.noreply.github.com> | 2020-05-09 12:27:56 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-05-09 12:27:56 -0400 |
commit | 69c783f86114329db175135a136c5567ee3e790f (patch) | |
tree | b204294d77440581d70ceda7a4004205aab5adeb /ext/fg/js/frontend.js | |
parent | d6a3825a383e13b34c03c0b36e393da52bf8cf89 (diff) |
Frontend/popup proxy message refactoring (#520)
* Use direct message handler functions
* Remove unused targetPopupId
* Make target a member of FrontendApiSender
* Rename frameId to parentFrameId for clarity
* Remove _parentFrameId
* Rename _parentId to _parentPopupId for clarity
Diffstat (limited to 'ext/fg/js/frontend.js')
-rw-r--r-- | ext/fg/js/frontend.js | 35 |
1 files changed, 27 insertions, 8 deletions
diff --git a/ext/fg/js/frontend.js b/ext/fg/js/frontend.js index 1326f33f..575dc413 100644 --- a/ext/fg/js/frontend.js +++ b/ext/fg/js/frontend.js @@ -47,14 +47,14 @@ class Frontend { }); this._windowMessageHandlers = new Map([ - ['popupClose', () => this._textScanner.clearSelection(false)], - ['selectionCopy', () => document.execCommand('copy')] + ['popupClose', this._onMessagePopupClose.bind(this)], + ['selectionCopy', this._onMessageSelectionCopy.bind()] ]); this._runtimeMessageHandlers = new Map([ - ['popupSetVisibleOverride', ({visible}) => { this._popup.setVisibleOverride(visible); }], - ['rootPopupRequestInformationBroadcast', () => { this._broadcastRootPopupInformation(); }], - ['requestDocumentInformationBroadcast', ({uniqueId}) => { this._broadcastDocumentInformation(uniqueId); }] + ['popupSetVisibleOverride', this._onMessagePopupSetVisibleOverride.bind(this)], + ['rootPopupRequestInformationBroadcast', this._onMessageRootPopupRequestInformationBroadcast.bind(this)], + ['requestDocumentInformationBroadcast', this._onMessageRequestDocumentInformationBroadcast.bind(this)] ]); } @@ -145,6 +145,28 @@ class Frontend { return this._lastShowPromise; } + // Message handlers + + _onMessagePopupClose() { + this._textScanner.clearSelection(false); + } + + _onMessageSelectionCopy() { + document.execCommand('copy'); + } + + _onMessagePopupSetVisibleOverride({visible}) { + this._popup.setVisibleOverride(visible); + } + + _onMessageRootPopupRequestInformationBroadcast() { + this._broadcastRootPopupInformation(); + } + + _onMessageRequestDocumentInformationBroadcast({uniqueId}) { + this._broadcastDocumentInformation(uniqueId); + } + // Private _onResize() { @@ -160,9 +182,6 @@ class Frontend { } _onRuntimeMessage({action, params}, sender, callback) { - const {targetPopupId} = params || {}; - if (typeof targetPopupId !== 'undefined' && targetPopupId !== this._popup.id) { return; } - const handler = this._runtimeMessageHandlers.get(action); if (typeof handler !== 'function') { return false; } |