Commit Graph

24 Commits

Author SHA1 Message Date
Max Schmitt
f3c2584dfc
feat: added rpc driver (#3500) 2020-08-17 12:44:39 -07:00
Pavel Feldman
262e886940
test: organize golden files under __snapshots__ folder (#3494) 2020-08-16 19:19:52 -07:00
Pavel Feldman
b5f9985d3a
devops: make headful a matrix, collect test results (#3027) 2020-07-18 10:50:58 -07:00
Dmitry Gozman
5c4751d5dd
chore: generate protocol during browser roll (#2719)
We now commit protocol.ts files during the roll.
New utils/roll_browser.js helps with that.

This makes our installation very shallow:
- build installer;
- download browsers.
2020-07-01 15:22:29 -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
Pavel Feldman
b60c006c63
chore: simplify and restructure downloads (#1974) 2020-04-24 19:14:10 -07:00
Andrey Lushnikov
193582445d
devops: add package-lock.json (#1859) (#1889)
We need to commit `package-lock.json` to repository to ensure
reproducible builds.

This also starts using [`npm ci`](https://docs.npmjs.com/cli/ci.html) to
install dependencies.

Drive-by: remove non-functioning `rebase` workflow.
2020-04-20 16:57:01 -07:00
Pavel Feldman
92b6bc0eb9 Revert "devops: add package-lock.json (#1859)"
This reverts commit 75f35e48a8.

It is unclear how to add/remove dependencies now.
2020-04-18 22:27:25 -07:00
Andrey Lushnikov
75f35e48a8
devops: add package-lock.json (#1859)
We need to commit `package-lock.json` to repository to ensure
reproducible builds.

This also starts using [`npm ci`](https://docs.npmjs.com/cli/ci.html) to
install dependencies.

Drive-by: remove non-functioning `rebase` workflow.
2020-04-18 22:14:06 -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
Max Schmitt
93954fe919
chore: fix .local-browsers path into .gitignore (#1464) 2020-03-21 21:53:32 -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
Dmitry Gozman
b388722777
chore: update top-level api (#479)
```
require('playwright').chromium.launch(...)
window.playwrightweb.chromium.connect(...)
```
2020-01-13 17:36:46 -08:00
Dmitry Gozman
c77fd5e6cb
feat(pw-web): generate playwright/web.js which can be used in the browser (#455) 2020-01-10 16:03:10 -08:00
Dmitry Gozman
f38ab5d80f chore: reuse BrowserFetcher between browsers (#177) 2019-12-08 13:29:03 -08:00
Joel Einbinder
57313e3f73
feat: basic d.ts file (#161)
`protocol.d.ts` had to move to `protocol.ts` otherwise typescript refuses to include it in the out directory.

Removed the old d.ts generator. It will need to be rewritten anyway.

These new types include private stuff that they probably shouldn't, and are missing documentation. I'll follow up with a better d.ts generator later.

#6
2019-12-06 11:28:23 -08:00
Dmitry Gozman
0a9377e0a9 chore: prepare to npm publish (#148)
- setup .npmignore;
- index.js selecting a browser;
- minor package.json tweaks;
- example script which works against npm pack'ed module.
2019-12-05 11:29:16 -08:00
Joel Einbinder
492f539310
chore(firefox): lint against the juggler protocol (#94) 2019-12-04 10:33:29 -08:00
Dmitry Gozman
e124d44a55 chore: rework wait task to accept arbitrary task on dom world (#126) 2019-12-03 11:51:41 -07:00
Dmitry Gozman
a9cd015fdb
feat(engines): introduce a css selector engine and a way to query it (#50) 2019-11-22 15:36:17 -08:00
Dmitry Gozman
57bbd81824
chore: introduce injected source lazily evaluated by execution context (#42) 2019-11-21 14:43:30 -08:00
Pavel Feldman
9ba375c063 Initial commit 2019-11-19 10:58:15 -08:00
microsoft-github-operations[bot]
3261ad7436
Initial commit 2019-11-15 18:32:44 +00:00