From 3387aab37f9b0ea14d52bd9b72683f3738fad54c Mon Sep 17 00:00:00 2001 From: Changhao Han Date: Thu, 16 Apr 2020 09:20:27 +0200 Subject: [PATCH] feat(chromium): roll Chromium to r737027 (#5644) This corresponds to Chromium 81.0.4044.0. This roll includes: - [DevTools] Add Cookie Priority support to CDP https://chromium-review.googlesource.com/c/chromium/src/+/1959029 - Reject cookies with empty names and values https://chromium-review.googlesource.com/c/chromium/src/+/1982549 --- package.json | 2 +- src/Page.js | 10 +++++++++- test/cookies.spec.js | 26 +++++++++++++------------- test/defaultbrowsercontext.spec.js | 6 +++--- 4 files changed, 26 insertions(+), 18 deletions(-) diff --git a/package.json b/package.json index a5ee74671b09c..4a8866f839357 100644 --- a/package.json +++ b/package.json @@ -8,7 +8,7 @@ "node": ">=10.18.1" }, "puppeteer": { - "chromium_revision": "722234", + "chromium_revision": "737027", "firefox_revision": "latest" }, "scripts": { diff --git a/src/Page.js b/src/Page.js index 81ff80483c9d7..cb20013755251 100644 --- a/src/Page.js +++ b/src/Page.js @@ -375,9 +375,17 @@ class Page extends EventEmitter { * @return {!Promise>} */ async cookies(...urls) { - return (await this._client.send('Network.getCookies', { + const originalCookies = (await this._client.send('Network.getCookies', { urls: urls.length ? urls : [this.url()] })).cookies; + + const unsupportedCookieAttributes = ['priority']; + const filterUnsupportedAttributes = cookie => { + for (const attr of unsupportedCookieAttributes) + delete cookie[attr]; + return cookie; + }; + return originalCookies.map(filterUnsupportedAttributes); } /** diff --git a/test/cookies.spec.js b/test/cookies.spec.js index 61f62e98904df..c11e86e354b23 100644 --- a/test/cookies.spec.js +++ b/test/cookies.spec.js @@ -41,13 +41,13 @@ describe('Cookie specs', () => { size: 16, httpOnly: false, secure: false, - session: true + session: true, }]); }); it('should properly report httpOnly cookie', async() => { const {page, server} = getTestState(); server.setRoute('/empty.html', (req, res) => { - res.setHeader('Set-Cookie', ';HttpOnly; Path=/'); + res.setHeader('Set-Cookie', 'a=b; HttpOnly; Path=/'); res.end(); }); await page.goto(server.EMPTY_PAGE); @@ -58,7 +58,7 @@ describe('Cookie specs', () => { it('should properly report "Strict" sameSite cookie', async() => { const {page, server} = getTestState(); server.setRoute('/empty.html', (req, res) => { - res.setHeader('Set-Cookie', ';SameSite=Strict'); + res.setHeader('Set-Cookie', 'a=b; SameSite=Strict'); res.end(); }); await page.goto(server.EMPTY_PAGE); @@ -69,7 +69,7 @@ describe('Cookie specs', () => { it('should properly report "Lax" sameSite cookie', async() => { const {page, server} = getTestState(); server.setRoute('/empty.html', (req, res) => { - res.setHeader('Set-Cookie', ';SameSite=Lax'); + res.setHeader('Set-Cookie', 'a=b; SameSite=Lax'); res.end(); }); await page.goto(server.EMPTY_PAGE); @@ -96,7 +96,7 @@ describe('Cookie specs', () => { size: 12, httpOnly: false, secure: false, - session: true + session: true, }, { name: 'username', @@ -107,7 +107,7 @@ describe('Cookie specs', () => { size: 16, httpOnly: false, secure: false, - session: true + session: true, }, ]); }); @@ -137,7 +137,7 @@ describe('Cookie specs', () => { size: 11, httpOnly: false, secure: true, - session: true + session: true, }, { name: 'doggo', value: 'woofs', @@ -147,7 +147,7 @@ describe('Cookie specs', () => { size: 10, httpOnly: false, secure: true, - session: true + session: true, }]); }); }); @@ -233,7 +233,7 @@ describe('Cookie specs', () => { size: 14, httpOnly: false, secure: false, - session: true + session: true, }]); }); itFailsFirefox('should set a cookie with a path', async() => { @@ -254,7 +254,7 @@ describe('Cookie specs', () => { size: 14, httpOnly: false, secure: false, - session: true + session: true, }]); expect(await page.evaluate('document.cookie')).toBe('gridcookie=GRID'); await page.goto(server.EMPTY_PAGE); @@ -350,7 +350,7 @@ describe('Cookie specs', () => { size: 18, httpOnly: false, secure: true, - session: true + session: true, }]); }); itFailsFirefox('should set cookies from a frame', async() => { @@ -380,7 +380,7 @@ describe('Cookie specs', () => { size: 20, httpOnly: false, secure: false, - session: true + session: true, }]); expect(await page.cookies(server.CROSS_PROCESS_PREFIX)).toEqual([{ @@ -392,7 +392,7 @@ describe('Cookie specs', () => { size: 15, httpOnly: false, secure: false, - session: true + session: true, }]); }); }); diff --git a/test/defaultbrowsercontext.spec.js b/test/defaultbrowsercontext.spec.js index aa7b905ed7631..1f513a0323541 100644 --- a/test/defaultbrowsercontext.spec.js +++ b/test/defaultbrowsercontext.spec.js @@ -35,7 +35,7 @@ describe('DefaultBrowserContext', function() { size: 16, httpOnly: false, secure: false, - session: true + session: true, }]); }); itFailsFirefox('page.setCookie() should work', async() => { @@ -56,7 +56,7 @@ describe('DefaultBrowserContext', function() { size: 16, httpOnly: false, secure: false, - session: true + session: true, }]); }); itFailsFirefox('page.deleteCookie() should work', async() => { @@ -82,7 +82,7 @@ describe('DefaultBrowserContext', function() { size: 8, httpOnly: false, secure: false, - session: true + session: true, }]); }); });