mirror of
https://github.com/microsoft/playwright.git
synced 2025-06-26 21:40:17 +00:00
chore: create Selectors for each Playwright object (#7154)
We currently have singleton `serverSelectors` that is shared between the real Playwright and internal Playwrights.
This commit is contained in:
parent
4c2a3fb443
commit
b74ca36fb3
@ -21,7 +21,6 @@ import { DispatcherConnection, DispatcherScope } from '../dispatchers/dispatcher
|
|||||||
import { PlaywrightDispatcher } from '../dispatchers/playwrightDispatcher';
|
import { PlaywrightDispatcher } from '../dispatchers/playwrightDispatcher';
|
||||||
import { createPlaywright } from '../server/playwright';
|
import { createPlaywright } from '../server/playwright';
|
||||||
import { gracefullyCloseAll } from '../server/processLauncher';
|
import { gracefullyCloseAll } from '../server/processLauncher';
|
||||||
import { serverSelectors } from '../server/selectors';
|
|
||||||
|
|
||||||
const debugLog = debug('pw:server');
|
const debugLog = debug('pw:server');
|
||||||
|
|
||||||
@ -44,7 +43,6 @@ export class PlaywrightServer {
|
|||||||
static async startDefault({ acceptForwardedPorts }: PlaywrightServerOptions = {}): Promise<PlaywrightServer> {
|
static async startDefault({ acceptForwardedPorts }: PlaywrightServerOptions = {}): Promise<PlaywrightServer> {
|
||||||
const cleanup = async () => {
|
const cleanup = async () => {
|
||||||
await gracefullyCloseAll().catch(e => {});
|
await gracefullyCloseAll().catch(e => {});
|
||||||
serverSelectors.unregisterAll();
|
|
||||||
};
|
};
|
||||||
const delegate: PlaywrightServerDelegate = {
|
const delegate: PlaywrightServerDelegate = {
|
||||||
path: '/ws',
|
path: '/ws',
|
||||||
@ -58,6 +56,7 @@ export class PlaywrightServer {
|
|||||||
return () => {
|
return () => {
|
||||||
cleanup();
|
cleanup();
|
||||||
playwright._disablePortForwarding();
|
playwright._disablePortForwarding();
|
||||||
|
playwright.selectors.unregisterAll();
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|||||||
@ -24,6 +24,7 @@ import { RecentLogsCollector } from '../utils/debugLogger';
|
|||||||
import * as registry from '../utils/registry';
|
import * as registry from '../utils/registry';
|
||||||
import { SdkObject } from './instrumentation';
|
import { SdkObject } from './instrumentation';
|
||||||
import { Artifact } from './artifact';
|
import { Artifact } from './artifact';
|
||||||
|
import { Selectors } from './selectors';
|
||||||
|
|
||||||
export interface BrowserProcess {
|
export interface BrowserProcess {
|
||||||
onclose?: ((exitCode: number | null, signal: string | null) => void);
|
onclose?: ((exitCode: number | null, signal: string | null) => void);
|
||||||
@ -35,6 +36,7 @@ export interface BrowserProcess {
|
|||||||
export type PlaywrightOptions = {
|
export type PlaywrightOptions = {
|
||||||
registry: registry.Registry,
|
registry: registry.Registry,
|
||||||
rootSdkObject: SdkObject,
|
rootSdkObject: SdkObject,
|
||||||
|
selectors: Selectors,
|
||||||
loopbackProxyOverride?: () => string,
|
loopbackProxyOverride?: () => string,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@ -25,7 +25,7 @@ import { helper } from './helper';
|
|||||||
import * as network from './network';
|
import * as network from './network';
|
||||||
import { Page, PageBinding, PageDelegate } from './page';
|
import { Page, PageBinding, PageDelegate } from './page';
|
||||||
import { Progress } from './progress';
|
import { Progress } from './progress';
|
||||||
import { Selectors, serverSelectors } from './selectors';
|
import { Selectors } from './selectors';
|
||||||
import * as types from './types';
|
import * as types from './types';
|
||||||
import path from 'path';
|
import path from 'path';
|
||||||
import { CallMetadata, internalCallMetadata, createInstrumentation, SdkObject } from './instrumentation';
|
import { CallMetadata, internalCallMetadata, createInstrumentation, SdkObject } from './instrumentation';
|
||||||
@ -83,7 +83,7 @@ export abstract class BrowserContext extends SdkObject {
|
|||||||
}
|
}
|
||||||
|
|
||||||
selectors(): Selectors {
|
selectors(): Selectors {
|
||||||
return this._selectors || serverSelectors;
|
return this._selectors || this._browser.options.selectors;
|
||||||
}
|
}
|
||||||
|
|
||||||
async _initialize() {
|
async _initialize() {
|
||||||
|
|||||||
@ -21,7 +21,7 @@ import { PlaywrightOptions } from './browser';
|
|||||||
import { Chromium } from './chromium/chromium';
|
import { Chromium } from './chromium/chromium';
|
||||||
import { Electron } from './electron/electron';
|
import { Electron } from './electron/electron';
|
||||||
import { Firefox } from './firefox/firefox';
|
import { Firefox } from './firefox/firefox';
|
||||||
import { Selectors, serverSelectors } from './selectors';
|
import { Selectors } from './selectors';
|
||||||
import { WebKit } from './webkit/webkit';
|
import { WebKit } from './webkit/webkit';
|
||||||
import { Registry } from '../utils/registry';
|
import { Registry } from '../utils/registry';
|
||||||
import { CallMetadata, createInstrumentation, SdkObject } from './instrumentation';
|
import { CallMetadata, createInstrumentation, SdkObject } from './instrumentation';
|
||||||
@ -50,13 +50,14 @@ export class Playwright extends SdkObject {
|
|||||||
this.options = {
|
this.options = {
|
||||||
registry: new Registry(path.join(__dirname, '..', '..')),
|
registry: new Registry(path.join(__dirname, '..', '..')),
|
||||||
rootSdkObject: this,
|
rootSdkObject: this,
|
||||||
|
selectors: new Selectors(),
|
||||||
};
|
};
|
||||||
this.chromium = new Chromium(this.options);
|
this.chromium = new Chromium(this.options);
|
||||||
this.firefox = new Firefox(this.options);
|
this.firefox = new Firefox(this.options);
|
||||||
this.webkit = new WebKit(this.options);
|
this.webkit = new WebKit(this.options);
|
||||||
this.electron = new Electron(this.options);
|
this.electron = new Electron(this.options);
|
||||||
this.android = new Android(new AdbBackend(), this.options);
|
this.android = new Android(new AdbBackend(), this.options);
|
||||||
this.selectors = serverSelectors;
|
this.selectors = this.options.selectors;
|
||||||
}
|
}
|
||||||
|
|
||||||
async _enablePortForwarding() {
|
async _enablePortForwarding() {
|
||||||
|
|||||||
@ -139,5 +139,3 @@ export class Selectors {
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
export const serverSelectors = new Selectors();
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user