Commit graph

106 commits

Author SHA1 Message Date
Max Schmitt 4e8e75beb1
chore: ensure assertions result in a message (#7981) 2021-08-04 08:26:07 -07:00
Thomas Chaplin 9d7a0ec2d9
fix(dependencies): add missing package libxshmfence1 to ubuntu:20.04 (#7796) 2021-07-26 10:50:51 +02:00
Max Schmitt 449c8a77dd
chore: disable source-map reference in JS for production builds (#7622) 2021-07-22 20:29:36 +02:00
Andrey Lushnikov b2c5bfb72c
chore: nicer message to install dependencies (#7715)
If we know how to install all dependencies, then we should recommend
a Playwright CLI one-liner to install dependencies.

References #7682
2021-07-19 03:54:42 -07:00
Andrey Lushnikov 3c6b058e2b
chore: nicer message to ask for browser installation (#7691)
References #7682
2021-07-16 17:00:27 -07:00
Andrey Lushnikov 865aff8c9d
feat: support msedge-dev installation (#7679)
Fixes #7677
2021-07-16 09:56:51 -07:00
Joel Einbinder 7e95ee07ae
fix(utils): fix the list dependnecies script (#7649) 2021-07-15 10:27:16 -07:00
Pavel Feldman 67f5fb6a4f
fix(webkit): add libevdev dep (#7630) 2021-07-14 20:20:03 -07:00
Dmitry Gozman 0742cb9076
chore: move working with browser channels to Registry Executables (#7581) 2021-07-13 19:03:49 -07:00
Dmitry Gozman 57c5e4d8cf
chore: replace Registry api with Executable list (#7544) 2021-07-13 15:57:40 -07:00
Dmitry Gozman 65606c093a
chore: simplify Registry api (#7451) 2021-07-09 16:10:23 -07:00
Max Schmitt 08da9d207e
chore: move processLauncher into src/utils (#7504) 2021-07-07 21:14:16 +02:00
Dmitry Gozman 47885db116
chore: move install to Registry (#7433)
This is an effort to consolidate all handling of browser binaries in a single place.
2021-07-06 20:59:16 -07:00
Max Schmitt 371aa3dab2
feat: add browser.newContext({ baseUrl }) (#7409) 2021-07-06 21:16:37 +02:00
Pavel Feldman f52a53e21e
feat(trace-viewer): add nicer params rendering (#7448) 2021-07-02 16:45:09 -07:00
Dmitry Gozman 4c7343fe96
chore: move installDeps to Registry (#7431)
This is an effort to consolidate all handling of browser binaries in a single place.
2021-07-01 17:14:04 -07:00
Dmitry Gozman d46eae44d1
chore: move validateHostRequirements to Registry (#7428)
This is an effort to consolidate all handling of browser binaries in a single place.
2021-07-01 16:17:59 -07:00
Dmitry Gozman 3ce1f5c33e
chore: avoid execSync when determining hostPlatform (#7386) 2021-06-29 13:39:30 -07:00
Pavel Feldman a8d48a1a48
chore: remove hard-coded wrapApi names (#7347) 2021-06-28 13:27:38 -07:00
Dmitry Gozman 4c6fa42810
fix(test runner): expose real stack traces and speed up locations (#7265)
Stop wrapping/prepending error messages so that we do not loose the stack trace. For this, update a few manually thrown errors with better messages (usually including a file path).

Speed up locations by doing manual `sourceMapSupport.wrapCallSite()` for a single call site. Performance gain in the runner process with 100 files x 100 tests each:
- 25% on the fresh run without babel cache;
- 80% on the cached run where babel is almost instant.

Also some obvious cleanups around stack traces (removing unused code).
2021-06-23 10:30:54 -07:00
Max Schmitt 103f8ddd06
Revert "chore: update eslint config (#6840)" partly (#7268)
This reverts commit ec7d37d92f.
2021-06-23 11:08:35 +02:00
Dmitry Gozman 388c6f5196
feature(test runner): capture error and pending calls when timing out (#7193) 2021-06-17 15:09:38 -07:00
Andrey Lushnikov a3e4185b2f
chore: nuke 'webkit-technology-preview' experiment (#7164)
It proved to be unmaintainable due to the following reasons:
- determining upstream branch for the technology preview was a manual
and tedious process
- once determined, actual Safari Technology Preview occasionally
diverted from the branch
2021-06-15 23:58:30 -07:00
Andrey Lushnikov ec68b31dc4
feat: support chromium-with-symbols channel (#7135)
References #7130
2021-06-15 17:57:31 -07:00
Andrey Lushnikov 3c7d2aae6a
fix: add best-effort support for MacOS beta versions (#7003)
Similarly to how we provide best-effort support for non-LTS ubuntu
versions, this patch adds support for beta versions of MacOS releases.
2021-06-09 14:58:20 -07:00
Andrey Lushnikov 53d68bdb38
feat: firefox is stable by default (#6953)
This patch:
- rolls Firefox to v1269 which is now a firefox-stable build.
- introduces a new channel, `firefox-beta`, for our internal needs.

Fixes #6817
2021-06-08 09:34:17 -07:00
Andrey Lushnikov cfd49b5c01
feat: support npx playwright install msedge (#6861) 2021-06-07 00:23:22 -07:00
Dmitry Gozman 69b734629c
fix: various test-related fixes (#6916)
- Closing inspector window resumes the script.
- Replace FOLIO_WORKER_INDEX with TEST_WORKER_INDEX.
- Account for `@playwright/test` stack traces.
2021-06-04 18:43:54 -07:00
Max Schmitt 064150f8dd
chore: use fs.promises API instead of promisify (#6871) 2021-06-03 18:55:33 +02:00
Karan Shah 254ec155eb
feat(user-agent): Adding User-Agent in headers while making connection to browser (#6813) 2021-06-02 11:36:58 -07:00
Andrey Lushnikov cb4adb1446
feat: install chrome-beta via cli (#6831)
This patch starts introduces `npx playwright install chrome-beta`
command and switches our Chrome Beta tests to it.
2021-06-01 18:26:12 -07:00
Andrey Lushnikov 3aa1471489
chore: better logging for Windows CrashPad problem (#6758)
References #6123
2021-05-26 10:49:38 -07:00
Max Schmitt 1778e117f7
fix(port-forwarding): on WebKit Win (#6745) 2021-05-26 16:51:55 +02:00
Max Schmitt 3f43db5cc4
feat(browserServer): forward local ports (#6375) 2021-05-25 17:11:32 +02:00
Andrey Lushnikov 33a505b1e5
chore: add logging for installation steps (#6565)
This patch:
- adds debug logging
- sets up our workflows to use `DEBUG=pw:install` on CI
2021-05-18 17:38:02 -07:00
Joel Einbinder 9b0aeeffae
fix(install-deps): install deps on mint (#6569) 2021-05-13 20:13:11 -07:00
Pavel Feldman 434f474ce8
chore(evaluate): implement non-stalling evaluate (#6354) 2021-04-29 09:28:19 -07:00
Yury Semikhatsky 5be005b1c6
Revert "fix: increas recent logs buffer (#6330)" (#6332)
This reverts commit 3c126024ca.
2021-04-26 16:20:49 -07:00
Yury Semikhatsky 3c126024ca
fix: increas recent logs buffer (#6330) 2021-04-26 13:58:52 -07:00
Dmitry Gozman ad731c1535
feat(debug): PWDEBUG=console vs PWDEBUG=inspector (#6213)
This supports `PWDEBUG=console` that:
- runs headed;
- disables timeouts;
- adds `playwright` console helper.

When using `PWDEBUG=anything-but-console`, we open inspector.
Docs keep suggesting `PWDEBUG=1`.
2021-04-20 15:58:34 -07:00
Max Schmitt 9cd89ae052
fix: host dependency validation (#6227) 2021-04-20 18:54:53 +02:00
Andrey Lushnikov 23dfaf9e9b
feat: start downloading firefox-stable channel (#6177)
This patch adds support for downloading and running Playwright with
firefox-stable channel.

References #5993
2021-04-19 21:26:33 -07:00
Max Schmitt 8ca58e344e
fix(page): add name property to pageerror event (#5970) 2021-04-19 22:37:38 +02:00
Max Schmitt 7ec57c0c18
chore: read browsers.json with require (#6186)
This fixes the compatibility on Vercel with Next.js when it's used in
a serverless function.
Next.js uses https://github.com/vercel/nft to trace down the
dependencies which a serverless function is using which
is currently not capable of detecting the browsers.json in our current
setup. Previously we used require to load the browers.json which was
replaced by readFileSync in #5318. Since then it was broken.

Fixes #5862
2021-04-19 22:06:04 +02:00
Dmitry Gozman 5afe282fbb
test: move remaining files from old test/ directory (#6081) 2021-04-05 15:51:45 -07:00
Andrey Lushnikov da1dafcadb
fix: start downloading firefox build for ubuntu 20.04 (#6064)
Custom firefox build for Ubuntu 20.04 fixes WebGL on headful.
2021-04-02 22:08:04 -07:00
Andrey Lushnikov f472c96129
feat: support webkit technology preview (#5885)
This patch adds support for `technology preview` webkit channel, which
we will keep close to the actual Safari Technology Preview releases.

This channel does not install by default. It is supposed to be installed
with the following CLI command:

```sh
$ npx playwright install webkit-technology-preview
```

Once the channel is installed, it can be used the following way:

```js
const browser = await playwright.webkit.launch({
  channel: 'technology-preview',
});
```

**NOTE:** if clients attempt using the channel without installing it,
it'll throw an error with a copyable instructions to install via CLI.

References #5884
2021-03-31 11:32:10 -07:00
Andrey Lushnikov ec6453d1b2
fix: installer compilation (#5908)
For some reason typescript can't find electron types when using
nested tsconfig - workaround the bug.

Drive-by: surface installer compilation problems.
2021-03-22 17:39:03 -07:00
Andrey Lushnikov 2064d27dc6
fix(installer): retain browsers installed via Playwrigth CLI (#5904)
Browser registry is responsible for 3 things:
1. Remove downloaded browsers if there are no packages that refer to them
2. Install default browsers needed for the current package
3. Install browsers on-demand when used through Playwright CLI

Currently, registry relies on a single "download" field in `browsers.json`
to carry both (1) and (2). However, browsers in (3) are marked as
`download: false` so that they aren't installed automatically in (2), so
auto-remove procedure in (1) removes them on subsequent installation.

One possible approach to fix this would be modifying package's `browsers.json` to
change `download: false` to `true` when browsers are installed with
Playwright CLI. This approach was explored here:
bc04a51800

We decided against this since we have a history of issues related to
package modifications after NPM installation. This breaks all
sorts of yarn/npm caching mechanisms.

Instead, this patch is a two-step refactor:
- remove the "download" field in `browsers.json`. Now, all registries
(including old ones from previously-released versions) will retain any
browsers that are mentioned in the `browsers.json`.
- add a new flag "installByDefault", that is **only used** for default
installation.

With this change, the registry tasks are done like this:
- (1) auto-removal: if browser has a back reference, it is retained,
otherwise it is removed from registry
- (2) default installation: use only `installByDefault` to carry default installations
- (3) CLI installation: simply installs browsers. Since we retain
everythings that's referenced in (1), browsers aren't removed.

Fixes #5902
2021-03-22 11:43:29 -07:00
Andrey Lushnikov 9a50304dc1
fix: work-around electron's broken event loop (#5867)
Since `setImmediate` doesn't create a new task in Electron,
we have to fallback to `setTimeout` instead.

See https://github.com/electron/electron/issues/28261 for details.

Fixes #5228
2021-03-18 09:29:37 -07:00