feat(roll): roll Firefox to r1450 (#30865)

Fixes
https://github.com/microsoft/playwright/actions/runs/9120975643/job/25079367394
This commit is contained in:
Max Schmitt 2024-05-19 16:28:32 +02:00 committed by GitHub
parent 9188ff7917
commit 162c18f586
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
6 changed files with 40 additions and 45 deletions

View file

@ -1,6 +1,6 @@
# 🎭 Playwright # 🎭 Playwright
[![npm version](https://img.shields.io/npm/v/playwright.svg)](https://www.npmjs.com/package/playwright) <!-- GEN:chromium-version-badge -->[![Chromium version](https://img.shields.io/badge/chromium-126.0.6478.8-blue.svg?logo=google-chrome)](https://www.chromium.org/Home)<!-- GEN:stop --> <!-- GEN:firefox-version-badge -->[![Firefox version](https://img.shields.io/badge/firefox-125.0.1-blue.svg?logo=firefoxbrowser)](https://www.mozilla.org/en-US/firefox/new/)<!-- GEN:stop --> <!-- GEN:webkit-version-badge -->[![WebKit version](https://img.shields.io/badge/webkit-17.4-blue.svg?logo=safari)](https://webkit.org/)<!-- GEN:stop --> [![npm version](https://img.shields.io/npm/v/playwright.svg)](https://www.npmjs.com/package/playwright) <!-- GEN:chromium-version-badge -->[![Chromium version](https://img.shields.io/badge/chromium-126.0.6478.8-blue.svg?logo=google-chrome)](https://www.chromium.org/Home)<!-- GEN:stop --> <!-- GEN:firefox-version-badge -->[![Firefox version](https://img.shields.io/badge/firefox-126.0-blue.svg?logo=firefoxbrowser)](https://www.mozilla.org/en-US/firefox/new/)<!-- GEN:stop --> <!-- GEN:webkit-version-badge -->[![WebKit version](https://img.shields.io/badge/webkit-17.4-blue.svg?logo=safari)](https://webkit.org/)<!-- GEN:stop -->
## [Documentation](https://playwright.dev) | [API reference](https://playwright.dev/docs/api/class-playwright) ## [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 <!-- GEN:chromium-version -->126.0.6478.8<!-- GEN:stop --> | :white_check_mark: | :white_check_mark: | :white_check_mark: | | Chromium <!-- GEN:chromium-version -->126.0.6478.8<!-- GEN:stop --> | :white_check_mark: | :white_check_mark: | :white_check_mark: |
| WebKit <!-- GEN:webkit-version -->17.4<!-- GEN:stop --> | :white_check_mark: | :white_check_mark: | :white_check_mark: | | WebKit <!-- GEN:webkit-version -->17.4<!-- GEN:stop --> | :white_check_mark: | :white_check_mark: | :white_check_mark: |
| Firefox <!-- GEN:firefox-version -->125.0.1<!-- GEN:stop --> | :white_check_mark: | :white_check_mark: | :white_check_mark: | | Firefox <!-- GEN:firefox-version -->126.0<!-- GEN:stop --> | :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. Headless execution is supported for all browsers on all platforms. Check out [system requirements](https://playwright.dev/docs/intro#system-requirements) for details.

View file

@ -15,15 +15,15 @@
}, },
{ {
"name": "firefox", "name": "firefox",
"revision": "1449", "revision": "1450",
"installByDefault": true, "installByDefault": true,
"browserVersion": "125.0.1" "browserVersion": "126.0"
}, },
{ {
"name": "firefox-beta", "name": "firefox-beta",
"revision": "1449", "revision": "1450",
"installByDefault": false, "installByDefault": false,
"browserVersion": "126.0b1" "browserVersion": "127.0b3"
}, },
{ {
"name": "webkit", "name": "webkit",

View file

@ -1472,7 +1472,7 @@
"defaultBrowserType": "chromium" "defaultBrowserType": "chromium"
}, },
"Desktop Firefox HiDPI": { "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": { "screen": {
"width": 1792, "width": 1792,
"height": 1120 "height": 1120
@ -1532,7 +1532,7 @@
"defaultBrowserType": "chromium" "defaultBrowserType": "chromium"
}, },
"Desktop Firefox": { "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": { "screen": {
"width": 1920, "width": 1920,
"height": 1080 "height": 1080

View file

@ -137,17 +137,17 @@ const DOWNLOAD_PATHS: Record<BrowserName | InternalTool, DownloadPaths> = {
'debian11-arm64': 'builds/firefox/%s/firefox-debian-11-arm64.zip', 'debian11-arm64': 'builds/firefox/%s/firefox-debian-11-arm64.zip',
'debian12-x64': 'builds/firefox/%s/firefox-debian-12.zip', 'debian12-x64': 'builds/firefox/%s/firefox-debian-12.zip',
'debian12-arm64': 'builds/firefox/%s/firefox-debian-12-arm64.zip', 'debian12-arm64': 'builds/firefox/%s/firefox-debian-12-arm64.zip',
'mac10.13': 'builds/firefox/%s/firefox-mac-13.zip', 'mac10.13': 'builds/firefox/%s/firefox-mac.zip',
'mac10.14': 'builds/firefox/%s/firefox-mac-13.zip', 'mac10.14': 'builds/firefox/%s/firefox-mac.zip',
'mac10.15': 'builds/firefox/%s/firefox-mac-13.zip', 'mac10.15': 'builds/firefox/%s/firefox-mac.zip',
'mac11': 'builds/firefox/%s/firefox-mac-13.zip', 'mac11': 'builds/firefox/%s/firefox-mac.zip',
'mac11-arm64': 'builds/firefox/%s/firefox-mac-13-arm64.zip', 'mac11-arm64': 'builds/firefox/%s/firefox-mac-arm64.zip',
'mac12': 'builds/firefox/%s/firefox-mac-13.zip', 'mac12': 'builds/firefox/%s/firefox-mac.zip',
'mac12-arm64': 'builds/firefox/%s/firefox-mac-13-arm64.zip', 'mac12-arm64': 'builds/firefox/%s/firefox-mac-arm64.zip',
'mac13': 'builds/firefox/%s/firefox-mac-13.zip', 'mac13': 'builds/firefox/%s/firefox-mac.zip',
'mac13-arm64': 'builds/firefox/%s/firefox-mac-13-arm64.zip', 'mac13-arm64': 'builds/firefox/%s/firefox-mac-arm64.zip',
'mac14': 'builds/firefox/%s/firefox-mac-13.zip', 'mac14': 'builds/firefox/%s/firefox-mac.zip',
'mac14-arm64': 'builds/firefox/%s/firefox-mac-13-arm64.zip', 'mac14-arm64': 'builds/firefox/%s/firefox-mac-arm64.zip',
'win64': 'builds/firefox/%s/firefox-win64.zip', 'win64': 'builds/firefox/%s/firefox-win64.zip',
}, },
'firefox-beta': { 'firefox-beta': {
@ -162,17 +162,17 @@ const DOWNLOAD_PATHS: Record<BrowserName | InternalTool, DownloadPaths> = {
'debian11-arm64': 'builds/firefox-beta/%s/firefox-beta-debian-11-arm64.zip', 'debian11-arm64': 'builds/firefox-beta/%s/firefox-beta-debian-11-arm64.zip',
'debian12-x64': 'builds/firefox-beta/%s/firefox-beta-debian-12.zip', 'debian12-x64': 'builds/firefox-beta/%s/firefox-beta-debian-12.zip',
'debian12-arm64': 'builds/firefox-beta/%s/firefox-beta-debian-12-arm64.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.13': 'builds/firefox-beta/%s/firefox-beta-mac.zip',
'mac10.14': 'builds/firefox-beta/%s/firefox-beta-mac-13.zip', 'mac10.14': 'builds/firefox-beta/%s/firefox-beta-mac.zip',
'mac10.15': 'builds/firefox-beta/%s/firefox-beta-mac-13.zip', 'mac10.15': 'builds/firefox-beta/%s/firefox-beta-mac.zip',
'mac11': 'builds/firefox-beta/%s/firefox-beta-mac-13.zip', 'mac11': 'builds/firefox-beta/%s/firefox-beta-mac.zip',
'mac11-arm64': 'builds/firefox-beta/%s/firefox-beta-mac-13-arm64.zip', 'mac11-arm64': 'builds/firefox-beta/%s/firefox-beta-mac-arm64.zip',
'mac12': 'builds/firefox-beta/%s/firefox-beta-mac-13.zip', 'mac12': 'builds/firefox-beta/%s/firefox-beta-mac.zip',
'mac12-arm64': 'builds/firefox-beta/%s/firefox-beta-mac-13-arm64.zip', 'mac12-arm64': 'builds/firefox-beta/%s/firefox-beta-mac-arm64.zip',
'mac13': 'builds/firefox-beta/%s/firefox-beta-mac-13.zip', 'mac13': 'builds/firefox-beta/%s/firefox-beta-mac.zip',
'mac13-arm64': 'builds/firefox-beta/%s/firefox-beta-mac-13-arm64.zip', 'mac13-arm64': 'builds/firefox-beta/%s/firefox-beta-mac-arm64.zip',
'mac14': 'builds/firefox-beta/%s/firefox-beta-mac-13.zip', 'mac14': 'builds/firefox-beta/%s/firefox-beta-mac.zip',
'mac14-arm64': 'builds/firefox-beta/%s/firefox-beta-mac-13-arm64.zip', 'mac14-arm64': 'builds/firefox-beta/%s/firefox-beta-mac-arm64.zip',
'win64': 'builds/firefox-beta/%s/firefox-beta-win64.zip', 'win64': 'builds/firefox-beta/%s/firefox-beta-win64.zip',
}, },
'webkit': { 'webkit': {

View file

@ -19,11 +19,9 @@ import { test as it, expect } from './pageTest';
import { attachFrame } from '../config/utils'; import { attachFrame } from '../config/utils';
import fs from 'fs'; import fs from 'fs';
function adjustServerHeaders(headers: Object, browserName: string, channel: string) { function adjustServerHeaders(headers: Object, browserName: string) {
if (browserName === 'firefox' && channel === 'firefox-beta') { if (browserName === 'firefox')
// This is a new experimental feature, only enabled in Firefox Beta for now.
delete headers['priority']; delete headers['priority'];
}
return headers; return headers;
} }
@ -90,7 +88,7 @@ it('should return headers', async ({ page, server, browserName }) => {
expect(response.request().headers()['user-agent']).toContain('WebKit'); 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.skip(isElectron && browserMajorVersion < 99, 'This needs Chromium >= 99');
it.fail(browserName === 'webkit' && platform === 'win32', 'Curl does not show accept-encoding and accept-language'); it.fail(browserName === 'webkit' && platform === 'win32', 'Curl does not show accept-encoding and accept-language');
let serverRequest; 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 response = await page.goto(server.PREFIX + '/empty.html');
const headers = await response.request().allHeaders(); 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.skip(isElectron && browserMajorVersion < 99, 'This needs Chromium >= 99');
it.fail(browserName === 'webkit' && platform === 'win32', 'Curl does not show accept-encoding and accept-language'); 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'); await page.goto(server.PREFIX + '/empty.html');
const requestHeaders = await requestHeadersPromise; const requestHeaders = await requestHeadersPromise;
expect(requestHeaders).toEqual(adjustServerHeaders(serverRequest.headers, browserName, channel)); expect(requestHeaders).toEqual(adjustServerHeaders(serverRequest.headers, browserName));
const responseHeaders = await responseHeadersPromise; const responseHeaders = await responseHeadersPromise;
expect(responseHeaders['foo']).toBe('bar'); 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.skip(isElectron && browserMajorVersion < 99, 'This needs Chromium >= 99');
it.fail(browserName === 'webkit' && platform === 'win32', 'Curl does not show accept-encoding and accept-language'); 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'); expect(text).toBe('done');
const response = await responsePromise; const response = await responsePromise;
const headers = await response.request().allHeaders(); 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 }) => { 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] }; return { name, value: values[0] };
}); });
} }
if (browserName === 'firefox' && channel === 'firefox-beta') { if (browserName === 'firefox')
// This is a new experimental feature, only enabled in Firefox Beta for now.
expectedHeaders = expectedHeaders.filter(({ name }) => name.toLowerCase() !== 'priority'); expectedHeaders = expectedHeaders.filter(({ name }) => name.toLowerCase() !== 'priority');
}
res.end(); res.end();
}); });
await page.goto(server.EMPTY_PAGE); await page.goto(server.EMPTY_PAGE);

View file

@ -61,8 +61,6 @@ Example:
'wk': 'webkit', 'wk': 'webkit',
}[args[0].toLowerCase()] ?? args[0].toLowerCase(); }[args[0].toLowerCase()] ?? args[0].toLowerCase();
const descriptors = [browsersJSON.browsers.find(b => b.name === browserName)]; 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)) { if (!descriptors.every(d => !!d)) {
console.log(`Unknown browser "${browserName}"`); console.log(`Unknown browser "${browserName}"`);