diff --git a/browsers.json b/browsers.json index 75b12138d2..650d08b0f2 100644 --- a/browsers.json +++ b/browsers.json @@ -13,7 +13,7 @@ }, { "name": "firefox", - "revision": "1290", + "revision": "1291", "installByDefault": true }, { diff --git a/src/server/firefox/ffNetworkManager.ts b/src/server/firefox/ffNetworkManager.ts index e0b0cdaf60..f4e410b2fe 100644 --- a/src/server/firefox/ffNetworkManager.ts +++ b/src/server/firefox/ffNetworkManager.ts @@ -132,6 +132,7 @@ export class FFNetworkManager { this._requests.delete(request._id); response._requestFinished(responseEndTime); } + response._setHttpVersion(event.protocolVersion); this._page._frameManager.reportRequestFinished(request.request, response); } diff --git a/src/server/firefox/protocol.d.ts b/src/server/firefox/protocol.d.ts index 8c080fa125..05c22bbe7a 100644 --- a/src/server/firefox/protocol.d.ts +++ b/src/server/firefox/protocol.d.ts @@ -908,6 +908,7 @@ export module Protocol { requestId: string; responseEndTime: number; transferSize: number; + protocolVersion: string; } export type requestFailedPayload = { requestId: string; diff --git a/src/server/supplements/har/harTracer.ts b/src/server/supplements/har/harTracer.ts index a1f93a8693..e662f9ba70 100644 --- a/src/server/supplements/har/harTracer.ts +++ b/src/server/supplements/har/harTracer.ts @@ -203,6 +203,7 @@ export class HarTracer { const httpVersion = response.httpVersion(); harEntry.request.httpVersion = httpVersion; + harEntry.response.httpVersion = httpVersion; const promise = response.body().then(buffer => { const content = harEntry.response.content; diff --git a/tests/har.spec.ts b/tests/har.spec.ts index d915b9ef41..0964ef99f7 100644 --- a/tests/har.spec.ts +++ b/tests/har.spec.ts @@ -487,8 +487,9 @@ it('should return security details directly from response', async ({ contextFact expect(securityDetails).toEqual({issuer: 'puppeteer-tests', protocol: 'TLS 1.3', subjectName: 'puppeteer-tests', validFrom: 1550084863, validTo: 33086084863}); }); -it('should contain http2 for http2 requests', async ({ contextFactory, browserName }, testInfo) => { - it.fixme(browserName === 'firefox' || browserName === 'webkit'); +it('should contain http2 for http2 requests', async ({ contextFactory, browserName, platform }, testInfo) => { + it.fixme(browserName === 'webkit' && platform === 'linux'); + it.fixme(browserName === 'webkit' && platform === 'win32'); const server = http2.createSecureServer({ key: await fs.promises.readFile(path.join(__dirname, '..', 'utils', 'testserver', 'key.pem')), @@ -508,6 +509,7 @@ it('should contain http2 for http2 requests', async ({ contextFactory, browserNa const log = await getLog(); expect(log.entries[0].request.httpVersion).toBe('h2'); expect(log.entries[0].response.httpVersion).toBe('h2'); + expect(Buffer.from(log.entries[0].response.content.text, 'base64').toString()).toBe('

Hello World

'); server.close(); }); diff --git a/tests/page/page-emulate-media.spec.ts b/tests/page/page-emulate-media.spec.ts index a82039de2b..ad9649cbd3 100644 --- a/tests/page/page-emulate-media.spec.ts +++ b/tests/page/page-emulate-media.spec.ts @@ -126,9 +126,9 @@ it('should emulate reduced motion', async ({page}) => { await page.emulateMedia({ reducedMotion: null }); }); -it('should emulate forcedColors ', async ({page, browserName, isAndroid}) => { +it('should emulate forcedColors ', async ({page, browserName, isElectron}) => { it.skip(browserName === 'webkit', 'https://bugs.webkit.org/show_bug.cgi?id=225281'); - it.fixme(isAndroid); + it.fixme(isElectron); expect(await page.evaluate(() => matchMedia('(forced-colors: none)').matches)).toBe(true); await page.emulateMedia({ forcedColors: 'none' }); expect(await page.evaluate(() => matchMedia('(forced-colors: none)').matches)).toBe(true);