diff --git a/README.md b/README.md index e18fcdc1f3926..c7f1ae911a390 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # 🎭 Playwright -[![npm version](https://img.shields.io/npm/v/playwright.svg)](https://www.npmjs.com/package/playwright) [![Chromium version](https://img.shields.io/badge/chromium-151.0.7922.47-blue.svg?logo=google-chrome)](https://www.chromium.org/Home) [![Firefox version](https://img.shields.io/badge/firefox-153.0-blue.svg?logo=firefoxbrowser)](https://www.mozilla.org/en-US/firefox/new/) [![WebKit version](https://img.shields.io/badge/webkit-26.5-blue.svg?logo=safari)](https://webkit.org/) [![Join Discord](https://img.shields.io/badge/join-discord-informational)](https://aka.ms/playwright/discord) +[![npm version](https://img.shields.io/npm/v/playwright.svg)](https://www.npmjs.com/package/playwright) [![Chromium version](https://img.shields.io/badge/chromium-152.0.7977.8-blue.svg?logo=google-chrome)](https://www.chromium.org/Home) [![Firefox version](https://img.shields.io/badge/firefox-153.0-blue.svg?logo=firefoxbrowser)](https://www.mozilla.org/en-US/firefox/new/) [![WebKit version](https://img.shields.io/badge/webkit-26.5-blue.svg?logo=safari)](https://webkit.org/) [![Join Discord](https://img.shields.io/badge/join-discord-informational)](https://aka.ms/playwright/discord) ## [Documentation](https://playwright.dev) | [API reference](https://playwright.dev/docs/api/class-playwright) @@ -296,7 +296,7 @@ The [Playwright VS Code extension](https://marketplace.visualstudio.com/items?it | | Linux | macOS | Windows | | :--- | :---: | :---: | :---: | -| Chromium1 151.0.7922.47 | :white_check_mark: | :white_check_mark: | :white_check_mark: | +| Chromium1 152.0.7977.8 | :white_check_mark: | :white_check_mark: | :white_check_mark: | | WebKit 26.5 | :white_check_mark: | :white_check_mark: | :white_check_mark: | | Firefox 153.0 | :white_check_mark: | :white_check_mark: | :white_check_mark: | diff --git a/packages/isomorphic/deviceDescriptorsSource.json b/packages/isomorphic/deviceDescriptorsSource.json index 75f7941a66941..48bc74ea4796e 100644 --- a/packages/isomorphic/deviceDescriptorsSource.json +++ b/packages/isomorphic/deviceDescriptorsSource.json @@ -110,7 +110,7 @@ "defaultBrowserType": "webkit" }, "Galaxy S5": { - "userAgent": "Mozilla/5.0 (Linux; Android 5.0; SM-G900P Build/LRX21T) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.7922.47 Mobile Safari/537.36", + "userAgent": "Mozilla/5.0 (Linux; Android 5.0; SM-G900P Build/LRX21T) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.7977.8 Mobile Safari/537.36", "viewport": { "width": 360, "height": 640 @@ -121,7 +121,7 @@ "defaultBrowserType": "chromium" }, "Galaxy S5 landscape": { - "userAgent": "Mozilla/5.0 (Linux; Android 5.0; SM-G900P Build/LRX21T) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.7922.47 Mobile Safari/537.36", + "userAgent": "Mozilla/5.0 (Linux; Android 5.0; SM-G900P Build/LRX21T) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.7977.8 Mobile Safari/537.36", "viewport": { "width": 640, "height": 360 @@ -132,7 +132,7 @@ "defaultBrowserType": "chromium" }, "Galaxy S8": { - "userAgent": "Mozilla/5.0 (Linux; Android 7.0; SM-G950U Build/NRD90M) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.7922.47 Mobile Safari/537.36", + "userAgent": "Mozilla/5.0 (Linux; Android 7.0; SM-G950U Build/NRD90M) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.7977.8 Mobile Safari/537.36", "viewport": { "width": 360, "height": 740 @@ -143,7 +143,7 @@ "defaultBrowserType": "chromium" }, "Galaxy S8 landscape": { - "userAgent": "Mozilla/5.0 (Linux; Android 7.0; SM-G950U Build/NRD90M) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.7922.47 Mobile Safari/537.36", + "userAgent": "Mozilla/5.0 (Linux; Android 7.0; SM-G950U Build/NRD90M) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.7977.8 Mobile Safari/537.36", "viewport": { "width": 740, "height": 360 @@ -154,7 +154,7 @@ "defaultBrowserType": "chromium" }, "Galaxy S9+": { - "userAgent": "Mozilla/5.0 (Linux; Android 8.0.0; SM-G965U Build/R16NW) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.7922.47 Mobile Safari/537.36", + "userAgent": "Mozilla/5.0 (Linux; Android 8.0.0; SM-G965U Build/R16NW) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.7977.8 Mobile Safari/537.36", "viewport": { "width": 320, "height": 658 @@ -165,7 +165,7 @@ "defaultBrowserType": "chromium" }, "Galaxy S9+ landscape": { - "userAgent": "Mozilla/5.0 (Linux; Android 8.0.0; SM-G965U Build/R16NW) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.7922.47 Mobile Safari/537.36", + "userAgent": "Mozilla/5.0 (Linux; Android 8.0.0; SM-G965U Build/R16NW) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.7977.8 Mobile Safari/537.36", "viewport": { "width": 658, "height": 320 @@ -176,7 +176,7 @@ "defaultBrowserType": "chromium" }, "Galaxy S24": { - "userAgent": "Mozilla/5.0 (Linux; Android 14; SM-S921U) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.7922.47 Mobile Safari/537.36", + "userAgent": "Mozilla/5.0 (Linux; Android 14; SM-S921U) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.7977.8 Mobile Safari/537.36", "viewport": { "width": 360, "height": 780 @@ -187,7 +187,7 @@ "defaultBrowserType": "chromium" }, "Galaxy S24 landscape": { - "userAgent": "Mozilla/5.0 (Linux; Android 14; SM-S921U) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.7922.47 Mobile Safari/537.36", + "userAgent": "Mozilla/5.0 (Linux; Android 14; SM-S921U) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.7977.8 Mobile Safari/537.36", "viewport": { "width": 780, "height": 360 @@ -198,7 +198,7 @@ "defaultBrowserType": "chromium" }, "Galaxy A55": { - "userAgent": "Mozilla/5.0 (Linux; Android 14; SM-A556B) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.7922.47 Mobile Safari/537.36", + "userAgent": "Mozilla/5.0 (Linux; Android 14; SM-A556B) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.7977.8 Mobile Safari/537.36", "viewport": { "width": 480, "height": 1040 @@ -209,7 +209,7 @@ "defaultBrowserType": "chromium" }, "Galaxy A55 landscape": { - "userAgent": "Mozilla/5.0 (Linux; Android 14; SM-A556B) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.7922.47 Mobile Safari/537.36", + "userAgent": "Mozilla/5.0 (Linux; Android 14; SM-A556B) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.7977.8 Mobile Safari/537.36", "viewport": { "width": 1040, "height": 480 @@ -220,7 +220,7 @@ "defaultBrowserType": "chromium" }, "Galaxy Tab S4": { - "userAgent": "Mozilla/5.0 (Linux; Android 8.1.0; SM-T837A) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.7922.47 Safari/537.36", + "userAgent": "Mozilla/5.0 (Linux; Android 8.1.0; SM-T837A) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.7977.8 Safari/537.36", "viewport": { "width": 712, "height": 1138 @@ -231,7 +231,7 @@ "defaultBrowserType": "chromium" }, "Galaxy Tab S4 landscape": { - "userAgent": "Mozilla/5.0 (Linux; Android 8.1.0; SM-T837A) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.7922.47 Safari/537.36", + "userAgent": "Mozilla/5.0 (Linux; Android 8.1.0; SM-T837A) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.7977.8 Safari/537.36", "viewport": { "width": 1138, "height": 712 @@ -242,7 +242,7 @@ "defaultBrowserType": "chromium" }, "Galaxy Tab S9": { - "userAgent": "Mozilla/5.0 (Linux; Android 14; SM-X710) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.7922.47 Safari/537.36", + "userAgent": "Mozilla/5.0 (Linux; Android 14; SM-X710) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.7977.8 Safari/537.36", "viewport": { "width": 640, "height": 1024 @@ -253,7 +253,7 @@ "defaultBrowserType": "chromium" }, "Galaxy Tab S9 landscape": { - "userAgent": "Mozilla/5.0 (Linux; Android 14; SM-X710) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.7922.47 Safari/537.36", + "userAgent": "Mozilla/5.0 (Linux; Android 14; SM-X710) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.7977.8 Safari/537.36", "viewport": { "width": 1024, "height": 640 @@ -264,7 +264,7 @@ "defaultBrowserType": "chromium" }, "Galaxy Z Fold 6": { - "userAgent": "Mozilla/5.0 (Linux; Android 10; SM-F956U) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.7922.47 Mobile Safari/537.36", + "userAgent": "Mozilla/5.0 (Linux; Android 10; SM-F956U) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.7977.8 Mobile Safari/537.36", "screen": { "width": 928, "height": 1080 @@ -279,7 +279,7 @@ "defaultBrowserType": "chromium" }, "Galaxy Z Fold 6 landscape": { - "userAgent": "Mozilla/5.0 (Linux; Android 10; SM-F956U) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.7922.47 Mobile Safari/537.36", + "userAgent": "Mozilla/5.0 (Linux; Android 10; SM-F956U) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.7977.8 Mobile Safari/537.36", "screen": { "width": 1080, "height": 928 @@ -294,7 +294,7 @@ "defaultBrowserType": "chromium" }, "Galaxy Z Fold 6 Cover": { - "userAgent": "Mozilla/5.0 (Linux; Android 10; SM-F956U) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.7922.47 Mobile Safari/537.36", + "userAgent": "Mozilla/5.0 (Linux; Android 10; SM-F956U) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.7977.8 Mobile Safari/537.36", "screen": { "width": 484, "height": 1188 @@ -309,7 +309,7 @@ "defaultBrowserType": "chromium" }, "Galaxy Z Fold 6 Cover landscape": { - "userAgent": "Mozilla/5.0 (Linux; Android 10; SM-F956U) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.7922.47 Mobile Safari/537.36", + "userAgent": "Mozilla/5.0 (Linux; Android 10; SM-F956U) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.7977.8 Mobile Safari/537.36", "screen": { "width": 1188, "height": 484 @@ -324,7 +324,7 @@ "defaultBrowserType": "chromium" }, "Galaxy Z Fold 7": { - "userAgent": "Mozilla/5.0 (Linux; Android 10; SM-F966U) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.7922.47 Mobile Safari/537.36", + "userAgent": "Mozilla/5.0 (Linux; Android 10; SM-F966U) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.7977.8 Mobile Safari/537.36", "screen": { "width": 984, "height": 1092 @@ -339,7 +339,7 @@ "defaultBrowserType": "chromium" }, "Galaxy Z Fold 7 landscape": { - "userAgent": "Mozilla/5.0 (Linux; Android 10; SM-F966U) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.7922.47 Mobile Safari/537.36", + "userAgent": "Mozilla/5.0 (Linux; Android 10; SM-F966U) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.7977.8 Mobile Safari/537.36", "screen": { "width": 1092, "height": 984 @@ -354,7 +354,7 @@ "defaultBrowserType": "chromium" }, "Galaxy Z Fold 7 Cover": { - "userAgent": "Mozilla/5.0 (Linux; Android 10; SM-F966U) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.7922.47 Mobile Safari/537.36", + "userAgent": "Mozilla/5.0 (Linux; Android 10; SM-F966U) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.7977.8 Mobile Safari/537.36", "screen": { "width": 360, "height": 840 @@ -369,7 +369,7 @@ "defaultBrowserType": "chromium" }, "Galaxy Z Fold 7 Cover landscape": { - "userAgent": "Mozilla/5.0 (Linux; Android 10; SM-F966U) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.7922.47 Mobile Safari/537.36", + "userAgent": "Mozilla/5.0 (Linux; Android 10; SM-F966U) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.7977.8 Mobile Safari/537.36", "screen": { "width": 840, "height": 360 @@ -384,7 +384,7 @@ "defaultBrowserType": "chromium" }, "Galaxy Z Flip 6": { - "userAgent": "Mozilla/5.0 (Linux; Android 10; SM-F741U) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.7922.47 Mobile Safari/537.36", + "userAgent": "Mozilla/5.0 (Linux; Android 10; SM-F741U) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.7977.8 Mobile Safari/537.36", "screen": { "width": 360, "height": 880 @@ -399,7 +399,7 @@ "defaultBrowserType": "chromium" }, "Galaxy Z Flip 6 landscape": { - "userAgent": "Mozilla/5.0 (Linux; Android 10; SM-F741U) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.7922.47 Mobile Safari/537.36", + "userAgent": "Mozilla/5.0 (Linux; Android 10; SM-F741U) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.7977.8 Mobile Safari/537.36", "screen": { "width": 880, "height": 360 @@ -414,7 +414,7 @@ "defaultBrowserType": "chromium" }, "Galaxy Z Flip 6 Cover": { - "userAgent": "Mozilla/5.0 (Linux; Android 10; SM-F741U) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.7922.47 Mobile Safari/537.36", + "userAgent": "Mozilla/5.0 (Linux; Android 10; SM-F741U) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.7977.8 Mobile Safari/537.36", "screen": { "width": 360, "height": 374 @@ -429,7 +429,7 @@ "defaultBrowserType": "chromium" }, "Galaxy Z Flip 6 Cover landscape": { - "userAgent": "Mozilla/5.0 (Linux; Android 10; SM-F741U) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.7922.47 Mobile Safari/537.36", + "userAgent": "Mozilla/5.0 (Linux; Android 10; SM-F741U) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.7977.8 Mobile Safari/537.36", "screen": { "width": 374, "height": 360 @@ -444,7 +444,7 @@ "defaultBrowserType": "chromium" }, "Galaxy Z Flip 7": { - "userAgent": "Mozilla/5.0 (Linux; Android 10; SM-F761U) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.7922.47 Mobile Safari/537.36", + "userAgent": "Mozilla/5.0 (Linux; Android 10; SM-F761U) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.7977.8 Mobile Safari/537.36", "screen": { "width": 360, "height": 840 @@ -459,7 +459,7 @@ "defaultBrowserType": "chromium" }, "Galaxy Z Flip 7 landscape": { - "userAgent": "Mozilla/5.0 (Linux; Android 10; SM-F761U) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.7922.47 Mobile Safari/537.36", + "userAgent": "Mozilla/5.0 (Linux; Android 10; SM-F761U) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.7977.8 Mobile Safari/537.36", "screen": { "width": 840, "height": 360 @@ -474,7 +474,7 @@ "defaultBrowserType": "chromium" }, "Galaxy Z Flip 7 Cover": { - "userAgent": "Mozilla/5.0 (Linux; Android 10; SM-F761U) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.7922.47 Mobile Safari/537.36", + "userAgent": "Mozilla/5.0 (Linux; Android 10; SM-F761U) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.7977.8 Mobile Safari/537.36", "screen": { "width": 474, "height": 524 @@ -489,7 +489,7 @@ "defaultBrowserType": "chromium" }, "Galaxy Z Flip 7 Cover landscape": { - "userAgent": "Mozilla/5.0 (Linux; Android 10; SM-F761U) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.7922.47 Mobile Safari/537.36", + "userAgent": "Mozilla/5.0 (Linux; Android 10; SM-F761U) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.7977.8 Mobile Safari/537.36", "screen": { "width": 524, "height": 474 @@ -1748,7 +1748,7 @@ "defaultBrowserType": "webkit" }, "LG Optimus L70": { - "userAgent": "Mozilla/5.0 (Linux; U; Android 4.4.2; en-us; LGMS323 Build/KOT49I.MS32310c) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/151.0.7922.47 Mobile Safari/537.36", + "userAgent": "Mozilla/5.0 (Linux; U; Android 4.4.2; en-us; LGMS323 Build/KOT49I.MS32310c) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/152.0.7977.8 Mobile Safari/537.36", "viewport": { "width": 384, "height": 640 @@ -1759,7 +1759,7 @@ "defaultBrowserType": "chromium" }, "LG Optimus L70 landscape": { - "userAgent": "Mozilla/5.0 (Linux; U; Android 4.4.2; en-us; LGMS323 Build/KOT49I.MS32310c) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/151.0.7922.47 Mobile Safari/537.36", + "userAgent": "Mozilla/5.0 (Linux; U; Android 4.4.2; en-us; LGMS323 Build/KOT49I.MS32310c) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/152.0.7977.8 Mobile Safari/537.36", "viewport": { "width": 640, "height": 384 @@ -1770,7 +1770,7 @@ "defaultBrowserType": "chromium" }, "Microsoft Lumia 550": { - "userAgent": "Mozilla/5.0 (Windows Phone 10.0; Android 4.2.1; Microsoft; Lumia 550) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.7922.47 Mobile Safari/537.36 Edge/14.14263", + "userAgent": "Mozilla/5.0 (Windows Phone 10.0; Android 4.2.1; Microsoft; Lumia 550) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.7977.8 Mobile Safari/537.36 Edge/14.14263", "viewport": { "width": 360, "height": 640 @@ -1781,7 +1781,7 @@ "defaultBrowserType": "chromium" }, "Microsoft Lumia 550 landscape": { - "userAgent": "Mozilla/5.0 (Windows Phone 10.0; Android 4.2.1; Microsoft; Lumia 550) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.7922.47 Mobile Safari/537.36 Edge/14.14263", + "userAgent": "Mozilla/5.0 (Windows Phone 10.0; Android 4.2.1; Microsoft; Lumia 550) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.7977.8 Mobile Safari/537.36 Edge/14.14263", "viewport": { "width": 640, "height": 360 @@ -1792,7 +1792,7 @@ "defaultBrowserType": "chromium" }, "Microsoft Lumia 950": { - "userAgent": "Mozilla/5.0 (Windows Phone 10.0; Android 4.2.1; Microsoft; Lumia 950) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.7922.47 Mobile Safari/537.36 Edge/14.14263", + "userAgent": "Mozilla/5.0 (Windows Phone 10.0; Android 4.2.1; Microsoft; Lumia 950) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.7977.8 Mobile Safari/537.36 Edge/14.14263", "viewport": { "width": 360, "height": 640 @@ -1803,7 +1803,7 @@ "defaultBrowserType": "chromium" }, "Microsoft Lumia 950 landscape": { - "userAgent": "Mozilla/5.0 (Windows Phone 10.0; Android 4.2.1; Microsoft; Lumia 950) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.7922.47 Mobile Safari/537.36 Edge/14.14263", + "userAgent": "Mozilla/5.0 (Windows Phone 10.0; Android 4.2.1; Microsoft; Lumia 950) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.7977.8 Mobile Safari/537.36 Edge/14.14263", "viewport": { "width": 640, "height": 360 @@ -1814,7 +1814,7 @@ "defaultBrowserType": "chromium" }, "Nexus 10": { - "userAgent": "Mozilla/5.0 (Linux; Android 6.0.1; Nexus 10 Build/MOB31T) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.7922.47 Safari/537.36", + "userAgent": "Mozilla/5.0 (Linux; Android 6.0.1; Nexus 10 Build/MOB31T) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.7977.8 Safari/537.36", "viewport": { "width": 800, "height": 1280 @@ -1825,7 +1825,7 @@ "defaultBrowserType": "chromium" }, "Nexus 10 landscape": { - "userAgent": "Mozilla/5.0 (Linux; Android 6.0.1; Nexus 10 Build/MOB31T) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.7922.47 Safari/537.36", + "userAgent": "Mozilla/5.0 (Linux; Android 6.0.1; Nexus 10 Build/MOB31T) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.7977.8 Safari/537.36", "viewport": { "width": 1280, "height": 800 @@ -1836,7 +1836,7 @@ "defaultBrowserType": "chromium" }, "Nexus 4": { - "userAgent": "Mozilla/5.0 (Linux; Android 4.4.2; Nexus 4 Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.7922.47 Mobile Safari/537.36", + "userAgent": "Mozilla/5.0 (Linux; Android 4.4.2; Nexus 4 Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.7977.8 Mobile Safari/537.36", "viewport": { "width": 384, "height": 640 @@ -1847,7 +1847,7 @@ "defaultBrowserType": "chromium" }, "Nexus 4 landscape": { - "userAgent": "Mozilla/5.0 (Linux; Android 4.4.2; Nexus 4 Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.7922.47 Mobile Safari/537.36", + "userAgent": "Mozilla/5.0 (Linux; Android 4.4.2; Nexus 4 Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.7977.8 Mobile Safari/537.36", "viewport": { "width": 640, "height": 384 @@ -1858,7 +1858,7 @@ "defaultBrowserType": "chromium" }, "Nexus 5": { - "userAgent": "Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.7922.47 Mobile Safari/537.36", + "userAgent": "Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.7977.8 Mobile Safari/537.36", "viewport": { "width": 360, "height": 640 @@ -1869,7 +1869,7 @@ "defaultBrowserType": "chromium" }, "Nexus 5 landscape": { - "userAgent": "Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.7922.47 Mobile Safari/537.36", + "userAgent": "Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.7977.8 Mobile Safari/537.36", "viewport": { "width": 640, "height": 360 @@ -1880,7 +1880,7 @@ "defaultBrowserType": "chromium" }, "Nexus 5X": { - "userAgent": "Mozilla/5.0 (Linux; Android 8.0.0; Nexus 5X Build/OPR4.170623.006) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.7922.47 Mobile Safari/537.36", + "userAgent": "Mozilla/5.0 (Linux; Android 8.0.0; Nexus 5X Build/OPR4.170623.006) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.7977.8 Mobile Safari/537.36", "viewport": { "width": 412, "height": 732 @@ -1891,7 +1891,7 @@ "defaultBrowserType": "chromium" }, "Nexus 5X landscape": { - "userAgent": "Mozilla/5.0 (Linux; Android 8.0.0; Nexus 5X Build/OPR4.170623.006) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.7922.47 Mobile Safari/537.36", + "userAgent": "Mozilla/5.0 (Linux; Android 8.0.0; Nexus 5X Build/OPR4.170623.006) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.7977.8 Mobile Safari/537.36", "viewport": { "width": 732, "height": 412 @@ -1902,7 +1902,7 @@ "defaultBrowserType": "chromium" }, "Nexus 6": { - "userAgent": "Mozilla/5.0 (Linux; Android 7.1.1; Nexus 6 Build/N6F26U) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.7922.47 Mobile Safari/537.36", + "userAgent": "Mozilla/5.0 (Linux; Android 7.1.1; Nexus 6 Build/N6F26U) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.7977.8 Mobile Safari/537.36", "viewport": { "width": 412, "height": 732 @@ -1913,7 +1913,7 @@ "defaultBrowserType": "chromium" }, "Nexus 6 landscape": { - "userAgent": "Mozilla/5.0 (Linux; Android 7.1.1; Nexus 6 Build/N6F26U) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.7922.47 Mobile Safari/537.36", + "userAgent": "Mozilla/5.0 (Linux; Android 7.1.1; Nexus 6 Build/N6F26U) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.7977.8 Mobile Safari/537.36", "viewport": { "width": 732, "height": 412 @@ -1924,7 +1924,7 @@ "defaultBrowserType": "chromium" }, "Nexus 6P": { - "userAgent": "Mozilla/5.0 (Linux; Android 8.0.0; Nexus 6P Build/OPP3.170518.006) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.7922.47 Mobile Safari/537.36", + "userAgent": "Mozilla/5.0 (Linux; Android 8.0.0; Nexus 6P Build/OPP3.170518.006) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.7977.8 Mobile Safari/537.36", "viewport": { "width": 412, "height": 732 @@ -1935,7 +1935,7 @@ "defaultBrowserType": "chromium" }, "Nexus 6P landscape": { - "userAgent": "Mozilla/5.0 (Linux; Android 8.0.0; Nexus 6P Build/OPP3.170518.006) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.7922.47 Mobile Safari/537.36", + "userAgent": "Mozilla/5.0 (Linux; Android 8.0.0; Nexus 6P Build/OPP3.170518.006) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.7977.8 Mobile Safari/537.36", "viewport": { "width": 732, "height": 412 @@ -1946,7 +1946,7 @@ "defaultBrowserType": "chromium" }, "Nexus 7": { - "userAgent": "Mozilla/5.0 (Linux; Android 6.0.1; Nexus 7 Build/MOB30X) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.7922.47 Safari/537.36", + "userAgent": "Mozilla/5.0 (Linux; Android 6.0.1; Nexus 7 Build/MOB30X) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.7977.8 Safari/537.36", "viewport": { "width": 600, "height": 960 @@ -1957,7 +1957,7 @@ "defaultBrowserType": "chromium" }, "Nexus 7 landscape": { - "userAgent": "Mozilla/5.0 (Linux; Android 6.0.1; Nexus 7 Build/MOB30X) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.7922.47 Safari/537.36", + "userAgent": "Mozilla/5.0 (Linux; Android 6.0.1; Nexus 7 Build/MOB30X) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.7977.8 Safari/537.36", "viewport": { "width": 960, "height": 600 @@ -2012,7 +2012,7 @@ "defaultBrowserType": "webkit" }, "Pixel 2": { - "userAgent": "Mozilla/5.0 (Linux; Android 8.0; Pixel 2 Build/OPD3.170816.012) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.7922.47 Mobile Safari/537.36", + "userAgent": "Mozilla/5.0 (Linux; Android 8.0; Pixel 2 Build/OPD3.170816.012) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.7977.8 Mobile Safari/537.36", "viewport": { "width": 411, "height": 731 @@ -2023,7 +2023,7 @@ "defaultBrowserType": "chromium" }, "Pixel 2 landscape": { - "userAgent": "Mozilla/5.0 (Linux; Android 8.0; Pixel 2 Build/OPD3.170816.012) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.7922.47 Mobile Safari/537.36", + "userAgent": "Mozilla/5.0 (Linux; Android 8.0; Pixel 2 Build/OPD3.170816.012) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.7977.8 Mobile Safari/537.36", "viewport": { "width": 731, "height": 411 @@ -2034,7 +2034,7 @@ "defaultBrowserType": "chromium" }, "Pixel 2 XL": { - "userAgent": "Mozilla/5.0 (Linux; Android 8.0.0; Pixel 2 XL Build/OPD1.170816.004) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.7922.47 Mobile Safari/537.36", + "userAgent": "Mozilla/5.0 (Linux; Android 8.0.0; Pixel 2 XL Build/OPD1.170816.004) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.7977.8 Mobile Safari/537.36", "viewport": { "width": 411, "height": 823 @@ -2045,7 +2045,7 @@ "defaultBrowserType": "chromium" }, "Pixel 2 XL landscape": { - "userAgent": "Mozilla/5.0 (Linux; Android 8.0.0; Pixel 2 XL Build/OPD1.170816.004) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.7922.47 Mobile Safari/537.36", + "userAgent": "Mozilla/5.0 (Linux; Android 8.0.0; Pixel 2 XL Build/OPD1.170816.004) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.7977.8 Mobile Safari/537.36", "viewport": { "width": 823, "height": 411 @@ -2056,7 +2056,7 @@ "defaultBrowserType": "chromium" }, "Pixel 3": { - "userAgent": "Mozilla/5.0 (Linux; Android 9; Pixel 3 Build/PQ1A.181105.017.A1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.7922.47 Mobile Safari/537.36", + "userAgent": "Mozilla/5.0 (Linux; Android 9; Pixel 3 Build/PQ1A.181105.017.A1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.7977.8 Mobile Safari/537.36", "viewport": { "width": 393, "height": 786 @@ -2067,7 +2067,7 @@ "defaultBrowserType": "chromium" }, "Pixel 3 landscape": { - "userAgent": "Mozilla/5.0 (Linux; Android 9; Pixel 3 Build/PQ1A.181105.017.A1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.7922.47 Mobile Safari/537.36", + "userAgent": "Mozilla/5.0 (Linux; Android 9; Pixel 3 Build/PQ1A.181105.017.A1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.7977.8 Mobile Safari/537.36", "viewport": { "width": 786, "height": 393 @@ -2078,7 +2078,7 @@ "defaultBrowserType": "chromium" }, "Pixel 4": { - "userAgent": "Mozilla/5.0 (Linux; Android 10; Pixel 4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.7922.47 Mobile Safari/537.36", + "userAgent": "Mozilla/5.0 (Linux; Android 10; Pixel 4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.7977.8 Mobile Safari/537.36", "viewport": { "width": 353, "height": 745 @@ -2089,7 +2089,7 @@ "defaultBrowserType": "chromium" }, "Pixel 4 landscape": { - "userAgent": "Mozilla/5.0 (Linux; Android 10; Pixel 4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.7922.47 Mobile Safari/537.36", + "userAgent": "Mozilla/5.0 (Linux; Android 10; Pixel 4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.7977.8 Mobile Safari/537.36", "viewport": { "width": 745, "height": 353 @@ -2100,7 +2100,7 @@ "defaultBrowserType": "chromium" }, "Pixel 4a (5G)": { - "userAgent": "Mozilla/5.0 (Linux; Android 11; Pixel 4a (5G)) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.7922.47 Mobile Safari/537.36", + "userAgent": "Mozilla/5.0 (Linux; Android 11; Pixel 4a (5G)) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.7977.8 Mobile Safari/537.36", "screen": { "width": 412, "height": 892 @@ -2115,7 +2115,7 @@ "defaultBrowserType": "chromium" }, "Pixel 4a (5G) landscape": { - "userAgent": "Mozilla/5.0 (Linux; Android 11; Pixel 4a (5G)) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.7922.47 Mobile Safari/537.36", + "userAgent": "Mozilla/5.0 (Linux; Android 11; Pixel 4a (5G)) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.7977.8 Mobile Safari/537.36", "screen": { "height": 892, "width": 412 @@ -2130,7 +2130,7 @@ "defaultBrowserType": "chromium" }, "Pixel 5": { - "userAgent": "Mozilla/5.0 (Linux; Android 11; Pixel 5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.7922.47 Mobile Safari/537.36", + "userAgent": "Mozilla/5.0 (Linux; Android 11; Pixel 5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.7977.8 Mobile Safari/537.36", "screen": { "width": 393, "height": 851 @@ -2145,7 +2145,7 @@ "defaultBrowserType": "chromium" }, "Pixel 5 landscape": { - "userAgent": "Mozilla/5.0 (Linux; Android 11; Pixel 5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.7922.47 Mobile Safari/537.36", + "userAgent": "Mozilla/5.0 (Linux; Android 11; Pixel 5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.7977.8 Mobile Safari/537.36", "screen": { "width": 851, "height": 393 @@ -2160,7 +2160,7 @@ "defaultBrowserType": "chromium" }, "Pixel 6": { - "userAgent": "Mozilla/5.0 (Linux; Android 12; Pixel 6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.7922.47 Mobile Safari/537.36", + "userAgent": "Mozilla/5.0 (Linux; Android 12; Pixel 6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.7977.8 Mobile Safari/537.36", "screen": { "width": 412, "height": 915 @@ -2175,7 +2175,7 @@ "defaultBrowserType": "chromium" }, "Pixel 6 landscape": { - "userAgent": "Mozilla/5.0 (Linux; Android 12; Pixel 6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.7922.47 Mobile Safari/537.36", + "userAgent": "Mozilla/5.0 (Linux; Android 12; Pixel 6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.7977.8 Mobile Safari/537.36", "screen": { "width": 915, "height": 412 @@ -2190,7 +2190,7 @@ "defaultBrowserType": "chromium" }, "Pixel 6 Pro": { - "userAgent": "Mozilla/5.0 (Linux; Android 12; Pixel 6 Pro) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.7922.47 Mobile Safari/537.36", + "userAgent": "Mozilla/5.0 (Linux; Android 12; Pixel 6 Pro) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.7977.8 Mobile Safari/537.36", "screen": { "width": 412, "height": 892 @@ -2205,7 +2205,7 @@ "defaultBrowserType": "chromium" }, "Pixel 6 Pro landscape": { - "userAgent": "Mozilla/5.0 (Linux; Android 12; Pixel 6 Pro) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.7922.47 Mobile Safari/537.36", + "userAgent": "Mozilla/5.0 (Linux; Android 12; Pixel 6 Pro) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.7977.8 Mobile Safari/537.36", "screen": { "width": 892, "height": 412 @@ -2220,7 +2220,7 @@ "defaultBrowserType": "chromium" }, "Pixel 6a": { - "userAgent": "Mozilla/5.0 (Linux; Android 12; Pixel 6a) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.7922.47 Mobile Safari/537.36", + "userAgent": "Mozilla/5.0 (Linux; Android 12; Pixel 6a) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.7977.8 Mobile Safari/537.36", "screen": { "width": 412, "height": 915 @@ -2235,7 +2235,7 @@ "defaultBrowserType": "chromium" }, "Pixel 6a landscape": { - "userAgent": "Mozilla/5.0 (Linux; Android 12; Pixel 6a) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.7922.47 Mobile Safari/537.36", + "userAgent": "Mozilla/5.0 (Linux; Android 12; Pixel 6a) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.7977.8 Mobile Safari/537.36", "screen": { "width": 915, "height": 412 @@ -2250,7 +2250,7 @@ "defaultBrowserType": "chromium" }, "Pixel 7": { - "userAgent": "Mozilla/5.0 (Linux; Android 14; Pixel 7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.7922.47 Mobile Safari/537.36", + "userAgent": "Mozilla/5.0 (Linux; Android 14; Pixel 7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.7977.8 Mobile Safari/537.36", "screen": { "width": 412, "height": 915 @@ -2265,7 +2265,7 @@ "defaultBrowserType": "chromium" }, "Pixel 7 landscape": { - "userAgent": "Mozilla/5.0 (Linux; Android 14; Pixel 7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.7922.47 Mobile Safari/537.36", + "userAgent": "Mozilla/5.0 (Linux; Android 14; Pixel 7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.7977.8 Mobile Safari/537.36", "screen": { "width": 915, "height": 412 @@ -2280,7 +2280,7 @@ "defaultBrowserType": "chromium" }, "Pixel 7 Pro": { - "userAgent": "Mozilla/5.0 (Linux; Android 13; Pixel 7 Pro) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.7922.47 Mobile Safari/537.36", + "userAgent": "Mozilla/5.0 (Linux; Android 13; Pixel 7 Pro) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.7977.8 Mobile Safari/537.36", "screen": { "width": 412, "height": 892 @@ -2295,7 +2295,7 @@ "defaultBrowserType": "chromium" }, "Pixel 7 Pro landscape": { - "userAgent": "Mozilla/5.0 (Linux; Android 13; Pixel 7 Pro) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.7922.47 Mobile Safari/537.36", + "userAgent": "Mozilla/5.0 (Linux; Android 13; Pixel 7 Pro) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.7977.8 Mobile Safari/537.36", "screen": { "width": 892, "height": 412 @@ -2310,7 +2310,7 @@ "defaultBrowserType": "chromium" }, "Pixel 7a": { - "userAgent": "Mozilla/5.0 (Linux; Android 13; Pixel 7a) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.7922.47 Mobile Safari/537.36", + "userAgent": "Mozilla/5.0 (Linux; Android 13; Pixel 7a) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.7977.8 Mobile Safari/537.36", "screen": { "width": 412, "height": 915 @@ -2325,7 +2325,7 @@ "defaultBrowserType": "chromium" }, "Pixel 7a landscape": { - "userAgent": "Mozilla/5.0 (Linux; Android 13; Pixel 7a) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.7922.47 Mobile Safari/537.36", + "userAgent": "Mozilla/5.0 (Linux; Android 13; Pixel 7a) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.7977.8 Mobile Safari/537.36", "screen": { "width": 915, "height": 412 @@ -2340,7 +2340,7 @@ "defaultBrowserType": "chromium" }, "Pixel 8": { - "userAgent": "Mozilla/5.0 (Linux; Android 14; Pixel 8) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.7922.47 Mobile Safari/537.36", + "userAgent": "Mozilla/5.0 (Linux; Android 14; Pixel 8) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.7977.8 Mobile Safari/537.36", "screen": { "width": 412, "height": 915 @@ -2355,7 +2355,7 @@ "defaultBrowserType": "chromium" }, "Pixel 8 landscape": { - "userAgent": "Mozilla/5.0 (Linux; Android 14; Pixel 8) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.7922.47 Mobile Safari/537.36", + "userAgent": "Mozilla/5.0 (Linux; Android 14; Pixel 8) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.7977.8 Mobile Safari/537.36", "screen": { "width": 915, "height": 412 @@ -2370,7 +2370,7 @@ "defaultBrowserType": "chromium" }, "Pixel 8 Pro": { - "userAgent": "Mozilla/5.0 (Linux; Android 14; Pixel 8 Pro) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.7922.47 Mobile Safari/537.36", + "userAgent": "Mozilla/5.0 (Linux; Android 14; Pixel 8 Pro) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.7977.8 Mobile Safari/537.36", "screen": { "width": 448, "height": 997 @@ -2385,7 +2385,7 @@ "defaultBrowserType": "chromium" }, "Pixel 8 Pro landscape": { - "userAgent": "Mozilla/5.0 (Linux; Android 14; Pixel 8 Pro) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.7922.47 Mobile Safari/537.36", + "userAgent": "Mozilla/5.0 (Linux; Android 14; Pixel 8 Pro) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.7977.8 Mobile Safari/537.36", "screen": { "width": 997, "height": 448 @@ -2400,7 +2400,7 @@ "defaultBrowserType": "chromium" }, "Pixel 8a": { - "userAgent": "Mozilla/5.0 (Linux; Android 14; Pixel 8a) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.7922.47 Mobile Safari/537.36", + "userAgent": "Mozilla/5.0 (Linux; Android 14; Pixel 8a) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.7977.8 Mobile Safari/537.36", "screen": { "width": 412, "height": 915 @@ -2415,7 +2415,7 @@ "defaultBrowserType": "chromium" }, "Pixel 8a landscape": { - "userAgent": "Mozilla/5.0 (Linux; Android 14; Pixel 8a) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.7922.47 Mobile Safari/537.36", + "userAgent": "Mozilla/5.0 (Linux; Android 14; Pixel 8a) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.7977.8 Mobile Safari/537.36", "screen": { "width": 915, "height": 412 @@ -2430,7 +2430,7 @@ "defaultBrowserType": "chromium" }, "Pixel 9": { - "userAgent": "Mozilla/5.0 (Linux; Android 14; Pixel 9) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.7922.47 Mobile Safari/537.36", + "userAgent": "Mozilla/5.0 (Linux; Android 14; Pixel 9) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.7977.8 Mobile Safari/537.36", "screen": { "width": 360, "height": 808 @@ -2445,7 +2445,7 @@ "defaultBrowserType": "chromium" }, "Pixel 9 landscape": { - "userAgent": "Mozilla/5.0 (Linux; Android 14; Pixel 9) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.7922.47 Mobile Safari/537.36", + "userAgent": "Mozilla/5.0 (Linux; Android 14; Pixel 9) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.7977.8 Mobile Safari/537.36", "screen": { "width": 808, "height": 360 @@ -2460,7 +2460,7 @@ "defaultBrowserType": "chromium" }, "Pixel 9 Pro": { - "userAgent": "Mozilla/5.0 (Linux; Android 14; Pixel 9 Pro) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.7922.47 Mobile Safari/537.36", + "userAgent": "Mozilla/5.0 (Linux; Android 14; Pixel 9 Pro) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.7977.8 Mobile Safari/537.36", "screen": { "width": 427, "height": 952 @@ -2475,7 +2475,7 @@ "defaultBrowserType": "chromium" }, "Pixel 9 Pro landscape": { - "userAgent": "Mozilla/5.0 (Linux; Android 14; Pixel 9 Pro) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.7922.47 Mobile Safari/537.36", + "userAgent": "Mozilla/5.0 (Linux; Android 14; Pixel 9 Pro) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.7977.8 Mobile Safari/537.36", "screen": { "width": 952, "height": 427 @@ -2490,7 +2490,7 @@ "defaultBrowserType": "chromium" }, "Pixel 9 Pro XL": { - "userAgent": "Mozilla/5.0 (Linux; Android 14; Pixel 9 Pro XL) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.7922.47 Mobile Safari/537.36", + "userAgent": "Mozilla/5.0 (Linux; Android 14; Pixel 9 Pro XL) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.7977.8 Mobile Safari/537.36", "screen": { "width": 448, "height": 997 @@ -2505,7 +2505,7 @@ "defaultBrowserType": "chromium" }, "Pixel 9 Pro XL landscape": { - "userAgent": "Mozilla/5.0 (Linux; Android 14; Pixel 9 Pro XL) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.7922.47 Mobile Safari/537.36", + "userAgent": "Mozilla/5.0 (Linux; Android 14; Pixel 9 Pro XL) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.7977.8 Mobile Safari/537.36", "screen": { "width": 997, "height": 448 @@ -2520,7 +2520,7 @@ "defaultBrowserType": "chromium" }, "Pixel 10": { - "userAgent": "Mozilla/5.0 (Linux; Android 16; Pixel 10) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.7922.47 Mobile Safari/537.36", + "userAgent": "Mozilla/5.0 (Linux; Android 16; Pixel 10) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.7977.8 Mobile Safari/537.36", "screen": { "width": 360, "height": 808 @@ -2535,7 +2535,7 @@ "defaultBrowserType": "chromium" }, "Pixel 10 landscape": { - "userAgent": "Mozilla/5.0 (Linux; Android 16; Pixel 10) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.7922.47 Mobile Safari/537.36", + "userAgent": "Mozilla/5.0 (Linux; Android 16; Pixel 10) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.7977.8 Mobile Safari/537.36", "screen": { "width": 808, "height": 360 @@ -2550,7 +2550,7 @@ "defaultBrowserType": "chromium" }, "Pixel 10 Pro": { - "userAgent": "Mozilla/5.0 (Linux; Android 16; Pixel 10 Pro) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.7922.47 Mobile Safari/537.36", + "userAgent": "Mozilla/5.0 (Linux; Android 16; Pixel 10 Pro) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.7977.8 Mobile Safari/537.36", "screen": { "width": 427, "height": 952 @@ -2565,7 +2565,7 @@ "defaultBrowserType": "chromium" }, "Pixel 10 Pro landscape": { - "userAgent": "Mozilla/5.0 (Linux; Android 16; Pixel 10 Pro) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.7922.47 Mobile Safari/537.36", + "userAgent": "Mozilla/5.0 (Linux; Android 16; Pixel 10 Pro) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.7977.8 Mobile Safari/537.36", "screen": { "width": 952, "height": 427 @@ -2580,7 +2580,7 @@ "defaultBrowserType": "chromium" }, "Pixel 10 Pro XL": { - "userAgent": "Mozilla/5.0 (Linux; Android 16; Pixel 10 Pro XL) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.7922.47 Mobile Safari/537.36", + "userAgent": "Mozilla/5.0 (Linux; Android 16; Pixel 10 Pro XL) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.7977.8 Mobile Safari/537.36", "screen": { "width": 448, "height": 997 @@ -2595,7 +2595,7 @@ "defaultBrowserType": "chromium" }, "Pixel 10 Pro XL landscape": { - "userAgent": "Mozilla/5.0 (Linux; Android 16; Pixel 10 Pro XL) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.7922.47 Mobile Safari/537.36", + "userAgent": "Mozilla/5.0 (Linux; Android 16; Pixel 10 Pro XL) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.7977.8 Mobile Safari/537.36", "screen": { "width": 997, "height": 448 @@ -2610,7 +2610,7 @@ "defaultBrowserType": "chromium" }, "Moto G4": { - "userAgent": "Mozilla/5.0 (Linux; Android 7.0; Moto G (4)) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.7922.47 Mobile Safari/537.36", + "userAgent": "Mozilla/5.0 (Linux; Android 7.0; Moto G (4)) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.7977.8 Mobile Safari/537.36", "viewport": { "width": 360, "height": 640 @@ -2621,7 +2621,7 @@ "defaultBrowserType": "chromium" }, "Moto G4 landscape": { - "userAgent": "Mozilla/5.0 (Linux; Android 7.0; Moto G (4)) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.7922.47 Mobile Safari/537.36", + "userAgent": "Mozilla/5.0 (Linux; Android 7.0; Moto G (4)) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.7977.8 Mobile Safari/537.36", "viewport": { "width": 640, "height": 360 @@ -2632,7 +2632,7 @@ "defaultBrowserType": "chromium" }, "Desktop Chrome HiDPI": { - "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.7922.47 Safari/537.36", + "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.7977.8 Safari/537.36", "screen": { "width": 1792, "height": 1120 @@ -2647,7 +2647,7 @@ "defaultBrowserType": "chromium" }, "Desktop Edge HiDPI": { - "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.7922.47 Safari/537.36 Edg/151.0.7922.47", + "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.7977.8 Safari/537.36 Edg/152.0.7977.8", "screen": { "width": 1792, "height": 1120 @@ -2692,7 +2692,7 @@ "defaultBrowserType": "webkit" }, "Desktop Chrome": { - "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.7922.47 Safari/537.36", + "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.7977.8 Safari/537.36", "screen": { "width": 1920, "height": 1080 @@ -2707,7 +2707,7 @@ "defaultBrowserType": "chromium" }, "Desktop Edge": { - "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.7922.47 Safari/537.36 Edg/151.0.7922.47", + "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.7977.8 Safari/537.36 Edg/152.0.7977.8", "screen": { "width": 1920, "height": 1080 diff --git a/packages/playwright-core/browsers.json b/packages/playwright-core/browsers.json index 9e0d42534398f..e208d464d04c0 100644 --- a/packages/playwright-core/browsers.json +++ b/packages/playwright-core/browsers.json @@ -3,16 +3,16 @@ "browsers": [ { "name": "chromium", - "revision": "1236", + "revision": "1237", "installByDefault": true, - "browserVersion": "151.0.7922.47", + "browserVersion": "152.0.7977.8", "title": "Chrome for Testing" }, { "name": "chromium-headless-shell", - "revision": "1236", + "revision": "1237", "installByDefault": true, - "browserVersion": "151.0.7922.47", + "browserVersion": "152.0.7977.8", "title": "Chrome Headless Shell" }, { diff --git a/packages/playwright-core/src/server/chromium/protocol.d.ts b/packages/playwright-core/src/server/chromium/protocol.d.ts index 858642160b282..680add356a93a 100644 --- a/packages/playwright-core/src/server/chromium/protocol.d.ts +++ b/packages/playwright-core/src/server/chromium/protocol.d.ts @@ -828,7 +828,7 @@ may be used by the front-end as additional context. sourceCodeLocation?: SourceCodeLocation; } export type MixedContentResolutionStatus = "MixedContentBlocked"|"MixedContentAutomaticallyUpgraded"|"MixedContentWarning"; - export type MixedContentResourceType = "AttributionSrc"|"Audio"|"Beacon"|"CSPReport"|"Download"|"EventSource"|"Favicon"|"Font"|"Form"|"Frame"|"Image"|"Import"|"JSON"|"Manifest"|"Ping"|"PluginData"|"PluginResource"|"Prefetch"|"Resource"|"Script"|"ServiceWorker"|"SharedWorker"|"SpeculationRules"|"Stylesheet"|"Track"|"Video"|"Worker"|"XMLHttpRequest"|"XSLT"; + export type MixedContentResourceType = "Audio"|"Beacon"|"CSPReport"|"Download"|"EventSource"|"Favicon"|"Font"|"Form"|"Frame"|"Image"|"Import"|"JSON"|"Manifest"|"Ping"|"PluginData"|"PluginResource"|"Prefetch"|"Resource"|"Script"|"ServiceWorker"|"SharedWorker"|"SpeculationRules"|"Stylesheet"|"Track"|"Video"|"Worker"|"XMLHttpRequest"|"XSLT"; export interface MixedContentIssueDetails { /** * The type of resource causing the mixed content issue (css, js, iframe, @@ -936,21 +936,10 @@ CORS RFC1918 enforcement. resourceIPAddressSpace?: Network.IPAddressSpace; clientSecurityState?: Network.ClientSecurityState; } - export type AttributionReportingIssueType = "PermissionPolicyDisabled"|"UntrustworthyReportingOrigin"|"InsecureContext"|"InvalidHeader"|"InvalidRegisterTriggerHeader"|"SourceAndTriggerHeaders"|"SourceIgnored"|"TriggerIgnored"|"OsSourceIgnored"|"OsTriggerIgnored"|"InvalidRegisterOsSourceHeader"|"InvalidRegisterOsTriggerHeader"|"WebAndOsHeaders"|"NoWebOrOsSupport"|"NavigationRegistrationWithoutTransientUserActivation"|"InvalidInfoHeader"|"NoRegisterSourceHeader"|"NoRegisterTriggerHeader"|"NoRegisterOsSourceHeader"|"NoRegisterOsTriggerHeader"|"NavigationRegistrationUniqueScopeAlreadySet"; export type SharedDictionaryError = "UseErrorCrossOriginNoCorsRequest"|"UseErrorDictionaryLoadFailure"|"UseErrorMatchingDictionaryNotUsed"|"UseErrorUnexpectedContentDictionaryHeader"|"WriteErrorCossOriginNoCorsRequest"|"WriteErrorDisallowedBySettings"|"WriteErrorExpiredResponse"|"WriteErrorFeatureDisabled"|"WriteErrorInsufficientResources"|"WriteErrorInvalidMatchField"|"WriteErrorInvalidStructuredHeader"|"WriteErrorInvalidTTLField"|"WriteErrorNavigationRequest"|"WriteErrorNoMatchField"|"WriteErrorNonIntegerTTLField"|"WriteErrorNonListMatchDestField"|"WriteErrorNonSecureContext"|"WriteErrorNonStringIdField"|"WriteErrorNonStringInMatchDestList"|"WriteErrorInvalidMatchDestList"|"WriteErrorNonStringMatchField"|"WriteErrorNonTokenTypeField"|"WriteErrorRequestAborted"|"WriteErrorShuttingDown"|"WriteErrorTooLongIdField"|"WriteErrorUnsupportedType"; export type SRIMessageSignatureError = "MissingSignatureHeader"|"MissingSignatureInputHeader"|"InvalidSignatureHeader"|"InvalidSignatureInputHeader"|"SignatureHeaderValueIsNotByteSequence"|"SignatureHeaderValueIsParameterized"|"SignatureHeaderValueIsIncorrectLength"|"SignatureInputHeaderMissingLabel"|"SignatureInputHeaderValueNotInnerList"|"SignatureInputHeaderValueMissingComponents"|"SignatureInputHeaderInvalidComponentType"|"SignatureInputHeaderInvalidComponentName"|"SignatureInputHeaderInvalidHeaderComponentParameter"|"SignatureInputHeaderInvalidDerivedComponentParameter"|"SignatureInputHeaderKeyIdLength"|"SignatureInputHeaderInvalidParameter"|"SignatureInputHeaderMissingRequiredParameters"|"ValidationFailedSignatureExpired"|"ValidationFailedInvalidLength"|"ValidationFailedSignatureMismatch"|"ValidationFailedIntegrityMismatch"|"SignatureBaseUnknownDerivedComponent"|"SignatureBaseMissingHeader"|"SignatureBaseInvalidUnencodedDigest"|"SignatureBaseUnsupportedComponent"; export type UnencodedDigestError = "MalformedDictionary"|"UnknownAlgorithm"|"IncorrectDigestType"|"IncorrectDigestLength"; export type ConnectionAllowlistError = "InvalidHeader"|"MoreThanOneList"|"ItemNotInnerList"|"InvalidAllowlistItemType"|"ReportingEndpointNotToken"|"InvalidUrlPattern"; - /** - * Details for issues around "Attribution Reporting API" usage. -Explainer: https://github.com/WICG/attribution-reporting-api - */ - export interface AttributionReportingIssueDetails { - violationType: AttributionReportingIssueType; - request?: AffectedRequest; - violatingNodeId?: DOM.BackendNodeId; - invalidParameter?: string; - } /** * Details for issues about documents in Quirks Mode or Limited Quirks Mode that affects page layouting. @@ -1212,12 +1201,29 @@ Selective Permissions Intervention. */ stackTrace?: Runtime.StackTrace; } + /** + * Details for issues about lazy-loaded images without explicit dimensions. + */ + export interface LazyLoadImageIssueDetails { + /** + * DOM node of the problematic HTMLImageElement. + */ + nodeId: DOM.BackendNodeId; + /** + * URL or src attribute of the image. + */ + url: string; + /** + * Frame containing the image. + */ + frameId: Page.FrameId; + } /** * A unique identifier for the type of issue. Each type may use one of the optional fields in InspectorIssueDetails to convey more specific information about the kind of issue. */ - export type InspectorIssueCode = "CookieIssue"|"MixedContentIssue"|"BlockedByResponseIssue"|"HeavyAdIssue"|"ContentSecurityPolicyIssue"|"SharedArrayBufferIssue"|"CorsIssue"|"AttributionReportingIssue"|"QuirksModeIssue"|"PartitioningBlobURLIssue"|"NavigatorUserAgentIssue"|"GenericIssue"|"DeprecationIssue"|"ClientHintIssue"|"FederatedAuthRequestIssue"|"BounceTrackingIssue"|"CookieDeprecationMetadataIssue"|"StylesheetLoadingIssue"|"FederatedAuthUserInfoRequestIssue"|"PropertyRuleIssue"|"SharedDictionaryIssue"|"ElementAccessibilityIssue"|"SRIMessageSignatureIssue"|"UnencodedDigestIssue"|"ConnectionAllowlistIssue"|"UserReidentificationIssue"|"PermissionElementIssue"|"PerformanceIssue"|"SelectivePermissionsInterventionIssue"|"EmailVerificationRequestIssue"; + export type InspectorIssueCode = "CookieIssue"|"MixedContentIssue"|"BlockedByResponseIssue"|"HeavyAdIssue"|"ContentSecurityPolicyIssue"|"SharedArrayBufferIssue"|"CorsIssue"|"QuirksModeIssue"|"PartitioningBlobURLIssue"|"NavigatorUserAgentIssue"|"GenericIssue"|"DeprecationIssue"|"ClientHintIssue"|"FederatedAuthRequestIssue"|"BounceTrackingIssue"|"CookieDeprecationMetadataIssue"|"StylesheetLoadingIssue"|"FederatedAuthUserInfoRequestIssue"|"PropertyRuleIssue"|"SharedDictionaryIssue"|"ElementAccessibilityIssue"|"SRIMessageSignatureIssue"|"UnencodedDigestIssue"|"ConnectionAllowlistIssue"|"UserReidentificationIssue"|"PermissionElementIssue"|"PerformanceIssue"|"SelectivePermissionsInterventionIssue"|"EmailVerificationRequestIssue"|"LazyLoadImageIssue"; /** * This struct holds a list of optional fields with additional information specific to the kind of issue. When adding a new issue code, please also @@ -1231,7 +1237,6 @@ add a new optional field to this type. contentSecurityPolicyIssueDetails?: ContentSecurityPolicyIssueDetails; sharedArrayBufferIssueDetails?: SharedArrayBufferIssueDetails; corsIssueDetails?: CorsIssueDetails; - attributionReportingIssueDetails?: AttributionReportingIssueDetails; quirksModeIssueDetails?: QuirksModeIssueDetails; partitioningBlobURLIssueDetails?: PartitioningBlobURLIssueDetails; navigatorUserAgentIssueDetails?: NavigatorUserAgentIssueDetails; @@ -1254,6 +1259,7 @@ add a new optional field to this type. performanceIssueDetails?: PerformanceIssueDetails; selectivePermissionsInterventionIssueDetails?: SelectivePermissionsInterventionIssueDetails; emailVerificationRequestIssueDetails?: EmailVerificationRequestIssueDetails; + lazyLoadImageIssueDetails?: LazyLoadImageIssueDetails; } /** * A unique id for a DevTools inspector issue. Allows other entities (e.g. @@ -2005,7 +2011,6 @@ Note that userVisibleOnly = true is the only currently supported type. */ buckets: Bucket[]; } - export type PrivacySandboxAPI = "BiddingAndAuctionServices"|"TrustedKeyValue"; /** * Fired when page is about to start a download. @@ -2356,24 +2361,6 @@ without the site actually being enrolled. Only supported on page targets. } export type addPrivacySandboxEnrollmentOverrideReturnValue = { } - /** - * Configures encryption keys used with a given privacy sandbox API to talk -to a trusted coordinator. Since this is intended for test automation only, -coordinatorOrigin must be a .test domain. No existing coordinator -configuration for the origin may exist. - */ - export type addPrivacySandboxCoordinatorKeyConfigParameters = { - api: PrivacySandboxAPI; - coordinatorOrigin: string; - keyConfig: string; - /** - * BrowserContext to perform the action in. When omitted, default browser -context is used. - */ - browserContextId?: BrowserContextID; - } - export type addPrivacySandboxCoordinatorKeyConfigReturnValue = { - } } /** @@ -6778,6 +6765,44 @@ selectPrompt or cancelPrompt command. } } + /** + * This domain allows interacting with the Digital Credentials API for automation. + */ + export namespace DigitalCredentials { + /** + * The type of virtual wallet action. + */ + export type VirtualWalletAction = "respond"|"decline"|"wait"|"clear"; + + + /** + * Sets the behavior of the virtual wallet for digital credential requests +issued from this frame. + */ + export type setVirtualWalletBehaviorParameters = { + /** + * The action of the virtual wallet. + */ + action: VirtualWalletAction; + /** + * The protocol identifier (e.g. "openid4vp"). Required when |action| is +"respond", forbidden otherwise. + */ + protocol?: string; + /** + * The response data object returned by the wallet. +Required when |action| is "respond", forbidden otherwise. + */ + response?: { [key: string]: string }; + /** + * The frame to scope the virtual wallet behavior to. + */ + frameId?: Page.FrameId; + } + export type setVirtualWalletBehaviorReturnValue = { + } + } + /** * This domain emulates different environments for the page. */ @@ -11703,8 +11728,9 @@ details; this boolean is true if that value is populated. export type DeviceBoundSessionEventId = string; /** * A fetch result for a device bound session creation or refresh. +LINT.IfChange(DeviceBoundSessionFetchResult) */ - export type DeviceBoundSessionFetchResult = "Success"|"KeyError"|"SigningError"|"TransientSigningError"|"ServerRequestedTermination"|"InvalidSessionId"|"InvalidChallenge"|"TooManyChallenges"|"InvalidFetcherUrl"|"InvalidRefreshUrl"|"TransientHttpError"|"ScopeOriginSameSiteMismatch"|"RefreshUrlSameSiteMismatch"|"MismatchedSessionId"|"MissingScope"|"NoCredentials"|"SubdomainRegistrationWellKnownUnavailable"|"SubdomainRegistrationUnauthorized"|"SubdomainRegistrationWellKnownMalformed"|"SessionProviderWellKnownUnavailable"|"RelyingPartyWellKnownUnavailable"|"FederatedKeyThumbprintMismatch"|"InvalidFederatedSessionUrl"|"InvalidFederatedKey"|"TooManyRelyingOriginLabels"|"BoundCookieSetForbidden"|"NetError"|"ProxyError"|"EmptySessionConfig"|"InvalidCredentialsConfig"|"InvalidCredentialsType"|"InvalidCredentialsEmptyName"|"InvalidCredentialsCookie"|"PersistentHttpError"|"RegistrationAttemptedChallenge"|"InvalidScopeOrigin"|"ScopeOriginContainsPath"|"RefreshInitiatorNotString"|"RefreshInitiatorInvalidHostPattern"|"InvalidScopeSpecification"|"MissingScopeSpecificationType"|"EmptyScopeSpecificationDomain"|"EmptyScopeSpecificationPath"|"InvalidScopeSpecificationType"|"InvalidScopeIncludeSite"|"MissingScopeIncludeSite"|"FederatedNotAuthorizedByProvider"|"FederatedNotAuthorizedByRelyingParty"|"SessionProviderWellKnownMalformed"|"SessionProviderWellKnownHasProviderOrigin"|"RelyingPartyWellKnownMalformed"|"RelyingPartyWellKnownHasRelyingOrigins"|"InvalidFederatedSessionProviderSessionMissing"|"InvalidFederatedSessionWrongProviderOrigin"|"InvalidCredentialsCookieCreationTime"|"InvalidCredentialsCookieName"|"InvalidCredentialsCookieParsing"|"InvalidCredentialsCookieUnpermittedAttribute"|"InvalidCredentialsCookieInvalidDomain"|"InvalidCredentialsCookiePrefix"|"InvalidScopeRulePath"|"InvalidScopeRuleHostPattern"|"ScopeRuleOriginScopedHostPatternMismatch"|"ScopeRuleSiteScopedHostPatternMismatch"|"SigningQuotaExceeded"|"InvalidConfigJson"|"InvalidFederatedSessionProviderFailedToRestoreKey"|"FailedToUnwrapKey"|"SessionDeletedDuringRefresh"|"CrossOriginRegistrationSiteNotIncluded"; + export type DeviceBoundSessionFetchResult = "Success"|"SigningKeyGenerationError"|"AttestationKeyGenerationError"|"SigningError"|"TransientSigningError"|"ServerRequestedTermination"|"InvalidSessionId"|"InvalidChallenge"|"TooManyChallenges"|"InvalidFetcherUrl"|"InvalidRefreshUrl"|"TransientHttpError"|"ScopeOriginSameSiteMismatch"|"RefreshUrlSameSiteMismatch"|"MismatchedSessionId"|"MissingScope"|"NoCredentials"|"SubdomainRegistrationWellKnownUnavailable"|"SubdomainRegistrationUnauthorized"|"SubdomainRegistrationWellKnownMalformed"|"SessionProviderWellKnownUnavailable"|"RelyingPartyWellKnownUnavailable"|"FederatedKeyThumbprintMismatch"|"InvalidFederatedSessionUrl"|"InvalidFederatedKey"|"TooManyRelyingOriginLabels"|"BoundCookieSetForbidden"|"NetError"|"ProxyError"|"EmptySessionConfig"|"InvalidCredentialsConfig"|"InvalidCredentialsType"|"InvalidCredentialsEmptyName"|"InvalidCredentialsCookie"|"PersistentHttpError"|"RegistrationAttemptedChallenge"|"InvalidScopeOrigin"|"ScopeOriginContainsPath"|"RefreshInitiatorNotString"|"RefreshInitiatorInvalidHostPattern"|"InvalidScopeSpecification"|"MissingScopeSpecificationType"|"EmptyScopeSpecificationDomain"|"EmptyScopeSpecificationPath"|"InvalidScopeSpecificationType"|"InvalidScopeIncludeSite"|"MissingScopeIncludeSite"|"FederatedNotAuthorizedByProvider"|"FederatedNotAuthorizedByRelyingParty"|"SessionProviderWellKnownMalformed"|"SessionProviderWellKnownHasProviderOrigin"|"RelyingPartyWellKnownMalformed"|"RelyingPartyWellKnownHasRelyingOrigins"|"InvalidFederatedSessionProviderSessionMissing"|"InvalidFederatedSessionWrongProviderOrigin"|"InvalidCredentialsCookieCreationTime"|"InvalidCredentialsCookieName"|"InvalidCredentialsCookieParsing"|"InvalidCredentialsCookieUnpermittedAttribute"|"InvalidCredentialsCookieInvalidDomain"|"InvalidCredentialsCookiePrefix"|"InvalidScopeRulePath"|"InvalidScopeRuleHostPattern"|"ScopeRuleOriginScopedHostPatternMismatch"|"ScopeRuleSiteScopedHostPatternMismatch"|"SigningQuotaExceeded"|"InvalidConfigJson"|"InvalidFederatedSessionProviderFailedToRestoreKey"|"FailedToUnwrapKey"|"SessionDeletedDuringRefresh"|"CrossOriginRegistrationSiteNotIncluded"|"InvalidPreProvisionedKeyInitiatorMissing"|"PreProvisionedKeyAccessNotGranted"|"PreProvisionedKeyNotFound"; /** * Details about a failed device bound session network request. */ @@ -11754,7 +11780,7 @@ one. /** * The result of a refresh. */ - refreshResult: "Refreshed"|"InitializedService"|"Unreachable"|"ServerError"|"RefreshQuotaExceeded"|"FatalError"|"SigningQuotaExceeded"|"RefreshedAsWaiter"|"TransientSigningError"; + refreshResult: "Refreshed"|"InitializedService"|"Unreachable"|"ServerError"|"FatalError"|"SigningQuotaExceeded"|"RefreshedAsWaiter"|"TransientSigningError"; /** * If there was a fetch attempt, the result of that. */ @@ -14463,7 +14489,7 @@ supported yet. in services/network/public/cpp/permissions_policy/permissions_policy_features.json5. LINT.IfChange(PermissionsPolicyFeature) */ - export type PermissionsPolicyFeature = "accelerometer"|"all-screens-capture"|"ambient-light-sensor"|"aria-notify"|"attribution-reporting"|"autofill"|"autoplay"|"bluetooth"|"browsing-topics"|"camera"|"captured-surface-control"|"ch-dpr"|"ch-device-memory"|"ch-downlink"|"ch-ect"|"ch-prefers-color-scheme"|"ch-prefers-reduced-motion"|"ch-prefers-reduced-transparency"|"ch-rtt"|"ch-save-data"|"ch-ua"|"ch-ua-arch"|"ch-ua-bitness"|"ch-ua-high-entropy-values"|"ch-ua-platform"|"ch-ua-model"|"ch-ua-mobile"|"ch-ua-form-factors"|"ch-ua-full-version"|"ch-ua-full-version-list"|"ch-ua-platform-version"|"ch-ua-wow64"|"ch-viewport-height"|"ch-viewport-width"|"ch-width"|"clipboard-read"|"clipboard-write"|"compute-pressure"|"controlled-frame"|"cross-origin-isolated"|"deferred-fetch"|"deferred-fetch-minimal"|"device-attributes"|"digital-credentials-create"|"digital-credentials-get"|"direct-sockets"|"direct-sockets-multicast"|"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"|"identity-credentials-get"|"idle-detection"|"interest-cohort"|"join-ad-interest-group"|"keyboard-map"|"language-detector"|"language-model"|"local-fonts"|"local-network"|"local-network-access"|"loopback-network"|"magnetometer"|"manual-text"|"media-playback-while-not-visible"|"microphone"|"midi"|"on-device-speech-recognition"|"otp-credentials"|"payment"|"picture-in-picture"|"private-aggregation"|"private-state-token-issuance"|"private-state-token-redemption"|"publickey-credentials-create"|"publickey-credentials-get"|"record-ad-auction-events"|"rewriter"|"run-ad-auction"|"screen-wake-lock"|"serial"|"shared-storage"|"shared-storage-select-url"|"smart-card"|"speaker-selection"|"storage-access"|"sub-apps"|"summarizer"|"sync-xhr"|"tools"|"translator"|"unload"|"usb"|"usb-unrestricted"|"vertical-scroll"|"web-app-installation"|"webnn"|"web-printing"|"web-share"|"window-management"|"writer"|"xr-spatial-tracking"; + export type PermissionsPolicyFeature = "accelerometer"|"all-screens-capture"|"ambient-light-sensor"|"aria-notify"|"autofill"|"autoplay"|"bluetooth"|"browsing-topics"|"camera"|"captured-surface-control"|"ch-dpr"|"ch-device-memory"|"ch-downlink"|"ch-ect"|"ch-prefers-color-scheme"|"ch-prefers-reduced-motion"|"ch-prefers-reduced-transparency"|"ch-rtt"|"ch-save-data"|"ch-ua"|"ch-ua-arch"|"ch-ua-bitness"|"ch-ua-high-entropy-values"|"ch-ua-platform"|"ch-ua-model"|"ch-ua-mobile"|"ch-ua-form-factors"|"ch-ua-full-version"|"ch-ua-full-version-list"|"ch-ua-platform-version"|"ch-ua-wow64"|"ch-viewport-height"|"ch-viewport-width"|"ch-width"|"clipboard-read"|"clipboard-write"|"compute-pressure"|"controlled-frame"|"cross-origin-isolated"|"deferred-fetch"|"deferred-fetch-minimal"|"device-attributes"|"digital-credentials-create"|"digital-credentials-get"|"direct-sockets"|"direct-sockets-multicast"|"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"|"identity-credentials-get"|"idle-detection"|"interest-cohort"|"join-ad-interest-group"|"keyboard-map"|"language-detector"|"language-model"|"local-fonts"|"local-network"|"local-network-access"|"loopback-network"|"magnetometer"|"manual-text"|"media-playback-while-not-visible"|"microphone"|"midi"|"on-device-speech-recognition"|"otp-credentials"|"payment"|"picture-in-picture"|"private-aggregation"|"private-state-token-issuance"|"private-state-token-redemption"|"publickey-credentials-create"|"publickey-credentials-get"|"record-ad-auction-events"|"rewriter"|"run-ad-auction"|"screen-wake-lock"|"serial"|"shared-storage"|"shared-storage-select-url"|"smart-card"|"speaker-selection"|"storage-access"|"sub-apps"|"summarizer"|"sync-xhr"|"tools"|"translator"|"unload"|"usb"|"usb-unrestricted"|"vertical-scroll"|"web-app-installation"|"webnn"|"web-printing"|"web-share"|"window-management"|"writer"|"xr-spatial-tracking"; /** * Reason for a permissions policy feature to be disabled. */ @@ -17718,7 +17744,7 @@ Microsoft: https://learn.microsoft.com/en-us/windows/win32/api/winscard/nf-winsc /** * Enum of possible storage types. */ - export type StorageType = "cookies"|"file_systems"|"indexeddb"|"local_storage"|"shader_cache"|"websql"|"service_workers"|"cache_storage"|"interest_groups"|"shared_storage"|"storage_buckets"|"all"|"other"; + export type StorageType = "cookies"|"file_systems"|"indexeddb"|"local_storage"|"shader_cache"|"websql"|"service_workers"|"cache_storage"|"shared_storage"|"storage_buckets"|"all"|"other"; /** * Usage for a storage type. */ @@ -17740,26 +17766,10 @@ Tokens from that issuer. issuerOrigin: string; count: number; } - /** - * Protected audience interest group auction identifier. - */ - export type InterestGroupAuctionId = string; - /** - * Enum of interest group access types. - */ - export type InterestGroupAccessType = "join"|"leave"|"update"|"loaded"|"bid"|"win"|"additionalBid"|"additionalBidWin"|"topLevelBid"|"topLevelAdditionalBid"|"clear"; - /** - * Enum of auction events. - */ - export type InterestGroupAuctionEventType = "started"|"configResolved"; - /** - * Enum of network fetches auctions can do. - */ - export type InterestGroupAuctionFetchType = "bidderJs"|"bidderWasm"|"sellerJs"|"bidderTrustedSignals"|"sellerTrustedSignals"; /** * Enum of shared storage access scopes. */ - export type SharedStorageAccessScope = "window"|"sharedStorageWorklet"|"protectedAudienceWorklet"|"header"; + export type SharedStorageAccessScope = "window"|"sharedStorageWorklet"|"header"; /** * Enum of shared storage access methods. */ @@ -18056,63 +18066,6 @@ Present only for SharedStorageAccessMethod: batchUpdate. */ bucketId: string; } - /** - * One of the interest groups was accessed. Note that these events are global -to all targets sharing an interest group store. - */ - export type interestGroupAccessedPayload = { - accessTime: Network.TimeSinceEpoch; - type: InterestGroupAccessType; - ownerOrigin: string; - name: string; - /** - * For topLevelBid/topLevelAdditionalBid, and when appropriate, -win and additionalBidWin - */ - componentSellerOrigin?: string; - /** - * For bid or somethingBid event, if done locally and not on a server. - */ - bid?: number; - bidCurrency?: string; - /** - * For non-global events --- links to interestGroupAuctionEvent - */ - uniqueAuctionId?: InterestGroupAuctionId; - } - /** - * An auction involving interest groups is taking place. These events are -target-specific. - */ - export type interestGroupAuctionEventOccurredPayload = { - eventTime: Network.TimeSinceEpoch; - type: InterestGroupAuctionEventType; - uniqueAuctionId: InterestGroupAuctionId; - /** - * Set for child auctions. - */ - parentAuctionId?: InterestGroupAuctionId; - /** - * Set for started and configResolved - */ - auctionConfig?: { [key: string]: string }; - } - /** - * Specifies which auctions a particular network fetch may be related to, and -in what role. Note that it is not ordered with respect to -Network.requestWillBeSent (but will happen before loadingFinished -loadingFailed). - */ - export type interestGroupAuctionNetworkRequestCreatedPayload = { - type: InterestGroupAuctionFetchType; - requestId: Network.RequestId; - /** - * This is the set of the auctions using the worklet that issued this -request. In the case of trusted signals, it's possible that only some of -them actually care about the keys being queried. - */ - auctions: InterestGroupAuctionId[]; - } /** * Shared storage was accessed by the associated page. The following parameters are included in all events. @@ -18440,39 +18393,6 @@ Leaves other stored data, including the issuer's Redemption Records, intact. */ didDeleteTokens: boolean; } - /** - * Gets details for a named interest group. - */ - export type getInterestGroupDetailsParameters = { - ownerOrigin: string; - name: string; - } - export type getInterestGroupDetailsReturnValue = { - /** - * This largely corresponds to: -https://wicg.github.io/turtledove/#dictdef-generatebidinterestgroup -but has absolute expirationTime instead of relative lifetimeMs and -also adds joiningOrigin. - */ - details: { [key: string]: string }; - } - /** - * Enables/Disables issuing of interestGroupAccessed events. - */ - export type setInterestGroupTrackingParameters = { - enable: boolean; - } - export type setInterestGroupTrackingReturnValue = { - } - /** - * Enables/Disables issuing of interestGroupAuctionEventOccurred and -interestGroupAuctionNetworkRequestCreated. - */ - export type setInterestGroupAuctionTrackingParameters = { - enable: boolean; - } - export type setInterestGroupAuctionTrackingReturnValue = { - } /** * Gets metadata for an origin's shared storage. */ @@ -18573,13 +18493,6 @@ session. The effective Related Website Sets will not change during a browser ses export type getRelatedWebsiteSetsReturnValue = { sets: RelatedWebsiteSet[]; } - export type setProtectedAudienceKAnonymityParameters = { - owner: string; - name: string; - hashes: binary[]; - } - export type setProtectedAudienceKAnonymityReturnValue = { - } } /** @@ -19897,6 +19810,13 @@ https://fidoalliance.org/specs/fido-v2.2-rd-20241003/fido-client-to-authenticato Defaults to false. */ hasHmacSecretMc?: boolean; + /** + * If set to true, the authenticator will support the cmtgKey (Credential +Manager Trust Group Key) extension. +https://github.com/w3c/webauthn/pull/2377 +Defaults to false. + */ + hasCmtgKey?: boolean; /** * If set to true, tests of user presence will succeed immediately. Otherwise, they will not be resolved. Defaults to true. @@ -19938,11 +19858,12 @@ credential to a specific user. */ userHandle?: binary; /** - * Signature counter. This is incremented by one for each successful -assertion. + * Signature counter. Must be equal to or greater than -1. +If -1, the credential won't have an associated signature counter, and +every assertion operation will report a value of 0. See https://w3c.github.io/webauthn/#signature-counter */ - signCount: number; + signCount?: number; /** * The large blob associated with the credential. See https://w3c.github.io/webauthn/#sctn-large-blob-extension @@ -19971,6 +19892,18 @@ not set. https://w3c.github.io/webauthn/#dom-publickeycredentialuserentity-displayname */ userDisplayName?: string; + /** + * The CMTG keys associated with the credential. + */ + cmtgKeys?: binary[]; + /** + * The 0-based index of the active key in cmtgKeys. + */ + activeCmtgKeyIndex?: number; + /** + * If true, the authenticator will generate a new CMTG key on the next operation. + */ + generateCmtgKeyOnNextOperation?: boolean; } /** @@ -20142,6 +20075,15 @@ https://w3c.github.io/webauthn/#sctn-automation-set-credential-properties credentialId: binary; backupEligibility?: boolean; backupState?: boolean; + activeCmtgKeyIndex?: number; + generateCmtgKeyOnNextOperation?: boolean; + /** + * Must be equal to or greater than -1. +If -1, the signature counter is removed from the credential, and every +assertion operation will report a value of 0. +See https://w3c.github.io/webauthn/#signature-counter + */ + signCount?: number; } export type setCredentialPropertiesReturnValue = { } @@ -23196,9 +23138,6 @@ Error was thrown. "Storage.cacheStorageListUpdated": Storage.cacheStorageListUpdatedPayload; "Storage.indexedDBContentUpdated": Storage.indexedDBContentUpdatedPayload; "Storage.indexedDBListUpdated": Storage.indexedDBListUpdatedPayload; - "Storage.interestGroupAccessed": Storage.interestGroupAccessedPayload; - "Storage.interestGroupAuctionEventOccurred": Storage.interestGroupAuctionEventOccurredPayload; - "Storage.interestGroupAuctionNetworkRequestCreated": Storage.interestGroupAuctionNetworkRequestCreatedPayload; "Storage.sharedStorageAccessed": Storage.sharedStorageAccessedPayload; "Storage.sharedStorageWorkletOperationExecutionFinished": Storage.sharedStorageWorkletOperationExecutionFinishedPayload; "Storage.storageBucketCreatedOrUpdated": Storage.storageBucketCreatedOrUpdatedPayload; @@ -23435,9 +23374,6 @@ Error was thrown. ["Storage.cacheStorageListUpdated"]: [Storage.cacheStorageListUpdatedPayload]; ["Storage.indexedDBContentUpdated"]: [Storage.indexedDBContentUpdatedPayload]; ["Storage.indexedDBListUpdated"]: [Storage.indexedDBListUpdatedPayload]; - ["Storage.interestGroupAccessed"]: [Storage.interestGroupAccessedPayload]; - ["Storage.interestGroupAuctionEventOccurred"]: [Storage.interestGroupAuctionEventOccurredPayload]; - ["Storage.interestGroupAuctionNetworkRequestCreated"]: [Storage.interestGroupAuctionNetworkRequestCreatedPayload]; ["Storage.sharedStorageAccessed"]: [Storage.sharedStorageAccessedPayload]; ["Storage.sharedStorageWorkletOperationExecutionFinished"]: [Storage.sharedStorageWorkletOperationExecutionFinishedPayload]; ["Storage.storageBucketCreatedOrUpdated"]: [Storage.storageBucketCreatedOrUpdatedPayload]; @@ -23563,7 +23499,6 @@ Error was thrown. "Browser.setDockTile": Browser.setDockTileParameters; "Browser.executeBrowserCommand": Browser.executeBrowserCommandParameters; "Browser.addPrivacySandboxEnrollmentOverride": Browser.addPrivacySandboxEnrollmentOverrideParameters; - "Browser.addPrivacySandboxCoordinatorKeyConfig": Browser.addPrivacySandboxCoordinatorKeyConfigParameters; "CSS.addRule": CSS.addRuleParameters; "CSS.collectClassNames": CSS.collectClassNamesParameters; "CSS.createStyleSheet": CSS.createStyleSheetParameters; @@ -23694,6 +23629,7 @@ Error was thrown. "DeviceAccess.cancelPrompt": DeviceAccess.cancelPromptParameters; "DeviceOrientation.clearDeviceOrientationOverride": DeviceOrientation.clearDeviceOrientationOverrideParameters; "DeviceOrientation.setDeviceOrientationOverride": DeviceOrientation.setDeviceOrientationOverrideParameters; + "DigitalCredentials.setVirtualWalletBehavior": DigitalCredentials.setVirtualWalletBehaviorParameters; "Emulation.canEmulate": Emulation.canEmulateParameters; "Emulation.clearDeviceMetricsOverride": Emulation.clearDeviceMetricsOverrideParameters; "Emulation.clearGeolocationOverride": Emulation.clearGeolocationOverrideParameters; @@ -24021,9 +23957,6 @@ Error was thrown. "Storage.untrackIndexedDBForStorageKey": Storage.untrackIndexedDBForStorageKeyParameters; "Storage.getTrustTokens": Storage.getTrustTokensParameters; "Storage.clearTrustTokens": Storage.clearTrustTokensParameters; - "Storage.getInterestGroupDetails": Storage.getInterestGroupDetailsParameters; - "Storage.setInterestGroupTracking": Storage.setInterestGroupTrackingParameters; - "Storage.setInterestGroupAuctionTracking": Storage.setInterestGroupAuctionTrackingParameters; "Storage.getSharedStorageMetadata": Storage.getSharedStorageMetadataParameters; "Storage.getSharedStorageEntries": Storage.getSharedStorageEntriesParameters; "Storage.setSharedStorageEntry": Storage.setSharedStorageEntryParameters; @@ -24035,7 +23968,6 @@ Error was thrown. "Storage.deleteStorageBucket": Storage.deleteStorageBucketParameters; "Storage.runBounceTrackingMitigations": Storage.runBounceTrackingMitigationsParameters; "Storage.getRelatedWebsiteSets": Storage.getRelatedWebsiteSetsParameters; - "Storage.setProtectedAudienceKAnonymity": Storage.setProtectedAudienceKAnonymityParameters; "SystemInfo.getInfo": SystemInfo.getInfoParameters; "SystemInfo.getFeatureState": SystemInfo.getFeatureStateParameters; "SystemInfo.getProcessInfo": SystemInfo.getProcessInfoParameters; @@ -24234,7 +24166,6 @@ Error was thrown. "Browser.setDockTile": Browser.setDockTileReturnValue; "Browser.executeBrowserCommand": Browser.executeBrowserCommandReturnValue; "Browser.addPrivacySandboxEnrollmentOverride": Browser.addPrivacySandboxEnrollmentOverrideReturnValue; - "Browser.addPrivacySandboxCoordinatorKeyConfig": Browser.addPrivacySandboxCoordinatorKeyConfigReturnValue; "CSS.addRule": CSS.addRuleReturnValue; "CSS.collectClassNames": CSS.collectClassNamesReturnValue; "CSS.createStyleSheet": CSS.createStyleSheetReturnValue; @@ -24365,6 +24296,7 @@ Error was thrown. "DeviceAccess.cancelPrompt": DeviceAccess.cancelPromptReturnValue; "DeviceOrientation.clearDeviceOrientationOverride": DeviceOrientation.clearDeviceOrientationOverrideReturnValue; "DeviceOrientation.setDeviceOrientationOverride": DeviceOrientation.setDeviceOrientationOverrideReturnValue; + "DigitalCredentials.setVirtualWalletBehavior": DigitalCredentials.setVirtualWalletBehaviorReturnValue; "Emulation.canEmulate": Emulation.canEmulateReturnValue; "Emulation.clearDeviceMetricsOverride": Emulation.clearDeviceMetricsOverrideReturnValue; "Emulation.clearGeolocationOverride": Emulation.clearGeolocationOverrideReturnValue; @@ -24692,9 +24624,6 @@ Error was thrown. "Storage.untrackIndexedDBForStorageKey": Storage.untrackIndexedDBForStorageKeyReturnValue; "Storage.getTrustTokens": Storage.getTrustTokensReturnValue; "Storage.clearTrustTokens": Storage.clearTrustTokensReturnValue; - "Storage.getInterestGroupDetails": Storage.getInterestGroupDetailsReturnValue; - "Storage.setInterestGroupTracking": Storage.setInterestGroupTrackingReturnValue; - "Storage.setInterestGroupAuctionTracking": Storage.setInterestGroupAuctionTrackingReturnValue; "Storage.getSharedStorageMetadata": Storage.getSharedStorageMetadataReturnValue; "Storage.getSharedStorageEntries": Storage.getSharedStorageEntriesReturnValue; "Storage.setSharedStorageEntry": Storage.setSharedStorageEntryReturnValue; @@ -24706,7 +24635,6 @@ Error was thrown. "Storage.deleteStorageBucket": Storage.deleteStorageBucketReturnValue; "Storage.runBounceTrackingMitigations": Storage.runBounceTrackingMitigationsReturnValue; "Storage.getRelatedWebsiteSets": Storage.getRelatedWebsiteSetsReturnValue; - "Storage.setProtectedAudienceKAnonymity": Storage.setProtectedAudienceKAnonymityReturnValue; "SystemInfo.getInfo": SystemInfo.getInfoReturnValue; "SystemInfo.getFeatureState": SystemInfo.getFeatureStateReturnValue; "SystemInfo.getProcessInfo": SystemInfo.getProcessInfoReturnValue; diff --git a/packages/playwright-core/src/tools/backend/response.ts b/packages/playwright-core/src/tools/backend/response.ts index 5a35236996240..725edcdaaff78 100644 --- a/packages/playwright-core/src/tools/backend/response.ts +++ b/packages/playwright-core/src/tools/backend/response.ts @@ -270,7 +270,7 @@ export class Response { addSection('Ran Playwright code', this._code, 'js'); // Render tab titles upon changes or when more than one tab. - const tabSnapshot = this._context.currentTab() ? await this._context.currentTabOrDie().captureSnapshot(this._includeSnapshotRoot, this._includeSnapshotDepth, this._includeSnapshotBoxes, this._clientWorkspace) : undefined; + const tabSnapshot = this._context.currentTab() ? await this._context.currentTabOrDie().captureSnapshot(this._includeSnapshotRoot, this._includeSnapshotDepth, this._includeSnapshotBoxes, this._clientWorkspace, this._includeSnapshot !== 'none') : undefined; const tabHeaders = await Promise.all(this._context.tabs().map(tab => tab.headerSnapshot())); if (this._includeSnapshot !== 'none' || tabHeaders.some(header => header.changed)) { if (tabHeaders.length !== 1) diff --git a/packages/playwright-core/src/tools/backend/tab.ts b/packages/playwright-core/src/tools/backend/tab.ts index 32784e31d9112..a23a6a1a91f23 100644 --- a/packages/playwright-core/src/tools/backend/tab.ts +++ b/packages/playwright-core/src/tools/backend/tab.ts @@ -411,19 +411,31 @@ export class Tab extends EventEmitter { this._requests.length = 0; } - async captureSnapshot(root: playwright.Locator | undefined, depth: number | undefined, boxes: boolean | undefined, relativeTo: string | undefined): Promise { + async captureSnapshot(root: playwright.Locator | undefined, depth: number | undefined, boxes: boolean | undefined, relativeTo: string | undefined, includeAria: boolean = true): Promise { await this._initializedPromise; let tabSnapshot: TabSnapshot | undefined; - const modalStates = await this._raceAgainstModalStates(async () => { - const ariaSnapshot = root - ? await root.ariaSnapshot({ mode: 'ai', depth, boxes }) - : await this.page.ariaSnapshot({ mode: 'ai', depth, boxes }); - tabSnapshot = { - ariaSnapshot, - modalStates: [], - events: [], - }; - }); + let modalStates: ModalState[] = []; + if (includeAria) { + modalStates = await this._raceAgainstModalStates(async () => { + const ariaSnapshot = root + ? await root.ariaSnapshot({ mode: 'ai', depth, boxes }) + : await this.page.ariaSnapshot({ mode: 'ai', depth, boxes }); + tabSnapshot = { + ariaSnapshot, + modalStates: [], + events: [], + }; + }); + } else if (this.modalStates().length) { + // Matches the aria path's modal fallback below, without the race: there + // is no tree walk for a modal to interrupt. + modalStates = this.modalStates(); + } else { + // The caller will not render the aria snapshot, so skip the accessibility + // tree walk, which dominates response latency on heavy pages. Console and + // events are still reported via the shared tail below. + tabSnapshot = { ariaSnapshot: '', modalStates: [], events: [] }; + } if (tabSnapshot) { tabSnapshot.consoleLink = await this._consoleLog.take(relativeTo); tabSnapshot.events = this._recentEventEntries; diff --git a/packages/playwright-core/types/protocol.d.ts b/packages/playwright-core/types/protocol.d.ts index 858642160b282..680add356a93a 100644 --- a/packages/playwright-core/types/protocol.d.ts +++ b/packages/playwright-core/types/protocol.d.ts @@ -828,7 +828,7 @@ may be used by the front-end as additional context. sourceCodeLocation?: SourceCodeLocation; } export type MixedContentResolutionStatus = "MixedContentBlocked"|"MixedContentAutomaticallyUpgraded"|"MixedContentWarning"; - export type MixedContentResourceType = "AttributionSrc"|"Audio"|"Beacon"|"CSPReport"|"Download"|"EventSource"|"Favicon"|"Font"|"Form"|"Frame"|"Image"|"Import"|"JSON"|"Manifest"|"Ping"|"PluginData"|"PluginResource"|"Prefetch"|"Resource"|"Script"|"ServiceWorker"|"SharedWorker"|"SpeculationRules"|"Stylesheet"|"Track"|"Video"|"Worker"|"XMLHttpRequest"|"XSLT"; + export type MixedContentResourceType = "Audio"|"Beacon"|"CSPReport"|"Download"|"EventSource"|"Favicon"|"Font"|"Form"|"Frame"|"Image"|"Import"|"JSON"|"Manifest"|"Ping"|"PluginData"|"PluginResource"|"Prefetch"|"Resource"|"Script"|"ServiceWorker"|"SharedWorker"|"SpeculationRules"|"Stylesheet"|"Track"|"Video"|"Worker"|"XMLHttpRequest"|"XSLT"; export interface MixedContentIssueDetails { /** * The type of resource causing the mixed content issue (css, js, iframe, @@ -936,21 +936,10 @@ CORS RFC1918 enforcement. resourceIPAddressSpace?: Network.IPAddressSpace; clientSecurityState?: Network.ClientSecurityState; } - export type AttributionReportingIssueType = "PermissionPolicyDisabled"|"UntrustworthyReportingOrigin"|"InsecureContext"|"InvalidHeader"|"InvalidRegisterTriggerHeader"|"SourceAndTriggerHeaders"|"SourceIgnored"|"TriggerIgnored"|"OsSourceIgnored"|"OsTriggerIgnored"|"InvalidRegisterOsSourceHeader"|"InvalidRegisterOsTriggerHeader"|"WebAndOsHeaders"|"NoWebOrOsSupport"|"NavigationRegistrationWithoutTransientUserActivation"|"InvalidInfoHeader"|"NoRegisterSourceHeader"|"NoRegisterTriggerHeader"|"NoRegisterOsSourceHeader"|"NoRegisterOsTriggerHeader"|"NavigationRegistrationUniqueScopeAlreadySet"; export type SharedDictionaryError = "UseErrorCrossOriginNoCorsRequest"|"UseErrorDictionaryLoadFailure"|"UseErrorMatchingDictionaryNotUsed"|"UseErrorUnexpectedContentDictionaryHeader"|"WriteErrorCossOriginNoCorsRequest"|"WriteErrorDisallowedBySettings"|"WriteErrorExpiredResponse"|"WriteErrorFeatureDisabled"|"WriteErrorInsufficientResources"|"WriteErrorInvalidMatchField"|"WriteErrorInvalidStructuredHeader"|"WriteErrorInvalidTTLField"|"WriteErrorNavigationRequest"|"WriteErrorNoMatchField"|"WriteErrorNonIntegerTTLField"|"WriteErrorNonListMatchDestField"|"WriteErrorNonSecureContext"|"WriteErrorNonStringIdField"|"WriteErrorNonStringInMatchDestList"|"WriteErrorInvalidMatchDestList"|"WriteErrorNonStringMatchField"|"WriteErrorNonTokenTypeField"|"WriteErrorRequestAborted"|"WriteErrorShuttingDown"|"WriteErrorTooLongIdField"|"WriteErrorUnsupportedType"; export type SRIMessageSignatureError = "MissingSignatureHeader"|"MissingSignatureInputHeader"|"InvalidSignatureHeader"|"InvalidSignatureInputHeader"|"SignatureHeaderValueIsNotByteSequence"|"SignatureHeaderValueIsParameterized"|"SignatureHeaderValueIsIncorrectLength"|"SignatureInputHeaderMissingLabel"|"SignatureInputHeaderValueNotInnerList"|"SignatureInputHeaderValueMissingComponents"|"SignatureInputHeaderInvalidComponentType"|"SignatureInputHeaderInvalidComponentName"|"SignatureInputHeaderInvalidHeaderComponentParameter"|"SignatureInputHeaderInvalidDerivedComponentParameter"|"SignatureInputHeaderKeyIdLength"|"SignatureInputHeaderInvalidParameter"|"SignatureInputHeaderMissingRequiredParameters"|"ValidationFailedSignatureExpired"|"ValidationFailedInvalidLength"|"ValidationFailedSignatureMismatch"|"ValidationFailedIntegrityMismatch"|"SignatureBaseUnknownDerivedComponent"|"SignatureBaseMissingHeader"|"SignatureBaseInvalidUnencodedDigest"|"SignatureBaseUnsupportedComponent"; export type UnencodedDigestError = "MalformedDictionary"|"UnknownAlgorithm"|"IncorrectDigestType"|"IncorrectDigestLength"; export type ConnectionAllowlistError = "InvalidHeader"|"MoreThanOneList"|"ItemNotInnerList"|"InvalidAllowlistItemType"|"ReportingEndpointNotToken"|"InvalidUrlPattern"; - /** - * Details for issues around "Attribution Reporting API" usage. -Explainer: https://github.com/WICG/attribution-reporting-api - */ - export interface AttributionReportingIssueDetails { - violationType: AttributionReportingIssueType; - request?: AffectedRequest; - violatingNodeId?: DOM.BackendNodeId; - invalidParameter?: string; - } /** * Details for issues about documents in Quirks Mode or Limited Quirks Mode that affects page layouting. @@ -1212,12 +1201,29 @@ Selective Permissions Intervention. */ stackTrace?: Runtime.StackTrace; } + /** + * Details for issues about lazy-loaded images without explicit dimensions. + */ + export interface LazyLoadImageIssueDetails { + /** + * DOM node of the problematic HTMLImageElement. + */ + nodeId: DOM.BackendNodeId; + /** + * URL or src attribute of the image. + */ + url: string; + /** + * Frame containing the image. + */ + frameId: Page.FrameId; + } /** * A unique identifier for the type of issue. Each type may use one of the optional fields in InspectorIssueDetails to convey more specific information about the kind of issue. */ - export type InspectorIssueCode = "CookieIssue"|"MixedContentIssue"|"BlockedByResponseIssue"|"HeavyAdIssue"|"ContentSecurityPolicyIssue"|"SharedArrayBufferIssue"|"CorsIssue"|"AttributionReportingIssue"|"QuirksModeIssue"|"PartitioningBlobURLIssue"|"NavigatorUserAgentIssue"|"GenericIssue"|"DeprecationIssue"|"ClientHintIssue"|"FederatedAuthRequestIssue"|"BounceTrackingIssue"|"CookieDeprecationMetadataIssue"|"StylesheetLoadingIssue"|"FederatedAuthUserInfoRequestIssue"|"PropertyRuleIssue"|"SharedDictionaryIssue"|"ElementAccessibilityIssue"|"SRIMessageSignatureIssue"|"UnencodedDigestIssue"|"ConnectionAllowlistIssue"|"UserReidentificationIssue"|"PermissionElementIssue"|"PerformanceIssue"|"SelectivePermissionsInterventionIssue"|"EmailVerificationRequestIssue"; + export type InspectorIssueCode = "CookieIssue"|"MixedContentIssue"|"BlockedByResponseIssue"|"HeavyAdIssue"|"ContentSecurityPolicyIssue"|"SharedArrayBufferIssue"|"CorsIssue"|"QuirksModeIssue"|"PartitioningBlobURLIssue"|"NavigatorUserAgentIssue"|"GenericIssue"|"DeprecationIssue"|"ClientHintIssue"|"FederatedAuthRequestIssue"|"BounceTrackingIssue"|"CookieDeprecationMetadataIssue"|"StylesheetLoadingIssue"|"FederatedAuthUserInfoRequestIssue"|"PropertyRuleIssue"|"SharedDictionaryIssue"|"ElementAccessibilityIssue"|"SRIMessageSignatureIssue"|"UnencodedDigestIssue"|"ConnectionAllowlistIssue"|"UserReidentificationIssue"|"PermissionElementIssue"|"PerformanceIssue"|"SelectivePermissionsInterventionIssue"|"EmailVerificationRequestIssue"|"LazyLoadImageIssue"; /** * This struct holds a list of optional fields with additional information specific to the kind of issue. When adding a new issue code, please also @@ -1231,7 +1237,6 @@ add a new optional field to this type. contentSecurityPolicyIssueDetails?: ContentSecurityPolicyIssueDetails; sharedArrayBufferIssueDetails?: SharedArrayBufferIssueDetails; corsIssueDetails?: CorsIssueDetails; - attributionReportingIssueDetails?: AttributionReportingIssueDetails; quirksModeIssueDetails?: QuirksModeIssueDetails; partitioningBlobURLIssueDetails?: PartitioningBlobURLIssueDetails; navigatorUserAgentIssueDetails?: NavigatorUserAgentIssueDetails; @@ -1254,6 +1259,7 @@ add a new optional field to this type. performanceIssueDetails?: PerformanceIssueDetails; selectivePermissionsInterventionIssueDetails?: SelectivePermissionsInterventionIssueDetails; emailVerificationRequestIssueDetails?: EmailVerificationRequestIssueDetails; + lazyLoadImageIssueDetails?: LazyLoadImageIssueDetails; } /** * A unique id for a DevTools inspector issue. Allows other entities (e.g. @@ -2005,7 +2011,6 @@ Note that userVisibleOnly = true is the only currently supported type. */ buckets: Bucket[]; } - export type PrivacySandboxAPI = "BiddingAndAuctionServices"|"TrustedKeyValue"; /** * Fired when page is about to start a download. @@ -2356,24 +2361,6 @@ without the site actually being enrolled. Only supported on page targets. } export type addPrivacySandboxEnrollmentOverrideReturnValue = { } - /** - * Configures encryption keys used with a given privacy sandbox API to talk -to a trusted coordinator. Since this is intended for test automation only, -coordinatorOrigin must be a .test domain. No existing coordinator -configuration for the origin may exist. - */ - export type addPrivacySandboxCoordinatorKeyConfigParameters = { - api: PrivacySandboxAPI; - coordinatorOrigin: string; - keyConfig: string; - /** - * BrowserContext to perform the action in. When omitted, default browser -context is used. - */ - browserContextId?: BrowserContextID; - } - export type addPrivacySandboxCoordinatorKeyConfigReturnValue = { - } } /** @@ -6778,6 +6765,44 @@ selectPrompt or cancelPrompt command. } } + /** + * This domain allows interacting with the Digital Credentials API for automation. + */ + export namespace DigitalCredentials { + /** + * The type of virtual wallet action. + */ + export type VirtualWalletAction = "respond"|"decline"|"wait"|"clear"; + + + /** + * Sets the behavior of the virtual wallet for digital credential requests +issued from this frame. + */ + export type setVirtualWalletBehaviorParameters = { + /** + * The action of the virtual wallet. + */ + action: VirtualWalletAction; + /** + * The protocol identifier (e.g. "openid4vp"). Required when |action| is +"respond", forbidden otherwise. + */ + protocol?: string; + /** + * The response data object returned by the wallet. +Required when |action| is "respond", forbidden otherwise. + */ + response?: { [key: string]: string }; + /** + * The frame to scope the virtual wallet behavior to. + */ + frameId?: Page.FrameId; + } + export type setVirtualWalletBehaviorReturnValue = { + } + } + /** * This domain emulates different environments for the page. */ @@ -11703,8 +11728,9 @@ details; this boolean is true if that value is populated. export type DeviceBoundSessionEventId = string; /** * A fetch result for a device bound session creation or refresh. +LINT.IfChange(DeviceBoundSessionFetchResult) */ - export type DeviceBoundSessionFetchResult = "Success"|"KeyError"|"SigningError"|"TransientSigningError"|"ServerRequestedTermination"|"InvalidSessionId"|"InvalidChallenge"|"TooManyChallenges"|"InvalidFetcherUrl"|"InvalidRefreshUrl"|"TransientHttpError"|"ScopeOriginSameSiteMismatch"|"RefreshUrlSameSiteMismatch"|"MismatchedSessionId"|"MissingScope"|"NoCredentials"|"SubdomainRegistrationWellKnownUnavailable"|"SubdomainRegistrationUnauthorized"|"SubdomainRegistrationWellKnownMalformed"|"SessionProviderWellKnownUnavailable"|"RelyingPartyWellKnownUnavailable"|"FederatedKeyThumbprintMismatch"|"InvalidFederatedSessionUrl"|"InvalidFederatedKey"|"TooManyRelyingOriginLabels"|"BoundCookieSetForbidden"|"NetError"|"ProxyError"|"EmptySessionConfig"|"InvalidCredentialsConfig"|"InvalidCredentialsType"|"InvalidCredentialsEmptyName"|"InvalidCredentialsCookie"|"PersistentHttpError"|"RegistrationAttemptedChallenge"|"InvalidScopeOrigin"|"ScopeOriginContainsPath"|"RefreshInitiatorNotString"|"RefreshInitiatorInvalidHostPattern"|"InvalidScopeSpecification"|"MissingScopeSpecificationType"|"EmptyScopeSpecificationDomain"|"EmptyScopeSpecificationPath"|"InvalidScopeSpecificationType"|"InvalidScopeIncludeSite"|"MissingScopeIncludeSite"|"FederatedNotAuthorizedByProvider"|"FederatedNotAuthorizedByRelyingParty"|"SessionProviderWellKnownMalformed"|"SessionProviderWellKnownHasProviderOrigin"|"RelyingPartyWellKnownMalformed"|"RelyingPartyWellKnownHasRelyingOrigins"|"InvalidFederatedSessionProviderSessionMissing"|"InvalidFederatedSessionWrongProviderOrigin"|"InvalidCredentialsCookieCreationTime"|"InvalidCredentialsCookieName"|"InvalidCredentialsCookieParsing"|"InvalidCredentialsCookieUnpermittedAttribute"|"InvalidCredentialsCookieInvalidDomain"|"InvalidCredentialsCookiePrefix"|"InvalidScopeRulePath"|"InvalidScopeRuleHostPattern"|"ScopeRuleOriginScopedHostPatternMismatch"|"ScopeRuleSiteScopedHostPatternMismatch"|"SigningQuotaExceeded"|"InvalidConfigJson"|"InvalidFederatedSessionProviderFailedToRestoreKey"|"FailedToUnwrapKey"|"SessionDeletedDuringRefresh"|"CrossOriginRegistrationSiteNotIncluded"; + export type DeviceBoundSessionFetchResult = "Success"|"SigningKeyGenerationError"|"AttestationKeyGenerationError"|"SigningError"|"TransientSigningError"|"ServerRequestedTermination"|"InvalidSessionId"|"InvalidChallenge"|"TooManyChallenges"|"InvalidFetcherUrl"|"InvalidRefreshUrl"|"TransientHttpError"|"ScopeOriginSameSiteMismatch"|"RefreshUrlSameSiteMismatch"|"MismatchedSessionId"|"MissingScope"|"NoCredentials"|"SubdomainRegistrationWellKnownUnavailable"|"SubdomainRegistrationUnauthorized"|"SubdomainRegistrationWellKnownMalformed"|"SessionProviderWellKnownUnavailable"|"RelyingPartyWellKnownUnavailable"|"FederatedKeyThumbprintMismatch"|"InvalidFederatedSessionUrl"|"InvalidFederatedKey"|"TooManyRelyingOriginLabels"|"BoundCookieSetForbidden"|"NetError"|"ProxyError"|"EmptySessionConfig"|"InvalidCredentialsConfig"|"InvalidCredentialsType"|"InvalidCredentialsEmptyName"|"InvalidCredentialsCookie"|"PersistentHttpError"|"RegistrationAttemptedChallenge"|"InvalidScopeOrigin"|"ScopeOriginContainsPath"|"RefreshInitiatorNotString"|"RefreshInitiatorInvalidHostPattern"|"InvalidScopeSpecification"|"MissingScopeSpecificationType"|"EmptyScopeSpecificationDomain"|"EmptyScopeSpecificationPath"|"InvalidScopeSpecificationType"|"InvalidScopeIncludeSite"|"MissingScopeIncludeSite"|"FederatedNotAuthorizedByProvider"|"FederatedNotAuthorizedByRelyingParty"|"SessionProviderWellKnownMalformed"|"SessionProviderWellKnownHasProviderOrigin"|"RelyingPartyWellKnownMalformed"|"RelyingPartyWellKnownHasRelyingOrigins"|"InvalidFederatedSessionProviderSessionMissing"|"InvalidFederatedSessionWrongProviderOrigin"|"InvalidCredentialsCookieCreationTime"|"InvalidCredentialsCookieName"|"InvalidCredentialsCookieParsing"|"InvalidCredentialsCookieUnpermittedAttribute"|"InvalidCredentialsCookieInvalidDomain"|"InvalidCredentialsCookiePrefix"|"InvalidScopeRulePath"|"InvalidScopeRuleHostPattern"|"ScopeRuleOriginScopedHostPatternMismatch"|"ScopeRuleSiteScopedHostPatternMismatch"|"SigningQuotaExceeded"|"InvalidConfigJson"|"InvalidFederatedSessionProviderFailedToRestoreKey"|"FailedToUnwrapKey"|"SessionDeletedDuringRefresh"|"CrossOriginRegistrationSiteNotIncluded"|"InvalidPreProvisionedKeyInitiatorMissing"|"PreProvisionedKeyAccessNotGranted"|"PreProvisionedKeyNotFound"; /** * Details about a failed device bound session network request. */ @@ -11754,7 +11780,7 @@ one. /** * The result of a refresh. */ - refreshResult: "Refreshed"|"InitializedService"|"Unreachable"|"ServerError"|"RefreshQuotaExceeded"|"FatalError"|"SigningQuotaExceeded"|"RefreshedAsWaiter"|"TransientSigningError"; + refreshResult: "Refreshed"|"InitializedService"|"Unreachable"|"ServerError"|"FatalError"|"SigningQuotaExceeded"|"RefreshedAsWaiter"|"TransientSigningError"; /** * If there was a fetch attempt, the result of that. */ @@ -14463,7 +14489,7 @@ supported yet. in services/network/public/cpp/permissions_policy/permissions_policy_features.json5. LINT.IfChange(PermissionsPolicyFeature) */ - export type PermissionsPolicyFeature = "accelerometer"|"all-screens-capture"|"ambient-light-sensor"|"aria-notify"|"attribution-reporting"|"autofill"|"autoplay"|"bluetooth"|"browsing-topics"|"camera"|"captured-surface-control"|"ch-dpr"|"ch-device-memory"|"ch-downlink"|"ch-ect"|"ch-prefers-color-scheme"|"ch-prefers-reduced-motion"|"ch-prefers-reduced-transparency"|"ch-rtt"|"ch-save-data"|"ch-ua"|"ch-ua-arch"|"ch-ua-bitness"|"ch-ua-high-entropy-values"|"ch-ua-platform"|"ch-ua-model"|"ch-ua-mobile"|"ch-ua-form-factors"|"ch-ua-full-version"|"ch-ua-full-version-list"|"ch-ua-platform-version"|"ch-ua-wow64"|"ch-viewport-height"|"ch-viewport-width"|"ch-width"|"clipboard-read"|"clipboard-write"|"compute-pressure"|"controlled-frame"|"cross-origin-isolated"|"deferred-fetch"|"deferred-fetch-minimal"|"device-attributes"|"digital-credentials-create"|"digital-credentials-get"|"direct-sockets"|"direct-sockets-multicast"|"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"|"identity-credentials-get"|"idle-detection"|"interest-cohort"|"join-ad-interest-group"|"keyboard-map"|"language-detector"|"language-model"|"local-fonts"|"local-network"|"local-network-access"|"loopback-network"|"magnetometer"|"manual-text"|"media-playback-while-not-visible"|"microphone"|"midi"|"on-device-speech-recognition"|"otp-credentials"|"payment"|"picture-in-picture"|"private-aggregation"|"private-state-token-issuance"|"private-state-token-redemption"|"publickey-credentials-create"|"publickey-credentials-get"|"record-ad-auction-events"|"rewriter"|"run-ad-auction"|"screen-wake-lock"|"serial"|"shared-storage"|"shared-storage-select-url"|"smart-card"|"speaker-selection"|"storage-access"|"sub-apps"|"summarizer"|"sync-xhr"|"tools"|"translator"|"unload"|"usb"|"usb-unrestricted"|"vertical-scroll"|"web-app-installation"|"webnn"|"web-printing"|"web-share"|"window-management"|"writer"|"xr-spatial-tracking"; + export type PermissionsPolicyFeature = "accelerometer"|"all-screens-capture"|"ambient-light-sensor"|"aria-notify"|"autofill"|"autoplay"|"bluetooth"|"browsing-topics"|"camera"|"captured-surface-control"|"ch-dpr"|"ch-device-memory"|"ch-downlink"|"ch-ect"|"ch-prefers-color-scheme"|"ch-prefers-reduced-motion"|"ch-prefers-reduced-transparency"|"ch-rtt"|"ch-save-data"|"ch-ua"|"ch-ua-arch"|"ch-ua-bitness"|"ch-ua-high-entropy-values"|"ch-ua-platform"|"ch-ua-model"|"ch-ua-mobile"|"ch-ua-form-factors"|"ch-ua-full-version"|"ch-ua-full-version-list"|"ch-ua-platform-version"|"ch-ua-wow64"|"ch-viewport-height"|"ch-viewport-width"|"ch-width"|"clipboard-read"|"clipboard-write"|"compute-pressure"|"controlled-frame"|"cross-origin-isolated"|"deferred-fetch"|"deferred-fetch-minimal"|"device-attributes"|"digital-credentials-create"|"digital-credentials-get"|"direct-sockets"|"direct-sockets-multicast"|"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"|"identity-credentials-get"|"idle-detection"|"interest-cohort"|"join-ad-interest-group"|"keyboard-map"|"language-detector"|"language-model"|"local-fonts"|"local-network"|"local-network-access"|"loopback-network"|"magnetometer"|"manual-text"|"media-playback-while-not-visible"|"microphone"|"midi"|"on-device-speech-recognition"|"otp-credentials"|"payment"|"picture-in-picture"|"private-aggregation"|"private-state-token-issuance"|"private-state-token-redemption"|"publickey-credentials-create"|"publickey-credentials-get"|"record-ad-auction-events"|"rewriter"|"run-ad-auction"|"screen-wake-lock"|"serial"|"shared-storage"|"shared-storage-select-url"|"smart-card"|"speaker-selection"|"storage-access"|"sub-apps"|"summarizer"|"sync-xhr"|"tools"|"translator"|"unload"|"usb"|"usb-unrestricted"|"vertical-scroll"|"web-app-installation"|"webnn"|"web-printing"|"web-share"|"window-management"|"writer"|"xr-spatial-tracking"; /** * Reason for a permissions policy feature to be disabled. */ @@ -17718,7 +17744,7 @@ Microsoft: https://learn.microsoft.com/en-us/windows/win32/api/winscard/nf-winsc /** * Enum of possible storage types. */ - export type StorageType = "cookies"|"file_systems"|"indexeddb"|"local_storage"|"shader_cache"|"websql"|"service_workers"|"cache_storage"|"interest_groups"|"shared_storage"|"storage_buckets"|"all"|"other"; + export type StorageType = "cookies"|"file_systems"|"indexeddb"|"local_storage"|"shader_cache"|"websql"|"service_workers"|"cache_storage"|"shared_storage"|"storage_buckets"|"all"|"other"; /** * Usage for a storage type. */ @@ -17740,26 +17766,10 @@ Tokens from that issuer. issuerOrigin: string; count: number; } - /** - * Protected audience interest group auction identifier. - */ - export type InterestGroupAuctionId = string; - /** - * Enum of interest group access types. - */ - export type InterestGroupAccessType = "join"|"leave"|"update"|"loaded"|"bid"|"win"|"additionalBid"|"additionalBidWin"|"topLevelBid"|"topLevelAdditionalBid"|"clear"; - /** - * Enum of auction events. - */ - export type InterestGroupAuctionEventType = "started"|"configResolved"; - /** - * Enum of network fetches auctions can do. - */ - export type InterestGroupAuctionFetchType = "bidderJs"|"bidderWasm"|"sellerJs"|"bidderTrustedSignals"|"sellerTrustedSignals"; /** * Enum of shared storage access scopes. */ - export type SharedStorageAccessScope = "window"|"sharedStorageWorklet"|"protectedAudienceWorklet"|"header"; + export type SharedStorageAccessScope = "window"|"sharedStorageWorklet"|"header"; /** * Enum of shared storage access methods. */ @@ -18056,63 +18066,6 @@ Present only for SharedStorageAccessMethod: batchUpdate. */ bucketId: string; } - /** - * One of the interest groups was accessed. Note that these events are global -to all targets sharing an interest group store. - */ - export type interestGroupAccessedPayload = { - accessTime: Network.TimeSinceEpoch; - type: InterestGroupAccessType; - ownerOrigin: string; - name: string; - /** - * For topLevelBid/topLevelAdditionalBid, and when appropriate, -win and additionalBidWin - */ - componentSellerOrigin?: string; - /** - * For bid or somethingBid event, if done locally and not on a server. - */ - bid?: number; - bidCurrency?: string; - /** - * For non-global events --- links to interestGroupAuctionEvent - */ - uniqueAuctionId?: InterestGroupAuctionId; - } - /** - * An auction involving interest groups is taking place. These events are -target-specific. - */ - export type interestGroupAuctionEventOccurredPayload = { - eventTime: Network.TimeSinceEpoch; - type: InterestGroupAuctionEventType; - uniqueAuctionId: InterestGroupAuctionId; - /** - * Set for child auctions. - */ - parentAuctionId?: InterestGroupAuctionId; - /** - * Set for started and configResolved - */ - auctionConfig?: { [key: string]: string }; - } - /** - * Specifies which auctions a particular network fetch may be related to, and -in what role. Note that it is not ordered with respect to -Network.requestWillBeSent (but will happen before loadingFinished -loadingFailed). - */ - export type interestGroupAuctionNetworkRequestCreatedPayload = { - type: InterestGroupAuctionFetchType; - requestId: Network.RequestId; - /** - * This is the set of the auctions using the worklet that issued this -request. In the case of trusted signals, it's possible that only some of -them actually care about the keys being queried. - */ - auctions: InterestGroupAuctionId[]; - } /** * Shared storage was accessed by the associated page. The following parameters are included in all events. @@ -18440,39 +18393,6 @@ Leaves other stored data, including the issuer's Redemption Records, intact. */ didDeleteTokens: boolean; } - /** - * Gets details for a named interest group. - */ - export type getInterestGroupDetailsParameters = { - ownerOrigin: string; - name: string; - } - export type getInterestGroupDetailsReturnValue = { - /** - * This largely corresponds to: -https://wicg.github.io/turtledove/#dictdef-generatebidinterestgroup -but has absolute expirationTime instead of relative lifetimeMs and -also adds joiningOrigin. - */ - details: { [key: string]: string }; - } - /** - * Enables/Disables issuing of interestGroupAccessed events. - */ - export type setInterestGroupTrackingParameters = { - enable: boolean; - } - export type setInterestGroupTrackingReturnValue = { - } - /** - * Enables/Disables issuing of interestGroupAuctionEventOccurred and -interestGroupAuctionNetworkRequestCreated. - */ - export type setInterestGroupAuctionTrackingParameters = { - enable: boolean; - } - export type setInterestGroupAuctionTrackingReturnValue = { - } /** * Gets metadata for an origin's shared storage. */ @@ -18573,13 +18493,6 @@ session. The effective Related Website Sets will not change during a browser ses export type getRelatedWebsiteSetsReturnValue = { sets: RelatedWebsiteSet[]; } - export type setProtectedAudienceKAnonymityParameters = { - owner: string; - name: string; - hashes: binary[]; - } - export type setProtectedAudienceKAnonymityReturnValue = { - } } /** @@ -19897,6 +19810,13 @@ https://fidoalliance.org/specs/fido-v2.2-rd-20241003/fido-client-to-authenticato Defaults to false. */ hasHmacSecretMc?: boolean; + /** + * If set to true, the authenticator will support the cmtgKey (Credential +Manager Trust Group Key) extension. +https://github.com/w3c/webauthn/pull/2377 +Defaults to false. + */ + hasCmtgKey?: boolean; /** * If set to true, tests of user presence will succeed immediately. Otherwise, they will not be resolved. Defaults to true. @@ -19938,11 +19858,12 @@ credential to a specific user. */ userHandle?: binary; /** - * Signature counter. This is incremented by one for each successful -assertion. + * Signature counter. Must be equal to or greater than -1. +If -1, the credential won't have an associated signature counter, and +every assertion operation will report a value of 0. See https://w3c.github.io/webauthn/#signature-counter */ - signCount: number; + signCount?: number; /** * The large blob associated with the credential. See https://w3c.github.io/webauthn/#sctn-large-blob-extension @@ -19971,6 +19892,18 @@ not set. https://w3c.github.io/webauthn/#dom-publickeycredentialuserentity-displayname */ userDisplayName?: string; + /** + * The CMTG keys associated with the credential. + */ + cmtgKeys?: binary[]; + /** + * The 0-based index of the active key in cmtgKeys. + */ + activeCmtgKeyIndex?: number; + /** + * If true, the authenticator will generate a new CMTG key on the next operation. + */ + generateCmtgKeyOnNextOperation?: boolean; } /** @@ -20142,6 +20075,15 @@ https://w3c.github.io/webauthn/#sctn-automation-set-credential-properties credentialId: binary; backupEligibility?: boolean; backupState?: boolean; + activeCmtgKeyIndex?: number; + generateCmtgKeyOnNextOperation?: boolean; + /** + * Must be equal to or greater than -1. +If -1, the signature counter is removed from the credential, and every +assertion operation will report a value of 0. +See https://w3c.github.io/webauthn/#signature-counter + */ + signCount?: number; } export type setCredentialPropertiesReturnValue = { } @@ -23196,9 +23138,6 @@ Error was thrown. "Storage.cacheStorageListUpdated": Storage.cacheStorageListUpdatedPayload; "Storage.indexedDBContentUpdated": Storage.indexedDBContentUpdatedPayload; "Storage.indexedDBListUpdated": Storage.indexedDBListUpdatedPayload; - "Storage.interestGroupAccessed": Storage.interestGroupAccessedPayload; - "Storage.interestGroupAuctionEventOccurred": Storage.interestGroupAuctionEventOccurredPayload; - "Storage.interestGroupAuctionNetworkRequestCreated": Storage.interestGroupAuctionNetworkRequestCreatedPayload; "Storage.sharedStorageAccessed": Storage.sharedStorageAccessedPayload; "Storage.sharedStorageWorkletOperationExecutionFinished": Storage.sharedStorageWorkletOperationExecutionFinishedPayload; "Storage.storageBucketCreatedOrUpdated": Storage.storageBucketCreatedOrUpdatedPayload; @@ -23435,9 +23374,6 @@ Error was thrown. ["Storage.cacheStorageListUpdated"]: [Storage.cacheStorageListUpdatedPayload]; ["Storage.indexedDBContentUpdated"]: [Storage.indexedDBContentUpdatedPayload]; ["Storage.indexedDBListUpdated"]: [Storage.indexedDBListUpdatedPayload]; - ["Storage.interestGroupAccessed"]: [Storage.interestGroupAccessedPayload]; - ["Storage.interestGroupAuctionEventOccurred"]: [Storage.interestGroupAuctionEventOccurredPayload]; - ["Storage.interestGroupAuctionNetworkRequestCreated"]: [Storage.interestGroupAuctionNetworkRequestCreatedPayload]; ["Storage.sharedStorageAccessed"]: [Storage.sharedStorageAccessedPayload]; ["Storage.sharedStorageWorkletOperationExecutionFinished"]: [Storage.sharedStorageWorkletOperationExecutionFinishedPayload]; ["Storage.storageBucketCreatedOrUpdated"]: [Storage.storageBucketCreatedOrUpdatedPayload]; @@ -23563,7 +23499,6 @@ Error was thrown. "Browser.setDockTile": Browser.setDockTileParameters; "Browser.executeBrowserCommand": Browser.executeBrowserCommandParameters; "Browser.addPrivacySandboxEnrollmentOverride": Browser.addPrivacySandboxEnrollmentOverrideParameters; - "Browser.addPrivacySandboxCoordinatorKeyConfig": Browser.addPrivacySandboxCoordinatorKeyConfigParameters; "CSS.addRule": CSS.addRuleParameters; "CSS.collectClassNames": CSS.collectClassNamesParameters; "CSS.createStyleSheet": CSS.createStyleSheetParameters; @@ -23694,6 +23629,7 @@ Error was thrown. "DeviceAccess.cancelPrompt": DeviceAccess.cancelPromptParameters; "DeviceOrientation.clearDeviceOrientationOverride": DeviceOrientation.clearDeviceOrientationOverrideParameters; "DeviceOrientation.setDeviceOrientationOverride": DeviceOrientation.setDeviceOrientationOverrideParameters; + "DigitalCredentials.setVirtualWalletBehavior": DigitalCredentials.setVirtualWalletBehaviorParameters; "Emulation.canEmulate": Emulation.canEmulateParameters; "Emulation.clearDeviceMetricsOverride": Emulation.clearDeviceMetricsOverrideParameters; "Emulation.clearGeolocationOverride": Emulation.clearGeolocationOverrideParameters; @@ -24021,9 +23957,6 @@ Error was thrown. "Storage.untrackIndexedDBForStorageKey": Storage.untrackIndexedDBForStorageKeyParameters; "Storage.getTrustTokens": Storage.getTrustTokensParameters; "Storage.clearTrustTokens": Storage.clearTrustTokensParameters; - "Storage.getInterestGroupDetails": Storage.getInterestGroupDetailsParameters; - "Storage.setInterestGroupTracking": Storage.setInterestGroupTrackingParameters; - "Storage.setInterestGroupAuctionTracking": Storage.setInterestGroupAuctionTrackingParameters; "Storage.getSharedStorageMetadata": Storage.getSharedStorageMetadataParameters; "Storage.getSharedStorageEntries": Storage.getSharedStorageEntriesParameters; "Storage.setSharedStorageEntry": Storage.setSharedStorageEntryParameters; @@ -24035,7 +23968,6 @@ Error was thrown. "Storage.deleteStorageBucket": Storage.deleteStorageBucketParameters; "Storage.runBounceTrackingMitigations": Storage.runBounceTrackingMitigationsParameters; "Storage.getRelatedWebsiteSets": Storage.getRelatedWebsiteSetsParameters; - "Storage.setProtectedAudienceKAnonymity": Storage.setProtectedAudienceKAnonymityParameters; "SystemInfo.getInfo": SystemInfo.getInfoParameters; "SystemInfo.getFeatureState": SystemInfo.getFeatureStateParameters; "SystemInfo.getProcessInfo": SystemInfo.getProcessInfoParameters; @@ -24234,7 +24166,6 @@ Error was thrown. "Browser.setDockTile": Browser.setDockTileReturnValue; "Browser.executeBrowserCommand": Browser.executeBrowserCommandReturnValue; "Browser.addPrivacySandboxEnrollmentOverride": Browser.addPrivacySandboxEnrollmentOverrideReturnValue; - "Browser.addPrivacySandboxCoordinatorKeyConfig": Browser.addPrivacySandboxCoordinatorKeyConfigReturnValue; "CSS.addRule": CSS.addRuleReturnValue; "CSS.collectClassNames": CSS.collectClassNamesReturnValue; "CSS.createStyleSheet": CSS.createStyleSheetReturnValue; @@ -24365,6 +24296,7 @@ Error was thrown. "DeviceAccess.cancelPrompt": DeviceAccess.cancelPromptReturnValue; "DeviceOrientation.clearDeviceOrientationOverride": DeviceOrientation.clearDeviceOrientationOverrideReturnValue; "DeviceOrientation.setDeviceOrientationOverride": DeviceOrientation.setDeviceOrientationOverrideReturnValue; + "DigitalCredentials.setVirtualWalletBehavior": DigitalCredentials.setVirtualWalletBehaviorReturnValue; "Emulation.canEmulate": Emulation.canEmulateReturnValue; "Emulation.clearDeviceMetricsOverride": Emulation.clearDeviceMetricsOverrideReturnValue; "Emulation.clearGeolocationOverride": Emulation.clearGeolocationOverrideReturnValue; @@ -24692,9 +24624,6 @@ Error was thrown. "Storage.untrackIndexedDBForStorageKey": Storage.untrackIndexedDBForStorageKeyReturnValue; "Storage.getTrustTokens": Storage.getTrustTokensReturnValue; "Storage.clearTrustTokens": Storage.clearTrustTokensReturnValue; - "Storage.getInterestGroupDetails": Storage.getInterestGroupDetailsReturnValue; - "Storage.setInterestGroupTracking": Storage.setInterestGroupTrackingReturnValue; - "Storage.setInterestGroupAuctionTracking": Storage.setInterestGroupAuctionTrackingReturnValue; "Storage.getSharedStorageMetadata": Storage.getSharedStorageMetadataReturnValue; "Storage.getSharedStorageEntries": Storage.getSharedStorageEntriesReturnValue; "Storage.setSharedStorageEntry": Storage.setSharedStorageEntryReturnValue; @@ -24706,7 +24635,6 @@ Error was thrown. "Storage.deleteStorageBucket": Storage.deleteStorageBucketReturnValue; "Storage.runBounceTrackingMitigations": Storage.runBounceTrackingMitigationsReturnValue; "Storage.getRelatedWebsiteSets": Storage.getRelatedWebsiteSetsReturnValue; - "Storage.setProtectedAudienceKAnonymity": Storage.setProtectedAudienceKAnonymityReturnValue; "SystemInfo.getInfo": SystemInfo.getInfoReturnValue; "SystemInfo.getFeatureState": SystemInfo.getFeatureStateReturnValue; "SystemInfo.getProcessInfo": SystemInfo.getProcessInfoReturnValue;