feat(remote): send browser/channel/headless in a header (#12205)
This commit is contained in:
parent
34eec7eae7
commit
edac84d072
|
|
@ -141,9 +141,9 @@ class Connection {
|
|||
if (browser)
|
||||
return await this._initPreLaunchedBrowserMode(scope, browser);
|
||||
const url = new URL('http://localhost' + (request.url || ''));
|
||||
const browserHeader = request.headers['X-Playwright-Browser'];
|
||||
const browserHeader = request.headers['x-playwright-browser'];
|
||||
const browserAlias = url.searchParams.get('browser') || (Array.isArray(browserHeader) ? browserHeader[0] : browserHeader);
|
||||
const proxyHeader = request.headers['X-Playwright-Proxy'];
|
||||
const proxyHeader = request.headers['x-playwright-proxy'];
|
||||
const proxyValue = url.searchParams.get('proxy') || (Array.isArray(proxyHeader) ? proxyHeader[0] : proxyHeader);
|
||||
if (!browserAlias)
|
||||
return await this._initPlaywrightConnectMode(scope, enableSocksProxy && proxyValue === '*');
|
||||
|
|
|
|||
|
|
@ -106,11 +106,18 @@ export const test = _baseTest.extend<TestFixtures, WorkerFixtures>({
|
|||
(browserType as any)._defaultLaunchOptions = undefined;
|
||||
}, { scope: 'worker', auto: true }],
|
||||
|
||||
browser: [async ({ playwright, browserName, connectOptions }, use) => {
|
||||
browser: [async ({ playwright, browserName, channel, headless, connectOptions }, use) => {
|
||||
if (!['chromium', 'firefox', 'webkit'].includes(browserName))
|
||||
throw new Error(`Unexpected browserName "${browserName}", must be one of "chromium", "firefox" or "webkit"`);
|
||||
if (connectOptions) {
|
||||
const browser = await playwright[browserName].connect(connectOptions);
|
||||
const browser = await playwright[browserName].connect({
|
||||
wsEndpoint: connectOptions.wsEndpoint,
|
||||
headers: {
|
||||
'x-playwright-browser': channel || browserName,
|
||||
'x-playwright-headless': headless ? '1' : '0',
|
||||
...connectOptions.headers,
|
||||
}
|
||||
});
|
||||
await use(browser);
|
||||
await browser.close();
|
||||
return;
|
||||
|
|
|
|||
|
|
@ -59,6 +59,7 @@ const config: Config<CoverageWorkerOptions & PlaywrightWorkerOptions & Playwrigh
|
|||
['html', { open: 'on-failure' }]
|
||||
],
|
||||
projects: [],
|
||||
use: {},
|
||||
};
|
||||
|
||||
if (mode === 'service') {
|
||||
|
|
@ -75,6 +76,9 @@ if (mode === 'service2') {
|
|||
port: 3333,
|
||||
reuseExistingServer: true,
|
||||
};
|
||||
config.use.connectOptions = {
|
||||
wsEndpoint: 'ws://localhost:3333/',
|
||||
};
|
||||
}
|
||||
|
||||
const browserNames = ['chromium', 'webkit', 'firefox'] as BrowserName[];
|
||||
|
|
@ -101,9 +105,6 @@ for (const browserName of browserNames) {
|
|||
},
|
||||
trace: trace ? 'on' : undefined,
|
||||
coverageName: browserName,
|
||||
connectOptions: mode === 'service2' ? {
|
||||
wsEndpoint: 'ws://localhost:3333/?browser=' + (channel || browserName),
|
||||
} : undefined,
|
||||
},
|
||||
metadata: {
|
||||
platform: process.platform,
|
||||
|
|
|
|||
Loading…
Reference in a new issue