Skip to content

Commit

Permalink
feat(webkit): emulate device size (#1318)
Browse files Browse the repository at this point in the history
  • Loading branch information
pavelfeldman authored Mar 10, 2020
1 parent 044f774 commit 0077b42
Show file tree
Hide file tree
Showing 3 changed files with 14 additions and 3 deletions.
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
"playwright": {
"chromium_revision": "747023",
"firefox_revision": "1041",
"webkit_revision": "1168"
"webkit_revision": "1171"
},
"scripts": {
"ctest": "cross-env BROWSER=chromium node test/test.js",
Expand Down
11 changes: 11 additions & 0 deletions src/webkit/wkPage.ts
Original file line number Diff line number Diff line change
Expand Up @@ -145,6 +145,13 @@ export class WKPage implements PageDelegate {
promises.push(this._evaluateBindingScript(binding));
if (contextOptions.bypassCSP)
promises.push(session.send('Page.setBypassCSP', { enabled: true }));
if (this._page._state.viewportSize) {
promises.push(session.send('Page.setScreenSizeOverride', {
width: this._page._state.viewportSize.width,
height: this._page._state.viewportSize.height,
}));
}

promises.push(session.send('Network.setExtraHTTPHeaders', { headers: this._calculateExtraHTTPHeaders() }));
if (contextOptions.offline)
promises.push(session.send('Network.setEmulateOfflineState', { offline: true }));
Expand Down Expand Up @@ -489,6 +496,10 @@ export class WKPage implements PageDelegate {
fixedLayout: !!viewport.isMobile,
deviceScaleFactor: viewport.deviceScaleFactor || 1
}),
this._session.send('Page.setScreenSizeOverride', {
width: viewport.width,
height: viewport.height,
}),
];
await Promise.all(promises);
}
Expand Down
4 changes: 2 additions & 2 deletions test/emulation.spec.js
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ module.exports.describe = function({testRunner, expect, playwright, headless, FF
expect(await page.evaluate(() => window.innerWidth)).toBe(123);
expect(await page.evaluate(() => window.innerHeight)).toBe(456);
});
it.fail(WEBKIT || FFOX)('should emulate device-width media queries', async({page, server}) => {
it.fail(FFOX)('should emulate device-width media queries', async({page, server}) => {
expect(page.viewportSize()).toEqual({width: 1280, height: 720});
await page.setViewportSize({width: 200, height: 200});
expect(await page.evaluate(() => matchMedia('(min-device-width: 100px)').matches)).toBe(true);
Expand All @@ -55,7 +55,7 @@ module.exports.describe = function({testRunner, expect, playwright, headless, FF
expect(await page.evaluate(() => matchMedia('(device-width: 200px)').matches)).toBe(false);
expect(await page.evaluate(() => matchMedia('(device-width: 500px)').matches)).toBe(true);
});
it.fail(WEBKIT || FFOX)('should emulate device-height media queries', async({page, server}) => {
it.fail(FFOX)('should emulate device-height media queries', async({page, server}) => {
expect(page.viewportSize()).toEqual({width: 1280, height: 720});
await page.setViewportSize({width: 200, height: 200});
expect(await page.evaluate(() => matchMedia('(min-device-height: 100px)').matches)).toBe(true);
Expand Down

0 comments on commit 0077b42

Please sign in to comment.