Commit graph

1997 commits

Author SHA1 Message Date
Max Schmitt 708def8804
fix(client-certificates): keep ignoreHTTPSErrors false by default (#31760) 2024-07-18 22:37:11 +02:00
Playwright Service 26c9478648
feat(chromium): roll to r1127 (#31755)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2024-07-18 14:46:19 +02:00
Max Schmitt 453e3bdf9d
test: fix client-certificates tests on Windows (#31750) 2024-07-18 13:43:56 +02:00
Dmitry Gozman e78ce8521d
feat(chromium-tip-of-tree): roll to r1241 (#31748)
Closes https://github.com/microsoft/playwright/pull/31650
Closes https://github.com/microsoft/playwright/pull/31705
Relates https://github.com/microsoft/playwright/issues/31747
2024-07-18 12:11:03 +02:00
Dmitry Gozman 6491e5b415
chore: deprecate/remove noWaitAfter from some actions (#31739)
The following actions keep `noWaitAfter` option: `click`, `selectOption`
and `press`.

All other actions that used to have `noWaitAfter` now behave like it was
set to true, not waiting for follow-up navigations. In the docs, this
option is marked as completely ignored.

A small logic change was made to compensate for this behavior: when
waiting for the `hitTargetInterceptor`, we now race it against
navigations to avoid stalling when navigation stalls. Previously,
waiting for the interceptor was disabled when `noWaitAfter` was passed,
and since it's impossible to pass this option now, we mitigate by never
stalling instead.

Fixes #31469.
2024-07-18 00:19:08 -07:00
Matt Kleinsmith e06481a332
fix(recorder): address custom context menus (#31634) 2024-07-17 11:45:48 -07:00
Max Schmitt e11c0c0cbb
fix(connect): annotate internal api calls correctly (#31715) 2024-07-17 09:00:47 +02:00
Yury Semikhatsky 8021312c99
chore: enable notification permission tests in WebKit (#31699)
The Notifications API has been supported in WebKit since 2022, enable
related permission and tests.
2024-07-16 09:44:38 -07:00
Max Schmitt 7ce9b7e56b
fix(setInputFiles): throw when uploading file in directory upload (#31706) 2024-07-16 15:55:35 +02:00
Ismael Onilearan 0aa2f06f68
fix: add 'window-management' to chromium browser (#31687) 2024-07-15 14:34:57 -07:00
Dmitry Gozman 6ee8f1de2d
Revert "chore: move artifacts recording to TestLifecycleInstrumentation (#30935)" (#31686)
This reverts commit ba5b460444.
2024-07-15 07:01:51 -07:00
Dmitry Gozman 1686e5174d
chore: allow evaluating Error objects (#31691)
Previously, Error objects were replaced with strings.
Now, Error objects are reconstructed back from the serialized value.
2024-07-15 05:47:40 -07:00
Dmitry Gozman 074cc7d467
Revert "feat(trace): record trace upon browser closure (#31563)" (#31677)
This reverts commit bc27ca225e. Considered
too risky.
2024-07-15 01:08:51 -07:00
Yury Semikhatsky 1b4d9003c6
fix(har): ignore boundary when matching multipart/form-data body (#31672)
Fixes https://github.com/microsoft/playwright/issues/31495
2024-07-12 16:59:48 -07:00
Max Schmitt 459b762565
chore: remove unused kTestSdkObjects (#31665) 2024-07-12 11:56:16 -07:00
Pavel Feldman 297143885a
fix(clock): ensure Date.now() is an integer (#31648)
Fixes https://github.com/microsoft/playwright/issues/31644
2024-07-12 11:44:25 -07:00
Max Schmitt 3127571b24
Revert "fix(chromium): pass --enable-gpu when running headless (#30937)"
This reverts commit d0b052e1e0.
2024-07-12 20:12:56 +02: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 229000501e
chore: introduce helpers for non-stalling eval on page/context (#31658) 2024-07-12 02:26:16 -07:00
Playwright Service 2441c765b1
feat(chromium): roll to r1126 (#31649)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2024-07-12 00:03:29 +02:00
Pavel Feldman 77e50635ee
chore: fix build warnings (#31616) 2024-07-11 14:12:59 +02:00
Max Schmitt 89eef55dc7
chore: use own socks5 server for tests (#31639) 2024-07-11 14:12:48 +02:00
Playwright Service 2b77ed4d7a
feat(firefox): roll to r1457 (#31633)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2024-07-11 07:44:48 +02:00
Matvey Chernyshov ba62f83454
chore: add android keys for channels switching (#31619) 2024-07-10 13:15:45 -07:00
Stanislav Grishaev ce2b138eeb
chore: add iPhone 15 device family (#31623)
Fixes https://github.com/microsoft/playwright/issues/31573

---------

Signed-off-by: Max Schmitt <max@schmitt.mx>
Co-authored-by: Max Schmitt <max@schmitt.mx>
2024-07-10 13:58:36 +02:00
Álvaro Martínez 00131c1e3f
feat(trace-viewer): display text attachments in ui mode (#31215) 2024-07-08 11:16:14 -07:00
Dmitry Gozman 21c4531618
fix(selector generator): do not reparent to invisible ancestor (#31590)
Fixes #31335.
2024-07-08 09:07:25 -07:00
Dmitry Gozman 48db1b1663
fix(ui mode): allow --updateSnapshots (#31584)
Fixes #31408.
2024-07-08 01:08:57 -07: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
Nicolas Le Cam 9caf3b5f72
chore: Remove obsolete Chromium enabled features (#31513) 2024-07-02 09:10:42 -07:00
Max Schmitt 9dc7e40084
chore(electron): don't swallow close errors (#31509) 2024-07-01 22:00:03 +02:00
4ydx 4089f4593b
fix(codgen): assertValue works with disabled select (#31315) 2024-06-28 13:04:59 -07: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
Pavel Feldman c9e673c6dc
fix(utility): create utility world when web security is disabled (#31458)
Reverts previous attempt at #31096

Fixes: https://github.com/microsoft/playwright/issues/31431
Fixes: https://github.com/microsoft/playwright/issues/31442
2024-06-27 09:29:20 -07:00
Playwright Service 87785d6092
feat(chromium): roll to r1125 (#31467)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2024-06-27 17:01:16 +02:00
Playwright Service 41b185d643
feat(webkit): roll to r2038 (#31441) 2024-06-26 09:20:28 -07:00
Playwright Service 976373ed2c
feat(chromium-tip-of-tree): roll to r1234 (#31418) 2024-06-26 16:51:57 +02:00
Max Schmitt f11ab2f145
chore: enable keepAlive in happy eyeballs http.Agent (#31434) 2024-06-25 19:05:32 +02:00
Yury Semikhatsky 2b12f53332
chore(route): wait for raw headers from browser in case of redirects (#31410)
Redirects are always autoresumed, so the will always receive extra info
with raw headers. We only want to make raw headers available immediately
when there is a route.

Reference https://github.com/microsoft/playwright/issues/31351
2024-06-24 12:25:12 -07:00
Yury Semikhatsky d74ddaebe7
fix: correctly report overridden headers on redirected requests (#31409)
Fixes https://github.com/microsoft/playwright/issues/31351
2024-06-21 17:44:58 -07:00
Playwright Service 42b9e8375a
feat(chromium): roll to r1124 (#31404)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2024-06-21 14:20:01 +02:00
Max Schmitt 6ed3b374a8
fix(electron): allow downloads (#31390) 2024-06-21 00:35:14 +02:00
Playwright Service 0694474fe1
feat(webkit): roll to r2036 (#31387)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2024-06-20 09:52:59 +02: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
Yury Semikhatsky a2b116aa39
fix(trace): ensure har entry _monotonicTime is always start time (#31385)
* Revert harTracer change from
aeba083da0
to make sure that har.Entry._monotonicTime always represents request
start time. The issue from the corresponding report was due to HEAD and
GET request sent for the same URL, that use case is still addressed as
we match by url + method
* Adjust resources monotonic time as well when several contexts are
shown in the trace viewer.

Fixes https://github.com/microsoft/playwright/issues/31133
2024-06-19 15:06:20 -07:00
Dmitry Gozman ac90a47b73
fix(click): do not retarget <a> to the parent <label> (#31368)
Fixes #31359.
2024-06-18 12:12:19 -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
Max Schmitt c6aab05bd5
devops: make Android driver compile (#31360)
Fixes https://github.com/microsoft/playwright/issues/31355

All changes were done with the Android Studio upgrade assistant. It
updates it to the latest Gradle to make it compatible with recent Java
while keeping the `targetSdkVersion` unchanged.
2024-06-18 18:23:29 +02:00
Max Schmitt f05b4daa2f
fix(clock): under reused context (#31357)
We uninstall all the setInitScript but forgot to mark `installed` as
`false`.

Fixes https://github.com/microsoft/playwright/issues/31353
2024-06-18 18:21:33 +02:00
Yury Semikhatsky 9e6772818e
chore: cache normalized whitespaces in recorder (#31349)
Reference: https://github.com/microsoft/playwright/issues/31254

On the web page from the bug it reduces time to compute selectors by 8x:

**Before:**
<img width="549" alt="before"
src="https://github.com/microsoft/playwright/assets/9798949/f4482860-29d5-4643-92ab-b360a702f232">

**After:**
<img width="580" alt="after"
src="https://github.com/microsoft/playwright/assets/9798949/b6aca6a1-9306-4041-9042-d504dce1c33a">
2024-06-17 18:20:15 -07:00
Yury Semikhatsky 5443b66636
fix(codegen): trim alt selectors to 80 chars (#31346)
Fixes https://github.com/microsoft/playwright/issues/31254
2024-06-17 16:32:22 -07:00
Pavel Feldman 2a7f17d820
chore: fix simulated clock bots (#31301) 2024-06-17 09:17:38 -07:00
Fumiaki MATSUSHIMA 838c572209
fix: select issue in Windows with Edge (#31270) 2024-06-17 10:28:07 +02:00
Max Schmitt a9200be0af
fix(screenshotter): only wait for for document.fonts.ready on locator frame / page main frame (#31295)
**Investigation**

~~We use `nonStallingEvaluateInExistingContext` as of today, which does
`eval()` inside (from our utilityScript) which breaks for some sites. It
causes a hang, since the returned `Promise` of `eval()` hangs. We don't
know as of today why this happens. Without wrapping it ini `eval()` it
does not hang.~~

~~Workaround: Do a plain Runtime.evaluate instead.~~

workaround: Only wait on main frame.

Relates https://github.com/microsoft/playwright/issues/28995 (keeping it
open until they confirm that it helps)
2024-06-14 01:22:14 +02:00
Dmitry Gozman d0b052e1e0
fix(chromium): pass --enable-gpu when running headless (#30937)
Fixes #30585.
2024-06-13 11:27:17 -07:00
Pavel Feldman 897f7449ef
fix(clock): fix pauseAt to arrive at wall time (#31297) 2024-06-13 10:21:00 -07:00
Playwright Service 8ea663aa64
feat(firefox): roll to r1454 (#31288) 2024-06-13 16:19:09 +02:00
Playwright Service e8285369f5
feat(chromium): roll to r1123 (#31289) 2024-06-13 11:28:56 +02:00
Playwright Service a2a6431efd
feat(webkit): roll to r2033 (#31286)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2024-06-13 10:05:49 +02:00
Max Schmitt dcf4e4e054
feat: allow folder uploads (#31165) 2024-06-12 22:20:18 +02:00
Playwright Service 6a7bfe63a1
feat(webkit): roll to r2031 (#31272) 2024-06-12 16:06:47 +02:00
Playwright Service e07b46883d
feat(webkit): roll to r2029 (#31257) 2024-06-11 22:14:30 +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
Yury Semikhatsky c08000b967
feat(chromium): storage-access permission (#31239)
Fixes https://github.com/microsoft/playwright/issues/31227
2024-06-11 09:18:45 -07:00
Pavel Feldman e280d0bd35
chore(clock): split wall and monotonic time (#31198) 2024-06-09 14:50:50 -07:00
Pavel Feldman dd3a41287e
chore: simplify doTick (#31196) 2024-06-06 19:26:30 -07:00
Pavel Feldman 826343b8a0
chore: rename fakeTimers to clock (#31193) 2024-06-06 15:56:13 -07:00
Playwright Service e259f802d6
feat(chromium): roll to r1122 (#31188)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2024-06-06 20:02:58 +02:00
Yury Semikhatsky fc6fcc2118
chore: remove same site hack for libsoup on the client (#31192) 2024-06-06 08:55:38 -07:00
Pavel Feldman 384eed65ea
chore: organize fake timers (#31156) 2024-06-05 09:25:12 -07:00
Max Schmitt 9a536b0a56
fix: add libicu74 dependency to webkit Ubuntu 24.04 (#31152) 2024-06-04 21:48:44 +02:00
Darío Kondratiuk 76b25e84cc
docs: Improve clock doc (#31147) 2024-06-04 18:48:56 +02:00
Pavel Feldman c516ba0ec8
api(clock): rework api based on the review (#31137) 2024-06-04 06:51:35 -07:00
Max Schmitt 2c6fd722dd
feat: support Ubuntu 24.04 (#30826) 2024-06-03 12:47:16 +02:00
Pavel Feldman 8bfd0eb6e4
chore: introduce clock test mode (#31110) 2024-05-31 14:44:26 -07:00
Joe-Hendley afa0bf2247
feat: increase length of printed html tags (#31105)
resolves https://github.com/microsoft/playwright/issues/30977 by
increasing the printed length of HTML tags from 50 -> 500 as suggested
by @dgozman
2024-05-31 10:45:56 -07:00
Pavel Feldman 76e977a934
chore: add clock.next() (#31097) 2024-05-31 08:09:24 -07:00
Pavel Feldman f17d0440a7
chore: attempt at fixing double init scripts (#31096) 2024-05-30 15:38:10 -07:00
Yury Semikhatsky 6067b78f88
chore: http credentials send immeidately/unauthorized enum (#31076)
Reference https://github.com/microsoft/playwright-internal/issues/205
Reference https://github.com/microsoft/playwright/issues/30534
2024-05-30 10:19:56 -07:00
Pavel Feldman 170c457a61
feat(timers): a stab at fake timers (#31075) 2024-05-30 09:38:27 -07:00
Playwright Service a1db91040e
feat(chromium): roll to r1121 (#31090)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2024-05-30 17:50:22 +02: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
Yury Semikhatsky f93da40925
feat(webkit): roll to r2014 (#31074)
Closes https://github.com/microsoft/playwright/pull/31059
Closes https://github.com/microsoft/playwright/pull/31012

Reference https://github.com/microsoft/playwright-browsers/issues/795
2024-05-29 17:20:38 -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
Dmitry Gozman c906448fe2
fix(recorder): do not ignore signals except for navigation (#30994)
When a signal arrives late enough, after the last action was committed
in 5 seconds, we should still account for it. This includes downloads,
popups and dialogs, but not navigations.

Exposed by a flaky test "should record open in a new tab with url".
2024-05-23 17:40:39 -07:00
Playwright Service 20a23b3485
feat(chromium): roll to r1120 (#30980)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2024-05-23 14:53:48 +02:00
Dmitry Gozman eed6a10f3f
fix(tracing): speed up trace recording (#30946)
This includes two major changes:
- reuse `SerializedFS` for live test runner tracing;
- merge scheduled `appendFile` operations into a single `fs` call.

In some cases, this improves performance of UI mode by 61% and
performance of `trace: on` mode by 38%. Note that performance
improvement on the average test will not be as noticeable.

References #30875, #30635.
2024-05-22 15:19:32 -07: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
Pavel Feldman 7b27fc3916
chore: pass outputDir to uimode (#30941)
Fixes https://github.com/microsoft/playwright/issues/30886
2024-05-21 14:36:31 -07:00
Yury Semikhatsky 148d759a4c
fix(chromium): do not fetch intercepted request body from network (#30938)
Fixes https://github.com/microsoft/playwright/issues/30760
2024-05-21 12:49:47 -07:00
Joel Einbinder d0644f5444
fix(electron): flaky startup if stderr comes in too fast (#30855)
Chromium's `DevTools listening on` message sometimes arrives before
Playwright is finished connecting to Node. Without this patch, it would
miss the message and fail to connect.
2024-05-21 12:15:05 -07:00
Dmitry Gozman 6290af3a08
feat(reporters): align and document environment variables (#30912)
- Documents `PLAYWRIGHT_FORCE_TTY` and `FORCE_COLOR` across terminal
reporters.
- New `PLAYWRIGHT_LIST_PRINT_STEPS`. Removes undocumented test-only
`PW_TEST_DEBUG_REPORTERS_PRINT_STEPS`.
- Replaces `PLAYWRIGHT_HTML_REPORT` with `PLAYWRIGHT_HTML_OUTPUT_DIR`
and `PW_TEST_HTML_REPORT_OPEN` with `PLAYWRIGHT_HTML_OPEN` for
consistency, supports older versions for backwards compatibility.
- New `PLAYWRIGHT_HTML_HOST`, `PLAYWRIGHT_HTML_PORT` and
`PLAYWRIGHT_HTML_ATTACHMENTS_BASE_URL`.
- New `PLAYWRIGHT_JUNIT_STRIP_ANSI` and
`PLAYWRIGHT_JUNIT_INCLUDE_PROJECT_IN_TEST_NAME`.
- Removes `PW_HTML_REPORT` that was set for unknown reason.
2024-05-21 10:46:52 -07:00
Max Schmitt a93ad3dade
fix(fetch): allow UTF-8 in Location header (#30904) 2024-05-21 09:15:33 +02: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
Lukas Bockstaller 437b14a903
fix: relative url path for ui mode (#29924)
This is a follow up #29564 

I did a deep dive on a redirect issue I observed in my infrastructure
and originally attributed to some configuration mistakes on my part.
I have code hosted on `example.com/code` and use subdomain proxying.
This leads to the uimode being exposed on
`example.com/code/proxy/{{port}}`.

Clicking on the open uimode link shown by vscode redirected with a 302
to `example.com/proxy/{{port}}`

The absolute redirect url overruled the relative path handling reverse
proxies rely on.

This PR turns the absolute into a relative url to avoid this issue.
2024-05-20 10:18:08 -07:00