@browserless.io/browserless 2.5.0-beta-4 → 2.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +14 -2
- package/README.md +65 -34
- package/build/config.d.ts +2 -2
- package/build/config.js +3 -3
- package/build/data/classes.json +1 -1
- package/build/data/selectors.json +1 -1
- package/build/http.d.ts +1 -0
- package/build/http.js +1 -0
- package/build/routes/chrome/http/content.post.body.json +8 -8
- package/build/routes/chrome/http/pdf.post.body.json +8 -8
- package/build/routes/chrome/http/scrape.post.body.json +8 -8
- package/build/routes/chrome/http/screenshot.post.body.json +9 -9
- package/build/routes/chromium/http/content.post.body.json +8 -8
- package/build/routes/chromium/http/pdf.post.body.json +8 -8
- package/build/routes/chromium/http/scrape.post.body.json +8 -8
- package/build/routes/chromium/http/screenshot.post.body.json +9 -9
- package/build/routes/management/http/active.get.d.ts +16 -0
- package/build/routes/management/http/active.get.js +17 -0
- package/build/routes/management/tests/management.spec.js +7 -0
- package/build/server.js +1 -1
- package/build/types.d.ts +6 -4
- package/build/types.js +1 -0
- package/build/utils.d.ts +1 -1
- package/docker/base/Dockerfile +1 -1
- package/extensions/ublock/1p-filters.html +4 -3
- package/extensions/ublock/3p-filters.html +3 -3
- package/extensions/ublock/_locales/ar/messages.json +16 -4
- package/extensions/ublock/_locales/az/messages.json +16 -4
- package/extensions/ublock/_locales/be/messages.json +19 -7
- package/extensions/ublock/_locales/bg/messages.json +16 -4
- package/extensions/ublock/_locales/bn/messages.json +33 -21
- package/extensions/ublock/_locales/br_FR/messages.json +33 -21
- package/extensions/ublock/_locales/bs/messages.json +16 -4
- package/extensions/ublock/_locales/ca/messages.json +16 -4
- package/extensions/ublock/_locales/cs/messages.json +16 -4
- package/extensions/ublock/_locales/cv/messages.json +16 -4
- package/extensions/ublock/_locales/cy/messages.json +16 -4
- package/extensions/ublock/_locales/da/messages.json +21 -9
- package/extensions/ublock/_locales/de/messages.json +17 -5
- package/extensions/ublock/_locales/el/messages.json +16 -4
- package/extensions/ublock/_locales/en/messages.json +16 -4
- package/extensions/ublock/_locales/en_GB/messages.json +16 -4
- package/extensions/ublock/_locales/eo/messages.json +17 -5
- package/extensions/ublock/_locales/es/messages.json +16 -4
- package/extensions/ublock/_locales/et/messages.json +16 -4
- package/extensions/ublock/_locales/eu/messages.json +16 -4
- package/extensions/ublock/_locales/fa/messages.json +24 -12
- package/extensions/ublock/_locales/fi/messages.json +16 -4
- package/extensions/ublock/_locales/fil/messages.json +16 -4
- package/extensions/ublock/_locales/fr/messages.json +16 -4
- package/extensions/ublock/_locales/fy/messages.json +16 -4
- package/extensions/ublock/_locales/gl/messages.json +16 -4
- package/extensions/ublock/_locales/gu/messages.json +16 -4
- package/extensions/ublock/_locales/he/messages.json +25 -13
- package/extensions/ublock/_locales/hi/messages.json +31 -19
- package/extensions/ublock/_locales/hr/messages.json +16 -4
- package/extensions/ublock/_locales/hu/messages.json +16 -4
- package/extensions/ublock/_locales/hy/messages.json +17 -5
- package/extensions/ublock/_locales/id/messages.json +16 -4
- package/extensions/ublock/_locales/it/messages.json +17 -5
- package/extensions/ublock/_locales/ja/messages.json +16 -4
- package/extensions/ublock/_locales/ka/messages.json +16 -4
- package/extensions/ublock/_locales/kk/messages.json +16 -4
- package/extensions/ublock/_locales/kn/messages.json +74 -62
- package/extensions/ublock/_locales/ko/messages.json +16 -4
- package/extensions/ublock/_locales/lt/messages.json +23 -11
- package/extensions/ublock/_locales/lv/messages.json +16 -4
- package/extensions/ublock/_locales/mk/messages.json +16 -4
- package/extensions/ublock/_locales/ml/messages.json +19 -7
- package/extensions/ublock/_locales/mr/messages.json +16 -4
- package/extensions/ublock/_locales/ms/messages.json +16 -4
- package/extensions/ublock/_locales/nb/messages.json +16 -4
- package/extensions/ublock/_locales/nl/messages.json +16 -4
- package/extensions/ublock/_locales/no/messages.json +16 -4
- package/extensions/ublock/_locales/oc/messages.json +16 -4
- package/extensions/ublock/_locales/pa/messages.json +16 -4
- package/extensions/ublock/_locales/pl/messages.json +17 -5
- package/extensions/ublock/_locales/pt_BR/messages.json +16 -4
- package/extensions/ublock/_locales/pt_PT/messages.json +16 -4
- package/extensions/ublock/_locales/ro/messages.json +17 -5
- package/extensions/ublock/_locales/ru/messages.json +16 -4
- package/extensions/ublock/_locales/si/messages.json +16 -4
- package/extensions/ublock/_locales/sk/messages.json +16 -4
- package/extensions/ublock/_locales/sl/messages.json +16 -4
- package/extensions/ublock/_locales/so/messages.json +16 -4
- package/extensions/ublock/_locales/sq/messages.json +16 -4
- package/extensions/ublock/_locales/sr/messages.json +16 -4
- package/extensions/ublock/_locales/sv/messages.json +20 -8
- package/extensions/ublock/_locales/sw/messages.json +16 -4
- package/extensions/ublock/_locales/ta/messages.json +16 -4
- package/extensions/ublock/_locales/te/messages.json +16 -4
- package/extensions/ublock/_locales/th/messages.json +42 -30
- package/extensions/ublock/_locales/tr/messages.json +19 -7
- package/extensions/ublock/_locales/uk/messages.json +16 -4
- package/extensions/ublock/_locales/ur/messages.json +16 -4
- package/extensions/ublock/_locales/vi/messages.json +16 -4
- package/extensions/ublock/_locales/zh_CN/messages.json +16 -4
- package/extensions/ublock/_locales/zh_TW/messages.json +42 -30
- package/extensions/ublock/assets/assets.json +95 -78
- package/extensions/ublock/assets/resources/scriptlets.js +70 -24
- package/extensions/ublock/assets/thirdparties/easylist/easylist.txt +6258 -3453
- package/extensions/ublock/assets/thirdparties/easylist/easyprivacy.txt +277 -40
- package/extensions/ublock/assets/thirdparties/pgl.yoyo.org/as/serverlist +8 -32
- package/extensions/ublock/assets/thirdparties/publicsuffix.org/list/effective_tld_names.dat +107 -12
- package/extensions/ublock/assets/thirdparties/urlhaus-filter/urlhaus-filter-online.txt +1160 -954
- package/extensions/ublock/assets/ublock/badlists.txt +1 -2
- package/extensions/ublock/assets/ublock/badware.min.txt +395 -270
- package/extensions/ublock/assets/ublock/filters.min.txt +1176 -1238
- package/extensions/ublock/assets/ublock/privacy.min.txt +32 -31
- package/extensions/ublock/assets/ublock/quick-fixes.min.txt +120 -110
- package/extensions/ublock/assets/ublock/unbreak.min.txt +75 -36
- package/extensions/ublock/css/1p-filters.css +2 -1
- package/extensions/ublock/css/3p-filters.css +1 -16
- package/extensions/ublock/css/advanced-settings.css +1 -0
- package/extensions/ublock/css/asset-viewer.css +1 -0
- package/extensions/ublock/css/code-viewer.css +1 -0
- package/extensions/ublock/css/codemirror.css +37 -10
- package/extensions/ublock/css/common.css +36 -2
- package/extensions/ublock/css/dashboard.css +9 -3
- package/extensions/ublock/css/devtools.css +1 -0
- package/extensions/ublock/css/document-blocked.css +3 -3
- package/extensions/ublock/css/dom-inspector.css +1 -0
- package/extensions/ublock/css/dyna-rules.css +1 -0
- package/extensions/ublock/css/epicker-ui.css +76 -66
- package/extensions/ublock/css/fa-icons.css +1 -0
- package/extensions/ublock/css/logger-ui.css +2 -0
- package/extensions/ublock/css/popup-fenix.css +1 -0
- package/extensions/ublock/css/whitelist.css +1 -0
- package/extensions/ublock/dashboard.html +20 -13
- package/extensions/ublock/devtools.html +2 -0
- package/extensions/ublock/dyna-rules.html +2 -2
- package/extensions/ublock/img/flags-of-the-world/np.png +0 -0
- package/extensions/ublock/img/fontawesome/fontawesome-defs.svg +1 -0
- package/extensions/ublock/js/1p-filters.js +72 -23
- package/extensions/ublock/js/3p-filters.js +71 -25
- package/extensions/ublock/js/asset-viewer.js +1 -0
- package/extensions/ublock/js/assets.js +83 -89
- package/extensions/ublock/js/background.js +20 -27
- package/extensions/ublock/js/base64-custom.js +1 -102
- package/extensions/ublock/js/benchmarks.js +36 -21
- package/extensions/ublock/js/biditrie.js +8 -23
- package/extensions/ublock/js/broadcast.js +2 -4
- package/extensions/ublock/js/cachestorage.js +594 -396
- package/extensions/ublock/js/codemirror/search.js +49 -37
- package/extensions/ublock/js/codemirror/ubo-static-filtering.js +233 -215
- package/extensions/ublock/js/contentscript-extra.js +31 -1
- package/extensions/ublock/js/cosmetic-filtering.js +35 -33
- package/extensions/ublock/js/dashboard.js +11 -7
- package/extensions/ublock/js/devtools.js +22 -0
- package/extensions/ublock/js/dom.js +2 -2
- package/extensions/ublock/js/dyna-rules.js +17 -16
- package/extensions/ublock/js/epicker-ui.js +41 -16
- package/extensions/ublock/js/fa-icons.js +1 -0
- package/extensions/ublock/js/hntrie.js +10 -25
- package/extensions/ublock/js/i18n.js +15 -15
- package/extensions/ublock/js/logger-ui.js +9 -6
- package/extensions/ublock/js/messaging.js +51 -26
- package/extensions/ublock/js/pagestore.js +21 -23
- package/extensions/ublock/js/popup-fenix.js +35 -22
- package/extensions/ublock/js/redirect-engine.js +15 -30
- package/extensions/ublock/js/reverselookup.js +1 -1
- package/extensions/ublock/js/s14e-serializer.js +1405 -0
- package/extensions/ublock/js/scriptlet-filtering-core.js +1 -1
- package/extensions/ublock/js/scriptlets/epicker.js +27 -18
- package/extensions/ublock/js/settings.js +32 -21
- package/extensions/ublock/js/start.js +121 -62
- package/extensions/ublock/js/static-ext-filtering-db.js +6 -6
- package/extensions/ublock/js/static-ext-filtering.js +17 -28
- package/extensions/ublock/js/static-filtering-parser.js +26 -4
- package/extensions/ublock/js/static-net-filtering.js +69 -168
- package/extensions/ublock/js/storage.js +178 -155
- package/extensions/ublock/js/traffic.js +11 -7
- package/extensions/ublock/js/vapi-background.js +49 -62
- package/extensions/ublock/js/vapi-client.js +13 -16
- package/extensions/ublock/js/webext.js +10 -2
- package/extensions/ublock/js/whitelist.js +27 -25
- package/extensions/ublock/lib/publicsuffixlist/publicsuffixlist.js +3 -7
- package/extensions/ublock/manifest.json +2 -1
- package/extensions/ublock/web_accessible_resources/epicker-ui.html +5 -8
- package/extensions/ublock/whitelist.html +3 -4
- package/package.json +13 -13
- package/src/config.ts +3 -4
- package/src/http.ts +1 -0
- package/src/routes/management/http/active.get.ts +30 -0
- package/src/routes/management/tests/management.spec.ts +13 -0
- package/src/server.ts +1 -1
- package/src/types.ts +2 -1
- package/static/docs/swagger.json +57 -11
- package/static/docs/swagger.min.json +56 -10
- package/static/function/client.js +4155 -3350
- package/extensions/ublock/_locales/ku/messages.json +0 -1294
package/CHANGELOG.md
CHANGED
|
@@ -1,12 +1,24 @@
|
|
|
1
|
-
# [Latest](https://github.com/browserless/chrome/compare/v2.
|
|
1
|
+
# [Latest](https://github.com/browserless/chrome/compare/v2.6.0...main)
|
|
2
|
+
- Dependency updates.
|
|
3
|
+
|
|
4
|
+
# [v2.6.0](https://github.com/browserless/chrome/compare/v2.5.0...v2.6.0)
|
|
5
|
+
- Adds a `GET /active` route that responds with no message and a `204` http code.
|
|
6
|
+
- Move to NodeJS 20.12.0.
|
|
7
|
+
- README, CHANGELOG, Migration and spelling fixes.
|
|
8
|
+
- New `/active` route for determining if server is able to handle requests.
|
|
9
|
+
- Better logging around 404'd HTTP requests.
|
|
10
|
+
- Dependency updates.
|
|
11
|
+
|
|
12
|
+
# [v2.5.0](https://github.com/browserless/chrome/compare/v2.4.0...v2.5.0)
|
|
2
13
|
- `Config` now allows for programmatic getting and setting of the external address.
|
|
3
|
-
- Support for a new
|
|
14
|
+
- Support for a new `Hooks` module for setting up hooks in a more SDK-friendly manner.
|
|
4
15
|
- Adds new exports for building downstream SDK projects more easily, versus using our CLI:
|
|
5
16
|
- `getArgSwitches`
|
|
6
17
|
- `getSourceFiles`
|
|
7
18
|
- `installDependencies`
|
|
8
19
|
- `buildDockerImage`
|
|
9
20
|
- `buildTypeScript`
|
|
21
|
+
- `README.md` updates.
|
|
10
22
|
- Dependency updates.
|
|
11
23
|
|
|
12
24
|
# [v2.4.0](https://github.com/browserless/chrome/compare/v2.3.0...v2.4.0)
|
package/README.md
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
<!-- markdownlint-disable first-line-h1 no-emphasis-as-heading -->
|
|
2
|
+
|
|
1
3
|

|
|
2
4
|
|
|
3
5
|

|
|
@@ -7,34 +9,39 @@
|
|
|
7
9
|

|
|
8
10
|

|
|
9
11
|
|
|
10
|
-
|
|
11
|
-
> [Looking for v1.x.x of browserless? You can find it here](https://github.com/browserless/chrome/tree/v1), although we recommend migrating to v2.
|
|
12
|
+
> [!NOTE]
|
|
13
|
+
> [Looking for v1.x.x of browserless? You can find it here](https://github.com/browserless/chrome/tree/v1), although we recommend [migrating](/MIGRATION-2.0.md) to v2.
|
|
12
14
|
|
|
13
15
|
Browserless allows remote clients to connect and execute headless work, all inside of docker. It supports the standard, unforked Puppeteer and Playwright libraries, as well offering REST-based APIs for common actions like data collection, PDF generation and more.
|
|
14
16
|
|
|
15
17
|
We take care of common issues such as missing system-fonts, missing external libraries, and performance improvements, along with edge-cases like downloading files and managing sessions. For details, check out the documentation site built into the project which includes Open API docs.
|
|
16
18
|
|
|
17
19
|
If you've been struggling to deploy headless browsers without running into issues or bloated resource requirements, then Browserless was built for you. Run the browsers in [our cloud](https://browserless.io/) or your own, [free for non-commercial uses](https://github.com/browserless/browserless#licensing).
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
20
|
+
|
|
21
|
+
## Table of Contents
|
|
22
|
+
|
|
23
|
+
- [External links](#external-links)
|
|
24
|
+
- [Features](#features)
|
|
25
|
+
- [How it works](#how-it-works)
|
|
26
|
+
- [Docker](#docker)
|
|
27
|
+
- [Hosting Providers](#hosting-providers)
|
|
28
|
+
- [Puppeteer](#puppeteer)
|
|
29
|
+
- [Playwright](#playwright)
|
|
30
|
+
- [Extending (NodeJS SDK)](#extending-nodejs-sdk)
|
|
31
|
+
- [Usage with other libraries](#usage-with-other-libraries)
|
|
32
|
+
- [Motivations](#motivations)
|
|
33
|
+
- [Licensing](#licensing)
|
|
29
34
|
|
|
30
35
|
## External links
|
|
31
36
|
|
|
32
|
-
1. [Full documentation site](https://
|
|
37
|
+
1. [Full documentation site](https://docs.browserless.io/)
|
|
33
38
|
2. [Live Debugger (using browserless.io)](https://chrome.browserless.io/)
|
|
34
39
|
3. [Docker](https://github.com/browserless/browserless/pkgs/container/base)
|
|
35
40
|
4. [Slack](https://join.slack.com/t/browserless/shared_invite/enQtMzA3OTMwNjA3MzY1LTRmMWU5NjQ0MTQ2YTE2YmU3MzdjNmVlMmU4MThjM2UxODNmNzNlZjVkY2U2NjdkMzYyNTgyZTBiMmE3Nzg0MzY)
|
|
36
41
|
|
|
37
|
-
|
|
42
|
+
## Features
|
|
43
|
+
|
|
44
|
+
### General
|
|
38
45
|
|
|
39
46
|
- Parallelism and request-queueing are built-in + configurable.
|
|
40
47
|
- Fonts and emoji's working out-of-the-box.
|
|
@@ -43,23 +50,34 @@ If you've been struggling to deploy headless browsers without running into issue
|
|
|
43
50
|
- Works with unforked Puppeteer and Playwright.
|
|
44
51
|
- Configurable session timers and health-checks to keep things running smoothly.
|
|
45
52
|
- Error tolerant: if Chrome dies it won't.
|
|
46
|
-
-
|
|
53
|
+
- Support for running and development on Apple's M1 machines
|
|
54
|
+
|
|
55
|
+
### Cloud
|
|
56
|
+
|
|
57
|
+
Our [cloud accounts](https://www.browserless.io/pricing/) include all the general features plus extras, such as:
|
|
47
58
|
|
|
48
|
-
|
|
59
|
+
- Inbuilt [residential proxy](https://www.browserless.io/blog/2023/09/24/residential-proxying/)
|
|
60
|
+
- [/unblock API](https://www.browserless.io/blog/2024/02/26/unblock-api/) for avoiding detectors
|
|
61
|
+
- [Hybrid automations](https://www.browserless.io/blog/2024/03/21/hybrid-automations-for-puppeteer/) for streaming login windows during scripts
|
|
62
|
+
- Ability to upload and run extensions _(coming soon)_
|
|
63
|
+
- SSO, tokens and user roles
|
|
64
|
+
|
|
65
|
+
## How it works
|
|
49
66
|
|
|
50
67
|
Browserless listens for both incoming websocket requests, generally issued by most libraries, as well as pre-build REST APIs to do common functions (PDF generation, images and so on). When a websocket connects to Browserless it starts Chrome and proxies your request into it. Once the session is done then it closes and awaits for more connections. Some libraries use Chrome's HTTP endpoints, like `/json` to inspect debug-able targets, which Browserless also supports.
|
|
51
68
|
|
|
52
69
|
You still execute the script itself which gives you total control over what library you want to choose and when to do upgrades. This also comes with the benefit of keep your code proprietary and able to run on numerous platforms. We simply take care of all the browser-aspects and offer a management layer on top of the browser.
|
|
53
70
|
|
|
54
|
-
|
|
71
|
+
### Docker
|
|
55
72
|
|
|
56
|
-
>
|
|
73
|
+
> [!TIP]
|
|
74
|
+
> See more options on our [full documentation site](https://docs.browserless.io/Docker/docker-quickstart).
|
|
57
75
|
|
|
58
|
-
1. `docker run -p 3000:3000 ghcr.io/browserless/
|
|
76
|
+
1. `docker run -p 3000:3000 ghcr.io/browserless/chromium`
|
|
59
77
|
2. Visit `http://localhost:3000/docs` to see the documentation site.
|
|
60
78
|
3. See more at our [docker package](https://github.com/browserless/browserless/pkgs/container/base).
|
|
61
79
|
|
|
62
|
-
|
|
80
|
+
### Hosting Providers
|
|
63
81
|
|
|
64
82
|
We offer a first-class hosted product located [here](https://browserless.io). Alternatively you can host this image on just about any major platform that offers hosting for docker. Our hosted service takes care of all the machine provisioning, notifications, dashboards and monitoring plus more:
|
|
65
83
|
|
|
@@ -69,50 +87,63 @@ We offer a first-class hosted product located [here](https://browserless.io). Al
|
|
|
69
87
|
|
|
70
88
|
If you're interested in using this image for commercial aspects, then please read the below section on licensing.
|
|
71
89
|
|
|
72
|
-
|
|
90
|
+
### Puppeteer
|
|
73
91
|
|
|
74
92
|
Puppeteer allows you to specify a remote location for chrome via the `browserWSEndpoint` option. Setting this for Browserless is a single line of code change.
|
|
75
93
|
|
|
76
94
|
**Before**
|
|
95
|
+
|
|
77
96
|
```js
|
|
78
97
|
const browser = await puppeteer.launch();
|
|
79
98
|
```
|
|
80
99
|
|
|
81
100
|
**After**
|
|
101
|
+
|
|
82
102
|
```js
|
|
83
|
-
const browser = await puppeteer.connect({
|
|
103
|
+
const browser = await puppeteer.connect({
|
|
104
|
+
browserWSEndpoint: 'ws://localhost:3000',
|
|
105
|
+
});
|
|
84
106
|
```
|
|
85
107
|
|
|
86
|
-
|
|
108
|
+
### Playwright
|
|
87
109
|
|
|
88
|
-
We support running with playwright via their
|
|
110
|
+
We support running with playwright via their their browser's remot connection protocols interface out of the box. Just make sure that your Docker image, playwright browser type _and_ endpoint match:
|
|
89
111
|
|
|
90
112
|
**Before**
|
|
113
|
+
|
|
91
114
|
```js
|
|
92
|
-
|
|
115
|
+
import pw from "playwright";
|
|
116
|
+
const browser = await pw.firefox.launch();
|
|
93
117
|
```
|
|
94
118
|
|
|
95
119
|
**After**
|
|
120
|
+
|
|
121
|
+
```sh
|
|
122
|
+
docker run -p 3000:3000 ghcr.io/browserless/firefox
|
|
123
|
+
# or ghcr.io/browserless/multi for all the browsers
|
|
124
|
+
```
|
|
125
|
+
|
|
96
126
|
```js
|
|
97
|
-
|
|
127
|
+
import pw from "playwright-core";
|
|
98
128
|
|
|
99
|
-
|
|
100
|
-
|
|
129
|
+
const browser = await pw.firefox.connect(
|
|
130
|
+
'ws://localhost:3000/firefox/playwright',
|
|
131
|
+
);
|
|
101
132
|
```
|
|
102
133
|
|
|
103
134
|
After that, the rest of your code remains the same with no other changes required.
|
|
104
135
|
|
|
105
|
-
|
|
136
|
+
## Extending (NodeJS SDK)
|
|
106
137
|
|
|
107
138
|
Browserless comes with built-in extension capabilities, and allows for extending nearly any aspect of the system (for Version 2+). For more details on how to write your own routes, build docker images, and more, [see our SDK README.md](/bin/scaffold/README.md) or simply run "npx @browserless.io/browserless create" in a terminal and follow the onscreen prompts.
|
|
108
139
|
|
|
109
|
-
|
|
140
|
+
## Usage with other libraries
|
|
110
141
|
|
|
111
142
|
Most libraries allow you to specify a remote instance of Chrome to interact with. They are either looking for a websocket endpoint, a host and port, or some address. Browserless supports these by default, however if you're having issues please make an issue in this project and we'll try and work with the library authors to get them integrated with browserless. Please note that in V2 we no longer support selenium or webdriver integrations.
|
|
112
143
|
|
|
113
|
-
You can find a much larger list of supported libraries [on our documentation site](https://
|
|
144
|
+
You can find a much larger list of supported libraries [on our documentation site](https://docs.browserless.io/Libraries/puppeteer-library).
|
|
114
145
|
|
|
115
|
-
|
|
146
|
+
## Motivations
|
|
116
147
|
|
|
117
148
|
Running Chrome on lambda or on your own is a fantastic idea but in practice is quite challenging in production. You're met with pretty tough cloud limits, possibly building Chrome yourself, and then dealing with odd invocation issues should everything else go ok. A lot of issues in various repositories are due to just challenges of getting Chrome running smoothly in AWS (see [here](https://github.com/GoogleChrome/puppeteer/issues?q=is%3Aissue+is%3Aopen+sort%3Acomments-desc)). You can see for yourself by going to nearly any library and sorting issues by most commented.
|
|
118
149
|
|
|
@@ -120,7 +151,7 @@ Getting Chrome running well in docker is also a challenge as there's quiet a few
|
|
|
120
151
|
|
|
121
152
|
All of these issues prompted us to build a first-class image and workflow for interacting with Chrome in a more streamlined way. With Browserless you never have to worry about fonts, extra packages, library support, security, or anything else. It just works reliably like any other modern web service. On top of that it comes with a prescribed approach on how you interact with Chrome, which is through socket connections (similar to a database or any other external appliance). What this means is that you get the ability to drive Chrome remotely without having to do updates/releases to the thing that runs Chrome since it's divorced from your application.
|
|
122
153
|
|
|
123
|
-
|
|
154
|
+
## Licensing
|
|
124
155
|
|
|
125
156
|
SPDX-License-Identifier: SSPL-1.0 OR Browserless Commercial License.
|
|
126
157
|
|
package/build/config.d.ts
CHANGED
|
@@ -116,7 +116,7 @@ export declare class Config extends EventEmitter {
|
|
|
116
116
|
*/
|
|
117
117
|
getServerAddress: () => string;
|
|
118
118
|
/**
|
|
119
|
-
* Returns the
|
|
119
|
+
* Returns the fully-qualified URL for the
|
|
120
120
|
* external address that browserless might be
|
|
121
121
|
* running behind *or* the server address if
|
|
122
122
|
* no external URL is provided.
|
|
@@ -133,7 +133,7 @@ export declare class Config extends EventEmitter {
|
|
|
133
133
|
*/
|
|
134
134
|
setExternalAddress: (address: string) => string;
|
|
135
135
|
/**
|
|
136
|
-
* Returns the
|
|
136
|
+
* Returns the fully-qualified WebSocket URL for the
|
|
137
137
|
* external address that browserless might be
|
|
138
138
|
* running behind *or* the server address if
|
|
139
139
|
* no external URL is provided.
|
package/build/config.js
CHANGED
|
@@ -327,7 +327,7 @@ export class Config extends EventEmitter {
|
|
|
327
327
|
? `http://${this.host}`
|
|
328
328
|
: `http://${this.host}:${this.port}`;
|
|
329
329
|
/**
|
|
330
|
-
* Returns the
|
|
330
|
+
* Returns the fully-qualified URL for the
|
|
331
331
|
* external address that browserless might be
|
|
332
332
|
* running behind *or* the server address if
|
|
333
333
|
* no external URL is provided.
|
|
@@ -342,9 +342,9 @@ export class Config extends EventEmitter {
|
|
|
342
342
|
* @param address The fully-qualified URL, eg https://www.example.com/
|
|
343
343
|
* @returns {string} The address
|
|
344
344
|
*/
|
|
345
|
-
setExternalAddress = (address) => this.external = address;
|
|
345
|
+
setExternalAddress = (address) => (this.external = address);
|
|
346
346
|
/**
|
|
347
|
-
* Returns the
|
|
347
|
+
* Returns the fully-qualified WebSocket URL for the
|
|
348
348
|
* external address that browserless might be
|
|
349
349
|
* running behind *or* the server address if
|
|
350
350
|
* no external URL is provided.
|
package/build/data/classes.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
["
|
|
1
|
+
["404: Not Found"]
|