Commit graph

480 commits

Author SHA1 Message Date
Pavel Feldman 9d86bc5336
fix(dupe): render dupe test error indicator (#32303)
Fixes https://github.com/microsoft/playwright/issues/32093
2024-08-23 14:33:37 -07:00
Simon Knott 3fb33e7144
chore(ui): decouple TestServerConnection from websocket transport (#32274)
Preparation for https://github.com/microsoft/playwright/issues/32076.
2024-08-23 14:58:34 +02:00
Simon Knott 850436c656
chore(ui): move TeleSuiteUpdater into testIsomorphic (#32273)
Preparation for https://github.com/microsoft/playwright/issues/32076.
2024-08-22 17:29:10 +02:00
Simon Knott b599335404
chore(ui): enable react/recommended lint rules (#32214)
Closes https://github.com/microsoft/playwright/issues/32159. I
originally set out to enable Strict Mode for our React UI, but found a
way better thing: Enabling the lint rules we had already installed!

`eslint-plugin-react` is already in of our `package.json`, and this PR
enables it and fixes some of the reported issues. Most of them are
around the `key` prop which is mostly about performance, but there's
also fixes for misspelled `data-testid` props.
2024-08-20 14:16:28 +02:00
Kuba Janik f7e0bd3098
feat(ui-mode): add font preview to network tab (#32209)
Resolves https://github.com/microsoft/playwright/issues/32218

Currently, fonts are displayed as a raw binary file which does not give
any information to the users.
I replaced it with a simple font preview similar to the one found in the
dev tools of web browsers.
It is not a major feature but I think it is a nice addition and it might
be useful to somebody.

<img width="1043" alt="Screenshot 2024-08-17 at 18 33 46"
src="https://github.com/user-attachments/assets/a6cc7b57-7ea8-4a54-869d-57a44712597b">


https://github.com/user-attachments/assets/e52d9a72-fb2c-43c7-bfee-3d6d6edc6b6a
2024-08-20 08:28:02 +02:00
Dmitry Gozman 5271c26af1
fix(trace viewer): do not serve resources with x-unknown content type (#32219)
`x-unknown` is used as a placeholder for "no content-type" in the har.
We should not send it to the browser, because it is meaningfully
different from not sending `Content-Type` header. For example, Chromium
refuses to interpret stylesheets served with `x-unknown` content type.

Fixes https://github.com/microsoft/playwright-java/issues/1651.
2024-08-19 10:29:51 -07:00
Rui Figueira b2ccfc3d01
chore(trace-viewer): support opening a source location in embedded trace viewer (#32175)
Related: https://github.com/microsoft/playwright-vscode/pull/513
2024-08-15 14:13:11 -07:00
Simon Knott c8cc4f9c8b
chore(ui): update to react 18 (#32079)
Part of https://github.com/microsoft/playwright/issues/31863. Updates
most of our React usage to React 18. `recorder` doesn't seem to like it
yet. I suspect that some of our code isn't compatible with concurrent
mode, i've investigated that in
https://github.com/microsoft/playwright/pull/32101.

---------

Signed-off-by: Simon Knott <info@simonknott.de>
Co-authored-by: Max Schmitt <max@schmitt.mx>
2024-08-12 13:50:11 +02:00
Dmitry Gozman 44445e30e5
fix(ui mode): make sure key for attachment view is unique (#32084)
Fixes #32052.
2024-08-08 10:57:44 -07:00
Pavel Feldman 80e014f4b6
chore: sources tab render polish (#32055) 2024-08-08 10:53:59 -07:00
Simon Knott 17bb36a7fe
fix(ui): reset higlighted action on keyboard navigation (#32051)
Closes https://github.com/microsoft/playwright/issues/32050

When keyboarding through the action view, the UI continues showing the
hovered action. This makes keyboard nav hard to use.

The fix is to reset the higlighted action on keyboard navigation. This
is what we do when the mouse pointer leaves an action, and what I think
is reasonable.
2024-08-08 10:06:36 +02:00
Kuba Janik 7ec3a93db3
feat(ui-mode): add filters to network tab (#31956) 2024-08-06 14:52:35 -07:00
Max Schmitt 613ccb8d5b
chore(client-certificates): rewrite error for unsupported PFX errors (#32008) 2024-08-05 14:42:29 +02:00
Max Schmitt dbc4bc84d6
fix(trace-viewer): popup snapshot utf-8 support (#32006) 2024-08-05 09:11:31 +02:00
Yury Semikhatsky 5a83fe55bc
chore(trace-viewer): hide status code field for failed request (#31977)
* Hide 'Status Code:' field for interrupted requests that don't have it.
* Clear up previously selected body when showing aborted requests.
* Highlight interrupted requests in red.
2024-08-01 17:26:52 -07:00
Max Schmitt 69561a194a
fix(trace-viewer): make 'hide route actions' work for .NET (#31961) 2024-08-01 21:02:47 +02:00
Dmitry Gozman a541751657
feat(ui mode): linkify attachment names and content (#31960)
- Pass `contentType` to the CodeMirror.
- Support `text/markdown` mode.
- Custom mode for non-supported types that linkifies urls.
2024-08-01 09:27:45 -07:00
Dmitry Gozman bbe252a3d7
fix(ui mode): api review feedback (#31952)
- Hide "Testing Options" as not ready.
- Update SettingsView margins.
- Include `page.route` and similar methods into "Show route actions".
2024-08-01 05:36:19 -07:00
Yury Semikhatsky 47714d6559
feat(ui-mode): add annotations tab (#31945)
<img width="867" alt="image"
src="https://github.com/user-attachments/assets/7d714723-1d3f-49b2-944a-0a476d79aee8">

---------

Signed-off-by: Dmitry Gozman <dgozman@gmail.com>
Co-authored-by: Dmitry Gozman <dgozman@gmail.com>
2024-08-01 03:43:29 -07:00
Yury Semikhatsky 62834e314f
chore(trace-viewer): less bright status code icon (#31940)
<img width="182" alt="image"
src="https://github.com/user-attachments/assets/8b381bcc-46e3-45c7-8fd2-e020436d1bff">

<img width="206" alt="image"
src="https://github.com/user-attachments/assets/4ea02b47-a4da-44f7-9c26-13b05374e89d">

<img width="213" alt="image"
src="https://github.com/user-attachments/assets/38b50e2a-f69c-4a78-abb2-2680453fc5fd">
2024-07-31 17:29:05 -07:00
Yury Semikhatsky 0217defab4
chore(trace-viewer): do not shrink metadata view (#31938)
Avoids the following effect:

![image](https://github.com/user-attachments/assets/694de773-acc0-4266-87f2-eab67a3c7ce2)
2024-07-31 16:37:16 -07:00
Yury Semikhatsky ecd384212d
chore(trace-viewer): copy only file name without line number (#31939)
As discussed in the meeting, copy only file name which is shown in the
same line, do not include highlighted line number.
2024-07-31 15:40:13 -07:00
Dmitry Gozman 7c55b94280
fix(trace): make sure the correct attachment name is used for downloads (#31928)
When two attachments have the same content sha1, we used the first one's
name for the downloaded file, no matter which one the user clicked to
download. Now we pass the name explicitly.

References #31912.
2024-07-31 06:20:36 -07:00
Simon Knott daca1681c0
refactor(ui): in splitview component, move sidebar and main from children into named properties (#31925)
Pulled out from https://github.com/microsoft/playwright/pull/31900

I stumbled over `React.Children`, because it's the first time I saw that
used. https://react.dev/reference/react/Children lists `React.Children`
it as "Legacy" and mentions it's uncommon. Also, the fact that SplitView
only displays its first two children, and all others are silently
discarded, can be a surprise to some.

By separating things out into `sidebar` and `main`, not only do we give
the two elements names (otherwise one needs to remember that sidebar is
always the first child), but we also prevent any "third children" from
being dropped.
2024-07-31 12:48:46 +02:00
Simon Knott 99724d0322
refactor(ui): some react refactorings (#31900)
Addresses https://github.com/microsoft/playwright/issues/31863. This PR
is chonky, but the individual commits should be easy to review. If
they're not, i'm happy to break them out into individual PRs.

There's two main things this does:

1. Remove some unused imports
2. Add a `clsx`-inspired helper function for classname templating

I wasn't able to replace `ReactDOM.render` with `ReactDOM.createRoot`.
This is the new recommended way starting with React 18, and the existing
one is going to be deprecated at some point. But it somehow breaks our
tests, i'll have to investigate that separately.
2024-07-31 12:12:06 +02:00
Dmitry Gozman 64fe245297
fix(trace viewer): attachment download (#31920)
- Update attachments tab margins.
- Make sure to pass `&download` in attachment urls. This makes them
downloadable, regressed in #28727.
- Do not additionally list image diffs as screenshots.

Fixes #31912.
2024-07-31 02:29:14 -07:00
Simon Knott b8b562888e
refactor(ui): synchronize settings via useSyncExternalStore instead of prop drilling (#31911)
Broken out from https://github.com/microsoft/playwright/pull/31900, part
of https://github.com/microsoft/playwright/issues/31863.

Synchronizes different `useSettings` calls via `useSyncExternalStore`.
This saves us from having to drill down settings props everywhere,
without the big refactoring that a `Context` would be.
2024-07-30 17:57:31 +02:00
Simon Knott 8412d973c0
fix(ui): added test in watched file should be run (#31842)
Closes https://github.com/microsoft/playwright/issues/22211

Currently, when the server notifies the UI about changed files, the UI
determines what files to re-run based on an old test list. By listing
tests before that, we make sure that the test list is up-to-date, and
that added tests are included in the next run.

I've also removed the `listChanged` event as discussed in the team sync.
The event isn't used anywhere and fires in exactly the same cases where
`testFilesChanged` fired, so i've folded them into one another. This allowed simplifying `Watcher`.
2024-07-30 14:17:41 +02:00
Dmitry Gozman f232507afa
feat(ui mode): ui updates (#31894)
- Update copy to clipboard button.
- Reveal test source in the Source tab instead of external editor.
- New button to reveal in the external editor in the Source tab.
- Move the Pick Locator button next to snapshot tabs.
2024-07-29 07:32:13 -07:00
Dmitry Gozman a41cebc1c9
feat(ui mode): introduce Testing Options and Settings (#31841)
Testing Options control tests, while Settings are UI mode settings.

<img width="298" alt="Screenshot 2024-07-25 at 10 54 22 AM"
src="https://github.com/user-attachments/assets/7b6f5fff-687b-48d1-80b3-d1e6f2a257e8">


These sections are separately expandable, collapsed by default.

<img width="294" alt="Screenshot 2024-07-24 at 2 06 25 PM"
src="https://github.com/user-attachments/assets/5d35ac8c-9289-46ca-aaa2-ebc5419fa0c4">

References #31520.

---------

Signed-off-by: Simon Knott <info@simonknott.de>
Co-authored-by: Simon Knott <info@simonknott.de>
2024-07-25 11:23:43 -07:00
Simon Knott b06a95dd75
feat(trace viewer): show baseURL in Metadata pane (#31852)
Resolves https://github.com/microsoft/playwright/issues/31847 by adding
playwright config's `baseURL` value to the `context-options` trace
event, and showing that in the Trace Viewer.

Because the added property is optional, I didn't increment the trace
format version.

I've also considered pulling the `baseURL` from the existing
`browser.newContext` step to get around modifying the trace format, but
that felt pretty hacky.


https://github.com/user-attachments/assets/ecaef747-727d-4937-9ca3-1605ca9907b9

---------

Signed-off-by: Simon Knott <info@simonknott.de>
Co-authored-by: Dmitry Gozman <dgozman@gmail.com>
2024-07-25 17:14:46 +02:00
Simon Knott 4d4ed2a5c4
chore: enforce single quotes in JSX (#31855)
Discovered in
https://github.com/microsoft/playwright/pull/31852#discussion_r1691133106:
We're not enforcing single quotes for JSX, and it shows! We need to
start enforcing it to prevent even greater damage from being done ;D
2024-07-25 13:06:26 +02:00
Simon Knott bbe5df3f5f
fix(ui): when --grep is used, UI should only show selected tests (#31815)
Closes https://github.com/microsoft/playwright/issues/31617.
2024-07-23 15:29:08 +02:00
Dmitry Gozman d87cb7a303
feat(trace viewer): allow hiding route actions (#31726)
Adds a new settings tab above the actions list.

<img width="307" alt="settings tab"
src="https://github.com/user-attachments/assets/792212b7-e2fd-4a5c-8878-654e2e060505">

Toggling the "Show route actions" checkbox hides all route calls:
`continue`, `fulfill`, `fallback`, `abort` and `fetch`.

References #30970.
2024-07-22 11:34:34 -07:00
Yury Semikhatsky bef87849e3
chore: show error when opening newer trace with old viewer (#31781)
Reference: https://github.com/microsoft/playwright-java/issues/1617
2024-07-22 08:16:25 -07:00
Dmitry Gozman b535139b32
fix(trace viewer): library-only trace should not merge actions (#31768)
Without `wallTime`, actions are matched by `actionName:undefined` and
all actions with the same are merged.

Fixes #31764.
2024-07-19 11:18:22 -07:00
Max Schmitt 6dbc7b54e8
feat(ui-mode): highlight console message in timeline on hover (#31756) 2024-07-18 16:39:40 +02:00
Max Schmitt d463d1f285
fix(snapshotter): allow rendering of & in STYLE tags (#31627)
Fixes https://github.com/microsoft/playwright/issues/31607
2024-07-15 17:33:22 +02:00
Max Schmitt a3b0f0cba8
chore: address deprecated Vite warnings (#31618) 2024-07-10 22:32:08 +02:00
Dmitry Gozman a1f82b0bb6
fix(trace): do not corrupt test runner actions when no library trace is present (#31564)
Recent logic that matches either by `stepId` or by `apiName`+`wallTime`
did not account for "no library trace" scenario.
2024-07-10 09:12:06 -07:00
Pavel Feldman f374f8db38
chore: follow up to the attachments preview change (#31598) 2024-07-09 09:58:59 -07:00
Max Schmitt 0c11d6ed80
feat(trace-viewer): allow pasting traces (#31608) 2024-07-09 13:36:35 +02:00
Álvaro Martínez 00131c1e3f
feat(trace-viewer): display text attachments in ui mode (#31215) 2024-07-08 11:16:14 -07:00
Max Schmitt 4dfa55d1f1
chore(trace-viewer): move call tab copy button next to the value (#31586) 2024-07-08 10:23:19 +02:00
Dmitry Gozman 48db1b1663
fix(ui mode): allow --updateSnapshots (#31584)
Fixes #31408.
2024-07-08 01:08:57 -07:00
ryanrosello-og e36ebb6ede
feat(trace-viewer) add request urls for actions initiated via APIRequestContext (#31534) 2024-07-04 11:59:56 +02:00
ryanrosello-og 262586a46a
feat(trace-viewer) add copy to clipboard on the Source > Stacktrace tab (#31394) 2024-07-02 09:09:39 -07:00
Rui Figueira 9bc45ea2fc
feature(trace-viewer): embedded mode support PoC (#30885)
Companion PR of https://github.com/microsoft/playwright-vscode/pull/483
2024-06-28 10:36:11 -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
ryanrosello-og ee63843f7d
feat(trace-viewer): add request method/status to the network details tab (#31274) 2024-06-19 09:05:20 -07:00
Carter Sande 701a405bdf
fix(trace-viewer): Rewrite file URIs in snapshots, like blob URIs. (#31113)
This allows snapshots of file:/// pages with external stylesheets,
images, etc to be rendered correctly in the trace viewer. (Otherwise, it
tries to request the file:/// URIs directly and the requests get blocked
by the browser.)

Fixes #31112.
2024-06-10 11:44:52 +02:00
Yury Semikhatsky 9a11be3305
chore(trace-viewer): grid view z-index, source column in resource details (#31094)
New look for multiple contexts:

<img width="585" alt="image"
src="https://github.com/microsoft/playwright/assets/9798949/02dc5f54-0946-40a9-9459-942c4362a32e">
2024-05-30 14:45:33 -07:00
Yury Semikhatsky 4c020c9861
chore(trace-viewer): preserve column widths after showing resource details (#31093)
* Column widths are now stored on in the NetworkPanel context, this way
they are not reset after selecting an empty range (and changing position
of the NetworkGridView in the component tree).
* Column widths values are now preserved if column set changes (e.g.
selecting entries from a single context and then from multiple
contexts).
2024-05-30 12:21:32 -07:00
Rui Figueira f254290ab4
fix(trace-viewer): fix snapshot.html (#31033)
Actual path to get trace contexts is /contexts, not /context
2024-05-28 13:14:22 -07:00
Pavel Feldman bff1e41add
chore: do not render post data if there is none (#31008)
Fixes https://github.com/microsoft/playwright/issues/30992
2024-05-24 09:27:49 -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 2734a05342
feat(trace-viewer): show nework request source id (#30810)
<img width="1392" alt="image"
src="https://github.com/microsoft/playwright/assets/9798949/dcfd4d71-4a41-48ac-9f24-2996200f966a">

Fixes https://github.com/microsoft/playwright/issues/28903
2024-05-15 16:29:26 -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
Yury Semikhatsky 00bf7ea815
chore(trace-viewer): more clear classification of trace contexts (#30737) 2024-05-09 17:28:39 -07:00
Yury Semikhatsky a50cd30519
chore: use monotonic time for sorting (#30735)
* Use only monotonicTime for sorting, do not use wallTime for that
* Since test runner and the library can be running on different
machines, those machines may have clocks which are not synchronized. To
avoid problems in such cases we compute delta between test runner and
and library contexts based on a start time of action that exists in both
contexts.
2024-05-09 15:31:23 -07:00
Yury Semikhatsky 1a22e06062
chore: only patch callIds when there are multiple trace files (#30721) 2024-05-09 09:33:16 -07:00
Yury Semikhatsky 7a0c7730e7
fix(trace-viewer): make call ids unique across trace files (#30720) 2024-05-08 17:33:31 -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
Yury Semikhatsky 0164dca302
chore: extract trace modernizer into its own class (#30696) 2024-05-07 11:42:28 -07:00
Dmitry Gozman ab3df111c9
chore: remove TeleTestCase._resultsMap (#30567) 2024-04-26 10:11:01 -07:00
Pavel Feldman ff3d3ae8f2
fix(ui): print config and global setup errors (#30531)
Fixes: https://github.com/microsoft/playwright/issues/30513
2024-04-24 18:54:48 -07:00
Yury Semikhatsky 8c181f7e2b
fix: rebuild project tree from scratch when listing tests (#30407)
Instead of filtering tests assuming there are no two projects with same
name we always rebuild test tree from scratch and restore previos test
results in the list mode.

Fixes https://github.com/microsoft/playwright/issues/30396
2024-04-18 16:49:07 -07:00
Max Schmitt 15b423106f
fix(ui-mode): do not loose run information after writing into testDir (#30312)
Partially reverts https://github.com/microsoft/playwright/pull/30008
that started to reset all test results upon listing tests, including the
test that did just run and triggered re-listing.

https://github.com/microsoft/playwright/issues/30300.
2024-04-10 19:01:51 +02:00
Pavel Feldman 8ee286b366
chore: migrate to the testserver.initialize (#30226) 2024-04-03 12:50:56 -07:00
Pavel Feldman 7afd4170ea
chore: opt into stdio forwarding (#30185) 2024-03-30 18:45:10 -07:00
Max Schmitt ffffb81c3b
fix: UI Mode tags without theme applied (#30138)
Trace Viewer theming is override based. By default you should have
something applied - an optional `dark-mode` class might be there too.
2024-03-27 16:46:26 +01:00
Dmitry Gozman dd1eca2a9d
fix(trace viewer): show correct number of pages without screencast (#30124)
Exposed by the flaky "should open two trace files" test.
2024-03-26 10:25:12 -07:00
Max Schmitt 599185dd07
feat(ui-mode): show native tags in test tree (#30092)
This brings up the question that we would show the tag name twice if its
a tag in a title. This would be aligned to how HTML report is doing it.

Fixes https://github.com/microsoft/playwright/issues/29927

---------

Signed-off-by: Max Schmitt <max@schmitt.mx>
Co-authored-by: Dmitry Gozman <dgozman@gmail.com>
2024-03-26 01:06:22 +01:00
Pavel Feldman 7039ad0d11
chore: follow up to the api review for test server (#30097) 2024-03-25 15:42:58 -07:00
Max Schmitt 253a2f9a9c
chore: address UI Mode keyboard shortcut feedback (#30088)
Signed-off-by: Max Schmitt <max@schmitt.mx>
Co-authored-by: Dmitry Gozman <dgozman@gmail.com>
2024-03-25 19:48:20 +01:00
Pavel Feldman ee9432b9da
chore: send test params over the wire in ui mode (#30046) 2024-03-22 13:49:28 -07:00
Pavel Feldman a9fc4de37e
chore: queue run and list commands from ui (#30033) 2024-03-21 14:28:07 -07:00
Pavel Feldman 7ad0a12c23
chore: remove ui mode update globals (#30031) 2024-03-20 21:09:49 -07:00
Pavel Feldman 8a1ff34578
chore: split ui mode view into files (#30029) 2024-03-20 16:00:35 -07:00
Pavel Feldman 48ccc9cbcd
chore: prepare to reuse test server from ui mode (6) (#30008) 2024-03-20 13:43:26 -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
jonghoonpark b929c0d8f7
feat(ui-mode): add key shortcuts for playwright uI test runner (#29868) 2024-03-19 12:36:42 +01:00
Max Schmitt a6d1fb93de
fix(trace-viewer): encode attachment filenames as UTF-8 (#29993)
Fixes https://github.com/microsoft/playwright/issues/29967

Tested in Firefox, Chromium, and Safari. This now leads to "good
attachment names" in Chromium and Safari, for Firefox, it won't produce
attachments, it will open them inline, but this is not a regression, was
before like that already.

See here for the spec:
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Disposition#filename_2

---------

Signed-off-by: Max Schmitt <max@schmitt.mx>
2024-03-18 21:26:45 +01:00
Pavel Feldman ef4438ee99
chore: prepare to reuse test server from ui mode (2) (#29966) 2024-03-18 09:59:02 -07:00
Max Schmitt be465c6a1c
fix(trace-viewer): allow Chrome extension fallback in SW (#29954)
https://github.com/microsoft/playwright/issues/29144
2024-03-15 16:27:07 +01:00
Max Schmitt 3e78426acc
fix(trace-viewer): report upload error as aria-role=alert (#29956)
Turns out NVDA and Narrator work differently. This is a follow-up to
https://github.com/microsoft/playwright/pull/29838 which was not working
in NVDA before - looks like a NVDA bug. Using alert instead.

Relates
https://github.com/microsoft/playwright/issues/29095#issuecomment-1999332067
2024-03-15 16:25:36 +01:00
Pavel Feldman 94348bb3c5
chore: align test tree with vscode (#29864) 2024-03-14 15:44:35 -07:00
Dmitry Gozman 2ce421b27a
fix(trace viewer): synchronize monotonic times between context entries (#29908)
When displaying remote context trace and local test runner trace
together, we should not compare monotonic time between the two.

This change reuses existing logic for merging actions timing to also
update context boundaries and events by the same time delta.

Fixes #29767.
2024-03-12 16:32:58 -07:00
Max Schmitt 84d3308969
chore: limit trace-viewer minimum viewport (#29850)
https://github.com/microsoft/playwright/issues/29100
2024-03-07 22:42:21 +01:00
Max Schmitt 9ca895dea0
fix(trace-viewer): trap focus inside drop-target popup (#29845)
https://github.com/microsoft/playwright/issues/29099
2024-03-07 22:24:21 +01:00
Max Schmitt 591d327eac
chore: trace-viewer a11y fixes (#29838) 2024-03-07 16:02:31 +01:00
Sarkis Matinyan 0c3f60e95e
fix(ui): show stack frames in ui mode (#29560)
#29558, #29500
2024-03-06 12:29:35 -08:00
Pavel Feldman 8bf8091cb1
chore: extract the tele test tree (#29824) 2024-03-05 15:11:56 -08:00
Dmitry Gozman abfd2c4e66
feat(ui mode): text filter should filter by explicit tags (#29821)
Fixes #29815.
2024-03-05 10:58:55 -08:00
Pavel Feldman e314b83e56
chore: iterate towards tele reporter reuse in vscode (2) (#29812) 2024-03-04 19:52:20 -08:00
Pavel Feldman 68284b0505
chore: inject string pool into the tele receiver (#29781) 2024-03-04 08:46:32 -08:00
Pavel Feldman ef924c14e7
chore: do not use project id in telereporter (#29776) 2024-03-01 21:44:08 -08:00
Pavel Feldman bbcc3c1238
chore: remove private config usage from telereporter (#29771) 2024-03-01 13:14:12 -08:00
Lukas Bockstaller bd8d044433
feat(uimode) uses relative paths to establish websocket connection (#29617) 2024-02-26 15:09:24 -08:00
Dmitry Gozman 18ce0fa370
fix(trace viewer): replace blue dot with red dot+warning (#29380)
Also how the explanation on hover.

Fixes #29263.
2024-02-06 08:27:45 -08:00
Max Schmitt 7d64ca4c54
fix(trace viewer): correctly trim locations on Windows (#29321)
Signed-off-by: Max Schmitt <max@schmitt.mx>
Co-authored-by: Dmitry Gozman <dgozman@gmail.com>
2024-02-02 18:18:34 +01:00
Pavel Feldman 020a39860d
chore: polish network panel highlight (#29299)
Fixes https://github.com/microsoft/playwright/issues/29287
2024-02-01 13:44:26 -08:00
Dmitry Gozman cf6549687c
fix(trace viewer): reveal error location when it comes from the test (#29268)
Errors coming from the test runner do not have an associated `action`,
but have a `stack` that we can reveal.
2024-02-01 08:23:07 -08:00
Max Schmitt 36ebdfb441
fix: provisional fix for Trace Viewer source 404 (#29192)
Motivation: Sometimes the files are not available anymore on the Service
Worker side. The Trace Viewer frontend then falls back to `file?path=`
and uses its response, no matter what the response status is.

This patch checks for the response status code before using its
response.

e.g. https://github.com/microsoft/playwright-dotnet/issues/2775 after
some time / and some other reports.

---------

Signed-off-by: Max Schmitt <max@schmitt.mx>
Co-authored-by: Dmitry Gozman <dgozman@gmail.com>
2024-01-27 14:05:15 +01:00
Dmitry Gozman 8e607d509f
fix(recorder): disallow external imports (#29129)
Previously, new `Recorder` instance was given an existing
`InjectedScript`. However, we built a separate source for
`InjectedScript` vs `Recorder`, and both bundles contain their own copy
of all helper modules, e.g. `roleUtils`.

This resulted in two copies of helper modules, which is troublesome for
any module-level globals like a top-level cache. Depending on whether
`Recorder` or `InjectedScript` called into the helper, they would access
the different value of a module global, which lead to bugs.

To prevent this, we force any external dependencies to be imported
through the `InjectedScript.utils`.
2024-01-23 11:29:40 -08:00
Dmitry Gozman 300a0127de
Revert "feat(trace): allow Trace Viewer to include credentials when fetching traces cross-origin (#28502)" (#29024)
This reverts commit 3f3f332060.

References #29019.
2024-01-17 10:40:58 -08: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
Pavel Feldman a0750b7854
chore: network panel polish (#28924) 2024-01-10 15:28:33 -08:00
Pavel Feldman fc5f34369a
chore: only highlight uncaught errors in source (#28772) 2023-12-22 14:19:53 -08:00
Pavel Feldman f5c57d0e98
chore: reuse image diff component in trace/html (#28727)
Fixes https://github.com/microsoft/playwright/issues/28685
2023-12-22 10:17:35 -08:00
Max Schmitt 696237205a
fix(ui-mode): disconnected error styling (#28681)
Fixes https://github.com/microsoft/playwright/issues/28679
Fixes https://github.com/microsoft/playwright/issues/28680
2023-12-18 17:32:57 +01:00
Matt Jennings 3f3f332060
feat(trace): allow Trace Viewer to include credentials when fetching traces cross-origin (#28502)
Add the `'credentials': include` option on the trace fetch so the
browser can include cookies when fetching from a different origin,
assuming the origin returns the correct Access-Control-Allow-Origin and
Access-Control-Allow-Credentials headers.

Fixes #28501
2023-12-14 10:41:01 -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
Dmitry Gozman c7018951e5
fix(trace): title should not wrap over to the timeline (#28496) 2023-12-05 09:21:51 -08:00
Max Schmitt f44ef81af7
fix(snapshot): broken snapshot after use of setInputFiles (#28444) 2023-12-01 09:38:50 -08:00
Max Schmitt 8efa8dbc1d
fix(ui-mode): make UI Mode projects scrollable (#28438)
Fixes https://github.com/microsoft/playwright/issues/28393



https://github.com/microsoft/playwright/assets/17984549/5791e422-f4e6-4202-b66c-b77bbb476c04
2023-11-30 13:26:03 -08:00
Max Schmitt c137b23a6c
fix(trace-viewer): scroll over multiple pages (#28316)
Fixes https://github.com/microsoft/playwright/issues/28208
2023-11-29 11:27:19 -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
Dmitry Gozman 5488c03d7f
chore: make asLocator() always safe (#28207) 2023-11-16 16:31:34 -08:00
Pavel Feldman 2bd7d67adc
chore: render testInfo errors in the Errors tab (#28179)
Fixes https://github.com/microsoft/playwright/issues/28056
2023-11-16 11:37:57 -08:00
Pavel Feldman eeda25c47f
chore(recorder): glue the overlay to the top (#28021) 2023-11-07 12:58:41 -08:00
Dmitry Gozman 810382c074
chore(recorder): more UX fixes for text assertions (#27995) 2023-11-06 16:40:33 -08:00
Dmitry Gozman ffd2e02aa3
feat(recorder): various UX fixes (#27967) 2023-11-04 21:18:27 -07:00
Pavel Feldman e84dd4d708
fix(ui): do not fail on clashing groups (#27943)
Fixes https://github.com/microsoft/playwright/issues/27929
2023-11-02 20:50:08 -07:00
Dmitry Gozman 3dedbced13
feat(recorder): in-page overlay (#27904) 2023-11-01 15:56:49 -07:00
Max Schmitt 08b8181632
chore: make Trace Viewer start page AAA compliant (#27879) 2023-10-31 16:35:13 +01:00
Pavel Feldman 462e70ab82
chore: render sidebar tab selector as drop down (#27844) 2023-10-27 15:31:31 -07:00
Pavel Feldman 4d82d6801f
chore: render full pathname in network panel (#27843)
Fixes #27618
2023-10-27 14:14:24 -07:00
Dmitry Gozman 88f30d1ce2
feat: support firefoxUserPrefs in launchPersistentContext (#27840)
Fixes #27773.
2023-10-27 09:24:41 -07:00
Dmitry Gozman 24deac458b
feat(expect): generate toHaveText (#27824) 2023-10-26 18:49:14 -07:00
Pavel Feldman ff206bd9c1
chore: render time in the trace viewer log (#27825) 2023-10-26 14:45:15 -07:00
Pavel Feldman 778047facc
chore: stream trace viewer logs (#27807) 2023-10-26 11:15:43 -07:00
Pavel Feldman 47733b04fb
chore: do not select after hooks automatically (#27805) 2023-10-25 17:05:06 -07:00
Pavel Feldman 0bb9f7cdf7
feat(ui): show test status in trace view (#27785) 2023-10-24 16:41:40 -07:00
Max Schmitt 5fe77f9a6f
chore: better error for trace viewer over http:// (#27722)
We saw in the past a lot of users reporting issues like this. Maybe a
more readable error helps.

Before they just saw:

```
Uncaught (in promise) TypeError: Cannot read properties of undefined (reading 'register')
  at index.38834ec3.js:1:3775
  at index.38834ec3.js:1:4006
```

Fixes https://github.com/microsoft/playwright/issues/27655
2023-10-23 18:21:19 +02:00
Pavel Feldman f46c889449
chore: fix total progress reporting w/ deps (#27716) 2023-10-19 20:07:47 -07:00
Pavel Feldman d003945a7b
chore(ui): do not watch output folders (#27694) 2023-10-19 15:53:57 -07:00
Pavel Feldman 70dbb9d83a
feat(trace): allow navigating from error to source (#27464) 2023-10-05 14:59:59 -07:00
Pavel Feldman 5a7b405bdb
chore: add console icon titles (#27416)
Fixes https://github.com/microsoft/playwright/issues/27411
2023-10-03 15:52:37 -07:00
Pavel Feldman c7d9ae1c8b
ui(trace): make drawer appear under action list (#27260) 2023-09-22 10:43:44 -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
Pavel Feldman c914d62c69
chore: nicer network grid header (#27102) 2023-09-15 09:16:29 -07:00
Pavel Feldman 699e790f69
chore: fit body in the network panel (#27100) 2023-09-14 17:15:24 -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 ce43ea7d99
chore: roll @zip.js/zip.js to 2.7.29 (#27047) 2023-09-13 18:39:10 +02:00
Pavel Feldman 97b3625049
chore: polish ui mode for better mac appearance (#27008) 2023-09-11 19:01:00 -07:00
Pavel Feldman 7c838653d6
chore: fix the split view, reset window on timeline click (#27007) 2023-09-11 18:16:02 -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