This commit is contained in:
Max Schmitt 2024-12-09 19:25:58 -08:00
parent b65b55f840
commit f1af4c9466

View file

@ -360,15 +360,21 @@ export abstract class BrowserContext extends SdkObject {
} }
async _loadDefaultContextAsIs(progress: Progress): Promise<Page> { async _loadDefaultContextAsIs(progress: Progress): Promise<Page> {
let pageOrError;
if (!this.pagesOrErrors().length) { if (!this.pagesOrErrors().length) {
const waitForEvent = helper.waitForEvent(progress, this, BrowserContext.Events.Page); const waitForEvent = helper.waitForEvent(progress, this, BrowserContext.Events.Page);
progress.cleanupWhenAborted(() => waitForEvent.dispose); progress.cleanupWhenAborted(() => waitForEvent.dispose);
const page = await waitForEvent.promise as Page; // Race against BrowserContext.close
const pageOrError = await page._delegate.pageOrError(); pageOrError = await Promise.race([
if (pageOrError instanceof Error) waitForEvent.promise as Promise<Page>,
throw pageOrError; this._closePromise,
]);
// Consider Page initialization errors
if (pageOrError instanceof Page)
pageOrError = await pageOrError._delegate.pageOrError();
} else {
pageOrError = await this.pagesOrErrors()[0];
} }
const pageOrError = await this.pagesOrErrors()[0];
if (pageOrError instanceof Error) if (pageOrError instanceof Error)
throw pageOrError; throw pageOrError;
await pageOrError.mainFrame()._waitForLoadState(progress, 'load'); await pageOrError.mainFrame()._waitForLoadState(progress, 'load');