summaryrefslogtreecommitdiff
path: root/ext/js/background/offscreen-proxy.js
diff options
context:
space:
mode:
authortoasted-nutbread <toasted-nutbread@users.noreply.github.com>2024-01-20 23:13:17 -0500
committerGitHub <noreply@github.com>2024-01-21 04:13:17 +0000
commit6ba1ffe74558dd174e3308d48885fb068fa37d55 (patch)
tree5519bbf972096e0e3370171d2b62a26d6164d671 /ext/js/background/offscreen-proxy.js
parentebdde1ee612a262256ad0384131e53bc29b1e10f (diff)
WebExtension class (#551)
* Add WebExtension class * Use WebExtension class * Use WebExtension instance for all runtime message sending * Use getUrl * Add a sendMessage variant which ignores the response and error
Diffstat (limited to 'ext/js/background/offscreen-proxy.js')
-rw-r--r--ext/js/background/offscreen-proxy.js22
1 files changed, 10 insertions, 12 deletions
diff --git a/ext/js/background/offscreen-proxy.js b/ext/js/background/offscreen-proxy.js
index 77f5448a..555c3abc 100644
--- a/ext/js/background/offscreen-proxy.js
+++ b/ext/js/background/offscreen-proxy.js
@@ -16,12 +16,17 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
-import {isObject} from '../core/utilities.js';
import {ExtensionError} from '../core/extension-error.js';
+import {isObject} from '../core/utilities.js';
import {ArrayBufferUtil} from '../data/sandbox/array-buffer-util.js';
export class OffscreenProxy {
- constructor() {
+ /**
+ * @param {import('../extension/web-extension.js').WebExtension} webExtension
+ */
+ constructor(webExtension) {
+ /** @type {import('../extension/web-extension.js').WebExtension} */
+ this._webExtension = webExtension;
/** @type {?Promise<void>} */
this._creatingOffscreen = null;
}
@@ -76,16 +81,9 @@ export class OffscreenProxy {
* @param {import('offscreen').ApiMessage<TMessageType>} message
* @returns {Promise<import('offscreen').ApiReturn<TMessageType>>}
*/
- sendMessagePromise(message) {
- return new Promise((resolve, reject) => {
- chrome.runtime.sendMessage(message, (response) => {
- try {
- resolve(this._getMessageResponseResult(response));
- } catch (error) {
- reject(error);
- }
- });
- });
+ async sendMessagePromise(message) {
+ const response = await this._webExtension.sendMessagePromise(message);
+ return this._getMessageResponseResult(/** @type {import('core').Response<import('offscreen').ApiReturn<TMessageType>>} */ (response));
}
/**