diff options
author | siikamiika <siikamiika@users.noreply.github.com> | 2020-03-22 04:55:16 +0200 |
---|---|---|
committer | siikamiika <siikamiika@users.noreply.github.com> | 2020-04-05 19:57:37 +0300 |
commit | d88635cbb28862e0efd79080e5c67865d0410238 (patch) | |
tree | 6681db9a0f9a78855d7e652a9f6d43589f1768b1 /ext/fg/js/frame-offset-forwarder.js | |
parent | 9fe1e38afb056164dbcc4369160bb9fd4790a2c0 (diff) |
temporary listener abstraction
Diffstat (limited to 'ext/fg/js/frame-offset-forwarder.js')
-rw-r--r-- | ext/fg/js/frame-offset-forwarder.js | 17 |
1 files changed, 7 insertions, 10 deletions
diff --git a/ext/fg/js/frame-offset-forwarder.js b/ext/fg/js/frame-offset-forwarder.js index 09eb89a6..781a9018 100644 --- a/ext/fg/js/frame-offset-forwarder.js +++ b/ext/fg/js/frame-offset-forwarder.js @@ -44,17 +44,14 @@ class FrameOffsetForwarder { async applyOffset(x, y) { const uniqueId = yomichan.generateId(16); - let frameOffsetResolve = null; - const frameOffsetPromise = new Promise((resolve) => (frameOffsetResolve = resolve)); - - const runtimeMessageCallback = ({action, params}, sender, callback) => { - if (action === 'frameOffset' && isObject(params) && params.uniqueId === uniqueId) { - chrome.runtime.onMessage.removeListener(runtimeMessageCallback); - callback(); - frameOffsetResolve(params); + const frameOffsetPromise = yomichan.getTemporaryListenerResult( + chrome.runtime.onMessage, + ({action, params}, {resolve}) => { + if (action === 'frameOffset' && isObject(params) && params.uniqueId === uniqueId) { + resolve(params); + } } - }; - chrome.runtime.onMessage.addListener(runtimeMessageCallback); + ); window.parent.postMessage({ action: 'getFrameOffset', |