diff --git a/libs/common/src/services/api.service.ts b/libs/common/src/services/api.service.ts index 5f4d3de11b5..1ea5d80c4d6 100644 --- a/libs/common/src/services/api.service.ts +++ b/libs/common/src/services/api.service.ts @@ -1312,6 +1312,48 @@ export class ApiService implements ApiServiceAbstraction { } async fetch(request: Request): Promise { + let promise; + if ((window as any).cookiePromise === undefined) { + (window as any).cookiePromise = {}; + (window as any).cookiePromise.promise = promise = new Promise((resolve) => { + (window as any).cookiePromise.resolve = resolve; + }); + } else { + promise = (window as any).cookiePromise.promise; + } + + console.log("Waiting for cookie promise..."); + document.body.insertAdjacentHTML( + "beforeend", + `
+ +
+
Simulating cookie retrieval...
use window.cookiePromise.resolve() or press button beneath to continue
+ +
`, + ); + document.getElementById("spinner-btn").onclick = () => { + (window as any).cookiePromise.resolve(); + }; + await promise; + document.getElementById("spinner-wrapper")?.remove(); + console.log("Cookie promise resolved, continuing fetch..."); + if (!request.url.startsWith("https://") && !this.platformUtilsService.isDev()) { throw new InsecureUrlNotAllowedError(); }