From d7f5f1f5fe62cbc29548d89b3f7584100093d056 Mon Sep 17 00:00:00 2001 From: Andrey Lushnikov Date: Thu, 11 May 2023 18:09:19 +0000 Subject: [PATCH] feat: default screenshot jpeg quality to 80 (#22966) Fixes https://github.com/microsoft/playwright/issues/22436 --- packages/playwright-core/src/server/firefox/ffPage.ts | 1 + packages/playwright-core/src/server/screenshotter.ts | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/packages/playwright-core/src/server/firefox/ffPage.ts b/packages/playwright-core/src/server/firefox/ffPage.ts index d3db91f9e1..1e1db5b908 100644 --- a/packages/playwright-core/src/server/firefox/ffPage.ts +++ b/packages/playwright-core/src/server/firefox/ffPage.ts @@ -440,6 +440,7 @@ export class FFPage implements PageDelegate { const { data } = await this._session.send('Page.screenshot', { mimeType: ('image/' + format) as ('image/png' | 'image/jpeg'), clip: documentRect, + quality, omitDeviceScaleFactor: scale === 'css', }); return Buffer.from(data, 'base64'); diff --git a/packages/playwright-core/src/server/screenshotter.ts b/packages/playwright-core/src/server/screenshotter.ts index 05f6a160e0..12791e0a49 100644 --- a/packages/playwright-core/src/server/screenshotter.ts +++ b/packages/playwright-core/src/server/screenshotter.ts @@ -288,7 +288,8 @@ export class Screenshotter { const cleanupHighlight = await this._maskElements(progress, options); progress.throwIfAborted(); // Avoid extra work. - const buffer = await this._page._delegate.takeScreenshot(progress, format, documentRect, viewportRect, options.quality, fitsViewport, options.scale || 'device'); + const quality = format === 'jpeg' ? options.quality ?? 80 : undefined; + const buffer = await this._page._delegate.takeScreenshot(progress, format, documentRect, viewportRect, quality, fitsViewport, options.scale || 'device'); progress.throwIfAborted(); // Avoid restoring after failure - should be done by cleanup. await cleanupHighlight();