diff --git a/docs/src/api/class-browsercontext.md b/docs/src/api/class-browsercontext.md index ed7cdaaffa..3aed64a178 100644 --- a/docs/src/api/class-browsercontext.md +++ b/docs/src/api/class-browsercontext.md @@ -1060,7 +1060,7 @@ it gets merged via the [`new URL()`](https://developer.mozilla.org/en-US/docs/We ### param: BrowserContext.route.handler * since: v1.8 * langs: js, python -- `handler` <[function]\([Route], [Request]\)> +- `handler` <[function]\([Route], [Request]\): [Promise|any]> handler function to route the request. diff --git a/docs/src/api/class-page.md b/docs/src/api/class-page.md index a83f0da4a5..5380ea3e53 100644 --- a/docs/src/api/class-page.md +++ b/docs/src/api/class-page.md @@ -3138,7 +3138,7 @@ it gets merged via the [`new URL()`](https://developer.mozilla.org/en-US/docs/We ### param: Page.route.handler * since: v1.8 * langs: js, python -- `handler` <[function]\([Route], [Request]\)> +- `handler` <[function]\([Route], [Request]\): [Promise|any]> handler function to route the request. diff --git a/packages/playwright-core/src/client/network.ts b/packages/playwright-core/src/client/network.ts index 584d7bd555..a84cdf5166 100644 --- a/packages/playwright-core/src/client/network.ts +++ b/packages/playwright-core/src/client/network.ts @@ -422,7 +422,7 @@ export class Route extends ChannelOwner implements api.Ro } } -export type RouteHandlerCallback = (route: Route, request: Request) => void; +export type RouteHandlerCallback = (route: Route, request: Request) => Promise | void; export type ResourceTiming = { startTime: number; diff --git a/packages/playwright-core/types/types.d.ts b/packages/playwright-core/types/types.d.ts index 9c6e4c7bb1..69f4b9e319 100644 --- a/packages/playwright-core/types/types.d.ts +++ b/packages/playwright-core/types/types.d.ts @@ -3564,7 +3564,7 @@ export interface Page { * @param handler handler function to route the request. * @param options */ - route(url: string|RegExp|((url: URL) => boolean), handler: ((route: Route, request: Request) => void), options?: { + route(url: string|RegExp|((url: URL) => boolean), handler: ((route: Route, request: Request) => Promise|any), options?: { /** * How often a route should be used. By default it will be used every time. */ @@ -8041,7 +8041,7 @@ export interface BrowserContext { * @param handler handler function to route the request. * @param options */ - route(url: string|RegExp|((url: URL) => boolean), handler: ((route: Route, request: Request) => void), options?: { + route(url: string|RegExp|((url: URL) => boolean), handler: ((route: Route, request: Request) => Promise|any), options?: { /** * How often a route should be used. By default it will be used every time. */ diff --git a/utils/generate_types/test/test.ts b/utils/generate_types/test/test.ts index e9a3a9d4ba..37729f29d8 100644 --- a/utils/generate_types/test/test.ts +++ b/utils/generate_types/test/test.ts @@ -139,6 +139,8 @@ playwright.chromium.launch().then(async browser => { else route.continue(); }); + await page.route('**/*', route => route.continue()); + await page.route(str => { return true; }, (route, request) => {