From 65dc53558a9aa752b424e7c086b4e81d34331622 Mon Sep 17 00:00:00 2001 From: Yury Semikhatsky Date: Sun, 25 Oct 2026 19:56:27 -0700 Subject: [PATCH 1/2] fix(browser): send the screenSize context option as the protocol's screen parameter The option was sent under its Java name and ignored by the driver. Claude-Session: https://claude.ai/code/session_018p7xPf3r5VjAM7V46nzFTM --- .../main/java/com/microsoft/playwright/impl/BrowserImpl.java | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/playwright/src/main/java/com/microsoft/playwright/impl/BrowserImpl.java b/playwright/src/main/java/com/microsoft/playwright/impl/BrowserImpl.java index a6c36e662..9421565ba 100644 --- a/playwright/src/main/java/com/microsoft/playwright/impl/BrowserImpl.java +++ b/playwright/src/main/java/com/microsoft/playwright/impl/BrowserImpl.java @@ -182,6 +182,11 @@ public BrowserContextImpl newContext(NewContextOptions options) { params.addProperty("noDefaultViewport", true); } } + if (options.screenSize != null) { + JsonElement size = params.get("screenSize"); + params.remove("screenSize"); + params.add("screen", size); + } addToProtocol(params, options.clientCertificates); addHttpCredentialsToProtocol(params); params.remove("acceptDownloads"); From 54956bc0c62302f903df61cada98eee338b0b191 Mon Sep 17 00:00:00 2001 From: Yury Semikhatsky Date: Mon, 26 Oct 2026 12:21:58 -0700 Subject: [PATCH 2/2] test(browser): check that the screenSize context option is applied Claude-Session: https://claude.ai/code/session_018p7xPf3r5VjAM7V46nzFTM --- .../playwright/TestBrowserContextViewport.java | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/playwright/src/test/java/com/microsoft/playwright/TestBrowserContextViewport.java b/playwright/src/test/java/com/microsoft/playwright/TestBrowserContextViewport.java index 23f33070e..d08da1203 100644 --- a/playwright/src/test/java/com/microsoft/playwright/TestBrowserContextViewport.java +++ b/playwright/src/test/java/com/microsoft/playwright/TestBrowserContextViewport.java @@ -20,6 +20,7 @@ import java.util.Map; +import static com.microsoft.playwright.Utils.mapOf; import static com.microsoft.playwright.Utils.verifyViewport; import static org.junit.jupiter.api.Assertions.*; @@ -129,4 +130,15 @@ void shouldReportNullViewPortSizeWhenGivenNullViewport(Browser browser) { assertNull(page.viewportSize()); context.close(); } + + @PlaywrightTest + void shouldSetBothScreenAndViewportOptions(Browser browser) { + try (BrowserContext context = browser.newContext(new Browser.NewContextOptions() + .setScreenSize(1280, 720) + .setViewportSize(1000, 600))) { + Page page = context.newPage(); + assertEquals(mapOf("w", 1280, "h", 720), page.evaluate("() => ({ w: screen.width, h: screen.height })")); + assertEquals(mapOf("w", 1000, "h", 600), page.evaluate("() => ({ w: window.innerWidth, h: window.innerHeight })")); + } + } }