From d8ad1cb6a12b6f337007791ce18aadcc7859027c Mon Sep 17 00:00:00 2001 From: "yanlong.wang" Date: Tue, 24 Dec 2024 18:48:32 +0800 Subject: [PATCH] feat: expose setViewport to page script --- backend/functions/src/services/puppeteer.ts | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/backend/functions/src/services/puppeteer.ts b/backend/functions/src/services/puppeteer.ts index 59c02fa..b532b20 100644 --- a/backend/functions/src/services/puppeteer.ts +++ b/backend/functions/src/services/puppeteer.ts @@ -4,7 +4,7 @@ import { container, singleton } from 'tsyringe'; import { AsyncService, Defer, marshalErrorLike, AssertionFailureError, delay, Deferred, perNextTick, ParamValidationError } from 'civkit'; import { Logger } from '../shared/services/logger'; -import type { Browser, CookieParam, GoToOptions, HTTPResponse, Page } from 'puppeteer'; +import type { Browser, CookieParam, GoToOptions, HTTPResponse, Page, Viewport } from 'puppeteer'; import type { Cookie } from 'set-cookie-parser'; import puppeteer from 'puppeteer-extra'; @@ -555,6 +555,9 @@ export class PuppeteerControl extends AsyncService { } page.emit('snapshot', snapshot); })); + preparations.push(page.exposeFunction('setViewport', (viewport: Viewport | null) => { + page.setViewport(viewport).catch(() => undefined); + })); preparations.push(page.evaluateOnNewDocument(SCRIPT_TO_INJECT_INTO_FRAME)); preparations.push(page.setRequestInterception(true));