Skip to content

Commit 3aca21c

Browse files
authored
chore: simplify launch routine a bit more (#2336)
1 parent 3c84e9e commit 3aca21c

File tree

4 files changed

+20
-55
lines changed

4 files changed

+20
-55
lines changed

src/server/browserType.ts

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -124,7 +124,20 @@ export abstract class BrowserTypeBase implements BrowserType {
124124
if ((options as any).__testHookBeforeCreateBrowser)
125125
await (options as any).__testHookBeforeCreateBrowser();
126126

127-
const browser = await this._connectToServer(browserServer, persistent);
127+
const browserOptions: BrowserOptions = {
128+
slowMo: options.slowMo,
129+
persistent,
130+
headful: browserServer._headful,
131+
logger: browserServer._logger,
132+
downloadsPath: browserServer._downloadsPath,
133+
ownedServer: browserServer,
134+
};
135+
for (const [key, value] of Object.entries(options)) {
136+
if (key.startsWith('__testHook'))
137+
(browserOptions as any)[key] = value;
138+
}
139+
140+
const browser = await this._connectToTransport(browserServer._transport, browserOptions);
128141
if (persistent && (!options.ignoreDefaultArgs || Array.isArray(options.ignoreDefaultArgs))) {
129142
const context = browser._defaultContext!;
130143
await context._loadDefaultContext();
@@ -171,6 +184,5 @@ export abstract class BrowserTypeBase implements BrowserType {
171184
}
172185

173186
abstract _launchServer(options: LaunchServerOptions, launchType: LaunchType, logger: RootLogger, deadline: number, userDataDir?: string): Promise<BrowserServer>;
174-
abstract _connectToServer(browserServer: BrowserServer, persistent: PersistentContextOptions | undefined): Promise<BrowserBase>;
175187
abstract _connectToTransport(transport: ConnectionTransport, options: BrowserOptions): Promise<BrowserBase>;
176-
}
188+
}

src/server/chromium.ts

Lines changed: 3 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -32,8 +32,7 @@ import { ConnectionTransport, ProtocolRequest } from '../transport';
3232
import { InnerLogger, logError, RootLogger } from '../logger';
3333
import { BrowserDescriptor } from '../install/browserPaths';
3434
import { CRDevTools } from '../chromium/crDevTools';
35-
import { BrowserBase, BrowserOptions } from '../browser';
36-
import { PersistentContextOptions } from '../browserContext';
35+
import { BrowserOptions } from '../browser';
3736

3837
export class Chromium extends BrowserTypeBase {
3938
private _devtools: CRDevTools | undefined;
@@ -48,25 +47,13 @@ export class Chromium extends BrowserTypeBase {
4847
return new CRDevTools(path.join(this._browserPath, 'devtools-preferences.json'));
4948
}
5049

51-
async _connectToServer(browserServer: BrowserServer, persistent: PersistentContextOptions | undefined): Promise<BrowserBase> {
52-
const options = browserServer._launchOptions;
50+
async _connectToTransport(transport: ConnectionTransport, options: BrowserOptions): Promise<CRBrowser> {
5351
let devtools = this._devtools;
5452
if ((options as any).__testHookForDevTools) {
5553
devtools = this._createDevTools();
5654
await (options as any).__testHookForDevTools(devtools);
5755
}
58-
return await CRBrowser.connect(browserServer._transport, {
59-
slowMo: options.slowMo,
60-
persistent,
61-
headful: browserServer._headful,
62-
logger: browserServer._logger,
63-
downloadsPath: browserServer._downloadsPath,
64-
ownedServer: browserServer,
65-
}, devtools);
66-
}
67-
68-
_connectToTransport(transport: ConnectionTransport, options: BrowserOptions): Promise<CRBrowser> {
69-
return CRBrowser.connect(transport, options);
56+
return CRBrowser.connect(transport, options, devtools);
7057
}
7158

7259
async _launchServer(options: LaunchServerOptions, launchType: LaunchType, logger: RootLogger, deadline: number, userDataDir?: string): Promise<BrowserServer> {

src/server/firefox.ts

Lines changed: 1 addition & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -30,28 +30,11 @@ import { BrowserArgOptions, LaunchServerOptions, BrowserTypeBase, processBrowser
3030
import { launchProcess, waitForLine } from './processLauncher';
3131
import { ConnectionTransport, SequenceNumberMixer, WebSocketTransport } from '../transport';
3232
import { InnerLogger, logError, RootLogger } from '../logger';
33-
import { BrowserDescriptor } from '../install/browserPaths';
34-
import { BrowserBase, BrowserOptions } from '../browser';
35-
import { PersistentContextOptions } from '../browserContext';
33+
import { BrowserOptions } from '../browser';
3634

3735
const mkdtempAsync = util.promisify(fs.mkdtemp);
3836

3937
export class Firefox extends BrowserTypeBase {
40-
constructor(packagePath: string, browser: BrowserDescriptor) {
41-
super(packagePath, browser);
42-
}
43-
44-
_connectToServer(browserServer: BrowserServer, persistent: PersistentContextOptions | undefined): Promise<BrowserBase> {
45-
return FFBrowser.connect(browserServer._transport, {
46-
slowMo: browserServer._launchOptions.slowMo,
47-
logger: browserServer._logger,
48-
persistent,
49-
downloadsPath: browserServer._downloadsPath,
50-
headful: browserServer._headful,
51-
ownedServer: browserServer,
52-
});
53-
}
54-
5538
_connectToTransport(transport: ConnectionTransport, options: BrowserOptions): Promise<FFBrowser> {
5639
return FFBrowser.connect(transport, options);
5740
}

src/server/webkit.ts

Lines changed: 1 addition & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -30,26 +30,9 @@ import * as ws from 'ws';
3030
import { BrowserServer, WebSocketWrapper } from './browserServer';
3131
import { Events } from '../events';
3232
import { InnerLogger, logError, RootLogger } from '../logger';
33-
import { BrowserDescriptor } from '../install/browserPaths';
34-
import { BrowserBase, BrowserOptions } from '../browser';
35-
import { PersistentContextOptions } from '../browserContext';
33+
import { BrowserOptions } from '../browser';
3634

3735
export class WebKit extends BrowserTypeBase {
38-
constructor(packagePath: string, browser: BrowserDescriptor) {
39-
super(packagePath, browser);
40-
}
41-
42-
_connectToServer(browserServer: BrowserServer, persistent: PersistentContextOptions | undefined): Promise<BrowserBase> {
43-
return WKBrowser.connect(browserServer._transport, {
44-
slowMo: browserServer._launchOptions.slowMo,
45-
headful: browserServer._headful,
46-
logger: browserServer._logger,
47-
persistent,
48-
downloadsPath: browserServer._downloadsPath,
49-
ownedServer: browserServer
50-
});
51-
}
52-
5336
_connectToTransport(transport: ConnectionTransport, options: BrowserOptions): Promise<WKBrowser> {
5437
return WKBrowser.connect(transport, options);
5538
}

0 commit comments

Comments
 (0)