45 Commits
Author SHA1 Message Date
Yury SemikhatskyandGitHub 4859f65c1d fix(yauzl): use upstream yauzl 3.3.2 instead of vendored copy (#41102) 2026-06-02 10:44:24 -07:00
Pavel FeldmanandGitHub 25f22d2125 chore: wk_webview experiment (#41010) 2026-05-26 14:52:32 -07:00
Pavel FeldmanandGitHub c17e0b45c1 fix(yauzl): vendor yauzl with destroy-lifecycle fix (#40747) 2026-05-08 20:02:58 -07:00
Dmitry GozmanandGitHub a0394b002c chore(deps): drop node-stream-zip and stoppable (#40398) 2026-04-24 17:44:11 +01:00
LukeAbbyandGitHub 8914db58ad fix: address TypeScript 6.0 deprecations (#38558) 2025-12-16 16:39:31 -08:00
Pavel FeldmanandGitHub cb6ab4f1b2 chore: type server-side events (1) (#38549) 2025-12-13 15:48:48 -08:00
Dmitry GozmanandGitHub a96c8700a2 chore: roll chromium to 1200, update for CfT paths (#38128) 2025-11-07 15:50:55 +00:00
Max SchmittandGitHub ad0581fafb feat(firefox): roll to r1477 (#35069) 2025-03-06 13:17:52 +01:00
Andrey LushnikovandGitHub cd92451b9f fix: protocol generation in monorepo (#9513) 2021-10-14 11:14:50 -07:00
Joel EinbinderandGitHub c89d5a50dd chore: migrate to monorepo (#9421) 2021-10-11 16:52:17 +02:00
Joel EinbinderandGitHub 1a6d46d844 chore(typescript): compile with babel, lint everything with tsc (#6872) 2021-06-23 18:01:48 -07:00
Dmitry GozmanandGitHub 38fadcaded fix(chromium): use frameDetached reason (#4468)
This fixes the local -> remote frame swap when
Page.frameDetached arrives before Target.attachedToTarget.

Instead of error-prone logic we do currently, new CDP exposes
frame detach reason that we can use.
2020-11-17 10:24:13 -08:00
Yury SemikhatskyandGitHub a2a96198e6 fix(devops): fix firefox protocol.ts location (#3630) 2020-08-25 16:23:43 -07:00
Dmitry GozmanandGitHub 6a53b205e5 chore: move webkit to src/server/webkit (#3589) 2020-08-23 15:39:03 -07:00
Dmitry GozmanandGitHub f4e8f34c96 chore: move chromium to src/server/chromium, enfore installer deps (#3582) 2020-08-22 15:46:42 -07:00
Dmitry GozmanandGitHub 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
Pavel FeldmanandGitHub 4ac30f354a feat(webkit): roll WebKit to 1246 (#2400) 2020-05-28 22:35:01 -07:00
Andrey LushnikovandGitHub 43eed027bd chore: rename root index-for-dev.js into index.js (#2337) 2020-05-23 00:03:57 -07:00
Pavel FeldmanandGitHub c5b0baacd1 chore: remove main index.js from playwright-core (#2178) 2020-05-11 09:38:09 -07:00
Pavel FeldmanandGitHub d52bd92983 chore: read browser revisions off browsers.json (#2009) 2020-04-28 10:37:23 -07:00
Pavel FeldmanandGitHub b60c006c63 chore: simplify and restructure downloads (#1974) 2020-04-24 19:14:10 -07:00
Dmitry GozmanandGitHub 6503c83302 fix(install): speculative fix for generateChromiumProtocol (#1583) 2020-03-27 22:42:39 -07:00
Pavel FeldmanandGitHub 6903496f2d fix(build): generate protocol in chromium (#1579) 2020-03-27 17:11:54 -07:00
Andrey LushnikovandGitHub 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
Max SchmittandGitHub a24cce8b74 devops: fix protocol generation with root on Linux (#1327)
Currently it was leading to an error if I tried to build it with a root user on a Linux environment. So in the end the type generation was just skipped:

```
22:51:55.757 $ node install-from-github.js
22:51:55.813 Building playwright...
22:52:14.094 chromium downloaded to /11994741/playwright/.local-chromium/linux-747023 22:52:14.123 Failed to launch browser!
22:52:14.123 [0310/215214.121201:ERROR:zygote_host_impl_linux.cc(89)] Running as root without --no-sandbox is not supported. See https://crbug.com/638180.
22:52:14.123 TROUBLESHOOTING: https://github.com/Microsoft/playwright/blob/master/docs/troubleshooting.md
```

Maybe we should also exit the script with an error code if the protocol generation was not successful.
2020-03-10 15:21:08 -07:00
Pavel FeldmanandGitHub 99d06892c5 tests: explicitly close contexts for browser.newPage (#875) 2020-02-06 15:18:07 -08:00
Andrey Lushnikov cd68619786 chore: fix protocol-types-generator to work with new API
Follow-up to a2ab645e63
2020-02-05 16:51:16 -08:00
Pavel FeldmanandGitHub 55b6fe241e feat(launch): introduce client, server & persistent launch modes (3) (#854) 2020-02-05 16:36:36 -08:00
Pavel FeldmanandGitHub a2ab645e63 feat(launch): introduce client, server & persistent launch modes (2) (#840) 2020-02-05 12:41:55 -08:00
Pavel FeldmanandGitHub 0518625dcc feat(launch): introduce client, server & persistent launch modes (1) (#838) 2020-02-04 19:41:38 -08:00
Dmitry GozmanandGitHub 056fbbd53e fix(api): make pipe connection the default, expose webSocket launch option (#562) 2020-01-23 17:45:31 -08:00
Dmitry GozmanandGitHub ac2ba3cbd9 fix(api): BrowserServer -> BrowserApp, resuse it between browsers (#599) 2020-01-23 14:40:37 -08:00
Dmitry GozmanandGitHub fa2f321fdd fix(api): remove BrowserServer.connect (#574) 2020-01-23 08:51:43 -08:00
Andrey LushnikovandYury Semikhatsky e03f1e4c2c feat(firefox): roll firefox to r1012 (#493)
This roll puts Firefox protocol types under related protocol domains,
so protocol type generator had to be updated as well.
2020-01-14 15:32:31 -08:00
Dmitry GozmanandPavel Feldman fb1b3d9a89 chore: finish strict type checks across src (#482) 2020-01-13 22:08:35 -08:00
Yury SemikhatskyandDmitry Gozman 778ab3deff chore: replace CHROME with CHROMIUM (#465) 2020-01-13 10:13:28 -08:00
Joel EinbinderandYury Semikhatsky c749b7151b fix(install): don't crash generating chrome protocol (#342) 2019-12-28 16:38:37 -08:00
Pavel FeldmanandDmitry Gozman 331f0e603a feat: introduce BrowserServer (#308) 2019-12-19 14:51:49 -08:00
Pavel FeldmanandGitHub d570fc7809 feat: further strip the browser api (#304) 2019-12-18 18:07:11 -08:00
Dmitry GozmanandGitHub f1f9dc166b chore: remove unneeded files, reuse events between browsers, no implicit any (#191) 2019-12-10 11:15:14 -08:00
Joel EinbinderandGitHub 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 GozmanandGitHub fc5898892b feat(selectors): support optional "visible" property in all selectors (#129) 2019-12-04 13:11:10 -08:00
Joel EinbinderandGitHub 492f539310 chore(firefox): lint against the juggler protocol (#94) 2019-12-04 10:33:29 -08:00
Pavel FeldmanandGitHub ef464e447f feat(input): dblclick/trippleclick feature parity (#60) 2019-11-22 14:46:34 -08:00
Pavel FeldmanandAndrey Lushnikov 9ba375c063 Initial commit 2019-11-19 10:58:15 -08:00