Dmitry Gozman
aa4c893b09
feat(rpc): implement waitForNavigation on the client ( #2949 )
...
Drive-by: fix electron issues, exposed by the test using
waitForNavigation.
Drive-by: mark some tests skip(CHANNEL) that were mistakenly
marked skip(USES_HOOKS).
2020-07-15 18:48:19 -07:00
Andrey Lushnikov
0b9218149f
feat: validate browser dependencies before launching on Linux ( #2960 )
...
Missing dependencies is #1 problem with launching on Linux.
This patch starts validating browser dependencies before launching
browser on Linux. In case of a missing dependency, we will abandon
launching with an error that lists all missing libs.
References #2745
2020-07-15 15:24:38 -07:00
Dmitry Gozman
cc8fe5a763
feat(rpc): support electron ( #2933 )
2020-07-13 21:46:59 -07:00
Andrey Lushnikov
a403d4beff
fix(firefox): fix launching firefox without dependencies ( #2900 )
...
We always have to reject promises with some error. Otherwise,
our error-rewriting logic in try-catch miserably fails.
With this patch, attempt to launch Firefox when it's missing
dependencies will actually result in a thrown exception with
pretty logs. Without this patch, Playwright throws internal error.
2020-07-10 16:04:19 -07:00
Dmitry Gozman
8fe29feb21
feat(rpc): support more chromium-specific apis ( #2883 )
...
This includes page CDPSession, backgroundPages() and serviceWorkers().
This has also revealed an issue with closing order between the context
and the service worker.
2020-07-08 21:36:03 -07:00
Dmitry Gozman
2a86ead0ac
chore: replace FrameTask with internal events on Frame ( #2856 )
...
We now use a few helper.waitForEvent calls to wait for internal
events kNavigationEvent and kLifecycleEvent. With these events,
we should be able to replicate logic over rpc.
2020-07-07 15:22:05 -07:00
Pavel Feldman
bc3050776e
chore: prepare library types for rpc ( #2706 )
2020-06-25 08:30:56 -07:00
Pavel Feldman
fca514d74e
chore: move non-trivial types out of types.ts ( #2680 )
2020-06-23 14:51:06 -07:00
Pavel Feldman
c220fc7f46
chore(logs): rework logs for simplicity ( #2592 )
2020-06-16 17:11:19 -07:00
Pavel Feldman
894826dec0
chore: form the debug script for authoring hints / helpers ( #2551 )
2020-06-11 18:18:33 -07:00
Pavel Feldman
17433d1881
chore: verify launch options ( #2530 )
2020-06-10 20:48:54 -07:00
Pavel Feldman
903de2582a
chore(websocket): extract common socket part ( #2506 )
2020-06-10 16:33:27 -07:00
Dmitry Gozman
1bb33650b0
chore: remove ExtendedEventEmitter and inline waitForEvent ( #2529 )
2020-06-10 15:12:50 -07:00
Pavel Feldman
8ee19d53e7
feature(webkit): roll WebKit to 1273 ( #2514 )
2020-06-10 13:36:45 -07:00
Dmitry Gozman
80705ff5e9
chore: simplify logging a bit ( #2512 )
...
This merges a few classes and stops inheriting from InnerLogger.
2020-06-09 16:11:17 -07:00
Pavel Feldman
9aa9d6bc1d
feat(downloads): accept downloads in persistent, allow specifying the downloadsPath ( #2503 )
2020-06-08 21:45:35 -07:00
Dmitry Gozman
3ec79e17fc
chore: simplify timeout handling in progress ( #2487 )
2020-06-05 15:53:30 -07:00
Dmitry Gozman
300099734c
chore: migrate waitForEvent to Progress ( #2483 )
...
Drive-by: remove/simplify some helper code.
2020-06-05 14:14:19 -07:00
Pavel Feldman
fb058ffe0d
feat(proxy): allow specifying proxy ( #2485 )
2020-06-05 13:50:15 -07:00
Dmitry Gozman
1d37a10558
chore: migrate navigations to Progress ( #2463 )
2020-06-04 16:43:48 -07:00
Dmitry Gozman
724d73c03b
feat(debug): chromium debugging port ( #2246 )
...
This exposes Chromium remote debugging pipe under the port PLAYWRIGHT_CHROMIUM_DEBUG_PORT.
2020-06-04 16:40:07 -07:00
Dmitry Gozman
d5c992e1db
chore: unify evaluations across browsers even more ( #2459 )
...
This moves all the logic around UtilityScript to javascript.ts.
Also uncovers a bug in WebKit where we cannot returnByValue after navigation.
2020-06-03 17:50:16 -07:00
Dmitry Gozman
8e6375f532
chore: reduce the number of evaluate methods, improve types ( #2454 )
...
Types can now handle non-trivial tuples with handles inside.
2020-06-03 13:22:05 -07:00
Pavel Feldman
c001facffc
feat(firefox): allow passing user prefs at launch time ( #2417 )
2020-05-31 09:28:57 -07:00
Dmitry Gozman
d980ed7e7e
chore: introduce Progress concept ( #2350 )
...
A progress roughly corresponds to an api call. It is used:
- to collect logs related to the call;
- to handle timeout;
- to provide "cancellation token" behavior so that cancelable process can either
early-exit with progress.throwIfCanceled() or race against it with progress.race();
- to ensure resources are disposed in the case of a failure
with progress.cleanupWhenCanceled();
- (possibly) to log api calls if needed;
- (in the future) to augment async stacks.
2020-05-29 14:39:34 -07:00
Andrey Lushnikov
7a785ac268
fix: properly rewrite error message ( #2392 )
...
Error message is included in error's stack, so we should
re-write stack as well.
Fixes #2373
2020-05-28 16:33:31 -07:00
Dmitry Gozman
057ae14adc
feat: make browserServer.kill() wait for the process to exit ( #2375 )
...
This ensures we cleaned everything up.
2020-05-27 19:59:03 -07:00
Dmitry Gozman
1e2b46437d
feat(debug): when debugging, use zero as default timeout ( #2362 )
...
Otherwise, operations always time out while stepping in debugger.
2020-05-27 13:25:57 -07:00
Dmitry Gozman
8f0f32b5e6
chore: move debug-related code to src/debug ( #2309 )
2020-05-26 14:08:32 -07:00
Dmitry Gozman
27d30fe162
chore: encapsulate more launching logic in BrowserType ( #2339 )
2020-05-22 16:06:00 -07:00
Dmitry Gozman
55d47fd48f
chore: unify launching server between browser types ( #2338 )
2020-05-22 07:03:42 -07:00
Dmitry Gozman
3aca21c13b
chore: simplify launch routine a bit more ( #2336 )
2020-05-21 19:16:13 -07:00
Dmitry Gozman
aae3f1e75d
feat(default context): support selected options for default context ( #2177 )
2020-05-21 15:13:16 -07:00
Pavel Feldman
2ede4bce12
chore: further unify launching and connection ( #2320 )
2020-05-21 09:43:10 -07:00
Pavel Feldman
f9b437a49e
chore: pull common functionality into the BrowserTypeBase ( #2312 )
2020-05-20 16:30:04 -07:00
Dmitry Gozman
48440f7ed7
test: unflake fixtures test ( #2313 )
...
Drive-by: ensure we call onkill before manually exiting the process.
2020-05-20 14:58:27 -07:00
Pavel Feldman
e558f0516b
chore: print the launch error message to console ( #2304 )
2020-05-20 00:10:10 -07:00
Dmitry Gozman
7efc22c062
fix(chromium): websocket wrapper leaks child sessions ( #2291 )
...
When a parent session is detached, we do not always get Target.detachedFromTarget
for child sessions. This is especially true when the socket disconnects, leaving
all child sessions in the maps.
Flakily reproducible by browserType.connect multiclient tests.
2020-05-19 15:02:13 -07:00
Dmitry Gozman
481643409e
feat(debug): persist devtools preferences in Chromium ( #2266 )
...
We store devtools-preferences.json file in the downloaded browser directory.
2020-05-19 14:55:11 -07:00
Dmitry Gozman
82cab094e8
feat(logging): add logging to websocket transport ( #2289 )
2020-05-18 19:00:38 -07:00
Dmitry Gozman
e8e761f77f
chore: use internal BrowserOptions to unify browsers ( #2230 )
2020-05-14 13:22:33 -07:00
Joel Einbinder
dbef7de42a
feat(electron): types ( #2231 )
2020-05-13 20:51:53 -07:00
Yury Semikhatsky
f10e8c4d47
chore(chromium): nicer error when running as root without --no-sandbox ( #2214 )
2020-05-12 16:43:15 -07:00
Pavel Feldman
414ae0025e
fix(electron): handle in-event await errors ( #2207 )
2020-05-12 15:28:37 -07:00
Pavel Feldman
3f8dfed67f
feat(electron): add app.firstWindow convenience method ( #2195 )
2020-05-12 08:43:41 -07:00
Pavel Feldman
ffe7084652
feat(electron): experimental electron support ( #2166 )
2020-05-11 18:00:33 -07:00
Dmitry Gozman
a2bee2ca73
fix(launch): handle timeout and exceptions during launch ( #2185 )
2020-05-11 15:00:13 -07:00
Pavel Feldman
9895cd0a31
chore: optionally create downloads folder ( #2188 )
2020-05-11 14:42:13 -07:00
Dmitry Gozman
8c083486a0
fix(launch): handle websocket connect exceptions ( #2184 )
2020-05-11 13:49:57 -07:00
Dmitry Gozman
ae8d97cdf9
feat(persistent context): ensure initial about:blank ( #2161 )
...
We declare only the initial about:blank to be a supported usecase, so that
we can support options for the default context in the future.
2020-05-10 15:23:53 -07:00