diff --git a/package.json b/package.json index 3661c31b28..f068451998 100644 --- a/package.json +++ b/package.json @@ -10,7 +10,7 @@ "playwright": { "chromium_revision": "719491", "firefox_revision": "1004", - "webkit_revision": "1025" + "webkit_revision": "1027" }, "scripts": { "unit": "node test/test.js", diff --git a/src/page.ts b/src/page.ts index c718d8f88a..e7d4063c3e 100644 --- a/src/page.ts +++ b/src/page.ts @@ -355,6 +355,7 @@ export class Page extends EventEmitter { async setBypassCSP(enabled: boolean) { if (this._state.bypassCSP === enabled) return; + this._state.bypassCSP = enabled; await this._delegate.setBypassCSP(enabled); } diff --git a/src/webkit/FrameManager.ts b/src/webkit/FrameManager.ts index f0bded8224..8c0fa1cc0a 100644 --- a/src/webkit/FrameManager.ts +++ b/src/webkit/FrameManager.ts @@ -120,6 +120,8 @@ export class FrameManager extends EventEmitter implements frames.FrameDelegate, promises.push(session.send('Page.setEmulatedMedia', { media: this._page._state.mediaType || '' })); if (this._page._state.javascriptEnabled !== null) promises.push(session.send('Emulation.setJavaScriptEnabled', { enabled: this._page._state.javascriptEnabled })); + if (this._page._state.bypassCSP !== null) + promises.push(session.send('Page.setBypassCSP', { enabled: this._page._state.bypassCSP })); await Promise.all(promises); } @@ -456,8 +458,8 @@ export class FrameManager extends EventEmitter implements frames.FrameDelegate, await this._session.send('Emulation.setJavaScriptEnabled', { enabled }); } - setBypassCSP(enabled: boolean): Promise { - throw new Error('Not implemented'); + async setBypassCSP(enabled: boolean): Promise { + await this._session.send('Page.setBypassCSP', { enabled }); } async setViewport(viewport: types.Viewport): Promise { diff --git a/test/page.spec.js b/test/page.spec.js index 87c408a6a1..9c1d09df35 100644 --- a/test/page.spec.js +++ b/test/page.spec.js @@ -604,7 +604,7 @@ module.exports.addTests = function({testRunner, expect, headless, playwright, FF }); }); - describe.skip(WEBKIT)('Page.setBypassCSP', function() { + describe('Page.setBypassCSP', function() { it('should bypass CSP meta tag', async({page, server}) => { // Make sure CSP prohibits addScriptTag. await page.goto(server.PREFIX + '/csp.html');