Commit Graph

3892 Commits

Author SHA1 Message Date
Alex Rudenko
c23cdb73a7
fix: make sure there is a check for targets when timeout=0 (#8765)
Previously, if timeout is falsy, the targets would only
be checked if a browser-level event fires which lead to
a race: if the events arrived before waiting for a target,
the promise would never resolve.

Fixes #8763
2022-08-10 15:49:59 +02:00
Alex Rudenko
b5064b7b8b
fix: specify Puppeteer version for Chromium 105.0.5173.0 (#8766) 2022-08-10 11:51:54 +02:00
jrandolf
837b10b15e
chore: rename DOMWorld to IsolatedWorld (#8761) 2022-08-09 15:17:42 +02:00
jrandolf
932a053d02
chore: move adoption to DOMWorld (#8760) 2022-08-09 14:55:18 +02:00
Alex Rudenko
6934b94f23
docs: introduce the Guides section + restore req interception docs (#8758)
Closes #8744
2022-08-09 12:01:23 +00:00
jrandolf
8be8f5ff72
chore: refactor deferred promise (#8759) 2022-08-09 13:29:12 +02:00
Alex Rudenko
50bcff2ec2
chore: remove old website versions and point to md docs instead (#8757) 2022-08-09 11:13:05 +00:00
Alex Rudenko
af78cc768f
chore: fix proxy-related tests (#8753) 2022-08-08 14:31:12 +00:00
Alex Rudenko
af92fc8f32
docs: fix typos in the docker documentation (#8751) 2022-08-08 11:04:50 +00:00
release-please[bot]
2d5f216621
chore(main): release 16.1.0 (#8743)
* chore(main): release 16.1.0

* chore: generate versioned docs

Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com>
2022-08-06 16:49:20 +02:00
Alex Rudenko
8cb5043868
fix: resolve target manager init if no existing targets detected (#8748)
Closes #8747
2022-08-06 15:35:42 +02:00
Alex Rudenko
9588072a28
chore: try increasing swap size for website generator (#8745) 2022-08-06 14:59:47 +02:00
Alex Rudenko
eb6470931b
docs: add documentation about Docker (#8741)
Closes #3072
2022-08-05 11:00:09 +02:00
jrandolf
5cf9b4de8d
feat: use an xpath query handler (#8730) 2022-08-04 15:45:21 +02:00
Alex Rudenko
49193cbf1c
fix: specify the target filter in setDiscoverTargets (#8742)
To stay compatible with the next version of Chromium.
See https://chromedevtools.github.io/devtools-protocol/tot/Target/#method-setDiscoverTargets
2022-08-04 11:46:53 +00:00
Alex Rudenko
26f6165008
chore: configure docker image tags (#8738) 2022-08-03 17:59:59 +02:00
Alex Rudenko
6c777e4d70
chore: fix docker permissions (#8737) 2022-08-03 16:01:46 +02:00
Alex Rudenko
ce5d296073
chore: add docker publishing permissions (#8736) 2022-08-03 11:36:09 +00:00
Alex Rudenko
7d75b54b6e
chore: move Docker publishing into a separate workflow (#8731)
it looks like the docker publishing steps had an error
that prevented the entire workflow for running. Let's
extract the docker pubishing into a separate workflow until
we are sure it's stable.
2022-08-03 06:26:56 +02:00
release-please[bot]
0c8bce13a2
chore(main): release 16.0.0 (#8729)
* chore(main): release 16.0.0

* chore: generate versioned docs

Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com>
2022-08-02 14:08:19 +00:00
jrandolf
860a13f306 chore: add .devcontainer to .gitignore (#8723) 2022-08-02 13:18:52 +00:00
Alex Rudenko
1f89724b64 chore: increase max-old-space-size for docs (#8721) 2022-08-02 13:18:51 +00:00
Alex Rudenko
2abd772c9c feat: detect Firefox in connect() automatically (#8718)
This PR implements automatic detection of the Firefox product when the `.connect()` method is used. This partially undoes the breaking change in https://github.com/puppeteer/puppeteer/pull/8520 but it's also a breaking change on its own since we don't accept an explicit product name anymore (it does not look like it was used anyway).
2022-08-02 13:18:51 +00:00
Alex Rudenko
fae4fa5915 chore: publish a Docker image (#8702)
This PR adds publishing of a Docker image to ghcr.io.
2022-08-02 13:18:50 +00:00
Alex Rudenko
d2f6db2073 fix: use loaderId to reduce test flakiness (#8717) 2022-08-02 13:18:50 +00:00
dependabot[bot]
6b35128e3e chore(deps): bump github/codeql-action from 2.1.12 to 2.1.17 (#8709)
Bumps [github/codeql-action](https://github.com/github/codeql-action) from 2.1.12 to 2.1.17.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](27ea8f8fe5...0c670bbf04)

---
updated-dependencies:
- dependency-name: github/codeql-action
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-08-02 13:18:50 +00:00
Alex Rudenko
c064114636 chore: refactor init to make sure it works with paused targets (#8710) 2022-08-02 13:18:49 +00:00
Alex Rudenko
96d9608d1d fix: disable AcceptCHFrame (#8706)
Closes: #8479
2022-08-02 13:18:49 +00:00
dependabot[bot]
e237ba0f2e chore(deps): bump actions/setup-node from 3.3.0 to 3.4.1 (#8671)
Bumps [actions/setup-node](https://github.com/actions/setup-node) from 3.3.0 to 3.4.1.
- [Release notes](https://github.com/actions/setup-node/releases)
- [Commits](https://github.com/actions/setup-node/compare/v3.3.0...v3.4.1)

---
updated-dependencies:
- dependency-name: actions/setup-node
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-08-02 13:18:48 +00:00
Alex Rudenko
f52b37a3aa docs: fix a typo in waitForSelector (#8701) 2022-08-02 13:18:48 +00:00
dependabot[bot]
4ac252a25d chore(deps): bump ws from 8.8.0 to 8.8.1 (#8672)
Bumps [ws](https://github.com/websockets/ws) from 8.8.0 to 8.8.1.
- [Release notes](https://github.com/websockets/ws/releases)
- [Commits](https://github.com/websockets/ws/compare/8.8.0...8.8.1)

---
updated-dependencies:
- dependency-name: ws
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-08-02 13:18:48 +00:00
Alex Rudenko
9bd7d38579 chore: fix command name in tot-ci.yml (#8698) 2022-08-02 13:18:47 +00:00
Alex Rudenko
936ed8607e feat: add Dockerfile (#8315)
This PR adds an official Dockerfile for Puppeteer. The content of the Dockerfile is practically the same as documented in troubleshooting.md:

1) It installs chrome-stable and dependencies via apt-get.
2) it installs a local Puppeteer build into the docker user's home folder.
3) configures required permissions for the user.
4) outputs licenses into the THIRD_PARTY_NOTICES file.

The local Puppeteer build is created by `docker/pack.sh` which is meant to be used in CI. This PR also includes a GitHub action that would build a docker image and run a smote test inside of it.

The next step would be actually publishing the docker image from GitHub Actions to GitHub Registry.
2022-08-02 13:18:47 +00:00
Alex Rudenko
6f81b23728 fix: address flakiness in frame handling (#8688)
When we attach to a frame, we send a call to get
the page frame tree from CDP. Based on the tree data
we look up the parent frame if parentId is provided.
The problem is that the call to get the page frame
tree could take arbitrary time and the calls for the
parent and child frames might happen at the same time.
So the situation where the frame tree for the child frame
is resolved before the parent frame is known is fairly
common.

This PR addresses the issue by awaiting for the parent
frame id before attempting to register a child frame.
2022-08-02 13:18:47 +00:00
Alex Rudenko
2cbfdeb0ca feat: use CDP's auto-attach mechanism (#8520)
* feat: use CDP's auto-attach mechanism

In this PR, we refactor Puppeteer to make use of the CDP's auto-attach mechanism. This allows the backend to pause
new targets and give Puppeteer a chance to configure them properly. This fixes the flakiness related to dealing with
OOPIFs and should fix some other issues related to the network interception and navigations. If those are not fixed completely by this PR, the PR serves a solid base for fixing them.

Closes https://github.com/puppeteer/puppeteer/issues/8507, https://github.com/puppeteer/puppeteer/issues/7990
Unlocks https://github.com/puppeteer/puppeteer/issues/3667

BREAKING CHANGE: With Chromium, Puppeteer will now attach to page/iframe targets immediately to allow reliable configuration of targets.
2022-08-02 13:18:07 +00:00
release-please[bot]
a654607c74
chore(main): release 15.5.0 (#8683)
* chore(main): release 15.5.0

* chore: generate versioned docs

Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com>
2022-07-21 14:25:48 +00:00
Alex Rudenko
f1b8ad3269
feat(chromium): roll to Chromium 105.0.5173.0 (r1022525) (#8682) 2022-07-21 13:16:47 +00:00
release-please[bot]
a43965a4b6
chore(main): release 15.4.2 (#8681)
* chore(main): release 15.4.2

* chore: generate versioned docs

Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com>
2022-07-21 12:22:40 +00:00
Alex Rudenko
2abb9f0c14
fix: taking a screenshot with null viewport should be possible (#8680)
Closes #8673
2022-07-21 10:34:18 +02:00
Alex Rudenko
3d780a3f08
chore: fix ToT test jobs (#8679) 2022-07-21 10:12:23 +02:00
release-please[bot]
d734c14813
chore(main): release 15.4.1 (#8678)
* chore(main): release 15.4.1

* chore: generate versioned docs

Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com>
2022-07-21 09:35:51 +02:00
jrandolf
34ab5ca503
fix: import URL (#8670) 2022-07-21 08:20:51 +02:00
Alex Rudenko
c801ce1c7b
chore: try to fix the docusaurus build by giving Node more old mem space (#8675) 2022-07-20 11:18:02 +02:00
chakzefir
0180a882e2 docs: add gitlab-ci section to troubleshooting (#8664)
Adding explanatory section with detailed manual on how to launch puppeteer on GitlabCI
2022-07-20 10:15:14 +02:00
release-please[bot]
f0c28085c0
chore(main): release 15.4.0 (#8668)
* chore(main): release 15.4.0

* chore: generate versioned docs

Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com>
2022-07-13 15:52:23 +02:00
jrandolf
edcdf217ce
fix: ignore *.tsbuildinfo (#8662) 2022-07-13 15:16:39 +02:00
Alex Rudenko
af08c5c903
feat: expose the page getter on Frame (#8657)
* feat: expose the page getter on Frame

Closes #8654

* test: add a test
2022-07-11 21:06:35 +02:00
release-please[bot]
dd27559090
chore(main): release 15.3.2 (#8647)
* chore(main): release 15.3.2

* chore: generate versioned docs

Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com>
2022-07-08 09:58:30 +02:00
Asen Bozhilov
b47f066c2c
fix(page): fix page.#scrollIntoViewIfNeeded method (#8631)
This patch fixes page.#scrollIntoViewIfNeeded, so that it works with devtools protocol.
Now it blocks the main thread and waits until the scrolling action finishes in Chrome.
Fallbacks to the old implementation if `DOM.scrollIntoViewIfNeeded` is not supported for Firefox.

Issues: #8627, #1805
2022-07-08 06:53:45 +00:00
Alex Rudenko
1de0383abf
fix: cache dynamic imports (#8652) 2022-07-07 21:09:07 +02:00