fix: return valid browser from context.browser() when connect over CDP (#7155)
This commit is contained in:
parent
312fd3ed4e
commit
e5d0a535a8
|
|
@ -41,9 +41,10 @@ export class BrowserTypeDispatcher extends Dispatcher<BrowserType, channels.Brow
|
||||||
|
|
||||||
async connectOverCDP(params: channels.BrowserTypeConnectOverCDPParams, metadata: CallMetadata): Promise<channels.BrowserTypeConnectOverCDPResult> {
|
async connectOverCDP(params: channels.BrowserTypeConnectOverCDPParams, metadata: CallMetadata): Promise<channels.BrowserTypeConnectOverCDPResult> {
|
||||||
const browser = await this._object.connectOverCDP(metadata, params.endpointURL, params, params.timeout);
|
const browser = await this._object.connectOverCDP(metadata, params.endpointURL, params, params.timeout);
|
||||||
|
const browserDispatcher = new BrowserDispatcher(this._scope, browser);
|
||||||
return {
|
return {
|
||||||
browser: new BrowserDispatcher(this._scope, browser),
|
browser: browserDispatcher,
|
||||||
defaultContext: browser._defaultContext ? new BrowserContextDispatcher(this._scope, browser._defaultContext) : undefined,
|
defaultContext: browser._defaultContext ? new BrowserContextDispatcher(browserDispatcher._scope, browser._defaultContext) : undefined,
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -201,7 +201,7 @@ playwrightTest('should connect over a ws endpoint', async ({browserType, browser
|
||||||
const cdpBrowser2 = await browserType.connectOverCDP({
|
const cdpBrowser2 = await browserType.connectOverCDP({
|
||||||
wsEndpoint: JSON.parse(json).webSocketDebuggerUrl,
|
wsEndpoint: JSON.parse(json).webSocketDebuggerUrl,
|
||||||
});
|
});
|
||||||
const contexts2 = cdpBrowser.contexts();
|
const contexts2 = cdpBrowser2.contexts();
|
||||||
expect(contexts2.length).toBe(1);
|
expect(contexts2.length).toBe(1);
|
||||||
await cdpBrowser2.close();
|
await cdpBrowser2.close();
|
||||||
} finally {
|
} finally {
|
||||||
|
|
@ -285,3 +285,26 @@ playwrightTest('should report all pages in an existing browser', async ({ browse
|
||||||
await browserServer.close();
|
await browserServer.close();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
playwrightTest('should return valid browser from context.browser()', async ({ browserType, browserOptions }, testInfo) => {
|
||||||
|
const port = 9339 + testInfo.workerIndex;
|
||||||
|
const browserServer = await browserType.launch({
|
||||||
|
...browserOptions,
|
||||||
|
args: ['--remote-debugging-port=' + port]
|
||||||
|
});
|
||||||
|
try {
|
||||||
|
const cdpBrowser = await browserType.connectOverCDP({
|
||||||
|
endpointURL: `http://localhost:${port}/`,
|
||||||
|
});
|
||||||
|
const contexts = cdpBrowser.contexts();
|
||||||
|
expect(contexts.length).toBe(1);
|
||||||
|
expect(contexts[0].browser()).toBe(cdpBrowser);
|
||||||
|
|
||||||
|
const context2 = await cdpBrowser.newContext();
|
||||||
|
expect(context2.browser()).toBe(cdpBrowser);
|
||||||
|
|
||||||
|
await cdpBrowser.close();
|
||||||
|
} finally {
|
||||||
|
await browserServer.close();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue