Fixes #491 When `--start-maximized` or `--window-size` is passed as a browser arg, Playwright's default viewport (1280x720) overrides the browser's own window sizing, making those flags have no effect on the page content. This change auto-detects those args and sets `viewport: null` so Playwright defers to the browser's window size. Explicit viewport values still take priority. Also allows `viewport: null` in the launch protocol for agents that want to disable viewport emulation directly.
This commit is contained in:
@@ -484,6 +484,42 @@ describe('BrowserManager', () => {
|
||||
expect(size?.width).toBe(1920);
|
||||
expect(size?.height).toBe(1080);
|
||||
});
|
||||
|
||||
it('should disable viewport when --start-maximized is in args', async () => {
|
||||
const testBrowser = new BrowserManager();
|
||||
await testBrowser.launch({ headless: true, args: ['--start-maximized'] });
|
||||
const page = testBrowser.getPage();
|
||||
expect(page.viewportSize()).toBeNull();
|
||||
await testBrowser.close();
|
||||
});
|
||||
|
||||
it('should disable viewport when --window-size is in args', async () => {
|
||||
const testBrowser = new BrowserManager();
|
||||
await testBrowser.launch({ headless: true, args: ['--window-size=800,600'] });
|
||||
const page = testBrowser.getPage();
|
||||
expect(page.viewportSize()).toBeNull();
|
||||
await testBrowser.close();
|
||||
});
|
||||
|
||||
it('should use default viewport when no window size args', async () => {
|
||||
const testBrowser = new BrowserManager();
|
||||
await testBrowser.launch({ headless: true });
|
||||
const page = testBrowser.getPage();
|
||||
expect(page.viewportSize()).toEqual({ width: 1280, height: 720 });
|
||||
await testBrowser.close();
|
||||
});
|
||||
|
||||
it('should use explicit viewport even with --start-maximized', async () => {
|
||||
const testBrowser = new BrowserManager();
|
||||
await testBrowser.launch({
|
||||
headless: true,
|
||||
args: ['--start-maximized'],
|
||||
viewport: { width: 800, height: 600 },
|
||||
});
|
||||
const page = testBrowser.getPage();
|
||||
expect(page.viewportSize()).toEqual({ width: 800, height: 600 });
|
||||
await testBrowser.close();
|
||||
});
|
||||
});
|
||||
|
||||
describe('snapshot', () => {
|
||||
|
||||
Reference in New Issue
Block a user