531 Commits

Author SHA1 Message Date
Dmitry Gozman
61ff52704c
feat(input): perform hit target check during input (#9546)
This replaces previous `checkHitTarget` heuristic that took place before the action
with a new `setupHitTargetInterceptor` that works during the action:
- Before the action we set up capturing listeners on the window.
- During the action we ensure that event target is the element we expect to interact with.
- After the action we clear the listeners.

This should catch the "layout shift" issues where things move
between action point calculation and the actual action.

Possible issues:
- **Risk:** `{ trial: true }` might dispatch move events like `mousemove` or `pointerout`,
because we do actually move the mouse but prevent all other events.
- **Timing**: The timing of "hit target check" has moved, so this may affect different web pages
in different ways, for example expose more races. In this case, we should retry the click as before.
- **No risk**: There is still a possibility of mis-targeting with iframes shifting around,
because we only intercept in the target frame. This behavior does not change.

There is an opt-out environment variable PLAYWRIGHT_NO_LAYOUT_SHIFT_CHECK that reverts to previous behavior.
2021-11-05 17:31:28 -07:00
Andrey Lushnikov
8bf8f49746
feat: support Firefox for Ubuntu 20.04 arm64 download (#10100) 2021-11-05 17:02:48 -07:00
Pavel Feldman
f3fd3ebc37
chore(frame-selector): add more tests, use frame logic in element handle (#10097) 2021-11-05 16:36:01 -07:00
Pavel Feldman
f19864890f
feat(iframe): make iframe selectors work w/ element handles (#10063) 2021-11-05 11:06:04 -07:00
Max Schmitt
84d2ee3929
chore: fix connectOverCDP on Windows when proxy is used (#10080) 2021-11-05 17:38:13 +01:00
Max Schmitt
c5b19351f6
chore: rename Fetch Request/Response to API (#10087) 2021-11-05 16:27:49 +01:00
Max Schmitt
ceedf45d4a
fix: support .mjs files with Playwright Inspector (#10043) 2021-11-05 12:28:52 +01:00
github-actions[bot]
8a6e4bd350
feat(firefox): roll to r1302 (#10062)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Andrey Lushnikov <aslushnikov@gmail.com>
2021-11-04 16:12:59 -07:00
github-actions[bot]
c6e0ecc38c
feat(firefox): roll to r1301 (#10058)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2021-11-04 14:50:36 -07:00
Pavel Feldman
78e99249a3
feat(frame-selector): intial implementation (#10018) 2021-11-04 13:28:35 -07:00
github-actions[bot]
9b4d9460eb
feat(chromium): roll to r936784 (#9986) 2021-11-04 12:35:31 -07:00
github-actions[bot]
a1f5131501
feat(webkit): roll to r1572 (#10030)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2021-11-04 12:07:03 +01:00
Yury Semikhatsky
bce9a8187d
fix(fetch): post data for delete request (#10019) 2021-11-03 13:26:15 -07:00
Dmitry Gozman
c373986ca0
fix(evaluate): reject all context operations when frame detaches (#9987) 2021-11-03 10:44:50 -07:00
Pavel Feldman
2ae2136810
chore: do not carry selector next to parsed selector (#10004) 2021-11-03 08:35:01 -07:00
Andrey Lushnikov
2e1dcaf2ee
chore: fix race in grid server (#9999) 2021-11-02 18:01:15 -07:00
Yury Semikhatsky
5abb5d74ea
chore: delete legacy response interception code (#9995) 2021-11-02 17:48:38 -07:00
Pavel Feldman
cd47bf26e8
feat(trace-viewer): render snapshot urls (#9993) 2021-11-02 17:35:23 -07:00
Andrey Lushnikov
009478b8d5
feat: download Chromium Linux arm64 builds (#9994) 2021-11-02 16:58:22 -07:00
Pavel Feldman
81ea40bb00
feat(inspector): add the copy selector button (#9984) 2021-11-02 15:48:48 -07:00
Andrey Lushnikov
62a01a41c6
feat: various docker integration improvements (#9988)
- shorter docker terminal message
- terminate testrunner if docker cannot be found
- use `-docker` suffix for snapshots / screenshots.
2021-11-02 13:58:26 -07:00
Pavel Feldman
6a30c90590
feat(trace-viewer): render wall time for each action (#9982) 2021-11-02 12:16:12 -07:00
Andrey Lushnikov
92c9e9a079
chore: ignore grid version checks (#9969)
This is a preparation for docker dogfooding: since in our own repo,
we run tip-of-tree tests against stable @playwright/test, we have
different versions for Playwright and Grid.

In our case, these versions should always be close-enough, so we
can disregard safety version checks for our usecase.
2021-11-02 04:11:34 -07:00
github-actions[bot]
87174e9ed7
feat(webkit): roll to r1570 (#9954)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2021-11-02 09:32:00 +01:00
Pavel Feldman
56ca3a18f5
feat(trace-viewer): show test name (#9957) 2021-11-01 21:23:35 -07:00
Andrey Lushnikov
d1b43fafd3
fix: a nicer lockfile message (#9952)
Fixes #9574
2021-11-01 17:48:18 -07:00
Yury Semikhatsky
13cc266b37
feat: add "commit" to possible waitUntil options (#9892) 2021-11-01 17:12:19 -07:00
Pavel Feldman
0221f1a4e0
fix(html): fix the mobile layout (#9945) 2021-11-01 16:47:07 -07:00
Dmitry Gozman
9cfbc0c171
chore(expect): simplify expect array edge cases (#9942) 2021-11-01 16:42:13 -07:00
Pavel Feldman
2bfbf65b8d
fix(html): strip ansi escaping from stdio (#9944) 2021-11-01 16:39:54 -07:00
Pavel Feldman
9ac8829583
feat(html): bake report zip into the html report, allow opening from fs (#9939) 2021-11-01 16:14:52 -07:00
Dmitry Gozman
4e52b64619
chore: simplify polls and evaluates in dom.ts (#9941) 2021-11-01 15:59:47 -07:00
Max Schmitt
a2c414cd88
chore: add Microsoft Edge Stable on Linux (#9915) 2021-11-01 22:03:51 +01:00
Dmitry Gozman
50f7477906
chore: use progress.continuePolling instead of passing it around (#9929) 2021-11-01 13:57:13 -07:00
Pavel Feldman
d234030b9a
feat(html): allow projects with spaces, lax filter matching (#9913) 2021-11-01 10:53:58 -07:00
Pavel Feldman
d79aae633c
feat(html): render the suite name before test title (#9909) 2021-11-01 10:53:42 -07:00
Pavel Feldman
1f907f0cfc
feat(html): render warning message when served off file:// (#9908) 2021-10-31 17:36:05 -07:00
Dmitry Gozman
4ff69529d4
chore: detect document open for inspector (#9901)
To be used later for other global event listeners.
2021-10-30 16:06:52 -07:00
Pavel Feldman
bd505ed07c
fix(tracing): fall back to protocol naming in ports w/o apiName (#9896) 2021-10-30 12:26:38 -07:00
Dmitry Gozman
b244f035bc
chore: small cleanups around actions (#9895) 2021-10-29 22:27:57 -07:00
Pavel Feldman
94c33da946
feat(trace): throttle the screencast (#9893) 2021-10-29 18:20:17 -07:00
Pavel Feldman
8991bbde33
feat(html): live filtering, opt-out from auto-open (#9889) 2021-10-29 16:24:08 -07:00
Max Schmitt
bff84c5391
fix: PowerShell execution policies (#9885) 2021-10-29 22:42:51 +02:00
Max Schmitt
dd1d3c3ed9 Revert "chore: migrate away from ps1 in install-deps on Windows (#9876)"
This reverts commit 59a406a586de5cbe39ce092b591c2c2271936f1c.
2021-10-29 20:12:46 +02:00
Dmitry Gozman
cea61691fa
fix(connectOverCDP): ensure cleanup when remote ws closes (#9873) 2021-10-29 10:35:24 -07:00
Max Schmitt
59a406a586
chore: migrate away from ps1 in install-deps on Windows (#9876) 2021-10-29 19:32:56 +02:00
Pavel Feldman
0566af86e1
feat(html): add filter field (#9874) 2021-10-29 09:39:34 -07:00
Dmitry Gozman
e8c512dbeb
fix(cleanup): use rimraf.sync on process exit (#9862)
Currently we call async `removeFolders` from a synchronous
`process.on('exit')` handler, which should not work.
2021-10-28 19:28:16 -07:00
Yury Semikhatsky
1886897e5c
fix(matchers): support builtin types (#9865) 2021-10-28 18:45:59 -07:00
Pavel Feldman
75ac579fac
fix(toHaveCount): another edge case fix (#9860) 2021-10-28 16:04:21 -07:00