diff --git a/packages/playwright-core/src/web/traceViewer/sw.ts b/packages/playwright-core/src/web/traceViewer/sw.ts index 7f0acd92d3..51ddfa8e42 100644 --- a/packages/playwright-core/src/web/traceViewer/sw.ts +++ b/packages/playwright-core/src/web/traceViewer/sw.ts @@ -51,19 +51,18 @@ async function loadTrace(trace: string, clientId: string, progress: (done: numbe async function doFetch(event: FetchEvent): Promise { const request = event.request; const client = await self.clients.get(event.clientId); - const snapshotUrl = request.mode === 'navigate' ? request.url : client!.url; - const traceUrl = new URL(snapshotUrl).searchParams.get('trace')!; - const { snapshotServer } = loadedTraces.get(traceUrl) || {}; if (request.url.startsWith(self.registration.scope)) { const url = new URL(request.url); - const relativePath = url.pathname.substring(scopePath.length - 1); if (relativePath === '/ping') { await gc(); return new Response(null, { status: 200 }); } + const traceUrl = new URL(url).searchParams.get('trace')!; + const { snapshotServer } = loadedTraces.get(traceUrl) || {}; + if (relativePath === '/context') { const traceModel = await loadTrace(traceUrl, event.clientId, (done: number, total: number) => { client.postMessage({ method: 'progress', params: { done, total } }); @@ -83,7 +82,7 @@ async function doFetch(event: FetchEvent): Promise { if (relativePath.startsWith('/snapshot/')) { if (!snapshotServer) return new Response(null, { status: 404 }); - return snapshotServer.serveSnapshot(relativePath, url.searchParams, snapshotUrl); + return snapshotServer.serveSnapshot(relativePath, url.searchParams, request.url); } if (relativePath.startsWith('/sha1/')) { @@ -100,6 +99,9 @@ async function doFetch(event: FetchEvent): Promise { return fetch(event.request); } + const snapshotUrl = client!.url; + const traceUrl = new URL(snapshotUrl).searchParams.get('trace')!; + const { snapshotServer } = loadedTraces.get(traceUrl) || {}; if (!snapshotServer) return new Response(null, { status: 404 }); return snapshotServer.serveResource(request.url, snapshotUrl); diff --git a/packages/playwright-core/src/web/traceViewer/ui/workbench.tsx b/packages/playwright-core/src/web/traceViewer/ui/workbench.tsx index 1a4521cea6..1f750f3c4d 100644 --- a/packages/playwright-core/src/web/traceViewer/ui/workbench.tsx +++ b/packages/playwright-core/src/web/traceViewer/ui/workbench.tsx @@ -152,7 +152,7 @@ export const Workbench: React.FunctionComponent<{ {dragOver &&
{ setDragOver(false); }} onDrop={event => handleDropEvent(event)}> - Release to analyse the Playwright Trace +
Release to analyse the Playwright Trace
} ; }; diff --git a/tests/playwright-test/reporter-html.visual.ts b/tests/playwright-test/reporter-html.spec.ts similarity index 99% rename from tests/playwright-test/reporter-html.visual.ts rename to tests/playwright-test/reporter-html.spec.ts index 175443428b..ddc71cc0cf 100644 --- a/tests/playwright-test/reporter-html.visual.ts +++ b/tests/playwright-test/reporter-html.spec.ts @@ -31,6 +31,8 @@ const test = baseTest.extend<{ showReport: () => Promise }>({ } }); +test.use({ channel: 'chrome' }); + test('should generate report', async ({ runInlineTest, showReport, page }) => { await runInlineTest({ 'playwright.config.ts': `