diff --git a/README.md b/README.md index 8a52dfba24..142a4f9a63 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # 🎭 Playwright -[![npm version](https://img.shields.io/npm/v/playwright.svg?style=flat)](https://www.npmjs.com/package/playwright) [![Join Slack](https://img.shields.io/badge/join-slack-infomational)](https://join.slack.com/t/playwright/shared_invite/enQtOTEyMTUxMzgxMjIwLThjMDUxZmIyNTRiMTJjNjIyMzdmZDA3MTQxZWUwZTFjZjQwNGYxZGM5MzRmNzZlMWI5ZWUyOTkzMjE5Njg1NDg) [![Chromium version](https://img.shields.io/badge/chromium-90.0.4421.0-blue.svg?logo=google-chrome)](https://www.chromium.org/Home) [![Firefox version](https://img.shields.io/badge/firefox-86.0b10-blue.svg?logo=mozilla-firefox)](https://www.mozilla.org/en-US/firefox/new/) [![WebKit version](https://img.shields.io/badge/webkit-14.2-blue.svg?logo=safari)](https://webkit.org/) +[![npm version](https://img.shields.io/npm/v/playwright.svg?style=flat)](https://www.npmjs.com/package/playwright) [![Join Slack](https://img.shields.io/badge/join-slack-infomational)](https://join.slack.com/t/playwright/shared_invite/enQtOTEyMTUxMzgxMjIwLThjMDUxZmIyNTRiMTJjNjIyMzdmZDA3MTQxZWUwZTFjZjQwNGYxZGM5MzRmNzZlMWI5ZWUyOTkzMjE5Njg1NDg) [![Chromium version](https://img.shields.io/badge/chromium-90.0.4430.0-blue.svg?logo=google-chrome)](https://www.chromium.org/Home) [![Firefox version](https://img.shields.io/badge/firefox-86.0b10-blue.svg?logo=mozilla-firefox)](https://www.mozilla.org/en-US/firefox/new/) [![WebKit version](https://img.shields.io/badge/webkit-14.2-blue.svg?logo=safari)](https://webkit.org/) ## [Documentation](https://playwright.dev) | [API reference](https://playwright.dev/docs/api/class-playwright/) @@ -8,7 +8,7 @@ Playwright is a Node.js library to automate [Chromium](https://www.chromium.org/ | | Linux | macOS | Windows | | :--- | :---: | :---: | :---: | -| Chromium 90.0.4421.0 | :white_check_mark: | :white_check_mark: | :white_check_mark: | +| Chromium 90.0.4430.0 | :white_check_mark: | :white_check_mark: | :white_check_mark: | | WebKit 14.2 | :white_check_mark: | :white_check_mark: | :white_check_mark: | | Firefox 86.0b10 | :white_check_mark: | :white_check_mark: | :white_check_mark: | diff --git a/browsers.json b/browsers.json index 30d1fff8eb..85970d4ef1 100644 --- a/browsers.json +++ b/browsers.json @@ -3,7 +3,7 @@ "browsers": [ { "name": "chromium", - "revision": "854489", + "revision": "857950", "download": true }, { diff --git a/src/server/chromium/crBrowser.ts b/src/server/chromium/crBrowser.ts index 8e5f6856c0..62eb24d7b9 100644 --- a/src/server/chromium/crBrowser.ts +++ b/src/server/chromium/crBrowser.ts @@ -349,6 +349,8 @@ export class CRBrowserContext extends BrowserContext { delete copy.priority; delete copy.session; delete copy.sameParty; + delete copy.sourceScheme; + delete copy.sourcePort; return copy as types.NetworkCookie; }), urls); } diff --git a/src/server/chromium/protocol.ts b/src/server/chromium/protocol.ts index 3f72c664fe..d16fe06309 100644 --- a/src/server/chromium/protocol.ts +++ b/src/server/chromium/protocol.ts @@ -947,6 +947,10 @@ applies to images. using Audits.issueAdded event. */ export type checkContrastParameters = { + /** + * Whether to report WCAG AAA level issues. Default is false. + */ + reportAAA?: boolean; } export type checkContrastReturnValue = { } @@ -6701,6 +6705,12 @@ https://tools.ietf.org/html/draft-west-first-party-cookies https://tools.ietf.org/html/draft-west-cookie-priority-00 */ export type CookiePriority = "Low"|"Medium"|"High"; + /** + * Represents the source scheme of the origin that originally set the cookie. +A value of "Unset" allows protocol clients to emulate legacy cookie scope for the scheme. +This is a temporary ability and it will be removed in the future. + */ + export type CookieSourceScheme = "Unset"|"NonSecure"|"Secure"; /** * Timing information for the request. */ @@ -7234,6 +7244,16 @@ module) (0-based). * True if cookie is SameParty. */ sameParty: boolean; + /** + * Cookie source scheme type. + */ + sourceScheme: CookieSourceScheme; + /** + * Cookie source port. Valid values are {-1, [1, 65535]}, -1 indicates an unspecified port. +An unspecified port value allows protocol clients to emulate legacy cookie scope for the port. +This is a temporary ability and it will be removed in the future. + */ + sourcePort: number; } /** * Types of reasons why a cookie may not be stored from a response. @@ -7290,7 +7310,7 @@ errors. value: string; /** * The request-URI to associate with the setting of the cookie. This value can affect the -default domain and path values of the created cookie. +default domain, path, source port, and source scheme values of the created cookie. */ url?: string; /** @@ -7321,6 +7341,20 @@ default domain and path values of the created cookie. * Cookie Priority. */ priority?: CookiePriority; + /** + * True if cookie is SameParty. + */ + sameParty?: boolean; + /** + * Cookie source scheme type. + */ + sourceScheme?: CookieSourceScheme; + /** + * Cookie source port. Valid values are {-1, [1, 65535]}, -1 indicates an unspecified port. +An unspecified port value allows protocol clients to emulate legacy cookie scope for the port. +This is a temporary ability and it will be removed in the future. + */ + sourcePort?: number; } /** * Authorization challenge for HTTP status code 401 or 407. @@ -8445,7 +8479,7 @@ attribute, user, password. value: string; /** * The request-URI to associate with the setting of the cookie. This value can affect the -default domain and path values of the created cookie. +default domain, path, source port, and source scheme values of the created cookie. */ url?: string; /** @@ -8476,6 +8510,20 @@ default domain and path values of the created cookie. * Cookie Priority type. */ priority?: CookiePriority; + /** + * True if cookie is SameParty. + */ + sameParty?: boolean; + /** + * Cookie source scheme type. + */ + sourceScheme?: CookieSourceScheme; + /** + * Cookie source port. Valid values are {-1, [1, 65535]}, -1 indicates an unspecified port. +An unspecified port value allows protocol clients to emulate legacy cookie scope for the port. +This is a temporary ability and it will be removed in the future. + */ + sourcePort?: number; } export type setCookieReturnValue = { /** @@ -9311,6 +9359,24 @@ Backend then generates 'inspectNodeRequested' event upon element selection. */ export type CrossOriginIsolatedContextType = "Isolated"|"NotIsolated"|"NotIsolatedFeatureDisabled"; export type GatedAPIFeatures = "SharedArrayBuffers"|"SharedArrayBuffersTransferAllowed"|"PerformanceMeasureMemory"|"PerformanceProfile"; + /** + * All Permissions Policy features. This enum should match the one defined +in renderer/core/feature_policy/feature_policy_features.json5. + */ + export type PermissionsPolicyFeature = "accelerometer"|"ambient-light-sensor"|"autoplay"|"camera"|"ch-dpr"|"ch-device-memory"|"ch-downlink"|"ch-ect"|"ch-lang"|"ch-rtt"|"ch-ua"|"ch-ua-arch"|"ch-ua-platform"|"ch-ua-model"|"ch-ua-mobile"|"ch-ua-full-version"|"ch-ua-platform-version"|"ch-viewport-width"|"ch-width"|"clipboard-read"|"clipboard-write"|"conversion-measurement"|"cross-origin-isolated"|"display-capture"|"document-domain"|"encrypted-media"|"execution-while-out-of-viewport"|"execution-while-not-rendered"|"focus-without-user-activation"|"fullscreen"|"frobulate"|"gamepad"|"geolocation"|"gyroscope"|"hid"|"idle-detection"|"interest-cohort"|"magnetometer"|"microphone"|"midi"|"otp-credentials"|"payment"|"picture-in-picture"|"publickey-credentials-get"|"screen-wake-lock"|"serial"|"storage-access-api"|"sync-xhr"|"trust-token-redemption"|"usb"|"vertical-scroll"|"web-share"|"xr-spatial-tracking"; + /** + * Reason for a permissions policy feature to be disabled. + */ + export type PermissionsPolicyBlockReason = "Header"|"IframeAttribute"; + export interface PermissionsPolicyBlockLocator { + frameId: FrameId; + blockReason: PermissionsPolicyBlockReason; + } + export interface PermissionsPolicyFeatureState { + feature: PermissionsPolicyFeature; + allowed: boolean; + locator?: PermissionsPolicyBlockLocator; + } /** * Information about the Frame on the page. */ @@ -10552,6 +10618,15 @@ Argument will be ignored if reloading dataURL origin. } export type setBypassCSPReturnValue = { } + /** + * Get Permissions Policy state on given frame. + */ + export type getPermissionsPolicyStateParameters = { + frameId: FrameId; + } + export type getPermissionsPolicyStateReturnValue = { + states: PermissionsPolicyFeatureState[]; + } /** * Overrides the values of device screen dimensions (window.screen.width, window.screen.height, window.innerWidth, window.innerHeight, and "device-width"/"device-height"-related CSS media @@ -16374,6 +16449,7 @@ unsubscribes current runtime agent from Runtime.bindingCalled notifications. "Page.searchInResource": Page.searchInResourceParameters; "Page.setAdBlockingEnabled": Page.setAdBlockingEnabledParameters; "Page.setBypassCSP": Page.setBypassCSPParameters; + "Page.getPermissionsPolicyState": Page.getPermissionsPolicyStateParameters; "Page.setDeviceMetricsOverride": Page.setDeviceMetricsOverrideParameters; "Page.setDeviceOrientationOverride": Page.setDeviceOrientationOverrideParameters; "Page.setFontFamilies": Page.setFontFamiliesParameters; @@ -16882,6 +16958,7 @@ unsubscribes current runtime agent from Runtime.bindingCalled notifications. "Page.searchInResource": Page.searchInResourceReturnValue; "Page.setAdBlockingEnabled": Page.setAdBlockingEnabledReturnValue; "Page.setBypassCSP": Page.setBypassCSPReturnValue; + "Page.getPermissionsPolicyState": Page.getPermissionsPolicyStateReturnValue; "Page.setDeviceMetricsOverride": Page.setDeviceMetricsOverrideReturnValue; "Page.setDeviceOrientationOverride": Page.setDeviceOrientationOverrideReturnValue; "Page.setFontFamilies": Page.setFontFamiliesReturnValue; diff --git a/types/protocol.d.ts b/types/protocol.d.ts index 3f72c664fe..d16fe06309 100644 --- a/types/protocol.d.ts +++ b/types/protocol.d.ts @@ -947,6 +947,10 @@ applies to images. using Audits.issueAdded event. */ export type checkContrastParameters = { + /** + * Whether to report WCAG AAA level issues. Default is false. + */ + reportAAA?: boolean; } export type checkContrastReturnValue = { } @@ -6701,6 +6705,12 @@ https://tools.ietf.org/html/draft-west-first-party-cookies https://tools.ietf.org/html/draft-west-cookie-priority-00 */ export type CookiePriority = "Low"|"Medium"|"High"; + /** + * Represents the source scheme of the origin that originally set the cookie. +A value of "Unset" allows protocol clients to emulate legacy cookie scope for the scheme. +This is a temporary ability and it will be removed in the future. + */ + export type CookieSourceScheme = "Unset"|"NonSecure"|"Secure"; /** * Timing information for the request. */ @@ -7234,6 +7244,16 @@ module) (0-based). * True if cookie is SameParty. */ sameParty: boolean; + /** + * Cookie source scheme type. + */ + sourceScheme: CookieSourceScheme; + /** + * Cookie source port. Valid values are {-1, [1, 65535]}, -1 indicates an unspecified port. +An unspecified port value allows protocol clients to emulate legacy cookie scope for the port. +This is a temporary ability and it will be removed in the future. + */ + sourcePort: number; } /** * Types of reasons why a cookie may not be stored from a response. @@ -7290,7 +7310,7 @@ errors. value: string; /** * The request-URI to associate with the setting of the cookie. This value can affect the -default domain and path values of the created cookie. +default domain, path, source port, and source scheme values of the created cookie. */ url?: string; /** @@ -7321,6 +7341,20 @@ default domain and path values of the created cookie. * Cookie Priority. */ priority?: CookiePriority; + /** + * True if cookie is SameParty. + */ + sameParty?: boolean; + /** + * Cookie source scheme type. + */ + sourceScheme?: CookieSourceScheme; + /** + * Cookie source port. Valid values are {-1, [1, 65535]}, -1 indicates an unspecified port. +An unspecified port value allows protocol clients to emulate legacy cookie scope for the port. +This is a temporary ability and it will be removed in the future. + */ + sourcePort?: number; } /** * Authorization challenge for HTTP status code 401 or 407. @@ -8445,7 +8479,7 @@ attribute, user, password. value: string; /** * The request-URI to associate with the setting of the cookie. This value can affect the -default domain and path values of the created cookie. +default domain, path, source port, and source scheme values of the created cookie. */ url?: string; /** @@ -8476,6 +8510,20 @@ default domain and path values of the created cookie. * Cookie Priority type. */ priority?: CookiePriority; + /** + * True if cookie is SameParty. + */ + sameParty?: boolean; + /** + * Cookie source scheme type. + */ + sourceScheme?: CookieSourceScheme; + /** + * Cookie source port. Valid values are {-1, [1, 65535]}, -1 indicates an unspecified port. +An unspecified port value allows protocol clients to emulate legacy cookie scope for the port. +This is a temporary ability and it will be removed in the future. + */ + sourcePort?: number; } export type setCookieReturnValue = { /** @@ -9311,6 +9359,24 @@ Backend then generates 'inspectNodeRequested' event upon element selection. */ export type CrossOriginIsolatedContextType = "Isolated"|"NotIsolated"|"NotIsolatedFeatureDisabled"; export type GatedAPIFeatures = "SharedArrayBuffers"|"SharedArrayBuffersTransferAllowed"|"PerformanceMeasureMemory"|"PerformanceProfile"; + /** + * All Permissions Policy features. This enum should match the one defined +in renderer/core/feature_policy/feature_policy_features.json5. + */ + export type PermissionsPolicyFeature = "accelerometer"|"ambient-light-sensor"|"autoplay"|"camera"|"ch-dpr"|"ch-device-memory"|"ch-downlink"|"ch-ect"|"ch-lang"|"ch-rtt"|"ch-ua"|"ch-ua-arch"|"ch-ua-platform"|"ch-ua-model"|"ch-ua-mobile"|"ch-ua-full-version"|"ch-ua-platform-version"|"ch-viewport-width"|"ch-width"|"clipboard-read"|"clipboard-write"|"conversion-measurement"|"cross-origin-isolated"|"display-capture"|"document-domain"|"encrypted-media"|"execution-while-out-of-viewport"|"execution-while-not-rendered"|"focus-without-user-activation"|"fullscreen"|"frobulate"|"gamepad"|"geolocation"|"gyroscope"|"hid"|"idle-detection"|"interest-cohort"|"magnetometer"|"microphone"|"midi"|"otp-credentials"|"payment"|"picture-in-picture"|"publickey-credentials-get"|"screen-wake-lock"|"serial"|"storage-access-api"|"sync-xhr"|"trust-token-redemption"|"usb"|"vertical-scroll"|"web-share"|"xr-spatial-tracking"; + /** + * Reason for a permissions policy feature to be disabled. + */ + export type PermissionsPolicyBlockReason = "Header"|"IframeAttribute"; + export interface PermissionsPolicyBlockLocator { + frameId: FrameId; + blockReason: PermissionsPolicyBlockReason; + } + export interface PermissionsPolicyFeatureState { + feature: PermissionsPolicyFeature; + allowed: boolean; + locator?: PermissionsPolicyBlockLocator; + } /** * Information about the Frame on the page. */ @@ -10552,6 +10618,15 @@ Argument will be ignored if reloading dataURL origin. } export type setBypassCSPReturnValue = { } + /** + * Get Permissions Policy state on given frame. + */ + export type getPermissionsPolicyStateParameters = { + frameId: FrameId; + } + export type getPermissionsPolicyStateReturnValue = { + states: PermissionsPolicyFeatureState[]; + } /** * Overrides the values of device screen dimensions (window.screen.width, window.screen.height, window.innerWidth, window.innerHeight, and "device-width"/"device-height"-related CSS media @@ -16374,6 +16449,7 @@ unsubscribes current runtime agent from Runtime.bindingCalled notifications. "Page.searchInResource": Page.searchInResourceParameters; "Page.setAdBlockingEnabled": Page.setAdBlockingEnabledParameters; "Page.setBypassCSP": Page.setBypassCSPParameters; + "Page.getPermissionsPolicyState": Page.getPermissionsPolicyStateParameters; "Page.setDeviceMetricsOverride": Page.setDeviceMetricsOverrideParameters; "Page.setDeviceOrientationOverride": Page.setDeviceOrientationOverrideParameters; "Page.setFontFamilies": Page.setFontFamiliesParameters; @@ -16882,6 +16958,7 @@ unsubscribes current runtime agent from Runtime.bindingCalled notifications. "Page.searchInResource": Page.searchInResourceReturnValue; "Page.setAdBlockingEnabled": Page.setAdBlockingEnabledReturnValue; "Page.setBypassCSP": Page.setBypassCSPReturnValue; + "Page.getPermissionsPolicyState": Page.getPermissionsPolicyStateReturnValue; "Page.setDeviceMetricsOverride": Page.setDeviceMetricsOverrideReturnValue; "Page.setDeviceOrientationOverride": Page.setDeviceOrientationOverrideReturnValue; "Page.setFontFamilies": Page.setFontFamiliesReturnValue;