142 Commits

Author SHA1 Message Date
Max Schmitt
4c31a8289f
feat(trace-viewer): add network requests 'copy as cURL' button (#32627) 2024-09-18 14:35:11 +02:00
Pavel Feldman
9a313eecc9
chore: roll expect and move it to third party (#32458) 2024-09-09 13:12:20 -07:00
Simon Knott
3fe1263643
feat(trace viewer): show Screenshot instead of Snapshot (#32248)
Closes https://github.com/microsoft/playwright/issues/23964.

Trace snapshots are a best-effort snapshots of the browser DOM, but we
can't guarantee them to be exactly what the browser showed. One example
of this is `canvas` elements, where you just can't see their contents.
That makes snapshots useful, but not perfect.

For those cases where the snapshot doesn't show everything, this PR
introduces a new setting to show a screenshot instead. You won't be able
to scroll or inspect the DOM or select a locator anymore. But if the
snapshot was missing something, or displaying something wrong, you can
now check the screenshot instead.
2024-09-06 16:24:33 +02:00
Dmitry Gozman
d7393f998e
chore: simplify settings management in UI mode (#32440) 2024-09-04 01:05:07 -07:00
Pavel Feldman
fc4d8f2bb6
chore: roll codicon (#32234) 2024-08-20 10:56:46 -07: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
Rui Figueira
3d69c591d3
fix(web): use currentTheme instead of settings in toggleTheme (#32104) 2024-08-12 13:19:30 -07:00
Max Schmitt
0d575b4ef6
chore: less 'as any' in html-reporter (#32117)
Signed-off-by: Max Schmitt <max@schmitt.mx>
Co-authored-by: Simon Knott <info@simonknott.de>
2024-08-12 15:17:42 +02: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
Pavel Feldman
79ca3f28c5
chore: simplify useSetting to not rely on useSyncExternalStore (#32018) 2024-08-06 14:30:15 -07:00
Yury Semikhatsky
5a80ddfaf9
chore: remove bright counter from sidebar tab selector (#31975)
Removing the following icon:

![image](https://github.com/user-attachments/assets/d2de2ed0-f66e-4452-8763-aad1b6e7bb79)

HTML `options` element cannot be styled, so just removing the counter in
sidebar mode:

<img width="348" alt="image"
src="https://github.com/user-attachments/assets/d636dca2-5007-41f7-866e-3a0f604d46fc">
2024-08-01 16:18:10 -07: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
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
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
Max Schmitt
44ce6096bb
feat(html-reporter): add Playwright logo as Favicon (#31908) 2024-07-30 12:02:06 +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
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
Max Schmitt
6dbc7b54e8
feat(ui-mode): highlight console message in timeline on hover (#31756) 2024-07-18 16:39:40 +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
Yury Semikhatsky
dcaded5255
chore(trace-viewer): format negative duration as - (#30840) 2024-05-17 09:32:57 -07:00
Pavel Feldman
8a1ff34578
chore: split ui mode view into files (#30029) 2024-03-20 16:00:35 -07: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
Pavel Feldman
1db18711a2
fix(ct): move import list into the compilation cache data (#28986) 2024-01-16 19:31:19 -08:00
Pavel Feldman
a0750b7854
chore: network panel polish (#28924) 2024-01-10 15:28:33 -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
Pavel Feldman
1b3349d091
chore: use codemirror in the on-hover locator editor (#28090) 2023-11-10 22:00:28 -08:00
Pavel Feldman
061ded19b6
chore: place overlay inside the glass pane (#28026) 2023-11-07 19:36:12 -08:00
Dmitry Gozman
ffd2e02aa3
feat(recorder): various UX fixes (#27967) 2023-11-04 21:18:27 -07:00
Max Schmitt
08b8181632
chore: make Trace Viewer start page AAA compliant (#27879) 2023-10-31 16:35:13 +01:00
Luigi Colombi
3127765bde
chore: add curly space to fix eslint run (#27858) 2023-10-30 12:05:48 +01:00
Pavel Feldman
462e70ab82
chore: render sidebar tab selector as drop down (#27844) 2023-10-27 15:31:31 -07:00
Pavel Feldman
ff206bd9c1
chore: render time in the trace viewer log (#27825) 2023-10-26 14:45:15 -07:00
Pavel Feldman
70dbb9d83a
feat(trace): allow navigating from error to source (#27464) 2023-10-05 14:59:59 -07:00
Pavel Feldman
c914d62c69
chore: nicer network grid header (#27102) 2023-09-15 09:16:29 -07: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
Pavel Feldman
8ba8c9385d
chore: keep split positions when zooming (#26942) 2023-09-08 12:30:08 -07:00
Pavel Feldman
99047cba03
chore: add install browsers dialog (#26940) 2023-09-07 18:34:59 -07:00
Pavel Feldman
167c35ca66
chore: store scroll positions in trace viewer (#26938) 2023-09-07 17:14:39 -07:00
Pavel Feldman
8c494e2519
chore: add log/error tabs and counters (#26843) 2023-09-01 20:12:05 -07:00
Pavel Feldman
a339bead09
chore: implement faster ansi2html format for console (#26826) 2023-09-01 09:09:47 -07:00
Max Schmitt
cb67427d56
chore: fix html-reporter/trace-viewer TSC errors (#26813) 2023-08-31 18:08:38 +02:00
Pavel Feldman
123ee9ddc1
chore: trace timeline ux (#26797) 2023-08-30 15:48:51 -07:00
Pavel Feldman
c209d7e708
chore: more network panel polish (#26780) 2023-08-29 22:20:28 -07:00