chore: drop PLAYWRIGHT_CHROMIUM_USE_HEADLESS_OLD env variable

This commit is contained in:
Max Schmitt 2024-10-30 15:33:16 +01:00
parent 76461cdb13
commit fd69294f03
12 changed files with 26 additions and 52 deletions

View file

@ -268,23 +268,6 @@ jobs:
- run: npx playwright install-deps - run: npx playwright install-deps
- run: utils/build/build-playwright-driver.sh - run: utils/build/build-playwright-driver.sh
test_linux_chromium_headless_old:
name: Linux Chromium Headless Old
environment: ${{ github.event_name == 'push' && 'allow-uploading-flakiness-results' || null }}
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: ./.github/actions/run-test
with:
browsers-to-install: chromium
command: npm run ctest
bot-name: "headless-old"
flakiness-client-id: ${{ secrets.AZURE_FLAKINESS_DASHBOARD_CLIENT_ID }}
flakiness-tenant-id: ${{ secrets.AZURE_FLAKINESS_DASHBOARD_TENANT_ID }}
flakiness-subscription-id: ${{ secrets.AZURE_FLAKINESS_DASHBOARD_SUBSCRIPTION_ID }}
env:
PLAYWRIGHT_CHROMIUM_USE_HEADLESS_OLD: 1
test_linux_chromium_headless_shell: test_linux_chromium_headless_shell:
name: Chromium Headless Shell name: Chromium Headless Shell
environment: ${{ github.event_name == 'push' && 'allow-uploading-flakiness-results' || null }} environment: ${{ github.event_name == 'push' && 'allow-uploading-flakiness-results' || null }}

View file

@ -112,9 +112,6 @@ export class BidiChromium extends BrowserType {
if (options.devtools) if (options.devtools)
chromeArguments.push('--auto-open-devtools-for-tabs'); chromeArguments.push('--auto-open-devtools-for-tabs');
if (options.headless) { if (options.headless) {
if (process.env.PLAYWRIGHT_CHROMIUM_USE_HEADLESS_OLD)
chromeArguments.push('--headless=old');
else
chromeArguments.push('--headless=new'); chromeArguments.push('--headless=new');
chromeArguments.push( chromeArguments.push(

View file

@ -309,9 +309,6 @@ export class Chromium extends BrowserType {
if (options.devtools) if (options.devtools)
chromeArguments.push('--auto-open-devtools-for-tabs'); chromeArguments.push('--auto-open-devtools-for-tabs');
if (options.headless) { if (options.headless) {
if (process.env.PLAYWRIGHT_CHROMIUM_USE_HEADLESS_OLD || options.channel === 'chromium-headless-shell')
chromeArguments.push('--headless=old');
else
chromeArguments.push('--headless=new'); chromeArguments.push('--headless=new');
chromeArguments.push( chromeArguments.push(

View file

@ -19,9 +19,7 @@ import { browserTest as base, expect } from '../config/browserTest';
const it = base.extend<{ isChromiumHeadedLike: boolean }>({ const it = base.extend<{ isChromiumHeadedLike: boolean }>({
isChromiumHeadedLike: async ({ browserName, headless, channel }, use) => { isChromiumHeadedLike: async ({ browserName, headless, channel }, use) => {
const isChromiumHeadedLike = browserName === 'chromium' const isChromiumHeadedLike = browserName === 'chromium' && ((headless && channel !== 'chromium-headless-shell') || !headless);
&& ((headless && !process.env.PLAYWRIGHT_CHROMIUM_USE_HEADLESS_OLD
&& channel !== 'chromium-headless-shell') || !headless);
await use(isChromiumHeadedLike); await use(isChromiumHeadedLike);
}, },
}); });

View file

@ -636,8 +636,8 @@ it('should be able to download a inline PDF file via response interception', asy
await page.close(); await page.close();
}); });
it('should be able to download a inline PDF file via navigation', async ({ browser, server, asset, browserName, headless }) => { it('should be able to download a inline PDF file via navigation', async ({ browser, server, asset, browserName, channel }) => {
it.fixme(((!headless || !process.env.PLAYWRIGHT_CHROMIUM_USE_HEADLESS_OLD) && browserName === 'chromium')); it.fixme(browserName === 'chromium' && channel !== 'chromium-headless-shell');
const page = await browser.newPage(); const page = await browser.newPage();
await page.goto(server.EMPTY_PAGE); await page.goto(server.EMPTY_PAGE);
await page.setContent(` await page.setContent(`

View file

@ -101,10 +101,10 @@ it('should change document.activeElement', async ({ page, server }) => {
expect(active).toEqual(['INPUT', 'TEXTAREA']); expect(active).toEqual(['INPUT', 'TEXTAREA']);
}); });
it('should not affect screenshots', async ({ page, server, browserName, headless, isWindows }) => { it('should not affect screenshots', async ({ page, server, browserName, headless, isWindows, channel }) => {
it.skip(browserName === 'webkit' && isWindows && !headless, 'WebKit/Windows/headed has a larger minimal viewport. See https://github.com/microsoft/playwright/issues/22616'); it.skip(browserName === 'webkit' && isWindows && !headless, 'WebKit/Windows/headed has a larger minimal viewport. See https://github.com/microsoft/playwright/issues/22616');
it.skip(browserName === 'firefox' && !headless, 'Firefox headed produces a different image'); it.skip(browserName === 'firefox' && !headless, 'Firefox headed produces a different image');
it.fixme(browserName === 'chromium' && !process.env.PLAYWRIGHT_CHROMIUM_USE_HEADLESS_OLD, 'https://github.com/microsoft/playwright/issues/33330'); it.fixme(browserName === 'chromium' && channel !== 'chromium-headless-shell', 'https://github.com/microsoft/playwright/issues/33330');
const page2 = await page.context().newPage(); const page2 = await page.context().newPage();
await Promise.all([ await Promise.all([

View file

@ -145,12 +145,12 @@ it.describe('permissions', () => {
}); });
}); });
it('should support clipboard read', async ({ page, context, server, browserName, isWindows, isLinux, headless }) => { it('should support clipboard read', async ({ page, context, server, browserName, isWindows, isLinux, headless, channel }) => {
it.info().annotations.push({ type: 'issue', description: 'https://github.com/microsoft/playwright/issues/27475' }); it.info().annotations.push({ type: 'issue', description: 'https://github.com/microsoft/playwright/issues/27475' });
it.fail(browserName === 'firefox', 'No such permissions (requires flag) in Firefox'); it.fail(browserName === 'firefox', 'No such permissions (requires flag) in Firefox');
it.fixme(browserName === 'webkit' && isWindows, 'WebPasteboardProxy::allPasteboardItemInfo not implemented for Windows.'); it.fixme(browserName === 'webkit' && isWindows, 'WebPasteboardProxy::allPasteboardItemInfo not implemented for Windows.');
it.fixme(browserName === 'webkit' && isLinux && headless, 'WebPasteboardProxy::allPasteboardItemInfo not implemented for WPE.'); it.fixme(browserName === 'webkit' && isLinux && headless, 'WebPasteboardProxy::allPasteboardItemInfo not implemented for WPE.');
const isChromiumHeadedLike = browserName === 'chromium' && (!headless || !process.env.PLAYWRIGHT_CHROMIUM_USE_HEADLESS_OLD); const isChromiumHeadedLike = browserName === 'chromium' && channel !== 'chromium-headless-shell';
await page.goto(server.EMPTY_PAGE); await page.goto(server.EMPTY_PAGE);
// There is no 'clipboard-read' permission in WebKit Web API. // There is no 'clipboard-read' permission in WebKit Web API.

View file

@ -127,8 +127,6 @@ for (const browserName of browserNames) {
platform: process.platform, platform: process.platform,
docker: !!process.env.INSIDE_DOCKER, docker: !!process.env.INSIDE_DOCKER,
headless: (() => { headless: (() => {
if (process.env.PLAYWRIGHT_CHROMIUM_USE_HEADLESS_OLD)
return 'headless-old';
if (headed) if (headed)
return 'headed'; return 'headed';
return 'headless'; return 'headless';

View file

@ -22,8 +22,8 @@ import { verifyViewport } from '../config/utils';
browserTest.describe('page screenshot', () => { browserTest.describe('page screenshot', () => {
browserTest.skip(({ browserName, headless }) => browserName === 'firefox' && !headless, 'Firefox headed produces a different image.'); browserTest.skip(({ browserName, headless }) => browserName === 'firefox' && !headless, 'Firefox headed produces a different image.');
browserTest('should run in parallel in multiple pages', async ({ server, contextFactory, browserName }) => { browserTest('should run in parallel in multiple pages', async ({ server, contextFactory, browserName, channel }) => {
browserTest.fixme(browserName === 'chromium' && !process.env.PLAYWRIGHT_CHROMIUM_USE_HEADLESS_OLD, 'https://github.com/microsoft/playwright/issues/33330'); browserTest.fixme(browserName === 'chromium' && channel !== 'chromium-headless-shell', 'https://github.com/microsoft/playwright/issues/33330');
const context = await contextFactory(); const context = await contextFactory();
const N = 5; const N = 5;
const pages = await Promise.all(Array(N).fill(0).map(async () => { const pages = await Promise.all(Array(N).fill(0).map(async () => {

View file

@ -407,9 +407,9 @@ for (const params of [
height: 768, height: 768,
} }
]) { ]) {
browserTest(`should produce screencast frames ${params.id}`, async ({ video, contextFactory, browserName, platform, headless }, testInfo) => { browserTest(`should produce screencast frames ${params.id}`, async ({ video, contextFactory, browserName, platform, headless, channel }, testInfo) => {
browserTest.skip(browserName === 'chromium' && video === 'on', 'Same screencast resolution conflicts'); browserTest.skip(browserName === 'chromium' && video === 'on', 'Same screencast resolution conflicts');
browserTest.fixme(browserName === 'chromium' && (!headless || !process.env.PLAYWRIGHT_CHROMIUM_USE_HEADLESS_OLD), 'Chromium screencast on headed has a min width issue'); browserTest.fixme(browserName === 'chromium' && channel !== 'chromium-headless-shell', 'Chromium screencast on headed has a min width issue');
browserTest.fixme(params.id === 'fit' && browserName === 'chromium' && platform === 'darwin', 'High DPI maxes image at 600x600'); browserTest.fixme(params.id === 'fit' && browserName === 'chromium' && platform === 'darwin', 'High DPI maxes image at 600x600');
browserTest.fixme(params.id === 'fit' && browserName === 'webkit' && platform === 'linux', 'Image size is flaky'); browserTest.fixme(params.id === 'fit' && browserName === 'webkit' && platform === 'linux', 'Image size is flaky');
browserTest.fixme(browserName === 'firefox' && !headless, 'Image size is different'); browserTest.fixme(browserName === 'firefox' && !headless, 'Image size is different');

View file

@ -473,8 +473,8 @@ it.describe('screencast', () => {
expect(videoFiles.length).toBe(2); expect(videoFiles.length).toBe(2);
}); });
it('should scale frames down to the requested size ', async ({ browser, browserName, server, headless, trace }, testInfo) => { it('should scale frames down to the requested size ', async ({ browser, browserName, server, headless, channel }, testInfo) => {
const isChromiumHeadlessNew = browserName === 'chromium' && !!headless && !process.env.PLAYWRIGHT_CHROMIUM_USE_HEADLESS_OLD; const isChromiumHeadlessNew = browserName === 'chromium' && channel !== 'chromium-headless-shell';
it.fixme(!headless || isChromiumHeadlessNew, 'Fails on headed'); it.fixme(!headless || isChromiumHeadlessNew, 'Fails on headed');
const context = await browser.newContext({ const context = await browser.newContext({
@ -722,9 +722,9 @@ it.describe('screencast', () => {
expect(files.length).toBe(1); expect(files.length).toBe(1);
}); });
it('should capture full viewport', async ({ browserType, browserName, headless, isWindows }, testInfo) => { it('should capture full viewport', async ({ browserType, browserName, isWindows, channel }, testInfo) => {
it.info().annotations.push({ type: 'issue', description: 'https://github.com/microsoft/playwright/issues/22411' }); it.info().annotations.push({ type: 'issue', description: 'https://github.com/microsoft/playwright/issues/22411' });
it.fixme(browserName === 'chromium' && (!headless || !process.env.PLAYWRIGHT_CHROMIUM_USE_HEADLESS_OLD), 'The square is not on the video'); it.fixme(browserName === 'chromium' && channel !== 'chromium-headless-shell', 'The square is not on the video');
it.fixme(browserName === 'firefox' && isWindows, 'https://github.com/microsoft/playwright/issues/14405'); it.fixme(browserName === 'firefox' && isWindows, 'https://github.com/microsoft/playwright/issues/14405');
const size = { width: 600, height: 400 }; const size = { width: 600, height: 400 };
const browser = await browserType.launch(); const browser = await browserType.launch();
@ -757,9 +757,9 @@ it.describe('screencast', () => {
expectAll(pixels, almostRed); expectAll(pixels, almostRed);
}); });
it('should capture full viewport on hidpi', async ({ browserType, browserName, headless, isWindows, isLinux }, testInfo) => { it('should capture full viewport on hidpi', async ({ browserType, browserName, headless, isWindows, isLinux, channel }, testInfo) => {
it.info().annotations.push({ type: 'issue', description: 'https://github.com/microsoft/playwright/issues/22411' }); it.info().annotations.push({ type: 'issue', description: 'https://github.com/microsoft/playwright/issues/22411' });
it.fixme(browserName === 'chromium' && (!headless || !process.env.PLAYWRIGHT_CHROMIUM_USE_HEADLESS_OLD), 'The square is not on the video'); it.fixme(browserName === 'chromium' && channel !== 'chromium-headless-shell', 'The square is not on the video');
it.fixme(browserName === 'firefox' && isWindows, 'https://github.com/microsoft/playwright/issues/14405'); it.fixme(browserName === 'firefox' && isWindows, 'https://github.com/microsoft/playwright/issues/14405');
it.fixme(browserName === 'webkit' && isLinux && !headless, 'https://github.com/microsoft/playwright/issues/22617'); it.fixme(browserName === 'webkit' && isLinux && !headless, 'https://github.com/microsoft/playwright/issues/22617');
const size = { width: 600, height: 400 }; const size = { width: 600, height: 400 };
@ -794,9 +794,10 @@ it.describe('screencast', () => {
expectAll(pixels, almostRed); expectAll(pixels, almostRed);
}); });
it('should work with video+trace', async ({ browser, trace, headless }, testInfo) => { it('should work with video+trace', async ({ browser, trace, headless, browserName, channel }, testInfo) => {
it.skip(trace === 'on'); it.skip(trace === 'on');
it.fixme(!headless || !process.env.PLAYWRIGHT_CHROMIUM_USE_HEADLESS_OLD, 'different trace screencast image size on all browsers'); const isChromiumHeadlessNew = browserName === 'chromium' && channel !== 'chromium-headless-shell';
it.fixme(!headless || isChromiumHeadlessNew, 'different trace screencast image size on all browsers');
const size = { width: 500, height: 400 }; const size = { width: 500, height: 400 };
const traceFile = testInfo.outputPath('trace.zip'); const traceFile = testInfo.outputPath('trace.zip');

View file

@ -119,8 +119,8 @@ it('clicking checkbox should activate it', async ({ page, browserName, headless,
it('tab should cycle between single input and browser', { it('tab should cycle between single input and browser', {
annotation: { type: 'issue', description: 'https://github.com/microsoft/playwright/issues/32339' } annotation: { type: 'issue', description: 'https://github.com/microsoft/playwright/issues/32339' }
}, async ({ page, browserName, headless }) => { }, async ({ page, browserName, channel }) => {
it.fixme(browserName === 'chromium' && (!headless || !process.env.PLAYWRIGHT_CHROMIUM_USE_HEADLESS_OLD), it.fixme(browserName === 'chromium' && channel !== 'chromium-headless-shell',
'Chromium in headful mode keeps input focused.'); 'Chromium in headful mode keeps input focused.');
it.fixme(browserName !== 'chromium'); it.fixme(browserName !== 'chromium');
await page.setContent(`<label for="input1">input1</label> await page.setContent(`<label for="input1">input1</label>
@ -147,8 +147,8 @@ it('tab should cycle between single input and browser', {
it('tab should cycle between document elements and browser', { it('tab should cycle between document elements and browser', {
annotation: { type: 'issue', description: 'https://github.com/microsoft/playwright/issues/32339' } annotation: { type: 'issue', description: 'https://github.com/microsoft/playwright/issues/32339' }
}, async ({ page, browserName, headless }) => { }, async ({ page, browserName, channel }) => {
it.fixme(browserName === 'chromium' && (!headless || !process.env.PLAYWRIGHT_CHROMIUM_USE_HEADLESS_OLD), it.fixme(browserName === 'chromium' && channel !== 'chromium-headless-shell',
'Chromium in headful mode keeps last input focused.'); 'Chromium in headful mode keeps last input focused.');
it.fixme(browserName !== 'chromium'); it.fixme(browserName !== 'chromium');
await page.setContent(` await page.setContent(`