diff --git a/src/trace/harTracer.ts b/src/trace/harTracer.ts index 113e8df493..54feb75e56 100644 --- a/src/trace/harTracer.ts +++ b/src/trace/harTracer.ts @@ -46,13 +46,7 @@ class HarTracer implements ContextListener { } } - async onContextDidDestroy(context: BrowserContext): Promise { - const contextTracer = this._contextTracers.get(context); - if (contextTracer) { - this._contextTracers.delete(context); - await contextTracer.flush(); - } - } + async onContextDidDestroy(context: BrowserContext): Promise { } } type HarOptions = { @@ -66,7 +60,7 @@ class HarContextTracer { private _pageEntries = new Map(); private _entries = new Map(); private _lastPage = 0; - private _barrierPromises = new Map, Page>(); + private _barrierPromises = new Set>(); constructor(context: BrowserContext, options: HarOptions) { this._options = options; @@ -135,7 +129,7 @@ class HarContextTracer { })), promise ]) as Promise; - this._barrierPromises.set(race, page); + this._barrierPromises.add(race); } private _onRequest(page: Page, request: network.Request) { @@ -233,7 +227,7 @@ class HarContextTracer { } async flush() { - await Promise.all(this._barrierPromises.keys()); + await Promise.all(this._barrierPromises); for (const pageEntry of this._log.pages) { if (pageEntry.pageTimings.onContentLoad >= 0) pageEntry.pageTimings.onContentLoad -= pageEntry.startedDateTime.valueOf(); diff --git a/test/elementhandle-screenshot.spec.ts b/test/elementhandle-screenshot.spec.ts index 3f6248c9b8..d47cd1710a 100644 --- a/test/elementhandle-screenshot.spec.ts +++ b/test/elementhandle-screenshot.spec.ts @@ -394,12 +394,13 @@ describe('element screenshot', (suite, parameters) => { expect(await fs.promises.readFile(outputPath)).toMatchSnapshot('screenshot-element-bounding-box.png'); }); - it('should prefer type over extension', async ({page, server}) => { + it('should prefer type over extension', async ({page, server, testInfo}) => { await page.setViewportSize({width: 500, height: 500}); await page.goto(server.PREFIX + '/grid.html'); await page.evaluate(() => window.scrollBy(50, 100)); const elementHandle = await page.$('.box:nth-of-type(3)'); - const buffer = await elementHandle.screenshot({ path: 'file.png', type: 'jpeg' }); + const outputPath = testInfo.outputPath('file.png'); + const buffer = await elementHandle.screenshot({ path: outputPath, type: 'jpeg' }); expect([buffer[0], buffer[1], buffer[2]]).toEqual([0xFF, 0xD8, 0xFF]); }); }); diff --git a/test/page-screenshot.spec.ts b/test/page-screenshot.spec.ts index 4a87dea021..67499e396a 100644 --- a/test/page-screenshot.spec.ts +++ b/test/page-screenshot.spec.ts @@ -292,8 +292,9 @@ describe('page screenshot', (suite, { browserName, headful }) => { expect(error.message).toContain('path: unsupported mime type "text/plain"'); }); - it('should prefer type over extension', async ({page}) => { - const buffer = await page.screenshot({ path: 'file.png', type: 'jpeg' }); + it('should prefer type over extension', async ({page, testInfo}) => { + const outputPath = testInfo.outputPath('file.png'); + const buffer = await page.screenshot({ path: outputPath, type: 'jpeg' }); expect([buffer[0], buffer[1], buffer[2]]).toEqual([0xFF, 0xD8, 0xFF]); });