Commit graph

584 commits

Author SHA1 Message Date
Dmitry Gozman 1d770af804
api: waitForElement accepts waitFor: attached|detached|visible|hidden (#1244)
This includes rename waitForSelector -> waitForElement and removes $wait.
2020-03-05 17:45:41 -08:00
Yury Semikhatsky 9bc6dcea1d
feat(api): introduce BrowserContext.waitForEvent (#1252) 2020-03-05 17:22:57 -08:00
Dmitry Gozman e5f82af47c
api(popups): emit PageEvent immediately, and resolve page() once initialized (#1229)
This way we do not miss any popups, even immediately closed ones.
2020-03-05 15:18:27 -08:00
Pavel Feldman c734b4b715
feat(click): start wire auto-waiting click in firefox (#1233) 2020-03-05 14:47:04 -08:00
Yury Semikhatsky e770d706a1
fix(chromium): do not create default page and context in headless (#1247) 2020-03-05 14:46:12 -08:00
Yury Semikhatsky 665888d579
feat(popups): auto-attach to all pages in Chromium (#1226) 2020-03-05 10:45:32 -08:00
Yury Semikhatsky aabdac8380
api: remove Page.setCacheEnabled (#1231) 2020-03-05 10:09:04 -08:00
Pavel Feldman 11f68bac54
feat(cr, wk): make clicks, input and evaluate await scheduled navigations (#1200) 2020-03-04 19:15:01 -08:00
Dmitry Gozman 7f9df9488e
api(popups): move Page.setOfflineMode -> BrowserContext.setOffline (#1223) 2020-03-04 17:58:12 -08:00
Dmitry Gozman 3bedc60b2b
fix(dispose): do not await inner handle dispose (#1230) 2020-03-04 17:57:35 -08:00
Dmitry Gozman 5ee744cd26
api(page.frame): allow looking up frames by name (#1228) 2020-03-04 17:53:39 -08:00
Pavel Feldman 5ff660de15
feat(navigation): waitForNavigation/goto should not wait until response finished (#1225) 2020-03-04 15:59:26 -08:00
Joel Einbinder 8aa88d5021
fix(doc): check and update optional types in the api (#1206)
This adds a new check to doclint for whether a member is correctly marked as optional. 
part of #6
2020-03-03 17:29:12 -08:00
Dmitry Gozman f4e9b5079d
api: declare not supporting isMobile on Firefox (#1207) 2020-03-03 17:28:31 -08:00
Dmitry Gozman 1c4619e5e0
fix(chromium/webkit): fix a race between Page.enable and Page.getResourceTree (#1201) 2020-03-03 17:15:43 -08:00
Dmitry Gozman 15c70c9d61
fix(click): timing out in page while waiting for interactable should have proper error (#1199)
This fixes flaky 'Page.click should timeout waiting for visible' test.
2020-03-03 17:14:00 -08:00
Joel Einbinder fcfe887c57
feat(select): don't accept undefined as a value (#1202)
`page.select` accepting an `undefined` value is a legacy of when `page.select` took `...values`. This matches the way the method is documented in the API.
2020-03-03 16:59:41 -08:00
Dmitry Gozman 6c6cdc033b
api(popup): introduce BrowserContext.exposeFunction (#1176) 2020-03-03 16:46:06 -08:00
Dmitry Gozman 1b863c2300
fix(screenshots): simplify implementation, allow fullPage + clip, add tests (#1194) 2020-03-03 16:09:32 -08:00
Yury Semikhatsky 31e26a2208
fix(api): fire BrowserContext.Page event in WebKit and Firefox (#1186) 2020-03-02 18:32:56 -08:00
Dmitry Gozman 342a2cf5cc
fix(selectors): continue matching after first fail for combined selectors (#1185) 2020-03-02 15:47:50 -08:00
Dmitry Gozman 1186998bd8
fix(click): wait for element to be displayed before scrolling into view (#1182)
Otherwise, we may get an error during scrollIntoViewIfNeeded protocol call.
2020-03-02 14:26:38 -08:00
Yury Semikhatsky a57978a5f0
api(chromium): remove Target from public API (#1163) 2020-03-02 13:58:22 -08:00
Yury Semikhatsky f242e0c74f
fix: make Transport.send() synchronous (#1177) 2020-03-02 13:51:32 -08: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
Dmitry Gozman ac2f04f10f
api(selectors): pass selector name when registering, allow file path (#1162) 2020-02-28 15:34:07 -08:00
Dmitry Gozman 7843c29d32
feat(selectors): auto-detect each selector part (#1160) 2020-02-28 14:41:32 -08:00
Dmitry Gozman 823bf389a7
api: evaluateOnNewDocument -> addInitScript (#1152)
Also adds more options to specify the script.
2020-02-27 17:42:14 -08:00
Joel Einbinder 857ffd8ea9
fix: text selector should be case insensitive without quotes (#1151) 2020-02-27 16:52:30 -08:00
Dmitry Gozman 7682865d73
feat(popups): add BrowserContext.evaluateOnNewDocument (#1136) 2020-02-27 16:18:33 -08:00
Pavel Feldman dc161df063
fix(launch): throw upon page argument when non-persistent (#1144) 2020-02-27 14:09:24 -08:00
Yury Semikhatsky 9d6aa967f3
chore(workers): align worker lifecycle evens with other APIs (#1147) 2020-02-27 14:02:48 -08:00
Dmitry Gozman c6fde22b1f
chore(webkit): always attach to all pages, simplify initialization (#1139) 2020-02-27 08:49:09 -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
Andrey Lushnikov 4ab880175a chore: fix lint 2020-02-26 14:08:21 -08:00
Pavel Feldman d20f3cac89
feat(webkit): no start window, healthy pipe (#1113) 2020-02-26 13:02:15 -08:00
Dmitry Gozman 672f3f9960
feat(popups): introduce BrowserContext.setDefaultHTTPHeaders (#1116) 2020-02-26 12:42:20 -08:00
Yury Semikhatsky 4f69930fbe
fix(chromium): make locale overrides work (#1108) 2020-02-26 11:01:46 -08:00
Pavel Feldman 3afaeef557
feat(socket): destroy contexts upon disconnect (#1119) 2020-02-26 11:01:01 -08:00
Dmitry Gozman dcdc7db158
feat(chromium): use no-startup-window to not create default context (#1106) 2020-02-25 11:43:17 -08:00
Pavel Feldman ebcaadedf1
feat(log): log only user api calls with DEBUG=pw:api (#1029) 2020-02-25 07:09:27 -08:00
Dmitry Gozman d97ea70804
chore: move more injected code to injected to reduce evaluation size (#1093) 2020-02-25 07:06:20 -08:00
Dmitry Gozman ba29470cc1
fix(api): rename relativePoint to offset, remove unused parameters from input (#1092) 2020-02-24 21:12:02 -08:00
aesyondu fdfec8eb2a
fix(platform) instanceof bug between execution contexts of RegExp object (#1048)
First encountered at jest-playwright repo:
https://github.com/mmarkelov/jest-playwright/issues/38

Solution based on:
https://stackoverflow.com/questions/4339288/typeof-for-regexp#comment4724685_4339350
2020-02-24 18:32:17 -08:00
Dmitry Gozman 6acc439450
feat(api): move targets from CRBrowser to CRBrowserContext (#1089)
This makes them work for default context.
2020-02-24 14:35:51 -08:00
Dmitry Gozman a43b4095e1
chore: make BrowserContext an interface, with 3 implementations (#1075)
This is in preparation for moving targets to BrowserContext, so that one can work with targets in default context.
2020-02-24 08:53:30 -08:00
Dmitry Gozman 3677818202
fix(api): browser.serviceWorker -> target.serviceWorker (#1076) 2020-02-24 08:31:58 -08:00
Dmitry Gozman 1f8508d1ed
feat(waitFor): update various waitFor options to be a single boolean (#1066) 2020-02-22 09:16:28 -05:00
Dmitry Gozman 40164298a8
api: remove ElementHandle.visibleRatio (#1069) 2020-02-19 16:08:25 -08:00
Dmitry Gozman 33824aa1d7
feat(click): waitForInteractable option, defaults to true (#934) (#1052) 2020-02-19 09:34:57 -08:00
Dmitry Gozman 9f1edadbff
fix(navigation): do not count random failures as navigation cancel (#1055) 2020-02-18 19:58:04 -08:00
Dmitry Gozman 223685ee7b
chore: strip out injected script from protocol logs (#1054) 2020-02-18 19:56:59 -08:00
Pavel Feldman 1ee657823e
feat(viewport): update defaults to 1280x720, fix Firefox (#1038) 2020-02-18 09:16:32 -08:00
Pavel Feldman f2b2d72693
fix(input): emit change events upon page.setInputFiles (#1028) 2020-02-18 09:15:47 -08:00
Daniel Imms 8a7728da3d
docs: document LaunchOptions.dumpio (#1051) 2020-02-18 08:56:20 -08:00
Joel Einbinder 3656403f2d
fix(keyboard): Add mac editing commands for NumpadEnter (#1026)
This should fix NumpadEnter on webkit for mac.
2020-02-14 18:37:02 -08:00
Joel Einbinder 21acb369db
fix(keyboard): correctly press enter on firefox (#1023) 2020-02-14 17:42:08 -08:00
Dmitry Gozman dbb45d443a
Revert "feat(click): waitForInteractable option, defaults to true (#934)" (#1013)
Reason: new tests are flaky on all bots.
2020-02-14 13:05:23 -08:00
Dmitry Gozman 9413351d3f
feat(click): waitForInteractable option, defaults to true (#934) 2020-02-14 11:55:34 -08:00
Pavel Feldman 4d7e531520
fix(webkit): wait for the pipe ready on windows (#997) 2020-02-13 17:46:40 -08:00
Pavel Feldman cd4e9da807
feat(coverage): export raw v8 coverage (#976)
Fixes #955
2020-02-13 17:39:14 -08:00
Dmitry Gozman 25022e4685
feat(api): introduce default timeouts on BrowserContext (#992) 2020-02-13 14:18:18 -08:00
Pavel Feldman f7fb35bdbf
fix(windows): wait for pipe available again (#993) 2020-02-13 14:13:10 -08:00
Andrey Lushnikov f8f818f676 Revert "Revert "feat: do not wait for first page in non-persistent mode (#939)""
Apparently a good fix is coming: https://github.com/microsoft/playwright/pull/993/
Pavel want to re-revert.
2020-02-13 13:54:01 -08:00
Andrey Lushnikov 71892b4aaa Revert "feat: do not wait for first page in non-persistent mode (#939)"
This reverts commit a567123596.

Reason for revert: WK-Win fails to start if we start talking over the
pipe too early.
2020-02-13 13:44:58 -08:00
Pavel Feldman c15534ff01
fix(locale): document locale parameter (#990) 2020-02-13 13:37:59 -08:00
Dmitry Gozman 2e0d89e25c
fix(firefox): roll to 1029 and unskip passing tests (#984) 2020-02-13 13:19:25 -08:00
Pavel Feldman 8ed88c910a
feat(webkit): introduce BrowserContext({language}) (#972) 2020-02-13 12:24:17 -08:00
Andrey Lushnikov 8006b2c01f
fix(webkit): avoid UnhandledPromiseRejection (#986)
* fix(webkit): avoid UnhandledPromiseRejection

If we close a browser before sending first websocket message,
the `this._connect` promise will reject and will not be handled.

This surfaced at https://github.com/microsoft/playwright/pull/976/checks?check_run_id=444445350

* fix
2020-02-13 12:19:41 -08:00
Pavel Feldman 53fa62910a
fix(chromium): emit focus events in headful (#982)
Fixes #979
2020-02-13 11:29:13 -08:00
Dmitry Gozman a567123596
feat: do not wait for first page in non-persistent mode (#939) 2020-02-13 10:51:17 -08:00
Joel Einbinder d367a2ed3a
chore(tests): log protocol messages when a test fails on the bots (#963)
Similarly to how we handle stdio, this captures all protocol messages and logs them when a test fails. Great for when debugging tests in parallel or for bot failures!

Currently I made `DEBUGP=true` turn this on locally, and turned it on always for the CI. Open to 
suggestions for a better environment variable. I would turn it on by default always, like the stdio logging, but it adds an enormous amount of noise to our error messages.
2020-02-12 22:35:06 -08:00
Andrey Lushnikov d735de5347
feat: do not let users pass userDataDir to browserType.launch() (#974)
We now have a separate method for this - `browserType.launchPersistent`.
This will probably save our users quite some time.
2020-02-12 19:32:23 -08:00
Pavel Feldman 012bf671b8
feat(webkit): emulate timezone on webkit (#968) 2020-02-12 17:02:59 -08:00
Andrey Lushnikov d26f47bb3b
fix(platform): properly handle websocket error events (#967) 2020-02-12 16:59:19 -08:00
Andrey Lushnikov bfaf191c98
test: add missing tests (#965)
Chromium tests on Linux now call all our API methods and events at least once!
2020-02-12 16:13:48 -08:00
Andrey Lushnikov 7ce49c2835
chore: remove WebSocket implementation (#961)
WebSocket implementation currently is very incomplete, lacking
support in WebKit-Win and Firefox.
2020-02-12 15:29:06 -08:00
Andrey Lushnikov b0c0598510
fix(api): small-case all api event names (#959) 2020-02-12 14:59:54 -08:00
Pavel Feldman d05feec740
feat(active): emulate active state on webkit (#941) 2020-02-11 19:10:57 -08:00
Andrey Lushnikov 0d16d144b2
fix(firefox): rely on bundled firefox preferences (#943)
Since Firefox r1027 we bundle preferences alongside with build.

Fixes #857
2020-02-11 19:10:02 -08:00
Dmitry Gozman da30847c83
feat(firefox): apply emulation to all pages in the browser context (#931) 2020-02-11 18:52:01 -08:00
Pavel Feldman 53237009ad
feat($wait): make $wait a shortcut for waitForSelector (#932) 2020-02-11 14:51:09 -08:00
Pavel Feldman aae5fca237
feat(api): make browser.newPage own the created context (#930) 2020-02-11 12:06:58 -08:00
Andrey Lushnikov ad9d6cc31f
feat: introduce browserType.downloadBrowserIfNeeded() (#834)
Fixes #823
2020-02-11 11:33:48 -08:00
Pavel Feldman 8a35f4023c
fix(events): deliver page.close upon disconnect in FF (#929) 2020-02-11 11:13:08 -08:00
Dmitry Gozman c69dccf7c1
feat(click): use browser-provided scrollIntoViewIfNeeded (#893) 2020-02-11 10:30:09 -08:00
Pavel Feldman 72b9cf010e
feat(context): introduce BrowserContext close event (#918) 2020-02-11 10:27:19 -08:00
Pavel Feldman 780235479e
fix(firefox): bring headful window to front on launch (#923)
Fixes #914
2020-02-10 20:35:58 -08:00
Joel Einbinder 251ad38824
fix(navigations): remove LifecycleWatcher, fix flakes (#882) 2020-02-10 18:35:47 -08:00
Pavel Feldman 84f5700294
feat(api): rename browserContext() to context() in the apis, remove url from newPage (#906) 2020-02-10 10:41:45 -08:00
Pavel Feldman 4d84e35096
fix(upload): detect mime type from file extension (#911) 2020-02-10 10:08:51 -08:00
Pavel Feldman 79b7a8491e
fix(screenshot): be careful w/ default viewport, extract common logic (#913)
Fixes #887.
2020-02-10 09:15:15 -08:00
Pavel Feldman e9c14770d3
fix(webkit): fix remaining tests on windows (#905) 2020-02-07 17:39:32 -08:00
Joel Einbinder 73148fda79
chore(lint): add @typescript-eslint/no-unnecessary-type-assertion rule (#898) 2020-02-07 13:38:50 -08:00
Joel Einbinder 487d394f3b
chore(lint): add @typescript-eslint/type-annotation-spacing rule (#897) 2020-02-07 13:36:49 -08:00
Pavel Feldman 42c2cfc7cc
fix(pipe): sort out pipes on platforms (#895) 2020-02-07 11:48:55 -08:00
Pavel Feldman 0ed43e8781
feat(webkit) await the reading from pipe message (#894) 2020-02-07 10:52:59 -08:00
Dmitry Gozman fee83b17c9
fix(api): page.viewport -> page.viewportSize (#878)
We now only allow to resize the page, leaving isMobile and deviceScaleFactor as browser context options.
2020-02-06 19:02:55 -08:00
Dmitry Gozman c33a12d8f0
feat(firefox): ensure that new pages get browser context userAgent option (#872) 2020-02-06 19:01:03 -08:00
Joel Einbinder 126eb505e8
fix(transport): dispatch messages in separate tasks (#841)
Fixes a bug in our pipe, and the same one in the non-standard `ws` module. Our protocol messages are I/O events, and therefore they should each be executed in their own task.
2020-02-06 14:14:46 -08:00
Pavel Feldman a547aa7984
feat(connect): allow multiple webkit connections over web socket (#863) 2020-02-06 12:41:43 -08:00
Andrey Lushnikov a72784a677
fix(test): properly clean input field (#860) 2020-02-05 18:11:33 -08:00
Dmitry Gozman 6318ba6e4a
feat(frame): introduce frame.frameElement (#856)
Fixes #839.
2020-02-05 17:20:23 -08:00
Joel Einbinder 4be39f8af0
chore(types): upgrade to typescript 3.7.5 (#855) 2020-02-05 16:53:36 -08:00
Pavel Feldman 55b6fe241e
feat(launch): introduce client, server & persistent launch modes (3) (#854) 2020-02-05 16:36:36 -08:00
Dmitry Gozman 28c4a1697c
fix(chromium): ensure we resume service worker before detaching from it (#850) 2020-02-05 16:08:28 -08:00
Pavel Feldman a2ab645e63
feat(launch): introduce client, server & persistent launch modes (2) (#840) 2020-02-05 12:41:55 -08:00
Pavel Feldman 0518625dcc
feat(launch): introduce client, server & persistent launch modes (1) (#838) 2020-02-04 19:41:38 -08:00
Pavel Feldman bdf8e39786
feat(goto): assume http:// for localhost navigations (#825) 2020-02-04 19:39:52 -08:00
Dmitry Gozman 8f1df5e1e8
fix(chromium): pause workers on start to not miss any events (#832) 2020-02-04 19:36:46 -08:00
Andrey Lushnikov 0c2a2e11fd
fix: properly nullify error stacks (#836)
`error.stack` is supposed to have error message as the first line.
2020-02-04 19:31:57 -08:00
Pavel Feldman e3e2da3186
feat(check): introduce page.check/uncheck (#826) 2020-02-04 14:39:10 -08:00
Pavel Feldman 05d4746eb5
feat(selectors): temporarily remove zs engine (#824) 2020-02-03 16:14:37 -08:00
Pavel Feldman 1059e22f9e
fix(fill): make fill work for input[type=number] (#819) 2020-02-03 15:50:45 -08:00
Andrey Lushnikov b82bc5fbd4
feat: treat selectors with leading '(//' as xpath (#821)
This starts treating the following selectors as xpath:
- `page.$('//div')`
- `page.$('(//div)[1]')`
- `page.$('((((//div))))[1]')`

(and generally, any number of leading openting parenthesis)

Fixes #817
2020-02-03 14:52:18 -08:00
Pavel Feldman 8028fb052a
feat(route): migrate from request interception w/ events to page.route (#809) 2020-02-03 14:23:24 -08:00
Yury Semikhatsky 25f2a32af3
feat: add Page.opener() to the API (#790)
Fixes #783
2020-01-31 18:38:45 -08:00
Andrey Lushnikov 1489fbdbff
fix: do not recommend yarn (#794)
There's some confusion around Yarn vs Yarn 2 and their interop, which
apparently causes some [installation issues](https://stackoverflow.com/questions/59918776/playwright-error-firefox-revision-is-not-downloaded-run-npm-install-or-yarn)
2020-01-31 17:23:39 -08:00
Yury Semikhatsky b8199c0813
chore(webkit): use async/await to make eval more readable (#789) 2020-01-31 17:23:17 -08:00
Pavel Feldman ef1d2fb995
Revert "fix: move offline/cache/interception switches to BrowserContext (#748)" (#793)
This reverts commit 6faf74bc95.
2020-01-31 16:23:15 -08:00
Yury Semikhatsky c57fd22382
fix(webkit): unflake Page.setContent (#786) 2020-01-31 10:08:45 -08:00
Pavel Feldman b289bb790b
fix(filechooser): intercept file choosers lazily (#776)
Fixes #764
2020-01-30 17:43:06 -08:00
Yury Semikhatsky 985faebd12
fix: avoid unhandled promise rejection in WKSession.send (#770) 2020-01-30 17:30:47 -08:00
Yury Semikhatsky 1b012e50e9
fix: do actually catch worker initialization exceptions (#762) 2020-01-30 11:40:56 -08:00
Yury Semikhatsky 603b9f54dd
fix: make contentFrame cross-frame handles test pass (#761) 2020-01-30 11:04:09 -08:00
Pavel Feldman f44d6607c3
feat(webkit): use consistent user agent for headful and headless (#756) 2020-01-29 20:12:09 -08:00
Pavel Feldman ce7219870b
feat(webkit): roll webkit to 1124 (#736) 2020-01-29 19:13:44 -08:00
Dmitry Gozman 0e6b44d337
feat(selectors): selectors.register accepts function (#753) 2020-01-29 15:13:43 -08:00
Yury Semikhatsky 6faf74bc95
fix: move offline/cache/interception switches to BrowserContext (#748) 2020-01-29 12:51:14 -08:00
tsuemura fc93b886d9
fix: typo (#740) 2020-01-29 09:40:13 -08:00
Andrey Lushnikov ce7c8d74b5
feat: introduce BrowserType.name() (#732)
This helps a lot to produce nice logging:

```js
const { chromium, webkit } = require('playwright');

(async () => {
  for (const launcher of [chromium, webkit]) {
    console.log(`Testing on ${launcher.name()}`);
    const browser = await launcher.launch();
    // ...
    await browser.close();
  }
})();
```
2020-01-28 18:09:07 -08:00
Yury Semikhatsky 4c25180912
chore(webkit): do not call setPauseOnStart for each target (#725) 2020-01-28 14:51:05 -08:00
Pavel Feldman 09e97afd22
feat(wk,ff): amend method & postData upon continue (#703)
Fixes #668
2020-01-28 14:29:46 -08:00
Yury Semikhatsky 460527d8cb fix(webkit): do not poll readyState if target is paused before first navigation (#721) 2020-01-28 14:00:36 -08:00
Dmitry Gozman c04ad140f3 feat(launcher): gracefully close browser on sigint (#650) 2020-01-28 13:07:53 -08:00
Dmitry Gozman 324874962c fix(webkit): make frames detect their initial load state (#690) 2020-01-28 13:05:38 -08:00
Dmitry Gozman 2bef4aea03
feat(api): introduce selectors.register method (#701) 2020-01-28 11:20:34 -08:00
Yury Semikhatsky 2ddc987854 fix(webkit): initialize popups on start (#693) 2020-01-28 11:07:35 -08:00
Sam Yamashita a64fc0e45f chore: fix missing device definitions (#708)
Fixes #606
2020-01-28 10:39:54 -08:00
Dmitry Gozman 89b5d2f7be
fix(setContent): manually reset lifecycyle for all browsers at the right moment (#679) 2020-01-27 16:51:52 -08:00
Dmitry Gozman 541fa95ce4 fix(ownerFrame): correctly handle adopted node usecase (#677) 2020-01-27 11:43:43 -08:00
Pavel Feldman 6e4bf9561b fix(install): check macOS version to be 10.14 or higher (#671)
Fixes #669
2020-01-27 09:37:33 -08:00
Pavel Feldman b4b7c5eeef
feat(webkit): enable user-data-dir tests for all platforms (#646)
Fixes #560
2020-01-24 17:42:24 -08:00
Dmitry Gozman be19ae5e67 feat(browserApp): kill and onclose (#641) 2020-01-24 15:58:04 -08:00
Dmitry Gozman f1d1dfb081 fix(webkit): rewrite global object retrieval errors (#640) 2020-01-24 15:56:41 -08:00
Dmitry Gozman c453851217
api: introduce BrowserType with a single interface, update top-level api (#636) 2020-01-24 14:49:47 -08:00
André Abreu 199d094c6d fix: make launch options in ffPlaywright optional (#637) 2020-01-24 13:27:49 -08:00
Dmitry Gozman 060fbf7428 fix(workers): emit workerdestroyed event when clearing workers (#618) 2020-01-23 17:52:06 -08:00
Dmitry Gozman 056fbbd53e
fix(api): make pipe connection the default, expose webSocket launch option (#562) 2020-01-23 17:45:31 -08:00
Andrey Lushnikov b4b81bae02
chore: move downloads to Azure CDN (#615)
This should drastically speedup downloads across the globe.
2020-01-23 16:00:55 -08:00