From 3bfd56bbe46a4f2ee9c66f0c7baeec3c6292718c Mon Sep 17 00:00:00 2001 From: Kuuuube <61125188+Kuuuube@users.noreply.github.com> Date: Tue, 28 May 2024 15:32:56 -0400 Subject: Fix clipboard monitor in popups (#1003) * Fix naming of _clipboardReaderLike * Allow clipboard monitors in popup searches * Only run _onClipboardTextChange if a search tab does not exist --- ext/js/background/backend.js | 13 +++++++++++++ 1 file changed, 13 insertions(+) (limited to 'ext/js/background') diff --git a/ext/js/background/backend.js b/ext/js/background/backend.js index da720315..41989db3 100644 --- a/ext/js/background/backend.js +++ b/ext/js/background/backend.js @@ -314,6 +314,9 @@ export class Backend { * @param {import('clipboard-monitor').EventArgument<'change'>} details */ async _onClipboardTextChange({text}) { + // Only update if tab does not exist + if (await this._tabExists('/search.html')) { return; } + const { general: {language}, clipboard: {maximumSearchLength} @@ -1199,6 +1202,16 @@ export class Backend { return /** @type {?import('backend').TabInfo} */ (await this._findTabs(1000, false, predicate, true)); } + /** + * @param {string} urlParam + * @returns {Promise} + */ + async _tabExists(urlParam) { + const baseUrl = chrome.runtime.getURL(urlParam); + const urlPredicate = (/** @type {?string} */ url) => url !== null && url.startsWith(baseUrl); + return await this._findSearchPopupTab(urlPredicate) !== null; + } + /** * @param {string} url * @param {import('settings').ProfileOptions} options -- cgit v1.2.3