feat: expose setViewport to page script

This commit is contained in:
yanlong.wang 2024-12-24 18:48:32 +08:00
parent 696536c7f2
commit d8ad1cb6a1
No known key found for this signature in database
GPG Key ID: C0A623C0BADF9F37

View File

@ -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));