Path: blob/main/plugins/default-browser-emulator/lib/helpers/setScreensize.ts
1030 views
import IDevtoolsSession from '@secret-agent/interfaces/IDevtoolsSession';1import { IPuppetPage } from '@secret-agent/interfaces/IPuppetPage';2import BrowserEmulator from '../../index';34export default async function setScreensize(5emulator: BrowserEmulator,6page: IPuppetPage,7devtools: IDevtoolsSession,8): Promise<void> {9const { viewport } = emulator;10if (!viewport) return;1112const promises: Promise<any>[] = [];1314if (emulator.browserEngine.isHeaded) {15promises.push(16page.devtoolsSession.send('Browser.getWindowForTarget').then(({ windowId, bounds }) => {17if (bounds.width === viewport.width && bounds.height === viewport.height) {18return null;19}2021return devtools.send('Browser.setWindowBounds', {22windowId,23bounds: {24width: viewport.width,25height: viewport.height,26windowState: 'normal',27},28});29}),30);31}3233promises.push(34devtools.send('Emulation.setDeviceMetricsOverride', {35width: viewport.width,36height: viewport.height,37deviceScaleFactor: viewport.deviceScaleFactor ?? 1,38positionX: viewport.positionX,39positionY: viewport.positionY,40screenWidth: viewport.screenWidth,41screenHeight: viewport.screenHeight,42mobile: false,43}),44);45await Promise.all(promises);46}474849