Commit graph

46 commits

Author SHA1 Message Date
Dmitry Gozman 7335fa602c
fix(trace viewer): do not show multiple action points in iframes (#32537)
When action has an input target, we assume there is a target element in
one of the frames and show action point in its center.

Fixes #32453.
2024-09-11 03:04:03 -07:00
Simon Knott ec40890fd8
fix(tracing): use page swap timestamp to find closest screenshot (#32512)
Follow-up to https://github.com/microsoft/playwright/pull/32248. When we
have it, we should use the page swap timestamp we get from Chromium to
find the closest screenshot.
2024-09-10 14:32:33 +02:00
Simon Knott 31e269ad06
feat(trace-viewer): show screenshot pointer (#32514)
Follow-up to https://github.com/microsoft/playwright/pull/32248. Adds a
glowing red circle that shows the click position. I made it glowing to
show that its position is inaccurate.
<img width="964" alt="Screenshot 2024-09-09 at 11 33 45"
src="https://github.com/user-attachments/assets/1903071d-6dc0-46c7-9951-844e49a51f35">
2024-09-09 14:00:22 +02: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
Pavel Feldman 74a8e59096
chore: allow recorder rewrite annotations (#32381) 2024-08-29 14:16:01 -07:00
Pavel Feldman bc87467b25
chore: generate simple dom descriptions in codegen (#32333) 2024-08-27 11:52:14 -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
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 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
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
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 d587435efa
feat(trace): show target point for raw mouse apis (#28459)
Fixes #27931.
2023-12-07 06:27:49 -08:00
Dmitry Gozman 5488c03d7f
chore: make asLocator() always safe (#28207) 2023-11-16 16:31:34 -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
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
Dmitry Gozman 24deac458b
feat(expect): generate toHaveText (#27824) 2023-10-26 18:49:14 -07:00
Pavel Feldman d65da74b8f
fix(trace): allow typing in selector w/ frames (#26919) 2023-09-06 16:14:40 -07:00
Pavel Feldman b4012df160
fix(trace): make locator picker work for iframes (#26883)
Fixes https://github.com/microsoft/playwright/issues/26878
2023-09-06 09:44:47 -07:00
Dmitry Gozman f3c02a5b4f
fix(trace viewer): make red dot to the center of the target element (#26825)
Also make sure red dot is visible in the popout tab.

Fixes #24532.
2023-08-31 16:52:54 -07:00
Max Schmitt 39f8f2ed8d
fix(trace-viewer): use sdkLanguage for Pick Locator (#26737)
Fixes https://github.com/microsoft/playwright/issues/26736
2023-08-28 17:39:02 +02:00
Pavel Feldman 8f31191637
chore: pick locator tab (#26532) 2023-08-18 17:53:03 -07:00
Max Schmitt 605dfde2be
chore: rename popout.html to snapshot.html in trace viewer (#23842)
Turns out its caused by a uBlockOrigin EasyList entry which thinks we
are an ad since we call ourselves "popout.html". See this entry:


e7883cfe74/easylist/easylist_general_block_popup.txt (L42)

Fixes https://github.com/microsoft/playwright/issues/23799
2023-06-21 21:10:50 +02:00
Andrey Lushnikov 1736479e41
fix: fix locator picker in Trace (#23820)
- make sure links are not clickable with enabled locator picker
- make sure locator picker state is preserved when switching actions
2023-06-20 11:39:21 -07:00
Dmitry Gozman 848f1dff3f
feat(trace): instantiate consoleAPI in popout with correct testIdAttribute (#23238) 2023-05-23 12:17:26 -07:00
Andrey Lushnikov 3477c89f20
fix(trace-viewer): survive broken selectors (#21866)
Fixes https://github.com/microsoft/playwright/issues/21832
2023-03-22 18:52:04 -07:00
Pavel Feldman d9a9bb5a8c
chore: pack codemirror on resize (#21856) 2023-03-21 18:20:48 -07:00
Dmitry Gozman bea6fa15b2
feat(snapshots): use double-buffer to avoid white flash on hover (#21828) 2023-03-21 07:40:54 -07:00
Pavel Feldman 48eea13259
chore: update margins to align (#21826) 2023-03-20 20:45:32 -07:00
Pavel Feldman 8a65cf9aac
chore(ui): ui polish / nits (#21781) 2023-03-19 12:04:19 -07:00
Pavel Feldman 22e11a12ab
chore: show snapshots for sync assertions (#21775) 2023-03-17 20:20:35 -07:00
Pavel Feldman c45d8749b0
chore: split trace events into phases (#21696) 2023-03-15 22:33:40 -07:00
Pavel Feldman e737ff83b4
chore: migrate to useRef take 2 (#21552) 2023-03-09 19:34:05 -08:00
Pavel Feldman fc91e6086b
chore: minor trace viewer ui fixes (#21368) 2023-03-03 09:17:40 -08:00
Pavel Feldman c42a1205b1
chore: do not generate history entries on snapshot switch (#21283) 2023-03-01 13:44:58 -08:00
Pavel Feldman 22d82b6e1b
chore: flatten metadata in trace events (#21214) 2023-02-27 15:29:20 -08:00
Pavel Feldman 7626267ec5
fix(trace): do not access null content window (#21166) 2023-02-23 11:57:15 -08:00
Pavel Feldman 55694a7bc4
chore: translate inspect mode controller to component (#21002) 2023-02-17 17:25:47 -08:00
Pavel Feldman d7a0b3bb4e
chore: implement pick locator in trace viewer (#20965)
Fixes https://github.com/microsoft/playwright/issues/7853
2023-02-17 11:19:53 -08:00
Dmitry Gozman b39079b51e
feat(trace viewer): popout snapshot in a new tab (#20475) 2023-01-30 19:07:52 -08:00
Dmitry Gozman 99353038f0
fix(trace-viewer): center snapshot iframe (#20512) 2023-01-30 14:32:45 -08:00
Pavel Feldman 228f78c89d
chore: render browser window in trace (#18870) 2022-11-22 08:41:52 -08:00
Pavel Feldman df143031e7
chore: move protocol and trace types into the top-level packages (#17486) 2022-09-20 18:41:51 -07:00
Pavel Feldman 6b81e76c2b
chore: migrate trace-viewer and recorder to vite (#13076) 2022-03-25 14:12:00 -07:00
Renamed from packages/playwright-core/src/web/traceViewer/ui/snapshotTab.tsx (Browse further)