summaryrefslogtreecommitdiffstats
path: root/remote/test/puppeteer/packages/puppeteer-core/src/cdp/Frame.ts
diff options
context:
space:
mode:
Diffstat (limited to 'remote/test/puppeteer/packages/puppeteer-core/src/cdp/Frame.ts')
-rw-r--r--remote/test/puppeteer/packages/puppeteer-core/src/cdp/Frame.ts13
1 files changed, 11 insertions, 2 deletions
diff --git a/remote/test/puppeteer/packages/puppeteer-core/src/cdp/Frame.ts b/remote/test/puppeteer/packages/puppeteer-core/src/cdp/Frame.ts
index edc7009b11..c7c2885a65 100644
--- a/remote/test/puppeteer/packages/puppeteer-core/src/cdp/Frame.ts
+++ b/remote/test/puppeteer/packages/puppeteer-core/src/cdp/Frame.ts
@@ -206,6 +206,7 @@ export class CdpFrame extends Frame {
options: {
timeout?: number;
waitUntil?: PuppeteerLifeCycleEvent | PuppeteerLifeCycleEvent[];
+ ignoreSameDocumentNavigation?: boolean;
} = {}
): Promise<HTTPResponse | null> {
const {
@@ -220,14 +221,22 @@ export class CdpFrame extends Frame {
);
const error = await Deferred.race([
watcher.terminationPromise(),
- watcher.sameDocumentNavigationPromise(),
+ ...(options.ignoreSameDocumentNavigation
+ ? []
+ : [watcher.sameDocumentNavigationPromise()]),
watcher.newDocumentNavigationPromise(),
]);
try {
if (error) {
throw error;
}
- return await watcher.navigationResponse();
+ const result = await Deferred.race<
+ Error | HTTPResponse | null | undefined
+ >([watcher.terminationPromise(), watcher.navigationResponse()]);
+ if (result instanceof Error) {
+ throw error;
+ }
+ return result || null;
} finally {
watcher.dispose();
}