Skip to content

Commit 45b3162

Browse files
authored
1 parent ddfa02c commit 45b3162

File tree

126 files changed

+16940
-9489
lines changed

Some content is hidden

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

126 files changed

+16940
-9489
lines changed

Dockerfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
FROM debian:buster-slim
22

3-
ENV DENO_VERSION=1.14.2
3+
ENV DENO_VERSION=1.25.0
44
ARG DEBIAN_FRONTEND=noninteractive
55

66
RUN apt-get -qq update \

README.md

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
<img src="./logo.png" height="200" align="right">
44

5-
###### [API](https://github.com/puppeteer/puppeteer/blob/v14.1.1/docs/api.md)
5+
###### [API](https://github.com/puppeteer/puppeteer/blob/v16.2.0/docs/api.md)
66

77
A fork of [Puppeteer](https://pptr.dev/) running on Deno.
88

@@ -31,21 +31,21 @@ Here are a few examples to get you started:
3131
To use Puppeteer, import it like so:
3232

3333
```ts
34-
import puppeteer from "https://deno.land/x/puppeteer@14.1.1/mod.ts";
34+
import puppeteer from "https://deno.land/x/puppeteer@16.2.0/mod.ts";
3535
```
3636

3737
Puppeteer can use any recent version of Chromium or Firefox Nightly, but this
3838
version of Puppeteer is only validated against a specific version. To cache
3939
these versions in the Puppeteer cache, run the commands below.
4040

4141
```shell
42-
PUPPETEER_PRODUCT=chrome deno run -A --unstable https://deno.land/x/puppeteer@14.1.1/install.ts
43-
PUPPETEER_PRODUCT=firefox deno run -A --unstable https://deno.land/x/puppeteer@14.1.1/install.ts
42+
PUPPETEER_PRODUCT=chrome deno run -A --unstable https://deno.land/x/puppeteer@16.2.0/install.ts
43+
PUPPETEER_PRODUCT=firefox deno run -A --unstable https://deno.land/x/puppeteer@16.2.0/install.ts
4444
```
4545

4646
You can find all of the supported environment variables to customize
4747
installation
48-
[in the Puppeteer docs](https://pptr.dev/#?product=Puppeteer&version=v14.1.1&show=api-environment-variables).
48+
[in the Puppeteer docs](https://pptr.dev/#?product=Puppeteer&version=v16.2.0&show=api-environment-variables).
4949

5050
### Usage
5151

@@ -59,7 +59,7 @@ _example.png_:
5959
Save file as **example.js**
6060

6161
```js
62-
import puppeteer from "https://deno.land/x/puppeteer@14.1.1/mod.ts";
62+
import puppeteer from "https://deno.land/x/puppeteer@16.2.0/mod.ts";
6363

6464
const browser = await puppeteer.launch();
6565
const page = await browser.newPage();
@@ -77,14 +77,14 @@ deno run -A --unstable example.js
7777

7878
Puppeteer sets an initial page size to 800×600px, which defines the screenshot
7979
size. The page size can be customized with
80-
[`Page.setViewport()`](https://github.com/puppeteer/puppeteer/blob/v14.1.1/docs/api.md#pagesetviewportviewport).
80+
[`Page.setViewport()`](https://github.com/puppeteer/puppeteer/blob/v16.2.0/docs/api.md#pagesetviewportviewport).
8181

8282
**Example** - create a PDF.
8383

8484
Save file as **hn.js**
8585

8686
```js
87-
import puppeteer from "https://deno.land/x/puppeteer@14.1.1/mod.ts";
87+
import puppeteer from "https://deno.land/x/puppeteer@16.2.0/mod.ts";
8888

8989
const browser = await puppeteer.launch();
9090
const page = await browser.newPage();
@@ -103,15 +103,15 @@ deno run -A --unstable hn.js
103103
```
104104

105105
See
106-
[`Page.pdf()`](https://github.com/puppeteer/puppeteer/blob/v14.1.1/docs/api.md#pagepdfoptions)
106+
[`Page.pdf()`](https://github.com/puppeteer/puppeteer/blob/v16.2.0/docs/api.md#pagepdfoptions)
107107
for more information about creating pdfs.
108108

109109
**Example** - evaluate script in the context of the page
110110

111111
Save file as **get-dimensions.js**
112112

113113
```js
114-
import puppeteer from "https://deno.land/x/puppeteer@14.1.1/mod.ts";
114+
import puppeteer from "https://deno.land/x/puppeteer@16.2.0/mod.ts";
115115

116116
const browser = await puppeteer.launch();
117117
const page = await browser.newPage();

mod.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
import puppeteer from "./src/mod.ts";
22
export default puppeteer;
3-
export * from "./vendor/puppeteer-core/puppeteer/api-docs-entry.js";
3+
export * from "./vendor/puppeteer-core/puppeteer/types.js";

src/deno/BrowserFetcher.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616

1717
import { Product } from "../../vendor/puppeteer-core/puppeteer/common/Product.js";
1818
import { debug } from "../../vendor/puppeteer-core/puppeteer/common/Debug.js";
19-
import { assert } from "../../vendor/puppeteer-core/puppeteer/common/assert.js";
19+
import { assert } from "../../vendor/puppeteer-core/puppeteer/util/assert.js";
2020
import {
2121
copyDir,
2222
exists,

src/deno/BrowserRunner.ts

Lines changed: 14 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -15,19 +15,20 @@
1515
*/
1616

1717
import { debug } from "../../vendor/puppeteer-core/puppeteer/common/Debug.js";
18-
import { assert } from "../../vendor/puppeteer-core/puppeteer/common/assert.js";
18+
import { assert } from "../../vendor/puppeteer-core/puppeteer/util/assert.js";
1919
import {
2020
debugError,
21-
helper,
22-
} from "../../vendor/puppeteer-core/puppeteer/common/helper.js";
21+
removeEventListeners,
22+
} from "../../vendor/puppeteer-core/puppeteer/common/util.js";
2323
import { LaunchOptions } from "./LaunchOptions.ts";
2424
import { Connection } from "../../vendor/puppeteer-core/puppeteer/common/Connection.js";
2525
import { BrowserWebSocketTransport } from "../../vendor/puppeteer-core/puppeteer/common/BrowserWebSocketTransport.js";
2626
import { TimeoutError } from "../../vendor/puppeteer-core/puppeteer/common/Errors.js";
2727
import { readLines } from "../../vendor/puppeteer-core/vendor/std.ts";
2828

2929
const debugLauncher = debug("puppeteer:launcher");
30-
const PROCESS_ERROR_EXPLANATION = `Puppeteer was unable to kill the process which ran the browser binary.
30+
const PROCESS_ERROR_EXPLANATION =
31+
`Puppeteer was unable to kill the process which ran the browser binary.
3132
This means that, on future Puppeteer launches, Puppeteer might not be able to launch the browser.
3233
Please check your open processes and ensure that the browser processes that Puppeteer launched have been killed.
3334
If you think this is a bug, please report it on the Puppeteer issue tracker.`;
@@ -47,7 +48,7 @@ export class BrowserRunner {
4748
constructor(
4849
executablePath: string,
4950
processArguments: string[],
50-
tempDirectory?: string
51+
tempDirectory?: string,
5152
) {
5253
this._executablePath = executablePath;
5354
this._processArguments = processArguments;
@@ -58,7 +59,7 @@ export class BrowserRunner {
5859
const { env, dumpio } = options;
5960
assert(!this.proc, "This process has previously been started.");
6061
debugLauncher(
61-
`Calling ${this._executablePath} ${this._processArguments.join(" ")}`
62+
`Calling ${this._executablePath} ${this._processArguments.join(" ")}`,
6263
);
6364
this.proc = Deno.run({
6465
cmd: [this._executablePath, ...this._processArguments],
@@ -107,7 +108,7 @@ export class BrowserRunner {
107108
}
108109
// Cleanup this listener last, as that makes sure the full callback runs. If we
109110
// perform this earlier, then the previous function calls would not happen.
110-
helper.removeEventListeners(this._listeners);
111+
removeEventListeners(this._listeners);
111112
return this._processClosing;
112113
}
113114

@@ -127,13 +128,13 @@ export class BrowserRunner {
127128
this.proc.kill("SIGKILL");
128129
} catch (error) {
129130
throw new Error(
130-
`${PROCESS_ERROR_EXPLANATION}\nError cause: ${error.stack}`
131+
`${PROCESS_ERROR_EXPLANATION}\nError cause: ${error.stack}`,
131132
);
132133
}
133134
}
134135
// Cleanup this listener last, as that makes sure the full callback runs. If we
135136
// perform this earlier, then the previous function calls would not happen.
136-
helper.removeEventListeners(this._listeners);
137+
removeEventListeners(this._listeners);
137138
}
138139

139140
async setupConnection(options: {
@@ -145,7 +146,7 @@ export class BrowserRunner {
145146
const browserWSEndpoint = await waitForWSEndpoint(
146147
this.proc!,
147148
timeout,
148-
preferredRevision
149+
preferredRevision,
149150
);
150151
const transport = await BrowserWebSocketTransport.create(browserWSEndpoint);
151152
this.connection = new Connection(browserWSEndpoint, transport, slowMo);
@@ -156,11 +157,11 @@ export class BrowserRunner {
156157
async function waitForWSEndpoint(
157158
browserProcess: Deno.Process,
158159
timeout: number,
159-
preferredRevision: string
160+
preferredRevision: string,
160161
): Promise<string> {
161162
const timeId = setTimeout(() => {
162163
throw new TimeoutError(
163-
`Timed out after ${timeout} ms while trying to connect to the browser! Only Chrome at revision r${preferredRevision} is guaranteed to work.`
164+
`Timed out after ${timeout} ms while trying to connect to the browser! Only Chrome at revision r${preferredRevision} is guaranteed to work.`,
164165
);
165166
}, timeout);
166167

@@ -178,6 +179,6 @@ async function waitForWSEndpoint(
178179
"Failed to launch the browser process!" + "",
179180
"TROUBLESHOOTING: https://github.com/puppeteer/puppeteer/blob/main/docs/troubleshooting.md",
180181
"",
181-
].join("\n")
182+
].join("\n"),
182183
);
183184
}

src/deno/Launcher.ts

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -116,7 +116,8 @@ class ChromeLauncher implements ProductLauncher {
116116
slowMo,
117117
preferredRevision: this._preferredRevision,
118118
});
119-
const browser = await Browser.create(
119+
const browser = await Browser._create(
120+
"chrome",
120121
connection,
121122
[],
122123
ignoreHTTPSErrors,
@@ -277,7 +278,8 @@ class FirefoxLauncher implements ProductLauncher {
277278
slowMo,
278279
preferredRevision: this._preferredRevision,
279280
});
280-
const browser = await Browser.create(
281+
const browser = await Browser._create(
282+
"firefox",
281283
connection,
282284
[],
283285
ignoreHTTPSErrors,

src/deno/Puppeteer.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,6 @@ export class PuppeteerDeno extends Puppeteer {
8888
* @returns Promise which resolves to browser instance.
8989
*/
9090
connect(options: ConnectOptions): Promise<Browser> {
91-
if (options.product) this._productName = options.product;
9291
return super.connect(options);
9392
}
9493

src/initialize-deno.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import { PUPPETEER_REVISIONS } from "../vendor/puppeteer-core/puppeteer/revision
44
export const initializePuppeteerDeno = (): PuppeteerDeno => {
55
const productName = Deno.env.get("PUPPETEER_PRODUCT") as "chrome" | "firefox";
66

7-
let preferredRevision = PUPPETEER_REVISIONS.chromium;
7+
let preferredRevision: string = PUPPETEER_REVISIONS.chromium;
88
if (productName == "firefox") preferredRevision = PUPPETEER_REVISIONS.firefox;
99

1010
return new PuppeteerDeno({
Lines changed: 0 additions & 115 deletions
Original file line numberDiff line numberDiff line change
@@ -1,115 +0,0 @@
1-
/**
2-
* Copyright 2020 Google Inc. All rights reserved.
3-
*
4-
* Licensed under the Apache License, Version 2.0 (the "License");
5-
* you may not use this file except in compliance with the License.
6-
* You may obtain a copy of the License at
7-
*
8-
* http://www.apache.org/licenses/LICENSE-2.0
9-
*
10-
* Unless required by applicable law or agreed to in writing, software
11-
* distributed under the License is distributed on an "AS IS" BASIS,
12-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13-
* See the License for the specific language governing permissions and
14-
* limitations under the License.
15-
*/
16-
import { BrowserConnectOptions } from "./common/BrowserConnector.js";
17-
import { Product } from "./common/Product.js";
18-
import { Browser } from "./common/Browser.js";
19-
import { ConnectOptions } from "./common/Puppeteer.js";
20-
import { DevicesMap } from "./common/DeviceDescriptors.js";
21-
import { PuppeteerErrors } from "./common/Errors.js";
22-
import { PredefinedNetworkConditions } from "./common/NetworkConditions.js";
23-
import { CustomQueryHandler } from "./common/QueryHandler.js";
24-
import { LaunchOptions } from "../../../src/deno/LaunchOptions.ts";
25-
export * from "./common/Accessibility.js";
26-
export * from "./common/Browser.js";
27-
export * from "./common/Coverage.js";
28-
export * from "./common/Connection.js";
29-
export * from "./common/ConsoleMessage.js";
30-
export * from "./common/Coverage.js";
31-
export * from "./common/DeviceDescriptors.js";
32-
export * from "./common/Dialog.js";
33-
export * from "./common/DOMWorld.js";
34-
export * from "./common/JSHandle.js";
35-
export * from "./common/ExecutionContext.js";
36-
export * from "./common/EventEmitter.js";
37-
export * from "./common/FileChooser.js";
38-
export * from "./common/FrameManager.js";
39-
export * from "./common/PuppeteerViewport.js";
40-
export * from "./common/Input.js";
41-
export * from "./common/Page.js";
42-
export * from "./common/Product.js";
43-
export * from "./common/Puppeteer.js";
44-
export * from "./common/BrowserConnector.js";
45-
export * from "./common/HTTPRequest.js";
46-
export * from "./common/HTTPResponse.js";
47-
export * from "./common/SecurityDetails.js";
48-
export * from "./common/Target.js";
49-
export * from "./common/Errors.js";
50-
export * from "./common/Tracing.js";
51-
export * from "./common/NetworkManager.js";
52-
export * from "./common/WebWorker.js";
53-
export * from "./common/USKeyboardLayout.js";
54-
export * from "./common/EvalTypes.js";
55-
export * from "./common/PDFOptions.js";
56-
export * from "./common/TimeoutSettings.js";
57-
export * from "./common/LifecycleWatcher.js";
58-
export * from "./common/QueryHandler.js";
59-
export * from "./common/NetworkConditions.js";
60-
export * from "../vendor/devtools-protocol/types/protocol.d.ts";
61-
export * from "../../../src/deno/LaunchOptions.ts";
62-
/**
63-
* @public
64-
* {@inheritDoc PuppeteerNode.launch}
65-
*/
66-
export declare function launch(
67-
options?:
68-
& LaunchOptions
69-
& BrowserConnectOptions
70-
& {
71-
product?: Product;
72-
extraPrefsFirefox?: Record<string, unknown>;
73-
},
74-
): Promise<Browser>;
75-
/**
76-
* @public
77-
* {@inheritDoc PuppeteerNode.connect}
78-
*/
79-
export declare function connect(options: ConnectOptions): Promise<Browser>;
80-
/**
81-
* @public
82-
* {@inheritDoc Puppeteer.devices}
83-
*/
84-
export declare let devices: DevicesMap;
85-
/**
86-
* @public
87-
*/
88-
export declare let errors: PuppeteerErrors;
89-
/**
90-
* @public
91-
*/
92-
export declare let networkConditions: PredefinedNetworkConditions;
93-
/**
94-
* @public
95-
* {@inheritDoc Puppeteer.registerCustomQueryHandler}
96-
*/
97-
export declare function registerCustomQueryHandler(
98-
name: string,
99-
queryHandler: CustomQueryHandler,
100-
): void;
101-
/**
102-
* @public
103-
* {@inheritDoc Puppeteer.unregisterCustomQueryHandler}
104-
*/
105-
export declare function unregisterCustomQueryHandler(name: string): void;
106-
/**
107-
* @public
108-
* {@inheritDoc Puppeteer.customQueryHandlerNames}
109-
*/
110-
export declare function customQueryHandlerNames(): string[];
111-
/**
112-
* @public
113-
* {@inheritDoc Puppeteer.clearCustomQueryHandlers}
114-
*/
115-
export declare function clearCustomQueryHandlers(): void;

0 commit comments

Comments
 (0)