171 Commits

Author SHA1 Message Date
Dmitry Gozman
48db1b1663
fix(ui mode): allow --updateSnapshots (#31584)
Fixes #31408.
2024-07-08 01:08:57 -07: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
7b27fc3916
chore: pass outputDir to uimode (#30941)
Fixes https://github.com/microsoft/playwright/issues/30886
2024-05-21 14:36:31 -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
Dmitry Gozman
4ad94c1a8c
chore: print friendly localhost address from http server (#30853) 2024-05-17 08:55:12 -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
Yury Semikhatsky
873f3a03ac
chore(trace): add context create event for test runner (#30697)
Adding metadata event to the test.trace to simplify time computation
logic.
2024-05-14 09:00:33 -07:00
Rui Figueira
cf3ff6531a
chore: make NodeSnapshot type recursive and more (#30619)
Also, deviceDescriptors are now imported with ESM import instead of require()
2024-05-08 11:08:40 -07:00
Max Schmitt
a467312731
fix(snapshotter): remove noscript when javaScriptEnabled is undefined (#30355) 2024-04-12 20:26:52 +02:00
Pavel Feldman
8ee286b366
chore: migrate to the testserver.initialize (#30226) 2024-04-03 12:50:56 -07:00
Max Schmitt
43745210a5
fix(trace-viewer): exit if given trace.zip does not exist (#30222) 2024-04-03 18:47:03 +02:00
Pavel Feldman
d7710f0c3e
chore: do not exit UI mode upon page reload (#30135) 2024-03-26 15:49:44 -07:00
Pavel Feldman
ee9432b9da
chore: send test params over the wire in ui mode (#30046) 2024-03-22 13:49:28 -07:00
Dmitry Gozman
6f360f7207
feat(trace): do not record events that are not used in the viewer (#30030)
This is especially useful for network events that are already in the
har, but also get into the trace.
2024-03-20 21:01:17 -07:00
Pavel Feldman
0a22a86e2e
chore: prepare to reuse test server from ui mode (5) (#30005) 2024-03-19 14:08:21 -07:00
Pavel Feldman
54aca430b0
chore: prepare to reuse test server from ui mode (4) (#29995) 2024-03-19 13:00:49 -07:00
Pavel Feldman
6faadf5160
chore: prepare to reuse test server from ui mode (#29965) 2024-03-18 09:50:11 -07:00
Max Schmitt
498b8bb269
fix(tracing): do not serialise out-of-process Buffers (#29425) 2024-02-12 21:03:38 +01:00
Max Schmitt
47f8ba2a04
feat(electron): expose ElectronApplication console events (#29322)
Fixes https://github.com/microsoft/playwright/issues/5905
2024-02-05 21:30:54 +01:00
Pavel Feldman
aff6cf3c83
chore: extract ws server util (#29247) 2024-01-30 14:36:51 -08:00
Max Schmitt
4a45724633
fix: open 0.0.0.0 as localhost (#29054)
Fixes https://github.com/microsoft/playwright/issues/29047
2024-01-18 22:21:49 +01:00
Dmitry Gozman
48317af1cc
feat(trace): preserve noscript when javascript is disabled (#28971)
Closes #27504, closes #27532.
2024-01-12 12:11:39 -08:00
Dmitry Gozman
d587435efa
feat(trace): show target point for raw mouse apis (#28459)
Fixes #27931.
2023-12-07 06:27:49 -08:00
Pavel Feldman
022b36332d
chore: do not add to the internal action logs (#28365)
Fixes https://github.com/microsoft/playwright/issues/28319
2023-11-27 16:43:47 -08:00
Max Schmitt
326c9785b4
fix(trace-viewer): keep searchParams on / redirect (#27956)
Relates to https://github.com/microsoft/playwright/issues/27952.

Might help future users too.
2023-11-03 17:38:55 +01:00
Pavel Feldman
0f2de59b7c
chore: remove graceful browser.close cleanup (#27916) 2023-11-01 20:17:10 -07:00
Pavel Feldman
778047facc
chore: stream trace viewer logs (#27807) 2023-10-26 11:15:43 -07:00
Pavel Feldman
a54dbfdadf
chore: plumb the target close reason when test fails (#27640) 2023-10-16 20:32:13 -07:00
Jim Hays
dcc8dcca73
Fix various typos (Fixes #27396) (#27391)
Fixes https://github.com/microsoft/playwright/issues/27396
2023-10-04 19:56:42 -07:00
Dmitry Gozman
9a5356f93b
fix(snapshot): invalidate style sheet upon CSSGroupingRule changes (#27296)
Previously, snapshotter listened to CSSStyleSheet modifications, but one
can also modify the list of rules inside CSSGroupingRule.

Fixes #27288.
2023-09-25 14:34:17 -07:00
Dmitry Gozman
2af7d672ef
fix(tracing): bump trace version to V5, migrate V4 traces to consoleMessage.args (#27162)
This moves the fix in #27095 from `modernize` to `appendEvent`. The
reason is that `trace V4` is used both for older traces that do not have
`consoleMessage.args` and the new ones with `args`. Since we do not call
`modernize` for traces of the same version, the original fix does not
help in this case.

Fixes #27144.
2023-09-19 16:21:09 -07:00
Dmitry Gozman
a26f568b36
fix(tracing): support old traces with consoleMessage.args (#27095)
Fixes #27072.
2023-09-14 17:07:29 -07:00
Max Schmitt
6bbc09c96c
chore: show channel name in trace viewer metadata (#26987)
Fixes https://github.com/microsoft/playwright/issues/26986
2023-09-11 23:06:56 +02:00
Max Schmitt
d79dad09e8
fix(ui-mode/tv): do not open new tab on macOS (#26877)
Fixes https://github.com/microsoft/playwright/issues/9434
2023-09-06 22:57:29 +02:00
Dmitry Gozman
740472ce8f
fix(trace viewer): retain currentSrc of all images (#26841)
When `<source>` or `srcset=` are involved, the actual image src is
determinted at runtime based on factors like `devicePixelRatio` and
media queries that depend on width/height.

Since these factors may differ in the Trace Viewer itself, we should
preserve the `currentSrc`, use it as an actual `src`, and disable
various `<source>` and `srcset=`.
2023-09-05 12:48:07 -07:00
Dmitry Gozman
741c649d56
fix(trace viewer): make sure target inside shadow dom is highlighted (#26823)
References #24532.
2023-08-31 12:46:49 -07:00
Pavel Feldman
fd31f5bc50
chore: fix har date types (#26783) 2023-08-30 12:40:46 -07:00
Pavel Feldman
99b8ca2be2
chore: flush har when recording tracing (#26746) 2023-08-28 17:44:48 -07:00
Pavel Feldman
0ecd561db2
chore: improve network panel rendering (#26708) 2023-08-25 12:10:28 -07:00
Pavel Feldman
46e33cd384
feat: allow installing browsers from ui (#26628) 2023-08-23 12:26:11 -07:00
Pavel Feldman
f83d81956d
chore: make console stream live in ui mode (#26562) 2023-08-21 10:59:37 -07:00
Marcin Strzyz
192b697488
chore: remove old webpack folder structure (#26560) 2023-08-19 16:16:44 -07:00
Pavel Feldman
09bb866333
chore: format console message from page (#26555) 2023-08-19 16:13:42 -07:00
Max Schmitt
1a1ff6c671
chore: move launchApp into separate function (#26499)
https://github.com/microsoft/playwright/pull/26407#discussion_r1290727547
2023-08-16 18:13:40 +02:00
Dmitry Gozman
1754755684
fix(tracing): make sure resetForReuse does not throw (#24415)
When trace chunk recording is in progress, calling `stop()` throws
`Error: Must stop trace file before stopping tracing`.
2023-07-27 08:06:42 -07:00
Dmitry Gozman
c8f2fc392a
chore: move fs operation in trace recorder to a separate class (#24383) 2023-07-26 17:31:00 -07:00
Dmitry Gozman
b4c412eb1f
chore: replace process.exit with graceful closure (#24242)
Everywhere we call `process.exit()`, we might actually need to
gracefully close all browsers.
2023-07-24 08:29:29 -07:00
Max Schmitt
1288519915
fix(ui-mode): run teardown handlers with Command + C (#24267)
Fixes https://github.com/microsoft/playwright/issues/23907
2023-07-19 17:50:25 +02:00
Dmitry Gozman
98f3ca05b9
fix(tracing): only access tracing state on the API calls, not inside trace operations (#24212)
References #23387.
2023-07-14 06:19:54 -07:00
Dmitry Gozman
53feeaf270
fix(tracing): avoid trace file name collisions (#24191)
We have been optionally adding `-<number>` in multiple places, and these
might collide in various circumstances, for example: two contexts at the
same time, one of them has the second trace chunk.

References #23387.
2023-07-12 17:20:25 -07:00