Skip to content

Commit 40e9ed7

Browse files
authored
Merge pull request #1361 from ampproject/fix-security
Fix test flakiness caused by Puppeteer state management
2 parents c7d6eae + 29db754 commit 40e9ed7

File tree

8 files changed

+499
-95
lines changed

8 files changed

+499
-95
lines changed

package-lock.json

Lines changed: 485 additions & 77 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@
2727
"devDependencies": {
2828
"@ampproject/rollup-plugin-closure-compiler": "0.27.0",
2929
"@babel/core": "7.13.10",
30-
"@types/cheerio": "0.22.28",
30+
"@types/cheerio": "0.22.35",
3131
"@types/debug": "4.1.5",
3232
"@types/diff": "5.0.0",
3333
"@types/escape-html": "1.0.0",

packages/linter/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
"@ampproject/toolbox-validator-rules": "2.9.0",
1818
"amphtml-validator": "1.0.35",
1919
"chalk": "4.1.0",
20-
"cheerio": "1.0.0-rc.5",
20+
"cheerio": "1.0.0-rc.12",
2121
"commander": "9.3.0",
2222
"cross-fetch": "3.1.5",
2323
"debug": "4.3.1",

packages/linter/src/rules/AmpImgUsesSrcSet.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ export class AmpImgUsesSrcSet extends Rule {
1515
let layout = $(e).attr('layout');
1616
const srcset = $(e).attr('srcset');
1717
const parent = $(e).parent();
18-
if (parent.prop('tagName').startsWith('AMP-')) {
18+
if (parent.prop('tagName')?.startsWith('AMP-')) {
1919
const parentLayout = $(parent).attr('layout');
2020
if (parentLayout) {
2121
layout = parentLayout;

packages/optimizer/demo/cheerio/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
"author": "AMPHTML team",
1010
"license": "Apache-2.0",
1111
"dependencies": {
12-
"cheerio": "^1.0.0-rc.2"
12+
"cheerio": "^1.0.0-rc.22"
1313
},
1414
"devDependencies": {
1515
"@ampproject/toolbox-optimizer": "2.5.14"

packages/optimizer/spec/helpers/validatorInstance.js

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@ let instance = null;
66
module.exports = {
77
get: () => {
88
if (!instance) {
9-
console.error('Validator instance created: ' + path.join(__dirname, 'validator.js'));
109
instance = validator.getInstance(path.join(__dirname, 'validator.js'));
1110
}
1211
return instance;

packages/page-experience/lib/PageDataGatherer.js

Lines changed: 9 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -58,20 +58,16 @@ class PageAnalyzer {
5858
throw new Error('Puppeteer not running, please call `start` first.');
5959
}
6060
const {page, remoteStyles, responsePromise} = await this.setupPage();
61-
try {
62-
await page.goto(url, {waitUntil: 'load'});
61+
await page.goto(url, {waitUntil: 'load'});
6362

64-
const response = await responsePromise;
65-
if (!response) {
66-
throw new Error('Failed loading url', url);
67-
}
68-
const {html, headers} = response;
69-
return await this.gatherPageData(page, {remoteStyles, html, headers});
70-
} finally {
71-
if (page) {
72-
page.close();
73-
}
63+
const response = await responsePromise;
64+
if (!response) {
65+
throw new Error('Failed loading url', url);
7466
}
67+
const {html, headers} = response;
68+
const data = await this.gatherPageData(page, {remoteStyles, html, headers});
69+
await page.close();
70+
return data;
7571
}
7672

7773
/**
@@ -80,6 +76,7 @@ class PageAnalyzer {
8076
async shutdown() {
8177
try {
8278
await this.browser.close();
79+
this.browser = null;
8380
} catch (e) {
8481
console.log(e);
8582
}

packages/page-experience/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@
3939
"homepage": "https://github.com/ampproject/amp-toolbox/tree/main/packages/page-experience",
4040
"dependencies": {
4141
"@ampproject/toolbox-linter": "2.9.0",
42-
"cheerio": "1.0.0-rc.5",
42+
"cheerio": "1.0.0-rc.12",
4343
"css-font-face-src": "1.0.0",
4444
"postcss": "8.2.8",
4545
"postcss-safe-parser": "5.0.2",

0 commit comments

Comments
 (0)