diff --git a/README.md b/README.md index 393fd2113c..3206b72800 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-126.0.6478.8-blue.svg?logo=google-chrome)](https://www.chromium.org/Home) [![Firefox version](https://img.shields.io/badge/firefox-125.0.1-blue.svg?logo=firefoxbrowser)](https://www.mozilla.org/en-US/firefox/new/) [![WebKit version](https://img.shields.io/badge/webkit-17.4-blue.svg?logo=safari)](https://webkit.org/) +[![npm version](https://img.shields.io/npm/v/playwright.svg)](https://www.npmjs.com/package/playwright) [![Chromium version](https://img.shields.io/badge/chromium-126.0.6478.8-blue.svg?logo=google-chrome)](https://www.chromium.org/Home) [![Firefox version](https://img.shields.io/badge/firefox-126.0-blue.svg?logo=firefoxbrowser)](https://www.mozilla.org/en-US/firefox/new/) [![WebKit version](https://img.shields.io/badge/webkit-17.4-blue.svg?logo=safari)](https://webkit.org/) ## [Documentation](https://playwright.dev) | [API reference](https://playwright.dev/docs/api/class-playwright) @@ -10,7 +10,7 @@ Playwright is a framework for Web Testing and Automation. It allows testing [Chr | :--- | :---: | :---: | :---: | | Chromium 126.0.6478.8 | :white_check_mark: | :white_check_mark: | :white_check_mark: | | WebKit 17.4 | :white_check_mark: | :white_check_mark: | :white_check_mark: | -| Firefox 125.0.1 | :white_check_mark: | :white_check_mark: | :white_check_mark: | +| Firefox 126.0 | :white_check_mark: | :white_check_mark: | :white_check_mark: | Headless execution is supported for all browsers on all platforms. Check out [system requirements](https://playwright.dev/docs/intro#system-requirements) for details. diff --git a/packages/playwright-core/browsers.json b/packages/playwright-core/browsers.json index 9d7e59138b..1def3af185 100644 --- a/packages/playwright-core/browsers.json +++ b/packages/playwright-core/browsers.json @@ -15,15 +15,15 @@ }, { "name": "firefox", - "revision": "1449", + "revision": "1450", "installByDefault": true, - "browserVersion": "125.0.1" + "browserVersion": "126.0" }, { "name": "firefox-beta", - "revision": "1449", + "revision": "1450", "installByDefault": false, - "browserVersion": "126.0b1" + "browserVersion": "127.0b3" }, { "name": "webkit", diff --git a/packages/playwright-core/src/server/deviceDescriptorsSource.json b/packages/playwright-core/src/server/deviceDescriptorsSource.json index 40b3823952..1c75d5ad9d 100644 --- a/packages/playwright-core/src/server/deviceDescriptorsSource.json +++ b/packages/playwright-core/src/server/deviceDescriptorsSource.json @@ -1472,7 +1472,7 @@ "defaultBrowserType": "chromium" }, "Desktop Firefox HiDPI": { - "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:125.0.1) Gecko/20100101 Firefox/125.0.1", + "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:126.0) Gecko/20100101 Firefox/126.0", "screen": { "width": 1792, "height": 1120 @@ -1532,7 +1532,7 @@ "defaultBrowserType": "chromium" }, "Desktop Firefox": { - "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:125.0.1) Gecko/20100101 Firefox/125.0.1", + "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:126.0) Gecko/20100101 Firefox/126.0", "screen": { "width": 1920, "height": 1080 diff --git a/packages/playwright-core/src/server/registry/index.ts b/packages/playwright-core/src/server/registry/index.ts index 9cec89ebd3..b23865663c 100644 --- a/packages/playwright-core/src/server/registry/index.ts +++ b/packages/playwright-core/src/server/registry/index.ts @@ -137,17 +137,17 @@ const DOWNLOAD_PATHS: Record = { 'debian11-arm64': 'builds/firefox/%s/firefox-debian-11-arm64.zip', 'debian12-x64': 'builds/firefox/%s/firefox-debian-12.zip', 'debian12-arm64': 'builds/firefox/%s/firefox-debian-12-arm64.zip', - 'mac10.13': 'builds/firefox/%s/firefox-mac-13.zip', - 'mac10.14': 'builds/firefox/%s/firefox-mac-13.zip', - 'mac10.15': 'builds/firefox/%s/firefox-mac-13.zip', - 'mac11': 'builds/firefox/%s/firefox-mac-13.zip', - 'mac11-arm64': 'builds/firefox/%s/firefox-mac-13-arm64.zip', - 'mac12': 'builds/firefox/%s/firefox-mac-13.zip', - 'mac12-arm64': 'builds/firefox/%s/firefox-mac-13-arm64.zip', - 'mac13': 'builds/firefox/%s/firefox-mac-13.zip', - 'mac13-arm64': 'builds/firefox/%s/firefox-mac-13-arm64.zip', - 'mac14': 'builds/firefox/%s/firefox-mac-13.zip', - 'mac14-arm64': 'builds/firefox/%s/firefox-mac-13-arm64.zip', + 'mac10.13': 'builds/firefox/%s/firefox-mac.zip', + 'mac10.14': 'builds/firefox/%s/firefox-mac.zip', + 'mac10.15': 'builds/firefox/%s/firefox-mac.zip', + 'mac11': 'builds/firefox/%s/firefox-mac.zip', + 'mac11-arm64': 'builds/firefox/%s/firefox-mac-arm64.zip', + 'mac12': 'builds/firefox/%s/firefox-mac.zip', + 'mac12-arm64': 'builds/firefox/%s/firefox-mac-arm64.zip', + 'mac13': 'builds/firefox/%s/firefox-mac.zip', + 'mac13-arm64': 'builds/firefox/%s/firefox-mac-arm64.zip', + 'mac14': 'builds/firefox/%s/firefox-mac.zip', + 'mac14-arm64': 'builds/firefox/%s/firefox-mac-arm64.zip', 'win64': 'builds/firefox/%s/firefox-win64.zip', }, 'firefox-beta': { @@ -162,17 +162,17 @@ const DOWNLOAD_PATHS: Record = { 'debian11-arm64': 'builds/firefox-beta/%s/firefox-beta-debian-11-arm64.zip', 'debian12-x64': 'builds/firefox-beta/%s/firefox-beta-debian-12.zip', 'debian12-arm64': 'builds/firefox-beta/%s/firefox-beta-debian-12-arm64.zip', - 'mac10.13': 'builds/firefox-beta/%s/firefox-beta-mac-13.zip', - 'mac10.14': 'builds/firefox-beta/%s/firefox-beta-mac-13.zip', - 'mac10.15': 'builds/firefox-beta/%s/firefox-beta-mac-13.zip', - 'mac11': 'builds/firefox-beta/%s/firefox-beta-mac-13.zip', - 'mac11-arm64': 'builds/firefox-beta/%s/firefox-beta-mac-13-arm64.zip', - 'mac12': 'builds/firefox-beta/%s/firefox-beta-mac-13.zip', - 'mac12-arm64': 'builds/firefox-beta/%s/firefox-beta-mac-13-arm64.zip', - 'mac13': 'builds/firefox-beta/%s/firefox-beta-mac-13.zip', - 'mac13-arm64': 'builds/firefox-beta/%s/firefox-beta-mac-13-arm64.zip', - 'mac14': 'builds/firefox-beta/%s/firefox-beta-mac-13.zip', - 'mac14-arm64': 'builds/firefox-beta/%s/firefox-beta-mac-13-arm64.zip', + 'mac10.13': 'builds/firefox-beta/%s/firefox-beta-mac.zip', + 'mac10.14': 'builds/firefox-beta/%s/firefox-beta-mac.zip', + 'mac10.15': 'builds/firefox-beta/%s/firefox-beta-mac.zip', + 'mac11': 'builds/firefox-beta/%s/firefox-beta-mac.zip', + 'mac11-arm64': 'builds/firefox-beta/%s/firefox-beta-mac-arm64.zip', + 'mac12': 'builds/firefox-beta/%s/firefox-beta-mac.zip', + 'mac12-arm64': 'builds/firefox-beta/%s/firefox-beta-mac-arm64.zip', + 'mac13': 'builds/firefox-beta/%s/firefox-beta-mac.zip', + 'mac13-arm64': 'builds/firefox-beta/%s/firefox-beta-mac-arm64.zip', + 'mac14': 'builds/firefox-beta/%s/firefox-beta-mac.zip', + 'mac14-arm64': 'builds/firefox-beta/%s/firefox-beta-mac-arm64.zip', 'win64': 'builds/firefox-beta/%s/firefox-beta-win64.zip', }, 'webkit': { diff --git a/tests/page/page-network-request.spec.ts b/tests/page/page-network-request.spec.ts index 903fd4cc1d..472bb34560 100644 --- a/tests/page/page-network-request.spec.ts +++ b/tests/page/page-network-request.spec.ts @@ -19,11 +19,9 @@ import { test as it, expect } from './pageTest'; import { attachFrame } from '../config/utils'; import fs from 'fs'; -function adjustServerHeaders(headers: Object, browserName: string, channel: string) { - if (browserName === 'firefox' && channel === 'firefox-beta') { - // This is a new experimental feature, only enabled in Firefox Beta for now. +function adjustServerHeaders(headers: Object, browserName: string) { + if (browserName === 'firefox') delete headers['priority']; - } return headers; } @@ -90,7 +88,7 @@ it('should return headers', async ({ page, server, browserName }) => { expect(response.request().headers()['user-agent']).toContain('WebKit'); }); -it('should get the same headers as the server', async ({ page, server, browserName, platform, isElectron, browserMajorVersion, channel }) => { +it('should get the same headers as the server', async ({ page, server, browserName, platform, isElectron, browserMajorVersion }) => { it.skip(isElectron && browserMajorVersion < 99, 'This needs Chromium >= 99'); it.fail(browserName === 'webkit' && platform === 'win32', 'Curl does not show accept-encoding and accept-language'); let serverRequest; @@ -100,10 +98,10 @@ it('should get the same headers as the server', async ({ page, server, browserNa }); const response = await page.goto(server.PREFIX + '/empty.html'); const headers = await response.request().allHeaders(); - expect(headers).toEqual(adjustServerHeaders(serverRequest.headers, browserName, channel)); + expect(headers).toEqual(adjustServerHeaders(serverRequest.headers, browserName)); }); -it('should not return allHeaders() until they are available', async ({ page, server, browserName, platform, isElectron, browserMajorVersion, channel }) => { +it('should not return allHeaders() until they are available', async ({ page, server, browserName, platform, isElectron, browserMajorVersion }) => { it.skip(isElectron && browserMajorVersion < 99, 'This needs Chromium >= 99'); it.fail(browserName === 'webkit' && platform === 'win32', 'Curl does not show accept-encoding and accept-language'); @@ -122,13 +120,13 @@ it('should not return allHeaders() until they are available', async ({ page, ser await page.goto(server.PREFIX + '/empty.html'); const requestHeaders = await requestHeadersPromise; - expect(requestHeaders).toEqual(adjustServerHeaders(serverRequest.headers, browserName, channel)); + expect(requestHeaders).toEqual(adjustServerHeaders(serverRequest.headers, browserName)); const responseHeaders = await responseHeadersPromise; expect(responseHeaders['foo']).toBe('bar'); }); -it('should get the same headers as the server CORS', async ({ page, server, browserName, platform, isElectron, browserMajorVersion, channel }) => { +it('should get the same headers as the server CORS', async ({ page, server, browserName, platform, isElectron, browserMajorVersion, }) => { it.skip(isElectron && browserMajorVersion < 99, 'This needs Chromium >= 99'); it.fail(browserName === 'webkit' && platform === 'win32', 'Curl does not show accept-encoding and accept-language'); @@ -147,7 +145,7 @@ it('should get the same headers as the server CORS', async ({ page, server, brow expect(text).toBe('done'); const response = await responsePromise; const headers = await response.request().allHeaders(); - expect(headers).toEqual(adjustServerHeaders(serverRequest.headers, browserName, channel)); + expect(headers).toEqual(adjustServerHeaders(serverRequest.headers, browserName)); }); it('should not get preflight CORS requests when intercepting', async ({ page, server, browserName, isAndroid }) => { @@ -408,10 +406,9 @@ it('should report raw headers', async ({ page, server, browserName, platform, is return { name, value: values[0] }; }); } - if (browserName === 'firefox' && channel === 'firefox-beta') { - // This is a new experimental feature, only enabled in Firefox Beta for now. + if (browserName === 'firefox') expectedHeaders = expectedHeaders.filter(({ name }) => name.toLowerCase() !== 'priority'); - } + res.end(); }); await page.goto(server.EMPTY_PAGE); diff --git a/utils/roll_browser.js b/utils/roll_browser.js index ba5c41b379..a57b4f5004 100755 --- a/utils/roll_browser.js +++ b/utils/roll_browser.js @@ -61,8 +61,6 @@ Example: 'wk': 'webkit', }[args[0].toLowerCase()] ?? args[0].toLowerCase(); const descriptors = [browsersJSON.browsers.find(b => b.name === browserName)]; - if (browserName === 'firefox') - descriptors.push(browsersJSON.browsers.find(b => b.name === 'firefox-asan')); if (!descriptors.every(d => !!d)) { console.log(`Unknown browser "${browserName}"`);