Skip to content

Commit 7bedbb2

Browse files
authored
feat(browser): roll WebKit to r1370 (#4257)
1 parent ece84ec commit 7bedbb2

File tree

8 files changed

+33
-29
lines changed

8 files changed

+33
-29
lines changed

browsers.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
},
1414
{
1515
"name": "webkit",
16-
"revision": "1364",
16+
"revision": "1370",
1717
"download": true
1818
}
1919
]

src/server/chromium/crNetworkManager.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -136,7 +136,7 @@ export class CRNetworkManager {
136136
_onRequestWillBeSentExtraInfo(event: Protocol.Network.requestWillBeSentExtraInfoPayload) {
137137
const request = this._requestIdToRequest.get(event.requestId);
138138
if (request) {
139-
request.request._updateWithRawHeaders(headersObjectToArray(event.headers));
139+
request.request.updateWithRawHeaders(headersObjectToArray(event.headers));
140140
this._requestIdToExtraInfo.delete(event.requestId);
141141
} else {
142142
this._requestIdToExtraInfo.set(event.requestId, event);

src/server/network.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -178,7 +178,7 @@ export class Request {
178178
return new Route(this, this._routeDelegate);
179179
}
180180

181-
_updateWithRawHeaders(headers: types.HeadersArray) {
181+
updateWithRawHeaders(headers: types.HeadersArray) {
182182
this._headers = headers;
183183
this._headersMap.clear();
184184
for (const { name, value } of this._headers)

src/server/webkit/protocol.ts

Lines changed: 17 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -6564,6 +6564,21 @@ the top of the viewport and Y increases as it proceeds towards the bottom of the
65646564
*/
65656565
data: string;
65666566
}
6567+
/**
6568+
* Overrides screen size exposed to DOM and used in media queries for testing with provided values.
6569+
*/
6570+
export type setScreenSizeOverrideParameters = {
6571+
/**
6572+
* Screen width
6573+
*/
6574+
width?: number;
6575+
/**
6576+
* Screen height
6577+
*/
6578+
height?: number;
6579+
}
6580+
export type setScreenSizeOverrideReturnValue = {
6581+
}
65676582
/**
65686583
* Insert text into the current selection of the page.
65696584
*/
@@ -6641,15 +6656,6 @@ the top of the viewport and Y increases as it proceeds towards the bottom of the
66416656
}
66426657
export type crashReturnValue = {
66436658
}
6644-
/**
6645-
* Overrides screen size with provided values.
6646-
*/
6647-
export type setScreenSizeOverrideParameters = {
6648-
width: number;
6649-
height: number;
6650-
}
6651-
export type setScreenSizeOverrideReturnValue = {
6652-
}
66536659
/**
66546660
* Overrides window.orientation with provided value.
66556661
*/
@@ -8682,14 +8688,14 @@ the top of the viewport and Y increases as it proceeds towards the bottom of the
86828688
"Page.snapshotNode": Page.snapshotNodeParameters;
86838689
"Page.snapshotRect": Page.snapshotRectParameters;
86848690
"Page.archive": Page.archiveParameters;
8691+
"Page.setScreenSizeOverride": Page.setScreenSizeOverrideParameters;
86858692
"Page.insertText": Page.insertTextParameters;
86868693
"Page.accessibilitySnapshot": Page.accessibilitySnapshotParameters;
86878694
"Page.setInterceptFileChooserDialog": Page.setInterceptFileChooserDialogParameters;
86888695
"Page.setDefaultBackgroundColorOverride": Page.setDefaultBackgroundColorOverrideParameters;
86898696
"Page.createUserWorld": Page.createUserWorldParameters;
86908697
"Page.setBypassCSP": Page.setBypassCSPParameters;
86918698
"Page.crash": Page.crashParameters;
8692-
"Page.setScreenSizeOverride": Page.setScreenSizeOverrideParameters;
86938699
"Page.setOrientationOverride": Page.setOrientationOverrideParameters;
86948700
"Playwright.enable": Playwright.enableParameters;
86958701
"Playwright.disable": Playwright.disableParameters;
@@ -8966,14 +8972,14 @@ the top of the viewport and Y increases as it proceeds towards the bottom of the
89668972
"Page.snapshotNode": Page.snapshotNodeReturnValue;
89678973
"Page.snapshotRect": Page.snapshotRectReturnValue;
89688974
"Page.archive": Page.archiveReturnValue;
8975+
"Page.setScreenSizeOverride": Page.setScreenSizeOverrideReturnValue;
89698976
"Page.insertText": Page.insertTextReturnValue;
89708977
"Page.accessibilitySnapshot": Page.accessibilitySnapshotReturnValue;
89718978
"Page.setInterceptFileChooserDialog": Page.setInterceptFileChooserDialogReturnValue;
89728979
"Page.setDefaultBackgroundColorOverride": Page.setDefaultBackgroundColorOverrideReturnValue;
89738980
"Page.createUserWorld": Page.createUserWorldReturnValue;
89748981
"Page.setBypassCSP": Page.setBypassCSPReturnValue;
89758982
"Page.crash": Page.crashReturnValue;
8976-
"Page.setScreenSizeOverride": Page.setScreenSizeOverrideReturnValue;
89778983
"Page.setOrientationOverride": Page.setOrientationOverrideReturnValue;
89788984
"Playwright.enable": Playwright.enableReturnValue;
89798985
"Playwright.disable": Playwright.disableReturnValue;

src/server/webkit/wkPage.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
import * as jpeg from 'jpeg-js';
1919
import * as path from 'path';
2020
import * as png from 'pngjs';
21-
import { assert, createGuid, debugAssert, headersArrayToObject } from '../../utils/utils';
21+
import { assert, createGuid, debugAssert, headersArrayToObject, headersObjectToArray } from '../../utils/utils';
2222
import * as accessibility from '../accessibility';
2323
import * as dialog from '../dialog';
2424
import * as dom from '../dom';
@@ -927,6 +927,8 @@ export class WKPage implements PageDelegate {
927927
if (!request)
928928
return;
929929
const response = request.createResponse(event.response);
930+
if (event.response.requestHeaders && Object.keys(event.response.requestHeaders).length)
931+
request.request.updateWithRawHeaders(headersObjectToArray(event.response.requestHeaders));
930932
this._page._frameManager.requestReceivedResponse(response);
931933

932934
if (response.status() === 204) {

src/trace/harTracer.ts

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -62,15 +62,13 @@ type HarOptions = {
6262

6363
class HarContextTracer {
6464
private _options: HarOptions;
65-
private _browserName: string;
6665
private _log: har.Log;
6766
private _pageEntries = new Map<Page, har.Page>();
6867
private _entries = new Map<network.Request, har.Entry>();
6968
private _lastPage = 0;
7069
private _barrierPromises = new Map<Promise<void>, Page>();
7170

7271
constructor(context: BrowserContext, options: HarOptions) {
73-
this._browserName = context._browser._options.name;
7472
this._options = options;
7573
this._log = {
7674
version: '1.2',
@@ -204,7 +202,7 @@ class HarContextTracer {
204202
status: response.status(),
205203
statusText: response.statusText(),
206204
httpVersion: 'HTTP/1.1',
207-
cookies: cookiesForHar(response.headerValue('set-cookie'), this._browserName === 'webkit' ? ',' : '\n'),
205+
cookies: cookiesForHar(response.headerValue('set-cookie'), '\n'),
208206
headers: response.headers().map(header => ({ name: header.name, value: header.value })),
209207
content: {
210208
size: -1,

test/har.spec.ts

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -164,9 +164,7 @@ it('should include form params', async ({ pageWithHar, server }) => {
164164
});
165165
});
166166

167-
it('should include cookies', (test, { browserName }) => {
168-
test.fail(browserName === 'webkit', 'WebKit is lacking raw headers w/ cookies on WebCore side');
169-
}, async ({ pageWithHar, server }) => {
167+
it('should include cookies', async ({ pageWithHar, server }) => {
170168
const { page, context } = pageWithHar;
171169
await context.addCookies([
172170
{ name: 'name1', value: '"value1"', domain: 'localhost', path: '/', httpOnly: true },
@@ -184,7 +182,9 @@ it('should include cookies', (test, { browserName }) => {
184182
]);
185183
});
186184

187-
it('should include set-cookies', async ({ pageWithHar, server }) => {
185+
it('should include set-cookies', (test, { browserName, platform }) => {
186+
test.fail(browserName === 'webkit' && platform === 'darwin', 'Does not work yet');
187+
}, async ({ pageWithHar, server }) => {
188188
const { page } = pageWithHar;
189189
server.setRoute('/empty.html', (req, res) => {
190190
res.setHeader('Set-Cookie', [
@@ -202,9 +202,7 @@ it('should include set-cookies', async ({ pageWithHar, server }) => {
202202
expect(new Date(cookies[2].expires).valueOf()).toBeGreaterThan(Date.now());
203203
});
204204

205-
it('should include set-cookies with comma', (test, { browserName }) => {
206-
test.fail(browserName === 'webkit', 'WebKit concatenates headers poorly');
207-
}, async ({ pageWithHar, server }) => {
205+
it('should include set-cookies with comma', async ({ pageWithHar, server }) => {
208206
const { page } = pageWithHar;
209207
server.setRoute('/empty.html', (req, res) => {
210208
res.setHeader('Set-Cookie', [

test/network-request.spec.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -81,8 +81,8 @@ it('should return headers', async ({page, server, isChromium, isFirefox, isWebKi
8181
expect(response.request().headers()['user-agent']).toContain('WebKit');
8282
});
8383

84-
it('should get the same headers as the server', (test, { browserName }) => {
85-
test.fail(browserName === 'webkit', 'Provisional headers differ from those in network stack');
84+
it('should get the same headers as the server', (test, { browserName, platform }) => {
85+
test.fail(browserName === 'webkit' && platform !== 'darwin', 'Provisional headers differ from those in network stack');
8686
}, async ({ page, server }) => {
8787
let serverRequest;
8888
server.setRoute('/empty.html', (request, response) => {
@@ -93,8 +93,8 @@ it('should get the same headers as the server', (test, { browserName }) => {
9393
expect(response.request().headers()).toEqual(serverRequest.headers);
9494
});
9595

96-
it('should get the same headers as the server CORP', (test, { browserName }) => {
97-
test.fail(browserName === 'webkit', 'Provisional headers differ from those in network stack');
96+
it('should get the same headers as the server CORP', (test, { browserName, platform }) => {
97+
test.fail(browserName === 'webkit' && platform !== 'darwin', 'Provisional headers differ from those in network stack');
9898
}, async ({page, server}) => {
9999
await page.goto(server.PREFIX + '/empty.html');
100100
let serverRequest;

0 commit comments

Comments
 (0)