Commit graph

3660 commits

Author SHA1 Message Date
Max Schmitt 299a55c562
chore(create-playwright): UX follow-ups (#8897) 2021-09-14 13:14:43 +02:00
Max Schmitt 87c2b4b200
chore(create-playwright): roll to 0.1.5 (#8889) 2021-09-13 22:48:19 +02:00
Max Schmitt 5eca7aa1d9
feat: add create-playwright package (#8841) 2021-09-13 22:05:38 +02:00
Yury Semikhatsky 210ad72228
fix: remove node-fetch dependency, use custom fetch implementation (#8486) 2021-08-26 16:18:54 -07:00
Dmitry Gozman 33852635b7
fix(fetch): skip tests on non-default modes, add node-fetch to deps list (#8425) 2021-08-24 19:41:29 -07:00
Dmitry Gozman 2ac0c59156
feat(test-runner): rename Test to TestCase (#7725) 2021-07-19 14:54:18 -07:00
Dmitry Gozman 167db03f05
feat(test-runner): export reporter api as @playwright/test/reporter (#7692) 2021-07-16 21:15:03 -07: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
Joel Einbinder 7629587914
fix(test-runner): work with .mjs files (#7373) 2021-06-29 15:28:41 -07:00
Joel Einbinder 0af1f4399d
fix(test-runner): fix default export breaking on installation tests (#7331) 2021-06-25 22:52:04 -07:00
Joel Einbinder 7caf05b24a
fix(playwright-test): have the proper default export (#7328)
There are 3 ways to import `@playwright/test` library in the modern Node.js ecosystem:
- Using `require`: works great, this patch doesn't change it
- Using `import` statement from `.mjs` file - we have wrong `default` for @playwright/test that should be a `test`. This is what test checks for
- Using `import test from '@playwright/test'` from `.ts` file - was broken because TypeScript thought it's a CJS module, whereas it's a ESM module in reality.

Also, typescript types import from `.d.ts` file was broken because we had no default export (`export *` syntax does not export default).
2021-06-25 15:29:22 -07:00
Pavel Feldman deec8a4adb
docs: make docs test-first (#7214) 2021-06-18 10:09:38 -07:00
Dmitry Gozman b625a04adc
types: move exported objects from index.d.ts to overrides.d.ts (#7152)
This way we generate these types right away, without duplicating them everywhere.
2021-06-15 15:06:18 -07:00
Andrey Lushnikov afa9d69b63
test: fix installation tests (#7069)
This was regressed by 3b1bae8a40
2021-06-11 13:56:41 +02:00
Andrey Lushnikov 55da16d8cd
Revert "feat: switch to the Firefox Stable equivalent by default (#6926)" (#6947)
This reverts commit a25b11659be8887b700311180fcd3653aa9e472b.

In a discussion with Dmitry Gozman we decided to revert this and instead
proceed with the following approach:
- rename `//browser_patches/firefox` to `//browser_patches/firefox-beta`
- rename `//browser_patches/firefox-stable` folder to
  `//browser_patches/firefox`

In all of the folders, we will keep the `BUILD_NUMBER` original so that
it doesn't clash on the CDN.
2021-06-07 15:55:01 -07:00
Andrey Lushnikov a1e8d2d531
feat: switch to the Firefox Stable equivalent by default (#6926)
This patch:
- starts downloading Firefox Stable equivalent by default
- starts running Firefox-Stable on our smoke tests (tests-1)
- starts running Firefox-Beta on our CQ1 tests (tests-2)

Note: there's a little confusion right now with browser names:
- `firefox-stable` - firefox-stable equivalent
- `firefox`- firefox-beta equivalent

I'll rename `firefox` to `firefox-beta` in a follow-up.

Fixes #6817
2021-06-07 15:00:23 -07:00
Dmitry Gozman f745bf1fbc
chore: bring in folio source (#6923)
- Source now lives at `src/test`.
- Former folio tests live at `tests/playwright-test`.
- We use `src/test/internal.ts` that exposes base test without
  Playwright fixtures for most tests (to avoid modifications for now).
- Test types live in `types/testFoo.d.ts`.
- Stable test runner is installed to `tests/config/test-runner` during `npm install`.
- All deps including test-only are now listed in `package.json`.
  Non-test deps must also be listed in `build_package.js` to get included.
2021-06-06 17:09:53 -07:00
Dmitry Gozman 3de3a88930
feat(test): introduce npx playwright test (#6816) 2021-06-03 08:07:55 -07:00
Dmitry Gozman 33c2f6c31e
chore: do not bundle api.json and protocol.yml (#6841)
These are only needed for the driver, so bundle them
in the driver explicitly.
2021-06-02 14:01:05 -07:00
Max Schmitt 79b244a2f4
chore: use bash instead of sh in code blocks (#6847) 2021-06-02 18:23:06 +02: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
Dmitry Gozman 24dca969b6
chore: remove electron/android from build_packages (#6827)
We do not update these packages anymore, and bundle the code in playwright.
2021-06-01 15:53:47 -07:00
Max Schmitt 9592486225
feat: use up2date Chromium user-agents for device descriptors (#6594) 2021-05-18 09:29:48 +02:00
Andrey Lushnikov eb7b4dea0d
tests: disable certain installation tests on Node v16 (#6544)
NPM7 that comes with Node v16 swallows output from installation
scripts, so certain tests don't work.
2021-05-12 13:11:59 -07:00
Max Schmitt e0aaef5eab
docs: get rid of dollar sign prefix in code snippets (#6494) 2021-05-11 20:47:48 +02:00
Max Schmitt a59a494e64
chore: drop support for Node.js 10 (#6371) 2021-04-30 07:49:10 -07:00
Max Schmitt 9cd89ae052
fix: host dependency validation (#6227) 2021-04-20 18:54:53 +02:00
Yury Semikhatsky e4ae6503d7
fix(inspector): fall back to custom executable path for UI (#6214) 2021-04-16 15:19:44 -07:00
Dmitry Gozman bd8433ba49
test: cleanup various testing env variables (#6155) 2021-04-09 07:59:09 -07:00
Joel Einbinder 779355ad51
feat(types): make the template on BrowserType optional (#6142)
This makes it much nicer to use `BrowserType` because it no longer has a template.

Technically a breaking change because of the rare edge case where someone used their own non-browser type inside the template, but I don't consider that intended behavior and think this is fine.
2021-04-08 10:27:24 -07:00
Pavel Feldman a7630c91d5
api: remove Chromium* classes (#6040) 2021-04-01 18:47:14 -07:00
Pavel Feldman 14ccc80cb3
fix(android): bundle android driver in all settings (#5883) 2021-03-22 14:25:40 -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
Yury Semikhatsky ddfdf8a76a
fix: install chromium along with ffmpeg (#5774) 2021-03-10 14:01:35 -08:00
Andrey Lushnikov f3a09210da
test: move installation tests out of playwright tree (#5573) 2021-02-23 19:17:15 -08:00
Dmitry Gozman 5cb914b2fe
fix(types): do not use import('electron') (#5572) 2021-02-23 18:48:34 -08:00
Dmitry Gozman ac1599cc2c
fix(registry): handle relative registry path (#5406)
We get relative registry path when PLAYWRIGHT_BROWSERS_PATH or HOME is relative.
In this case, it would be good to resolve to the same absolute path
during installation and execution, and we can usually do that using INIT_CWD.
2021-02-12 11:12:06 -08:00
Dmitry Gozman 3e7b8e3d74
test: add basic end-to-end driver test (#5426)
- Introduce internal "out of process" start()/stop() mode.
- This mode is used both in regular tests and installation tests.
- Emulate basic driver installation, browser download and running.
2021-02-12 09:05:32 -08:00
Andrey Lushnikov 2dfe1c75e1
fix: do not spam console when building playwright packages (#5436) 2021-02-12 00:41:33 -08:00
Dmitry Gozman 99f8e1cf63
docs: document Android and friends (#5415)
These are experimental, currently available through `_android`.
2021-02-11 10:31:57 -08:00
Andrey Lushnikov d499cf08d1
refactor: remove browserPaths in favor of Registry class (#5318)
This patch introduces a new Registry class that incapsulates
all logic regarding browsers and their paths.

Fixes #5278
2021-02-08 16:02:49 -08:00
Dmitry Gozman 983e04374a
chore: fix build/packaging for recorder and traceviewer (#5338) 2021-02-05 16:19:09 -08:00
Andrey Lushnikov cb1b64289c
devops: downloading ffmpeg during install step (#5249)
This patch starts downloading FFMPEG like we download our browsers
instead of bundling it in the NPM package.

With this patch, NPM size is reduced from 8.8MB to 1.7MB.

Consequences:
- `npx playwright` is drastically faster now
- playwright driver for language bindings is way smaller
- projects that bundle Playwright can pass Apple Notorization

Fixes #5193
2021-02-03 09:19:11 -08:00
Pavel Feldman 1db5ef24a8
docs: document electron api (#5229) 2021-02-01 11:43:26 -08:00
Dmitry Gozman 135e0344fc
feat(cli): small improvements (#4952)
- Allow specifying which browsers to install. This comes handy in playwright-cli.
- Print "npx playwright" as a tool name in help messages, instead of "cli".
2021-01-08 15:42:08 -08:00
Pavel Feldman 31ffeb32e3
doc: further align docs w/ playwright.dev (2) (#4871) 2021-01-04 13:50:29 -08:00
Dmitry Gozman 293a7bdd4c
feat(cli): bring in codegen and tests (#4815) 2020-12-28 14:50:12 -08:00
Dmitry Gozman 905f28c339
feat(types): simplify android and electron types (#4829)
These now follow the scheme for regular types.
2020-12-26 20:25:18 -08:00
Dmitry Gozman d40afa2fbf
feat(cli): first few cli commands (#4773)
This sets up cli capabilities and brings in a few commands from playwright-cli.
2020-12-22 14:54:13 -08:00
Pavel Feldman 2ba60e92e3
test(adb): add some adb tests (#4679) 2020-12-11 23:36:08 -08:00
Pavel Feldman 616df7d2f4
fix(adb): minor fixes (#4678) 2020-12-10 16:37:18 -08:00
Pavel Feldman 8fc49c98fa
feat(adb): support webviews (#4657) 2020-12-09 17:15:24 -08:00
Pavel Feldman aacd8e633c
chore: expose adb devices and actions (#4647) 2020-12-09 15:06:57 -08:00
Dmitry Gozman 1c39689dd6
api(videos): introduce a single recordVideo option bag (#4309)
api(videos): introduce a single recordVideo option bag

Currently contains `dir` and `size`, previously known as
`videosPath` and `videoSize`.
2020-11-02 19:42:05 -08:00
Andrey Lushnikov b4ad6e79a4
devops: playwwright-core installation should not touch browser registry (#4089)
Currently, `playwright-core` installation would check browser registry
and remove any unused browsers. This, however, might be unexpected
since `playwright-core` shouldn't touch browser registry at all.

Fixes #4083
2020-10-08 11:42:56 -07:00
Max Schmitt 318ab28171
chore: include api.json in NPM package (#4034) 2020-10-01 12:47:16 -07:00
Dmitry Gozman 4a77363af7
api: update videos api, hide tracing (#4015) 2020-10-01 11:06:19 -07:00
Pavel Feldman 7ccdc5176d
chore: include api.json into the Playwright package (#4003) 2020-09-29 13:48:24 -07:00
Dmitry Gozman df777344a3
api(video): simplify video api (#3924)
- This leaves just `recordVideos` and `videoSize` options on the context.
- Videos are saved to `artifactsPath`. We also save their ids to trace.
- `context.close()` waits for the processed videos.
2020-09-18 17:36:43 -07:00
Yury Semikhatsky 40323aa94d
fix(screencast): use viewport as default size (#3844) 2020-09-11 15:14:31 -07:00
Andrey Lushnikov 868740067b
refactor: consolidate ffmpeg-related files in third_party/ffmpeg (#3815)
This patch:
- moves ffmpeg binaries from `//bin/` to `//third_party/ffmpeg`
- adds [COPYING.GPLv3](https://github.com/FFmpeg/FFmpeg/blob/master/COPYING.GPLv3)
ffmpeg license
- changes npm packaging to include `//third_party/ffmpeg` only in `playwright` and `playwrihgt-chromium` a
2020-09-09 09:51:28 -07:00
Andrey Lushnikov 355ea73a0b
feat: actually bundle FFMPEG binaries with NPM packages (#3804)
This patch:
- adds FFMPEG binaries to the NPM packages
- adds a screencast test to make sure that screencast works. This currently relies on private screencast APIs.

NOTE: with this patch playwright package size grows from `650KB` to `4.2MB`.
2020-09-08 17:51:56 -07:00
Andrey Lushnikov 8b9be6bbbe
devops: fix publishing of @next packages to NPM (#3759)
This patch:
- stop relying on stdout from `//packages/build_package.js` to get
output paths. This was a legacy code that's not needed anymore
- remove stray output from `//packages/build_package.js`
2020-09-03 11:59:58 -07:00
Andrey Lushnikov 5364e3283f
devops: bake commit SHA inside npm package (#3754)
This bakes in `//commitinfo` file with the SHA of the commit that
produced given NPM package.

Fixes #3743
2020-09-03 10:29:43 -07:00
Max Schmitt 254238cdce
enh: bake browser revisions and api into driver (#3514) 2020-08-26 16:01:42 -07:00
Dmitry Gozman a099e941d6
chore: move last rpc files to their place (#3604)
Also update check-deps to be more user-friendly.
2020-08-24 14:48:03 -07:00
Dmitry Gozman 73e53b21df
chore: move injected and debug to src/server (#3591) 2020-08-23 20:25:59 -07:00
Dmitry Gozman 77f803140a
fix(electron): fix electron types, move source to src/server/electron (#3583) 2020-08-23 13:46:40 -07:00
Dmitry Gozman 6fe1cd9812
chore: move protocol files to src/protocol (#3571) 2020-08-21 18:46:11 -07:00
Max Schmitt f3c2584dfc
feat: added rpc driver (#3500) 2020-08-17 12:44:39 -07:00
Dmitry Gozman 3a6b5cab42
test: add sanity test for playwright-electron (#3387) 2020-08-12 14:45:22 -07:00
Joel Einbinder 77e75b447b
chore(test): move electron tests to typescript (#3379) 2020-08-10 23:04:38 -07:00
Dmitry Gozman 3179e71912
feat(rpc): in-process rpc on by default (#3104) 2020-08-10 14:18:58 -07:00
Yury Semikhatsky cbfdca736c
feat(launcher): check dependencies before launch on Windows (#3240) 2020-07-30 17:15:46 -07:00
Max Schmitt d27f97edb1
devops: include protocol and api.md in NPM package (#3195)
The reason for this change is that in Playwright Python we would need the related `protocol.yml` and `api.md` for the installed NPM package. For that we could either add the Git hash to the released package e.g. as a file (and go over the GitHub repo to get the file content) but Pavel proposed that it might be better to include the two files in the NPM package.

Tested locally by adding to the `utils/publish_all_packages.sh` script `--dry` to the NPM publish commands.

cc @aslushnikov @pavelfeldman 

Related issues: https://github.com/microsoft/playwright-python/pull/101 and https://github.com/microsoft/playwright-python/pull/96
2020-07-28 13:30:36 -07:00
Dmitry Gozman fd2e65b73c
api: export all browsers from every package (#3128)
This makes it easier to reason about our packages.
The only difference is what each package downloads.
When the browser is not downloaded, it will fail to launch.

Each browser gets a 'download' attribute in the browser.json file.
2020-07-24 16:36:00 -07:00
Dmitry Gozman 6a4195fd1d
fix(require): allow requiring internals (#3153) 2020-07-24 14:21:25 -07:00
Dmitry Gozman d234dac752
chore: support esm imports (#3125) 2020-07-23 15:14:36 -07:00
Andrey Lushnikov 8fbd647099
fix(playwright-core): bring back index.js in playwright-core (#2691)
References #2540
2020-06-24 13:54:19 -07:00
Andrey Lushnikov 2511cb4c56
devops: drop playwright-electron dependency on playwright-core (#2634)
Drive-by: bump playwright-electron version to 0.4.0; i'll publish it
after this PR lands.
2020-06-18 17:11:10 -07:00
Luke Chu 456c865fe8
docs(playwright-electron/README.md): fix comment mistake (#2568) 2020-06-13 23:10:34 -07:00
Andrey Lushnikov 37ec3a6ae6
fix(types): properly export typescript types from packages (#2364)
Drive-by: move package tests from `//test/installation-tests` to
`//packages/installation-tests`

Fix #2349
2020-05-26 17:19:05 -07:00
Andrey Lushnikov 505d94ab1a
chore: drop dependency on playwright-core in all our packages (#2318)
This patch:
- drops dependency on playwright-core in all our packages. Instead of
  the dependency, packages are now built with `//packages/build_package.sh`
  script.
- unifies `browsers.json` - now there's a single `//browsers.json` file
  that is used to manage browser revisions.

This patch temporary switches canary publishing to `--dryn-run` from CI/CD so that we
can verify that it does sane things.

We'll unify all our package management scripts under `//packages/` in a
follow-up.

Fixes #2268
2020-05-21 13:18:15 -07:00
Yury Semikhatsky 9154f4b6e0
feat(webktt): explicitly enable Playwright domain on start (#2315) 2020-05-21 08:44:57 -07:00
Yury Semikhatsky a010fcd620
feat(webkit): bump revision to 1238 (#2299) 2020-05-19 10:37:01 -07:00
Yury Semikhatsky 74ba03b195
feat(webkit): bump revision to 1235 (#2262) 2020-05-15 17:36:40 -07:00
Joel Einbinder 04aae1c063
chore(electron): mark version 0.3.0 (#2255) 2020-05-14 23:13:06 -07:00
Pavel Feldman 919659a66b
browser(webkit): roll to r1230 (#2241) 2020-05-14 10:41:52 -07:00
Pavel Feldman 17286ab712
feat(webkit): roll to r1228 (#2232) 2020-05-14 07:57:29 -07:00
Joel Einbinder dbef7de42a
feat(electron): types (#2231) 2020-05-13 20:51:53 -07:00
Pavel Feldman 8b5e4398b1 docs: update electron docs 2020-05-12 15:57:53 -07:00
Pavel Feldman 414ae0025e
fix(electron): handle in-event await errors (#2207) 2020-05-12 15:28:37 -07:00
Dmitry Gozman 28845e5ccc
feat(firefox): bump and use context setters (#2194) 2020-05-12 15:13:48 -07:00
Pavel 54b056bddb chore: make electron permanently depend on playwright-core@next 2020-05-12 09:20:55 -07:00
Pavel Feldman 3f8dfed67f
feat(electron): add app.firstWindow convenience method (#2195) 2020-05-12 08:43:41 -07:00
Pavel Feldman e447e9aa54 docs: update README.md for playwright-electorn 2020-05-11 18:56:05 -07:00
Pavel Feldman ffe7084652
feat(electron): experimental electron support (#2166) 2020-05-11 18:00:33 -07:00
Pavel Feldman b88c1a877e
feat(chromium): roll to r767256 (#2183) 2020-05-11 10:46:31 -07:00
Joel Einbinder 83aff38cea
feat(webkit): roll to 1124 (#2156) 2020-05-08 10:02:49 -07:00
Pavel Feldman 9885ba20c7
feat(firefox): roll to r1093 - 77.0b3 (#2152) 2020-05-07 22:49:49 -07:00
Tobias Hernstig d39ec35cd7
chore: Add "homepage" to package.json (#2127) 2020-05-07 12:31:59 -07:00
Andrey Lushnikov 7a01bb1f33
chore: bump package.json version to v1.0.0-post (#2128) 2020-05-06 12:13:23 -07:00
Pavel Feldman 41de5bc388 Revert "chore: mark v0.18.0 (#2122)"
(should go only into branch)
This reverts commit 19e8c327ba.
2020-05-05 16:55:55 -07:00
Pavel Feldman 19e8c327ba
chore: mark v0.18.0 (#2122) 2020-05-05 16:52:54 -07:00
Pavel Feldman da903cb5bb chore: cut v0.18.0-post version 2020-05-05 15:07:44 -07:00
Pavel Feldman b56ba083db
feat(webkit): roll webkit to r1219 (#2119) 2020-05-05 12:26:49 -07:00
Andrey Lushnikov 0bb1ba177c
feat(firefox): roll to r1089 (#2106) 2020-05-04 19:58:47 -07:00
Pavel Feldman 932d6ba6df
feat(chromium): roll to 764964 (Canary) (#2098) 2020-05-04 14:25:11 -07:00
Andrey Lushnikov 6eabb95b49
chore: cut v0.17.0-post (#2095) 2020-05-04 12:15:20 -07:00
Pavel Feldman 08d713973e
test: add third party cookies test (#2073) 2020-05-04 09:14:42 -07:00
Andrey Lushnikov 28bbd93f40
chore: cut v0.16.0 (#2065) 2020-04-30 17:41:03 -07:00
Pavel Feldman c55db6d315
browser(webkit): roll webkit to 1213 (#2045) 2020-04-29 18:40:18 -07:00
Yury Semikhatsky 78b44ed2a0
fix: report new window downloads (#2019) 2020-04-29 18:36:24 -07:00
Pavel Feldman 0228ba4992
feat(registry): implement download registry (#1979) 2020-04-29 17:19:21 -07:00
Pavel Feldman 6c94f604d8
feat(chromium): roll to r763809 (#2028) 2020-04-29 08:44:09 -07:00
Pavel Feldman 2cdf297245
chore: remove uncompiled download-browser (#2018) 2020-04-28 17:06:01 -07:00
Pavel Feldman d52bd92983
chore: read browser revisions off browsers.json (#2009) 2020-04-28 10:37:23 -07:00
Pavel df7338c2ce Revert "chore: cut v1.0.0-post (#1966)"
This reverts commit 7afceeb5a6.
2020-04-27 10:05:11 -07:00
Pavel Feldman b60c006c63
chore: simplify and restructure downloads (#1974) 2020-04-24 19:14:10 -07:00
Andrey Lushnikov 7afceeb5a6
chore: cut v1.0.0-post (#1966) 2020-04-24 15:02:25 -07:00
Andrey Lushnikov 5146dfc74b
chore: cut v0.15.0 (#1957) 2020-04-23 20:26:18 -07:00
Andrey Lushnikov a147d3f99b
chore: sync versions across packages (#1929) 2020-04-22 17:43:13 -07:00
Andrey Lushnikov 9efc66366c
chore: generate README.md for playwright package on prepublish (#1801)
This will ensure that `playwright` package always has a readme.

Fix #1798
2020-04-15 11:29:59 -07:00
Andrey Lushnikov b385ea8415
chore: bump version to v0.13.0-post (#1721) 2020-04-08 17:30:45 -07:00
Andrey Lushnikov 17e645ad34
chore: mark version v0.13.0 (#1720) 2020-04-08 16:53:44 -07:00
Andrey Lushnikov dc7d221722
chore: bump version to v0.12.1-post (#1516) 2020-03-24 12:08:02 -07:00
Andrey Lushnikov a7ca2fef09
chore: mark version v0.12.1 (#1515) 2020-03-24 11:28:07 -07:00
Andrey Lushnikov ed746d9cbd
fix: fix all packages installation (#1514)
This would require a v0.12.1 release.
2020-03-24 11:19:24 -07:00
Dmitry Gozman ed6e0d5513
chore: bump version to v0.12.0-post (#1512) 2020-03-24 10:46:35 -07:00
Dmitry Gozman 08b94ee67b
chore: mark version v0.12.0 (#1497) 2020-03-24 10:40:02 -07:00
Andrey Lushnikov b778789ba8
feat: re-make global browser installation (#1506)
This patch removes the `PLAYWRIGHT_GLOBAL_INSTALL=1` variable
and instead introduces a new var - `PLAYWRIGHT_BROWSERS_PATH`.

You can specify `PLAYWRIGHT_BROWSERS_PATH` to affect where playwright
installs browsers and where it looks for browsers.

Fixes #1102
2020-03-24 00:08:00 -07:00
Andrey Lushnikov a74e23a257
feat: support PLAYWRIGHT_GLOBAL_INSTALL=1 env variable (#1470)
You can install playwright with

```
PLAYWRIGHT_GLOBAL_INSTALL=1 npm i playwright
```

to make it use a single shared location for all browser
downloads.

Fixes #1102
2020-03-23 12:49:53 -07:00
Joel Einbinder 825555cddf
types: better types (#1166)
This generates typescript definitions based on the api.md, instead of autogenerating them from the typescript source code.

Now types
 - only include the public api
 - work with older versions of typescript
 - include descriptions
 - are more consistent
 - are more complete

#6
2020-03-20 01:30:35 -07:00
Andrey Lushnikov f5ecbff16e
devops: remake downloading logic (#1419)
This patch:
- removes `browserType.downloadBrowserIfNeeded()` method. The method
  turned out to be ill-behaving and cannot not be used as we'd like to (see #1085)
- adds a `browserType.setExecutablePath` method to set a browser
  exectuable.

With this patch, we take the following approach towards managing browser downloads:
- `playwright-core` doesn't download any browsers. In `playwright-core`, `playwright.chromium.executablePath()` returns `null` (same for firefox and webkit).
- clients of `playwright-core` (e.g. `playwright` and others) download browsers one way or another.
They can then configure `playwright` with executable paths and re-export the `playwright` object to their clients.
- `playwright`, `playwright-firefox`, `playwright-chromium` and `playwright-webkit` download 
browsers. Once browsers are downloaded, their executable paths are saved to a `.downloaded-browsers.json` file. This file is read in `playwright/index.js` to configure browser executable paths and re-export the API.
- special case is `install-from-github.js` that also cleans up old browsers.
2020-03-19 11:43:35 -07:00
Andrey Lushnikov 08fbc92752
feat: support PLAYWRIGHT_DOWNLOAD_HOST (#1179)
This patch starts respecting `PLAYWRIGHT_DOWNLOAD_HOST` env variable
in `playwright` package and it's vendored flavors (`playwright-firefox`,
`playwright-chromium` and `playwright-webkit`).

Fixes #1045
2020-03-02 13:45:10 -08:00
Andrey Lushnikov d5951b4fc4
fix: properly download browsers (#1173)
Playwright API is parametrized with a `downloadPath` - a path that
is used to download browsers and to look for downloaded browsers.

This patch starts respecting `downloadPath` as part of
`download-browser.js` utility.
2020-03-02 11:49:42 -08:00
Andrey Lushnikov 4ebf419259
fix(yarn): download browsers to package directories (#1133)
This patch makes it so all our packages, like `playwright` and
browser-specific flavors, download browsers to their
directories rather then using directory of `playwright-core`.

This way yarn@1 caches are not busted: they didn't expect that directory
content might change after packages's explicit install step
is failed, there's that was what we were doing.

Fixes #1085
2020-02-26 15:13:31 -08:00
Joel Einbinder 8cfdeb99bd
chore: mark v0.11.1-post (#1027) 2020-02-14 19:23:50 -08:00
Joel Einbinder 2037e01b06
chore: mark v0.11.1 (#1025) 2020-02-14 19:13:08 -08:00
Andrey Lushnikov 39c580a9b1
chore: bump version to 0.11.0-post (#1001) 2020-02-13 19:10:03 -08:00
Andrey Lushnikov cea036ab7e
feat: change vendor package exports (#818)
* feat: change vendor package exports

This patch changes top-level exports for the vendor-specific
packages:
- `playwright-chromium`: now exports an object with a single `chromium`
field
- `playwright-wekbit`: now exports an object with a single `webkit`
- `playwright-firefox`: now exports an object with a single `firefox`

Fixes #814

* fix typo

* address comments
2020-02-03 14:24:03 -08:00
Andrey Lushnikov fce3842011
chore: bump version to 0.10.0-post (#796) 2020-01-31 18:46:34 -08:00
Andrey Lushnikov 6a97216fff
chore: mark version 0.10.0 (#795) 2020-01-31 18:40:44 -08:00
Damian Senn ff302354bb chore: fix package typo in packages README (#707) 2020-01-28 07:52:42 -08:00
Andrey Lushnikov bd726ee499 chore: bump version to v0.9.24-post 2020-01-27 17:26:23 -08:00
Andrey Lushnikov 3e40b4e9d3 chore: mark version 0.9.24 2020-01-27 17:23:53 -08:00
Andrey Lushnikov ee9c2b0c41 chore: bump version to v0.9.23-post 2020-01-27 14:08:14 -08:00
Andrey Lushnikov 03e2754dce chore: mark version 0.9.23 2020-01-27 13:47:02 -08:00
Andrey Lushnikov d7beaa7068
chore: bump version to 0.9.22-post (#684) 2020-01-27 13:31:43 -08:00
Andrey Lushnikov 0a7005e6e9
chore: mark version v0.9.22 (#682) 2020-01-27 13:28:23 -08:00
Jon Perl 63d5a7347d fix(types): export playwright-core types from playwright (#628)
Resolves #627
2020-01-24 17:12:01 -08:00
Joel Einbinder 7e8bce7911 chore: bump version to v0.9.21-post 2020-01-22 20:35:01 -08:00
Joel Einbinder 372a88fa30 chore: mark version v0.9.21 2020-01-22 20:32:32 -08:00
Joel Einbinder ef2286cbb5
chore: mark version v0.9.20 (#578) 2020-01-22 20:29:22 -08:00
Andrey Lushnikov 5c5faf35a9 chore: bump version to 0.9.19-post 2020-01-21 18:38:39 -08:00
Andrey Lushnikov 11abcee1d8 chore: mark version v0.9.19 2020-01-21 18:35:14 -08:00
Andrey Lushnikov de77fcca8a chore: bump version to 0.9.18-post 2020-01-21 17:41:45 -08:00
Joel Einbinder fd4a1906d7 chore: mark version 0.9.18 (#554) 2020-01-21 17:29:33 -08:00
Joel Einbinder 4573cd3fec chore(packages): copy readme from root folder into packages/playwright (#552) 2020-01-21 17:24:47 -08:00
Joel Einbinder fa1d286d56
chore: npm packages (#525)
## playwright-chromium
- installs chromium
- exposes chromium api from playwright-core

## playwright-firefox
- installs firefox
- exposes firefox api from playwright-core

## playwright-webkit
- installs webkit
- exposes webkit api from playwright-core

## playwright-core
- downloads no browsers
- contains all of the js code
- designed for internal use

## playwright
- downloads all browsers
- exposes the entire api from playwright-core

## github
- downloads all browsers, generates protocol definitions, builds typescript
- exposes "playwright-core" api
2020-01-21 12:22:17 -08:00