diff --git a/packages/playwright-core/src/protocol/validator.ts b/packages/playwright-core/src/protocol/validator.ts index 50e8b4f02a..d02a813f87 100644 --- a/packages/playwright-core/src/protocol/validator.ts +++ b/packages/playwright-core/src/protocol/validator.ts @@ -339,6 +339,7 @@ scheme.PlaywrightNewRequestParams = tObject({ userAgent: tOptional(tString), ignoreHTTPSErrors: tOptional(tBoolean), extraHTTPHeaders: tOptional(tArray(tType('NameValue'))), + fetchFailOnStatusCode: tOptional(tBoolean), clientCertificates: tOptional(tArray(tObject({ origin: tString, cert: tOptional(tBinary), @@ -568,6 +569,7 @@ scheme.BrowserTypeLaunchPersistentContextParams = tObject({ })), permissions: tOptional(tArray(tString)), extraHTTPHeaders: tOptional(tArray(tType('NameValue'))), + fetchFailOnStatusCode: tOptional(tBoolean), offline: tOptional(tBoolean), httpCredentials: tOptional(tObject({ username: tString, @@ -654,6 +656,7 @@ scheme.BrowserNewContextParams = tObject({ })), permissions: tOptional(tArray(tString)), extraHTTPHeaders: tOptional(tArray(tType('NameValue'))), + fetchFailOnStatusCode: tOptional(tBoolean), offline: tOptional(tBoolean), httpCredentials: tOptional(tObject({ username: tString, @@ -723,6 +726,7 @@ scheme.BrowserNewContextForReuseParams = tObject({ })), permissions: tOptional(tArray(tString)), extraHTTPHeaders: tOptional(tArray(tType('NameValue'))), + fetchFailOnStatusCode: tOptional(tBoolean), offline: tOptional(tBoolean), httpCredentials: tOptional(tObject({ username: tString, @@ -2620,6 +2624,7 @@ scheme.AndroidDeviceLaunchBrowserParams = tObject({ })), permissions: tOptional(tArray(tString)), extraHTTPHeaders: tOptional(tArray(tType('NameValue'))), + fetchFailOnStatusCode: tOptional(tBoolean), offline: tOptional(tBoolean), httpCredentials: tOptional(tObject({ username: tString, diff --git a/packages/playwright-core/types/types.d.ts b/packages/playwright-core/types/types.d.ts index d35137fbe2..70fe4993f4 100644 --- a/packages/playwright-core/types/types.d.ts +++ b/packages/playwright-core/types/types.d.ts @@ -9781,6 +9781,12 @@ export interface Browser { */ extraHTTPHeaders?: { [key: string]: string; }; + /** + * An object containing an option to throw an error when API request returns status codes other than 2xx and 3xx. By + * default, response object is returned for all status codes. + */ + fetchFailOnStatusCode?: boolean; + /** * Emulates `'forced-colors'` media feature, supported values are `'active'`, `'none'`. See * [page.emulateMedia([options])](https://playwright.dev/docs/api/class-page#page-emulate-media) for more details. @@ -14834,6 +14840,12 @@ export interface BrowserType { */ extraHTTPHeaders?: { [key: string]: string; }; + /** + * An object containing an option to throw an error when API request returns status codes other than 2xx and 3xx. By + * default, response object is returned for all status codes. + */ + fetchFailOnStatusCode?: boolean; + /** * Firefox user preferences. Learn more about the Firefox user preferences at * [`about:config`](https://support.mozilla.org/en-US/kb/about-config-editor-firefox). @@ -16618,6 +16630,12 @@ export interface AndroidDevice { */ extraHTTPHeaders?: { [key: string]: string; }; + /** + * An object containing an option to throw an error when API request returns status codes other than 2xx and 3xx. By + * default, response object is returned for all status codes. + */ + fetchFailOnStatusCode?: boolean; + /** * Emulates `'forced-colors'` media feature, supported values are `'active'`, `'none'`. See * [page.emulateMedia([options])](https://playwright.dev/docs/api/class-page#page-emulate-media) for more details. @@ -17482,6 +17500,12 @@ export interface APIRequest { */ extraHTTPHeaders?: { [key: string]: string; }; + /** + * An object containing an option to throw an error when API request returns status codes other than 2xx and 3xx. By + * default, response object is returned for all status codes. + */ + fetchFailOnStatusCode?: boolean; + /** * Credentials for [HTTP authentication](https://developer.mozilla.org/en-US/docs/Web/HTTP/Authentication). If no * origin is specified, the username and password are sent to any servers upon unauthorized responses. @@ -21975,6 +21999,12 @@ export interface BrowserContextOptions { */ extraHTTPHeaders?: { [key: string]: string; }; + /** + * An object containing an option to throw an error when API request returns status codes other than 2xx and 3xx. By + * default, response object is returned for all status codes. + */ + fetchFailOnStatusCode?: boolean; + /** * Emulates `'forced-colors'` media feature, supported values are `'active'`, `'none'`. See * [page.emulateMedia([options])](https://playwright.dev/docs/api/class-page#page-emulate-media) for more details. diff --git a/packages/protocol/src/channels.d.ts b/packages/protocol/src/channels.d.ts index 526cc599ab..87b6050d14 100644 --- a/packages/protocol/src/channels.d.ts +++ b/packages/protocol/src/channels.d.ts @@ -588,6 +588,7 @@ export type PlaywrightNewRequestParams = { userAgent?: string, ignoreHTTPSErrors?: boolean, extraHTTPHeaders?: NameValue[], + fetchFailOnStatusCode?: boolean, clientCertificates?: { origin: string, cert?: Binary, @@ -619,6 +620,7 @@ export type PlaywrightNewRequestOptions = { userAgent?: string, ignoreHTTPSErrors?: boolean, extraHTTPHeaders?: NameValue[], + fetchFailOnStatusCode?: boolean, clientCertificates?: { origin: string, cert?: Binary, @@ -992,6 +994,7 @@ export type BrowserTypeLaunchPersistentContextParams = { }, permissions?: string[], extraHTTPHeaders?: NameValue[], + fetchFailOnStatusCode?: boolean, offline?: boolean, httpCredentials?: { username: string, @@ -1072,6 +1075,7 @@ export type BrowserTypeLaunchPersistentContextOptions = { }, permissions?: string[], extraHTTPHeaders?: NameValue[], + fetchFailOnStatusCode?: boolean, offline?: boolean, httpCredentials?: { username: string, @@ -1187,6 +1191,7 @@ export type BrowserNewContextParams = { }, permissions?: string[], extraHTTPHeaders?: NameValue[], + fetchFailOnStatusCode?: boolean, offline?: boolean, httpCredentials?: { username: string, @@ -1253,6 +1258,7 @@ export type BrowserNewContextOptions = { }, permissions?: string[], extraHTTPHeaders?: NameValue[], + fetchFailOnStatusCode?: boolean, offline?: boolean, httpCredentials?: { username: string, @@ -1322,6 +1328,7 @@ export type BrowserNewContextForReuseParams = { }, permissions?: string[], extraHTTPHeaders?: NameValue[], + fetchFailOnStatusCode?: boolean, offline?: boolean, httpCredentials?: { username: string, @@ -1388,6 +1395,7 @@ export type BrowserNewContextForReuseOptions = { }, permissions?: string[], extraHTTPHeaders?: NameValue[], + fetchFailOnStatusCode?: boolean, offline?: boolean, httpCredentials?: { username: string, @@ -4737,6 +4745,7 @@ export type AndroidDeviceLaunchBrowserParams = { }, permissions?: string[], extraHTTPHeaders?: NameValue[], + fetchFailOnStatusCode?: boolean, offline?: boolean, httpCredentials?: { username: string, @@ -4801,6 +4810,7 @@ export type AndroidDeviceLaunchBrowserOptions = { }, permissions?: string[], extraHTTPHeaders?: NameValue[], + fetchFailOnStatusCode?: boolean, offline?: boolean, httpCredentials?: { username: string,