diff --git a/src/backend/extension/messaging.ts b/src/backend/extension/messaging.ts index 1f2a2b00..3204d541 100644 --- a/src/backend/extension/messaging.ts +++ b/src/backend/extension/messaging.ts @@ -6,13 +6,22 @@ import { import { isAllowedExtensionVersion } from "@/backend/extension/compatibility"; import { ExtensionMakeRequestResponse } from "@/backend/extension/plasmo"; +// for some reason, about 500 ms is needed after +// page load before the extension starts responding properly +const isExtensionReady = new Promise((resolve) => { + setTimeout(() => { + resolve(); + }, 500); +}); + let activeExtension = false; -function sendMessage( +async function sendMessage( message: MessageKey, payload: MessagesMetadata[MessageKey]["req"] | undefined = undefined, timeout: number = -1, ) { + await isExtensionReady; return new Promise((resolve) => { if (timeout >= 0) setTimeout(() => resolve(null), timeout); sendToBackgroundViaRelay< @@ -54,7 +63,7 @@ export async function sendPage( export async function extensionInfo(): Promise< MessagesMetadata["hello"]["res"] | null > { - const message = await sendMessage("hello", undefined, 300); + const message = await sendMessage("hello", undefined, 500); return message; } diff --git a/src/pages/parts/settings/SetupPart.tsx b/src/pages/parts/settings/SetupPart.tsx index d188c759..16100ca7 100644 --- a/src/pages/parts/settings/SetupPart.tsx +++ b/src/pages/parts/settings/SetupPart.tsx @@ -29,7 +29,7 @@ type SetupData = { function testProxy(url: string) { return new Promise((resolve, reject) => { - setTimeout(() => reject(new Error("Timed out!")), 1000); + setTimeout(() => reject(new Error("Timed out!")), 3000); singularProxiedFetch(url, testUrl, {}) .then((res) => { if (res.url !== testUrl) return reject(new Error("Not a proxy"));