Dmitry Gozman
b3a82bef46
feat: do not record route calls in the trace ( #32723 )
...
These are represented in the network pane instead.
2024-09-21 10:17:59 -07:00
Pavel Feldman
418d1c0c55
chore: allow starting recorder in traceviewer ( #32741 )
2024-09-20 15:25:49 -07:00
Dmitry Gozman
cdcaa7fab6
feat: routeWebSocket ( #32675 )
...
This introduces `WebSocketRoute` class and
`page/context.routeWebSocket()` methods.
2024-09-20 03:20:06 -07:00
Matthew Jee
f2a974b045
feat(api): add method to force garbage collection ( #32383 )
2024-09-13 23:09:36 +02:00
Simon Knott
48c7fb6b06
feat(library): accept FormData
in fetch
( #32602 )
...
Closes https://github.com/microsoft/playwright/issues/26520 by accepting
`FormData`, which became stable in Node.js in v21.
2024-09-13 13:21:02 +02:00
Max Schmitt
e5d6ee5bd8
chore: merge fetch params on server side ( #32518 )
...
https://github.com/microsoft/playwright-python/pull/2546#discussion_r1750090592
2024-09-09 22:28:08 +02:00
Yury Semikhatsky
f0e13164d7
chore: split firefox and chromium bidi implementations ( #32478 )
2024-09-05 18:31:56 -07:00
Yury Semikhatsky
9a2c60a77c
chore: identify largest gaps in Bidi API ( #32434 )
...
This pull request introduces initial support for the WebDriver BiDi
protocol in Playwright. The primary goal of this PR is not to fully
implement BiDi but to experiment with the current state of the
specification and its implementation. We aim to identify the biggest
gaps and challenges that need to be addressed before considering BiDi as
the main protocol for Playwright.
2024-09-04 11:36:52 -07:00
Yury Semikhatsky
896190edbb
Revert feat(addInitScript): support cjs modules ( #32364 )
...
Reverting https://github.com/microsoft/playwright/pull/32282 and
https://github.com/microsoft/playwright/pull/32240 .
2024-08-28 15:39:48 -07:00
Pavel Feldman
ec681ca78c
chore: pass explicit recorder app factory ( #32349 )
2024-08-27 20:24:19 -07:00
Dmitry Gozman
abe6c04a54
chore: remove noWaitAfter
from selectOption ( #32283 )
...
This follows removing this option from other methods in v1.46. The two
methods still supporting `noWaitAfter` are `click` and `press`.
2024-08-23 14:50:43 -07:00
Dmitry Gozman
3a75f23ea1
fix(addInitScript): require non-undefined arg to trigger commonjs module ( #32282 )
2024-08-23 02:48:56 -07:00
Dmitry Gozman
d5a7495041
feat(addInitScript): support cjs modules when passing both path
and arg
( #32240 )
...
This works with scripts bundled by:
- `esbuild entrypoint.ts --bundle --format=cjs --outfile=injected.js`
- webpack with a typical config
```js
module.exports = {
entry: { 'injected': './entrypoint.js', },
output: {
path: require('path').resolve(__dirname),
filename: '[name].js',
libraryTarget: 'commonjs2',
},
};
```
2024-08-21 09:46:38 -07:00
Max Schmitt
010778f6c5
feat(client-certificates): allow passing certificates from memory ( #32210 )
2024-08-19 09:24:32 +02:00
Dmitry Gozman
f8eef3897c
chore: move urlMatch to isomorphic ( #32142 )
...
To be reused in injected code.
2024-08-13 12:47:02 -07:00
Kuba Janik
308381eeae
feat: allow URLSearchParams
and string
as params in APIRequestContext
( #32120 )
2024-08-12 14:22:03 -07:00
Pavel Feldman
3c87f217df
feat(events): allow waiting for removeAllListeners ( #31941 )
2024-08-05 21:14:35 -07:00
Pavel Feldman
58b0c76f20
chore: use soft event emitter ( #31868 )
2024-07-29 17:11:31 -07:00
Dmitry Gozman
d8d5289e86
fix(remote): make sure api calls reject before browser is closed ( #31858 )
...
Upon calling `browser.close()` or dropping remote connection, make sure
to reject api calls before resolving `browser.close()` and firing a
`disconnected` event.
This change aligns the order guarantee with non-remote case.
2024-07-25 09:57:34 -07:00
Max Schmitt
c4862c022c
chore: client certificates api review ( #31826 )
2024-07-23 22:56:36 +02:00
Yury Semikhatsky
383e4b3c73
Revert "feat: introduce touchscreen.touch() for dispatching raw touch… ( #31823 )
...
… events (#31457 )"
This reverts commit a3e31fd2c4146e67a63ff4d3dc4f655533adcbde.
2024-07-23 10:29:37 -07:00
Max Schmitt
e11c0c0cbb
fix(connect): annotate internal api calls correctly ( #31715 )
2024-07-17 09:00:47 +02:00
Dmitry Gozman
6ee8f1de2d
Revert "chore: move artifacts recording to TestLifecycleInstrumentation ( #30935 )" ( #31686 )
...
This reverts commit ba5b46044469b783b64c94b9986460c38e020c77.
2024-07-15 07:01:51 -07:00
Dmitry Gozman
074cc7d467
Revert "feat(trace): record trace upon browser closure ( #31563 )" ( #31677 )
...
This reverts commit bc27ca225e69995f238192426df4ccb3f940a50d. Considered
too risky.
2024-07-15 01:08:51 -07:00
Max Schmitt
9569cb5c1e
feat: support client certificates ( #31529 )
...
Signed-off-by: Max Schmitt <max@schmitt.mx>
Co-authored-by: Dmitry Gozman <dgozman@gmail.com>
2024-07-12 11:42:24 +02:00
Dmitry Gozman
bc27ca225e
feat(trace): record trace upon browser closure ( #31563 )
...
Retaining traces in the following scenarios:
- browser crash;
- manual `browser.close()`;
- implicit `browser.close()` from the `browser` fixture upon test end.
This does not affect the library, where `browser.close()` will not
retain the trace and will close the browser as fast as possible.
References #31541 , #31535 , #31537 .
2024-07-06 11:34:34 -07:00
Max Schmitt
1132667ffe
chore: bump TypeScript to v5.5 ( #31532 )
2024-07-05 16:31:08 +02:00
Max Schmitt
9dc7e40084
chore(electron): don't swallow close errors ( #31509 )
2024-07-01 22:00:03 +02:00
Pavel Feldman
f46ae15500
test(clock): fix clock mode bots ( #31472 )
2024-06-28 11:46:28 -07:00
Yury Semikhatsky
a3e31fd2c4
feat: introduce touchscreen.touch() for dispatching raw touch events ( #31457 )
2024-06-27 14:37:36 -07:00
Yury Semikhatsky
95fc2b8a8b
feat(fetch): maxRetries for fetch ( #31386 )
...
Fixes https://github.com/microsoft/playwright/issues/30978
2024-06-19 18:10:14 -07:00
Max Schmitt
5fc56283a6
fix(clock): throw for invalid date ( #31356 )
...
Fixes https://github.com/microsoft/playwright/issues/31354
2024-06-18 18:23:55 +02:00
Pavel Feldman
2a7f17d820
chore: fix simulated clock bots ( #31301 )
2024-06-17 09:17:38 -07:00
Max Schmitt
dcf4e4e054
feat: allow folder uploads ( #31165 )
2024-06-12 22:20:18 +02:00
Pavel Feldman
2b257ea963
chore(clock): introduce pauseAt ( #31255 )
2024-06-11 12:51:00 -07:00
Pavel Feldman
6399e8de4e
chore: clock api review ( #31237 )
2024-06-11 09:42:15 -07:00
Pavel Feldman
c516ba0ec8
api(clock): rework api based on the review ( #31137 )
2024-06-04 06:51:35 -07:00
Pavel Feldman
8bfd0eb6e4
chore: introduce clock test mode ( #31110 )
2024-05-31 14:44:26 -07:00
Pavel Feldman
76e977a934
chore: add clock.next() ( #31097 )
2024-05-31 08:09:24 -07:00
Pavel Feldman
170c457a61
feat(timers): a stab at fake timers ( #31075 )
2024-05-30 09:38:27 -07:00
Dmitry Gozman
ba5b460444
chore: move artifacts recording to TestLifecycleInstrumentation ( #30935 )
...
The spirit of this change is reverting #23153 . Since that time, we have
moved tracing and `artifactsDir` lifetime into the test runner, so the
reason for revert is mitigated.
Fixes #30287 , fixes #30718 , fixes #30959 .
2024-05-29 18:05:17 -07:00
Pavel Feldman
6675652269
chore: split client-side instrumentation into sync and async ( #31054 )
2024-05-28 14:29:57 -07:00
cavivie
a7599ad509
feat(api): add host option in launchServer options ( #30999 )
2024-05-27 11:24:23 +02:00
Pavel Feldman
964fe66ccc
chore: hint at unroute for handle errors ( #30949 )
2024-05-22 08:54:19 -07:00
Pavel Feldman
e7a11c0ca2
fix: propagate close reason to api context ( #30945 )
2024-05-21 18:05:58 -07:00
Yury Semikhatsky
042896472b
fix: route.continue should not change multipart form data body ( #30863 )
...
The bug was fixed in https://github.com/microsoft/playwright/pull/30734 .
This PR adds a test and updates interception logic to not send post data
when it is not modified.
Fixes https://github.com/microsoft/playwright/issues/30788
2024-05-20 16:36:57 -07:00
Yury Semikhatsky
fb319e6d3d
fix: match client step and server action by explicit stepId ( #30641 )
...
Matching bu `apiName@wallTime` fails when two actions start at the same
time, e.g. two parallel api requests. Moreover, it results in trace
actions that have parent set to themselves, which in turn causes
infinite loop in the trace viewer. To avoid this problems we write
stepId explicitly to the library trace and use those step ids to find
corresponding test runner steps.
The stepId is passed via zone in case of expect, because the protocol
step is quite deep in the call chain after or explicitly in case of API
call steps created by the test runner instrumentation.
2024-05-14 12:10:46 -07:00
Dmitry Gozman
776b04e5ea
feat: APIRequestContext dispose reason ( #30765 )
...
Similarly to page.close, we pass test-runner specific reason to
facilitate better error messages.
```
1) a.test.ts:10:11 › test
Error: apiRequestContext.fetch: Fixture { request } from beforeAll cannot be reused in a test.
- Recommended fix: use a separate { request } in the test.
- Alternatively, manually create APIRequestContext in beforeAll and dispose it in afterAll.
See https://playwright.dev/docs/api-testing#sending-api-requests-from-ui-tests for more details.
9 |
10 | test('test', async () => {
> 11 | await context.fetch('http://example.com ');
| ^
12 | });
13 |
```
Closes #29260 .
2024-05-13 18:51:30 -07:00
Yury Semikhatsky
64b4ac1732
fix(electron): record har file ( #30748 )
...
Fixes https://github.com/microsoft/playwright/issues/30747
2024-05-10 15:32:01 -07:00
Yury Semikhatsky
ff35f651e6
chore: delete expired location handler from client map ( #30574 )
2024-05-01 13:04:21 -07:00