feat(webkit): basic isMobile viewport support (#348)

This commit is contained in:
Joel Einbinder 2020-01-08 20:15:30 -08:00 committed by GitHub
parent c01224f249
commit d83d3c3851
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 13 additions and 2 deletions

View File

@ -315,11 +315,12 @@ export class WKPage implements PageDelegate {
}
async setViewport(viewport: types.Viewport): Promise<void> {
if (viewport.isMobile || viewport.isLandscape || viewport.hasTouch)
if (viewport.isLandscape || viewport.hasTouch)
throw new Error('Not implemented');
const width = viewport.width;
const height = viewport.height;
await this._pageProxySession.send('Emulation.setDeviceMetricsOverride', { width, height, fixedLayout: false, deviceScaleFactor: viewport.deviceScaleFactor || 1 });
const fixedLayout = !!viewport.isMobile;
await this._pageProxySession.send('Emulation.setDeviceMetricsOverride', {width, height, fixedLayout, deviceScaleFactor: viewport.deviceScaleFactor || 1 });
}
setCacheEnabled(enabled: boolean): Promise<void> {

View File

@ -94,6 +94,16 @@ module.exports.describe = function({testRunner, expect, playwright, FFOX, CHROME
await page.setViewport(iPhone.viewport);
expect((await event2).text()).toBe('2');
});
it.skip(FFOX)('default mobile viewports to 980 width', async({page, server}) => {
await page.setViewport({width: 320, height: 480, isMobile: true});
await page.goto(server.PREFIX + '/empty.html');
expect(await page.evaluate(() => window.innerWidth)).toBe(980);
});
it.skip(FFOX)('respect meta viewport tag', async({page, server}) => {
await page.setViewport({width: 320, height: 480, isMobile: true});
await page.goto(server.PREFIX + '/mobile.html');
expect(await page.evaluate(() => window.innerWidth)).toBe(320);
});
});
describe('Page.emulate', function() {