mirror of
https://github.com/microsoft/playwright.git
synced 2025-06-26 21:40:17 +00:00
chore: avoid downcast of delegate to <Browser>Page (#334)
This commit is contained in:
parent
27ddb017e2
commit
845c0af42f
@ -82,18 +82,19 @@ export class CRBrowser extends browser.Browser {
|
||||
const target = this._targets.get(targetId);
|
||||
assert(await target._initializedPromise, 'Failed to create target for page');
|
||||
const page = await target.page();
|
||||
const session = (page._delegate as CRPage)._client;
|
||||
const promises: Promise<any>[] = [ overrides._applyOverrides(page) ];
|
||||
const crPage = target._crPage;
|
||||
const session = crPage._client;
|
||||
const promises: Promise<any>[] = [ overrides._applyOverrides(crPage) ];
|
||||
if (options.bypassCSP)
|
||||
promises.push(session.send('Page.setBypassCSP', { enabled: true }));
|
||||
if (options.ignoreHTTPSErrors)
|
||||
promises.push(session.send('Security.setIgnoreCertificateErrors', { ignore: true }));
|
||||
if (options.viewport)
|
||||
promises.push(page._delegate.setViewport(options.viewport));
|
||||
promises.push(crPage.setViewport(options.viewport));
|
||||
if (options.javaScriptEnabled === false)
|
||||
promises.push(session.send('Emulation.setScriptExecutionDisabled', { value: true }));
|
||||
if (options.userAgent)
|
||||
(page._delegate as CRPage)._networkManager.setUserAgent(options.userAgent);
|
||||
crPage._networkManager.setUserAgent(options.userAgent);
|
||||
if (options.mediaType || options.colorScheme) {
|
||||
const features = options.colorScheme ? [{ name: 'prefers-color-scheme', value: options.colorScheme }] : [];
|
||||
promises.push(session.send('Emulation.setEmulatedMedia', { media: options.mediaType || '', features }));
|
||||
|
||||
@ -44,7 +44,7 @@ const UTILITY_WORLD_NAME = '__playwright_utility_world__';
|
||||
|
||||
export class CRPage implements PageDelegate {
|
||||
_client: CRSession;
|
||||
private _page: ChromiumPage;
|
||||
private readonly _page: ChromiumPage;
|
||||
readonly _networkManager: CRNetworkManager;
|
||||
private _contextIdToContext = new Map<number, dom.FrameExecutionContext>();
|
||||
private _isolatedWorlds = new Set<string>();
|
||||
|
||||
@ -29,14 +29,14 @@ const targetSymbol = Symbol('target');
|
||||
|
||||
export class CRTarget {
|
||||
private _targetInfo: Protocol.Target.TargetInfo;
|
||||
private _browser: CRBrowser;
|
||||
private _browserContext: BrowserContext;
|
||||
_targetId: string;
|
||||
private readonly _browser: CRBrowser;
|
||||
private readonly _browserContext: BrowserContext;
|
||||
readonly _targetId: string;
|
||||
private _sessionFactory: () => Promise<CRSession>;
|
||||
private _pagePromise: Promise<Page> | null = null;
|
||||
private _crPage: CRPage | null = null;
|
||||
_crPage: CRPage | null = null;
|
||||
private _workerPromise: Promise<CRWorker> | null = null;
|
||||
_initializedPromise: Promise<boolean>;
|
||||
readonly _initializedPromise: Promise<boolean>;
|
||||
_initializedCallback: (value?: unknown) => void;
|
||||
_isInitialized: boolean;
|
||||
|
||||
|
||||
@ -47,8 +47,8 @@ export class CROverrides {
|
||||
await (page._delegate as CRPage)._client.send('Emulation.setGeolocationOverride', this._geolocation);
|
||||
}
|
||||
|
||||
async _applyOverrides(page: Page): Promise<void> {
|
||||
async _applyOverrides(page: CRPage): Promise<void> {
|
||||
if (this._geolocation)
|
||||
await (page._delegate as CRPage)._client.send('Emulation.setGeolocationOverride', this._geolocation);
|
||||
await page._client.send('Emulation.setGeolocationOverride', this._geolocation);
|
||||
}
|
||||
}
|
||||
|
||||
@ -156,7 +156,7 @@ export class FFBrowser extends browser.Browser {
|
||||
});
|
||||
const target = this._targets.get(targetId);
|
||||
const page = await target.page();
|
||||
const session = (page._delegate as FFPage)._session;
|
||||
const session = target._ffPage._session;
|
||||
const promises: Promise<any>[] = [];
|
||||
if (options.viewport)
|
||||
promises.push(page._delegate.setViewport(options.viewport));
|
||||
@ -222,14 +222,14 @@ export class FFBrowser extends browser.Browser {
|
||||
|
||||
export class Target {
|
||||
_pagePromise?: Promise<Page>;
|
||||
private _ffPage: FFPage | null = null;
|
||||
private _browser: FFBrowser;
|
||||
_context: BrowserContext;
|
||||
private _connection: FFConnection;
|
||||
private _targetId: string;
|
||||
private _type: 'page' | 'browser';
|
||||
_ffPage: FFPage | null = null;
|
||||
private readonly _browser: FFBrowser;
|
||||
private readonly _context: BrowserContext;
|
||||
private readonly _connection: FFConnection;
|
||||
private readonly _targetId: string;
|
||||
private readonly _type: 'page' | 'browser';
|
||||
_url: string;
|
||||
private _openerId: string;
|
||||
private readonly _openerId: string;
|
||||
|
||||
constructor(connection: any, browser: FFBrowser, context: BrowserContext, targetId: string, type: 'page' | 'browser', url: string, openerId: string | undefined) {
|
||||
this._browser = browser;
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user