diff --git a/src/server/network.ts b/src/server/network.ts index fa4fc486b6..a9881fb219 100644 --- a/src/server/network.ts +++ b/src/server/network.ts @@ -183,6 +183,11 @@ export class Request { this._headersMap.clear(); for (const { name, value } of this._headers) this._headersMap.set(name.toLowerCase(), value); + if (!this._headersMap.has('host')) { + const host = new URL(this._url).host; + this._headers.push({ name: 'host', value: host }); + this._headersMap.set('host', host); + } } } diff --git a/test/network-request.spec.ts b/test/network-request.spec.ts index 2fd8ec6904..cbcca6ffc9 100644 --- a/test/network-request.spec.ts +++ b/test/network-request.spec.ts @@ -82,7 +82,7 @@ it('should return headers', async ({page, server, isChromium, isFirefox, isWebKi }); it('should get the same headers as the server', (test, { browserName, platform }) => { - test.fail(browserName === 'webkit' && platform !== 'darwin', 'Provisional headers differ from those in network stack'); + test.fail(browserName === 'webkit' && platform === 'win32', 'Curl does not show accept-encoding and accept-language'); }, async ({ page, server }) => { let serverRequest; server.setRoute('/empty.html', (request, response) => { @@ -94,7 +94,7 @@ it('should get the same headers as the server', (test, { browserName, platform } }); it('should get the same headers as the server CORP', (test, { browserName, platform }) => { - test.fail(browserName === 'webkit' && platform !== 'darwin', 'Provisional headers differ from those in network stack'); + test.fail(browserName === 'webkit' && platform === 'win32', 'Curl does not show accept-encoding and accept-language'); }, async ({page, server}) => { await page.goto(server.PREFIX + '/empty.html'); let serverRequest; diff --git a/test/resource-timing.spec.ts b/test/resource-timing.spec.ts index b06fb0a56e..ae635b24cb 100644 --- a/test/resource-timing.spec.ts +++ b/test/resource-timing.spec.ts @@ -48,7 +48,7 @@ it('should work for subresource', async ({ page, server, isWindows, isWebKit }) expect(timing.secureConnectionStart).toBe(-1); expect(timing.connectEnd).toBeGreaterThan(timing.secureConnectionStart); } else { - expect(timing.domainLookupStart).toBe(-1); + expect(timing.domainLookupStart === 0 || timing.domainLookupStart === -1).toBeTruthy(); expect(timing.domainLookupEnd).toBe(-1); expect(timing.connectStart).toBe(-1); expect(timing.secureConnectionStart).toBe(-1);