fix(webkit): band-aid double connection fix to unblock tests (#422)
This commit is contained in:
parent
85c0cc3ae2
commit
66e8a9c04f
|
|
@ -67,7 +67,7 @@ export class WKBrowserServer {
|
||||||
|
|
||||||
async close(): Promise<void> {
|
async close(): Promise<void> {
|
||||||
const transport = await createTransport(this._connectOptions);
|
const transport = await createTransport(this._connectOptions);
|
||||||
const connection = new WKConnection(transport);
|
const connection = WKConnection.from(transport);
|
||||||
await connection.send('Browser.close');
|
await connection.send('Browser.close');
|
||||||
connection.dispose();
|
connection.dispose();
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -51,7 +51,7 @@ export class WKBrowser extends browser.Browser {
|
||||||
|
|
||||||
constructor(transport: ConnectionTransport) {
|
constructor(transport: ConnectionTransport) {
|
||||||
super();
|
super();
|
||||||
this._connection = new WKConnection(transport);
|
this._connection = WKConnection.from(transport);
|
||||||
|
|
||||||
this._defaultContext = this._createBrowserContext(undefined, {});
|
this._defaultContext = this._createBrowserContext(undefined, {});
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -34,6 +34,8 @@ export const WKPageProxySessionEvents = {
|
||||||
DidCommitProvisionalTarget: Symbol('PageProxyEvents.DidCommitProvisionalTarget'),
|
DidCommitProvisionalTarget: Symbol('PageProxyEvents.DidCommitProvisionalTarget'),
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const kConnectionSymbol = Symbol();
|
||||||
|
|
||||||
export class WKConnection extends platform.EventEmitter {
|
export class WKConnection extends platform.EventEmitter {
|
||||||
private _lastId = 0;
|
private _lastId = 0;
|
||||||
private readonly _callbacks = new Map<number, {resolve:(o: any) => void, reject: (e: Error) => void, error: Error, method: string}>();
|
private readonly _callbacks = new Map<number, {resolve:(o: any) => void, reject: (e: Error) => void, error: Error, method: string}>();
|
||||||
|
|
@ -42,6 +44,15 @@ export class WKConnection extends platform.EventEmitter {
|
||||||
|
|
||||||
private _closed = false;
|
private _closed = false;
|
||||||
|
|
||||||
|
static from(transport: ConnectionTransport): WKConnection {
|
||||||
|
let connection = (transport as any)[kConnectionSymbol];
|
||||||
|
if (!connection) {
|
||||||
|
connection = new WKConnection(transport);
|
||||||
|
(transport as any)[kConnectionSymbol] = connection;
|
||||||
|
}
|
||||||
|
return connection;
|
||||||
|
}
|
||||||
|
|
||||||
constructor(transport: ConnectionTransport) {
|
constructor(transport: ConnectionTransport) {
|
||||||
super();
|
super();
|
||||||
this._transport = transport;
|
this._transport = transport;
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue