diff --git a/packages/playwright-core/src/server/trace/viewer/traceViewer.ts b/packages/playwright-core/src/server/trace/viewer/traceViewer.ts index a49148e061..11d446b042 100644 --- a/packages/playwright-core/src/server/trace/viewer/traceViewer.ts +++ b/packages/playwright-core/src/server/trace/viewer/traceViewer.ts @@ -125,7 +125,13 @@ export async function installRootRedirect(server: HttpServer, traceUrls: string[ for (const reporter of options.reporter || []) params.append('reporter', reporter); - const urlPath = `./trace/${options.webApp || 'index.html'}?${params.toString()}`; + let urlPath = `./trace/${options.webApp || 'index.html'}?${params.toString()}`; + + if (process.env.PW_WEB_DEV_SERVER) { + params.append('testServerPort', '' + server.port()); + urlPath = `http://localhost:${process.env.PW_WEB_DEV_SERVER}/${options.webApp || 'index.html'}?${params.toString()}`; + } + server.routePath('/', (_, response) => { response.statusCode = 302; response.setHeader('Location', urlPath); diff --git a/packages/trace-viewer/src/ui/uiModeView.tsx b/packages/trace-viewer/src/ui/uiModeView.tsx index 69a5988641..1345fd6951 100644 --- a/packages/trace-viewer/src/ui/uiModeView.tsx +++ b/packages/trace-viewer/src/ui/uiModeView.tsx @@ -48,8 +48,10 @@ const xtermDataSource: XtermDataSource = { const searchParams = new URLSearchParams(window.location.search); const guid = searchParams.get('ws'); +const testServerPort = searchParams.get('testServerPort') ?? window.location.port; const wsURL = new URL(`../${guid}`, window.location.toString()); wsURL.protocol = (window.location.protocol === 'https:' ? 'wss:' : 'ws:'); +wsURL.port = testServerPort; const queryParams = { args: searchParams.getAll('arg'), grep: searchParams.get('grep') || undefined, @@ -440,7 +442,7 @@ export const UIModeView: React.FC<{}> = ({ sidebar={