1048 Commits

Author SHA1 Message Date
Dmitry Gozman
1accb5141d
chore: convert more actions to Progress (#2444) 2020-06-03 11:23:24 -07:00
Dmitry Gozman
f188b0a174
chore: migrate most actions to Progress (#2439) 2020-06-03 09:14:53 -07:00
Dmitry Gozman
a644f0a881
feat(fill): wait for the element to be enabled/writable/visible (#2435) 2020-06-01 18:56:49 -07:00
Dmitry Gozman
bf67245de6
feat(debug): stream logs from waitForSelector (#2434)
- we can now stream logs from InjectedScriptProgress to Progress;
- waitForSelector task uses it to report intermediate elements.
2020-06-01 15:48:23 -07:00
Dmitry Gozman
454411062b
fix(oopif): race between detachedFromTarget and frameAttached (#2419)
During remote -> local transition, these two events come in unpredictable order, so we try to handle both cases. Also, remote frame detach was not handled at all.
2020-06-01 13:47:02 -07:00
Dmitry Gozman
de0bbd3031
chore: remove page pause support (#2431) 2020-06-01 11:14:16 -07:00
Andrey Lushnikov
e5875310db
fix(webkit): report event source (#2430)
This rolls webkit to r1250 where we report event source.

Fixes #2189
2020-06-01 10:12:46 -07:00
Dmitry Gozman
b7df4d57a4
chore: migrate wait tasks to Progress (#2422) 2020-06-01 08:54:18 -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
acf059fe00
fix(click): wait for button, input and select to be enabled before clicking (#2414) 2020-05-30 13:29:46 -07:00
Dmitry Gozman
8e4a1e7c67
fix(text selector): do not match text inside <head> (#2413)
We already skip <script> and <style> tags because they are not
the page content. Similar reasoning applies to <head> that has
content that is never rendered on the page.
2020-05-29 15:28:27 -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
Dmitry Gozman
4bd9b30376
test: add a test for clicking a label with pointer-events: none (#2412) 2020-05-29 13:46:57 -07:00
Pavel Feldman
5277fb9479
test: fix the CSP capability test (#2394) 2020-05-28 18:29:15 -07:00
Dmitry Gozman
fdbd4fe197
fix(selectors): fix selector parsing for css attributes and quotes (#2389)
- css attribute selector may contain spaces;
- >> escaping inside strings was sometimes incorrect.

See added test cases for more details.
2020-05-28 14:49:39 -07:00
Andrey Lushnikov
7981e4e3da
fix: support event source type in firefox (#2390)
References #2189
2020-05-28 14:38:47 -07:00
Andrey Lushnikov
3f97a9fb69
test: add failing test for event source (#2382)
References #2189
2020-05-27 22:52:34 -07:00
Dmitry Gozman
46508c6b87
test: try to unflake one more cookie test (#2381) 2020-05-27 22:17:42 -07:00
Andrey Lushnikov
0753c2d54b
test: hack in output directory cleanup for parallel runs (#2378) 2020-05-27 22:03:38 -07:00
Dmitry Gozman
4413138cc6
fix(fill): allow to clear number input (#2376) 2020-05-27 20:01:08 -07:00
Dmitry Gozman
11d53ad529
test: disable flaky CSP test on Firefox (#2374) 2020-05-27 19:59:49 -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
Max Schmitt
9dfe9348ac
feat: Request.postDataJSON (#2368) 2020-05-27 18:43:49 -07:00
Pavel Feldman
e168fddac8
fix(evaluate): consistently serialize json values (#2377) 2020-05-27 17:19:05 -07:00
Dmitry Gozman
609bc4cfb0
chore: add stack trace utilities and tests (#2371) 2020-05-27 14:26:44 -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
Pavel Feldman
415b11487d
feat(webkit): roll webkit to r1242 (#2361) 2020-05-26 14:48:21 -07:00
Dmitry Gozman
d532cd5d9f
test: fix cookie tests on WebKit (#2359)
WebKit does not allow third party cookies.
2020-05-26 10:22:53 -07:00
Andrey Lushnikov
43eed027bd
chore: rename root index-for-dev.js into index.js (#2337) 2020-05-23 00:03:57 -07:00
Dmitry Gozman
79ec3c916e
test: unflake more cookie tests (#2346) 2020-05-22 17:20:42 -07:00
Dmitry Gozman
aac5bf24ec
fix(popups): do not override popup size from window features (#2139)
We usually force window size from the browser context. However,
popups that have window features insist on a specific window size,
so we respect that.
2020-05-22 15:56:37 -07:00
Dmitry Gozman
e2972ad5ba
feat(click): retry when the element it outside of the viewport (#2330)
The element might get animated into the viewport.
2020-05-22 11:15:57 -07:00
Pavel Feldman
5ee6494032
feat(evaluate): return user-readable error from evaluate (#2329) 2020-05-21 16:00:55 -07:00
Dmitry Gozman
0a8fa6e46c
test: unflake more cookies tests (#2333)
This is addressing a possible race between setting document.cookie and
cookies appearing in out-of-process cookie jar.
2020-05-21 15:37:52 -07:00
Dmitry Gozman
aae3f1e75d
feat(default context): support selected options for default context (#2177) 2020-05-21 15:13:16 -07:00
Dmitry Gozman
2f993018ea
test: disable flaky test on win firefox (#2332) 2020-05-21 15:06:19 -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
Joel Einbinder
b1c15e4539
test: add failing PageDown test (#2326)
Co-authored-by: Joel Einbinder <joel.einbinde@gmail.com>
2020-05-21 07:37:27 -07:00
Pavel Feldman
aa0d844c76
chore: introduce utility script for evaluate helpers (#2306) 2020-05-20 15:55:33 -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
Dmitry Gozman
b17a73c184
test: try to unflake cookie test (#2310)
Happens on WebKit sometimes. There is probably a race between setting a cookie
and saving it in the cookie jar in another process.
2020-05-20 14:54:21 -07:00
Pavel Feldman
e558f0516b
chore: print the launch error message to console (#2304) 2020-05-20 00:10:10 -07:00
Andrey Lushnikov
e312845ba9
fix: less confusing error message (#2305)
Fixes #2283
2020-05-19 17:47:46 -07:00
Andrey Lushnikov
545c43d28d
fix: better hittarget testing for clicking (#2217)
While checking for hittarget, we first bubble from a target element
up to find the first element without `pointer-events: none` style.

This bubbling does not make much sense: we risk desperately clicking
"body" element, when we were actually asked to click some deeply-nested
"span".

Additionally, in many cases the original intent is to click a button. In this
case, we should use the enclosing "button" as a hit target directly.

Fixes #2175
2020-05-19 16:27:56 -07:00
Dmitry Gozman
b8410bd19e
test: unflake headful window features test (#2302) 2020-05-19 16:27:28 -07:00
Dmitry Gozman
de606b9553
fix(chromium): handle various exception values in pageerror (#2293) 2020-05-19 15:20:49 -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
fbccd328cc
test: disable firefox crash tests (#2301) 2020-05-19 14:54:13 -07:00
Dmitry Gozman
82cab094e8
feat(logging): add logging to websocket transport (#2289) 2020-05-18 19:00:38 -07:00
Andrey Lushnikov
f24696be62
feat: add page convenience methods for textContent and getAttribute (#2235)
This patch adds:
- `page.innerText()` / `frame.innerText()`
- `page.innerHTML()` / `frame.innerHTML()`
- `page.textContent()` / `frame.textContent()`
- `page.getAttribute()` / `frame.getAttribute()`

Fixes #2143
2020-05-18 17:58:23 -07:00