Skip to content

Commit 1cd37ca

Browse files
committed
Bug 1862701 - [remote] Sync to puppeteer version v21.5.2. r=webdriver-reviewers,Sasha
Differential Revision: https://phabricator.services.mozilla.com/D194190
1 parent 3037fef commit 1cd37ca

File tree

321 files changed

+17223
-22249
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

321 files changed

+17223
-22249
lines changed

.hgignore

+2-1
Original file line numberDiff line numberDiff line change
@@ -143,7 +143,8 @@ _OPT\.OBJ/
143143
^remote/test/puppeteer/test/output-firefox
144144
^remote/test/puppeteer/test/output-chromium
145145
^remote/test/puppeteer/testserver/lib/
146-
^remote/test/puppeteer/utils/mochaRunner/lib/
146+
^remote/test/puppeteer/tools/internal/
147+
`remote/test/puppeteer/tools/mocha-runner/bin/
147148
^remote/test/puppeteer/website
148149

149150
^third_party/js/PKI.js/node_modules/

remote/.gitignore

+2
Original file line numberDiff line numberDiff line change
@@ -18,4 +18,6 @@ test/puppeteer/src/generated
1818
test/puppeteer/test/**/build
1919
test/puppeteer/test/output-firefox
2020
test/puppeteer/test/output-chromium
21+
test/puppeteer/tools/internal/
22+
test/puppeteer/tools/mocha-runner/bin/
2123
test/puppeteer/website

remote/test/puppeteer/.eslintignore

+1
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ node_modules
55
# Production
66
build/
77
lib/
8+
bin/
89

910
# Generated files
1011
**/*.tsbuildinfo

remote/test/puppeteer/.eslintrc.js

+50-18
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,25 @@
1+
const {readdirSync} = require('fs');
2+
const {join} = require('path');
3+
14
const rulesDirPlugin = require('eslint-plugin-rulesdir');
5+
26
rulesDirPlugin.RULES_DIR = 'tools/eslint/lib';
37

8+
function getThirdPartyPackages() {
9+
return readdirSync(join(__dirname, 'packages/puppeteer-core/third_party'), {
10+
withFileTypes: true,
11+
})
12+
.filter(dirent => {
13+
return dirent.isDirectory();
14+
})
15+
.map(({name}) => {
16+
return {
17+
name,
18+
message: `Import \`${name}\` from the vendored location: third_party/${name}/index.js`,
19+
};
20+
});
21+
}
22+
423
module.exports = {
524
root: true,
625
env: {
@@ -12,7 +31,13 @@ module.exports = {
1231

1332
plugins: ['mocha', '@typescript-eslint', 'import'],
1433

15-
extends: ['plugin:prettier/recommended'],
34+
extends: ['plugin:prettier/recommended', 'plugin:import/typescript'],
35+
36+
settings: {
37+
'import/resolver': {
38+
typescript: true,
39+
},
40+
},
1641

1742
rules: {
1843
// Brackets keep code readable.
@@ -98,21 +123,6 @@ module.exports = {
98123
// ensure we don't have any it.only or describe.only in prod
99124
'mocha/no-exclusive-tests': 'error',
100125

101-
'no-restricted-imports': [
102-
'error',
103-
{
104-
patterns: ['*Events', '*.test.js'],
105-
paths: [
106-
{
107-
name: 'mitt',
108-
message:
109-
'Import `mitt` from the vendored location: third_party/mitt/index.js',
110-
},
111-
],
112-
},
113-
],
114-
'import/extensions': ['error', 'ignorePackages'],
115-
116126
'import/order': [
117127
'error',
118128
{
@@ -121,6 +131,8 @@ module.exports = {
121131
},
122132
],
123133

134+
'import/no-cycle': ['error', {maxDepth: Infinity}],
135+
124136
'no-restricted-syntax': [
125137
'error',
126138
// Don't allow underscored declarations on camelCased variables/properties.
@@ -145,6 +157,8 @@ module.exports = {
145157
'rulesdir/prettier-comments': 'error',
146158
// Enforces clean up of used resources.
147159
'rulesdir/use-using': 'error',
160+
// Enforces consistent file extension
161+
'rulesdir/extensions': 'error',
148162
// Brackets keep code readable.
149163
curly: ['error', 'all'],
150164
// Brackets keep code readable and `return` intentions clear.
@@ -156,7 +170,7 @@ module.exports = {
156170
'no-unused-vars': 'off',
157171
'@typescript-eslint/no-unused-vars': [
158172
'error',
159-
{argsIgnorePattern: '^_'},
173+
{argsIgnorePattern: '^_', varsIgnorePattern: '^_'},
160174
],
161175
'func-call-spacing': 'off',
162176
'@typescript-eslint/func-call-spacing': 'error',
@@ -220,12 +234,30 @@ module.exports = {
220234
'@typescript-eslint/prefer-ts-expect-error': 'error',
221235
// This is more performant; see https://v8.dev/blog/fast-async.
222236
'@typescript-eslint/return-await': ['error', 'always'],
237+
// This optimizes the dependency tracking for type-only files.
238+
'@typescript-eslint/consistent-type-imports': 'error',
239+
// So type-only exports get elided.
240+
'@typescript-eslint/consistent-type-exports': 'error',
241+
// Don't want to trigger unintended side-effects.
242+
'@typescript-eslint/no-import-type-side-effects': 'error',
223243
},
224244
overrides: [
245+
{
246+
files: 'packages/puppeteer-core/src/**/*.ts',
247+
rules: {
248+
'no-restricted-imports': [
249+
'error',
250+
{
251+
patterns: ['*Events', '*.test.js'],
252+
paths: [...getThirdPartyPackages()],
253+
},
254+
],
255+
},
256+
},
225257
{
226258
files: [
227259
'packages/puppeteer-core/src/**/*.test.ts',
228-
'tools/mochaRunner/src/test.ts',
260+
'tools/mocha-runner/src/test.ts',
229261
],
230262
rules: {
231263
// With the Node.js test runner, `describe` and `it` are technically

remote/test/puppeteer/.mocharc.cjs

+5-1
Original file line numberDiff line numberDiff line change
@@ -22,10 +22,14 @@ module.exports = {
2222
reporter: 'dot',
2323
logLevel: 'debug',
2424
require: ['./test/build/mocha-utils.js', 'source-map-support/register'],
25-
spec: 'test/build/**/*.spec.js',
2625
exit: !!process.env.CI,
2726
retries: process.env.CI ? 3 : 0,
2827
parallel: !!process.env.PARALLEL,
2928
timeout: timeout,
3029
reporter: process.env.CI ? 'spec' : 'dot',
30+
// This should make mocha crash on uncaught errors.
31+
// See https://github.com/mochajs/mocha/blob/master/docs/index.md#--allow-uncaught.
32+
allowUncaught: true,
33+
// See https://github.com/mochajs/mocha/blob/master/docs/index.md#--async-only--a.
34+
asyncOnly: true,
3135
};

remote/test/puppeteer/.prettierignore

+1
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ node_modules
55
# Production
66
build/
77
lib/
8+
bin/
89

910
# Generated files
1011
**/*.tsbuildinfo
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
2-
"packages/puppeteer": "21.2.0",
3-
"packages/puppeteer-core": "21.2.0",
2+
"packages/puppeteer": "21.5.2",
3+
"packages/puppeteer-core": "21.5.2",
44
"packages/testserver": "0.6.0",
5-
"packages/ng-schematics": "0.5.0",
6-
"packages/browsers": "1.7.0"
5+
"packages/ng-schematics": "0.5.1",
6+
"packages/browsers": "1.8.0"
77
}

remote/test/puppeteer/Herebyfile.mjs

+93
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,93 @@
1+
import {copyFile, readFile, writeFile} from 'fs/promises';
2+
3+
import {execa} from 'execa';
4+
import {task} from 'hereby';
5+
import semver from 'semver';
6+
7+
import {docgen, spliceIntoSection} from '@puppeteer/docgen';
8+
9+
export const docsNgSchematicsTask = task({
10+
name: 'docs:ng-schematics',
11+
run: async () => {
12+
const readme = await readFile('packages/ng-schematics/README.md', 'utf-8');
13+
const index = await readFile('docs/integrations/ng-schematics.md', 'utf-8');
14+
await writeFile(
15+
'docs/integrations/ng-schematics.md',
16+
index.replace('# API Reference\n', readme)
17+
);
18+
},
19+
});
20+
21+
/**
22+
* This logic should match the one in `website/docusaurus.config.js`.
23+
*/
24+
function getApiUrl(version) {
25+
if (semver.gte(version, '19.3.0')) {
26+
return `https://github.com/puppeteer/puppeteer/blob/puppeteer-${version}/docs/api/index.md`;
27+
} else if (semver.gte(version, '15.3.0')) {
28+
return `https://github.com/puppeteer/puppeteer/blob/${version}/docs/api/index.md`;
29+
} else {
30+
return `https://github.com/puppeteer/puppeteer/blob/${version}/docs/api.md`;
31+
}
32+
}
33+
34+
export const docsChromiumSupportTask = task({
35+
name: 'docs:chromium-support',
36+
run: async () => {
37+
const content = await readFile('docs/chromium-support.md', {
38+
encoding: 'utf8',
39+
});
40+
const {versionsPerRelease} = await import('./versions.js');
41+
const buffer = [];
42+
for (const [chromiumVersion, puppeteerVersion] of versionsPerRelease) {
43+
if (puppeteerVersion === 'NEXT') {
44+
continue;
45+
}
46+
if (semver.gte(puppeteerVersion, '20.0.0')) {
47+
buffer.push(
48+
` * [Chrome for Testing](https://goo.gle/chrome-for-testing) ${chromiumVersion} - [Puppeteer ${puppeteerVersion}](${getApiUrl(
49+
puppeteerVersion
50+
)})`
51+
);
52+
} else {
53+
buffer.push(
54+
` * Chromium ${chromiumVersion} - [Puppeteer ${puppeteerVersion}](${getApiUrl(
55+
puppeteerVersion
56+
)})`
57+
);
58+
}
59+
}
60+
await writeFile(
61+
'docs/chromium-support.md',
62+
spliceIntoSection('version', content, buffer.join('\n'))
63+
);
64+
},
65+
});
66+
67+
export const docsTask = task({
68+
name: 'docs',
69+
dependencies: [docsNgSchematicsTask, docsChromiumSupportTask],
70+
run: async () => {
71+
// Copy main page.
72+
await copyFile('README.md', 'docs/index.md');
73+
74+
// Generate documentation
75+
for (const [name, folder] of [
76+
['browsers', 'browsers-api'],
77+
['puppeteer', 'api'],
78+
]) {
79+
docgen(`docs/${name}.api.json`, `docs/${folder}`);
80+
}
81+
82+
// Update main @puppeteer/browsers page.
83+
const readme = await readFile('packages/browsers/README.md', 'utf-8');
84+
const index = await readFile('docs/browsers-api/index.md', 'utf-8');
85+
await writeFile(
86+
'docs/browsers-api/index.md',
87+
index.replace('# API Reference', readme)
88+
);
89+
90+
// Format everything.
91+
await execa('prettier', ['--ignore-path', 'none', '--write', 'docs']);
92+
},
93+
});

remote/test/puppeteer/README.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,7 @@ information.
9090

9191
#### `puppeteer-core`
9292

93-
Every release since v1.7.0 we publish two packages:
93+
For every release since v1.7.0 we publish two packages:
9494

9595
- [`puppeteer`](https://www.npmjs.com/package/puppeteer)
9696
- [`puppeteer-core`](https://www.npmjs.com/package/puppeteer-core)
@@ -110,7 +110,7 @@ You should use `puppeteer-core` if you are
110110
or [managing browsers yourself](https://pptr.dev/browsers-api/).
111111
If you are managing browsers yourself, you will need to call
112112
[`puppeteer.launch`](https://pptr.dev/api/puppeteer.puppeteernode.launch) with
113-
an an explicit
113+
an explicit
114114
[`executablePath`](https://pptr.dev/api/puppeteer.launchoptions)
115115
(or [`channel`](https://pptr.dev/api/puppeteer.launchoptions) if it's
116116
installed in a standard location).

remote/test/puppeteer/examples/README.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# Running the examples
22

3-
Assuming you have a checkout of the Puppeteer repo and have run npm i (or yarn) to install the dependencies, the examples can be run from the root folder like so:
3+
Assuming you have a checkout of the Puppeteer repo and have run `npm i` (or `yarn`) to install the dependencies, and `npm run build` (or `yarn run build`) to build the project, the examples can be run from the root folder like so:
44

55
```bash
66
NODE_PATH=../ node examples/search.js
@@ -12,7 +12,7 @@ More complex and use case driven examples can be found at [github.com/GoogleChro
1212

1313
# Other resources
1414

15-
> Other useful tools, articles, and projects that use Puppeteer.
15+
Other useful tools, articles, and projects that use Puppeteer.
1616

1717
## Rendering and web scraping
1818

remote/test/puppeteer/moz.yaml

+2-2
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,6 @@ origin:
55
description: Headless Chrome Node API
66
license: Apache-2.0
77
name: puppeteer
8-
release: puppeteer-v21.2.0
9-
url: https://github.com/puppeteer/puppeteer.git
8+
release: puppeteer-v21.5.2
9+
url: ../puppeteer
1010
schema: 1

0 commit comments

Comments
 (0)