Commit graph

4046 commits

Author SHA1 Message Date
Dmitry Gozman be1af15d57
feat: always enable ESM loader with the new API (#29991)
It does not require a process restart anymore, so safe to enable.

Fixes #29747.
2024-03-18 21:54:25 -07:00
Dmitry Gozman b41b802662
fix(test runner): avoid dependency tracking colliding between esm and cjs (#29994)
When collecting dependencies both from CJS loader and from ESM loader,
the latter would overwrite the dependencies set instead of appending.

Also make sure cts/cjs/mts/mjs are all supported equally.

References #29747.
2024-03-18 17:17:58 -07:00
Pavel Feldman c7b074d39e
chore: prepare to reuse test server from ui mode (3) (#29989) 2024-03-18 17:14:21 -07:00
Dmitry Gozman 70e6cdac57
feat: enterFrame/exitFrame (#29992)
This introduces `Locator.enterFrame()` and `FrameLocator.exitFrame()` to
convert between locator and frame locator.

Fixes #29336.
2024-03-18 13:42:08 -07: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
Yury Semikhatsky 35db70ea1d
chore: trim file names longer than 60 chars (was 100) (#29725)
Test-specific output dir and snapshot names are trimmed to 60 chars
instead of just 100. The snapshot names are still trimmed at 100 chars
for backwards compatibility.


Reference https://github.com/microsoft/playwright/issues/29719
2024-03-18 12:53:15 -07:00
Pavel Feldman ef4438ee99
chore: prepare to reuse test server from ui mode (2) (#29966) 2024-03-18 09:59:02 -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 0db1d40abc
fix(types): evaluate should not unpack return unions (#29971) 2024-03-18 16:42:33 +01:00
Playwright Service 306db80d03
feat(chromium-tip-of-tree): roll to r1202 (#29963)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2024-03-15 20:04:22 +01:00
Max Schmitt 5d0c61fa0c
docs: fix logger API usage (#29961) 2024-03-15 19:04:14 +01:00
Max Schmitt 048d6669fd
fix(reuse): reset Origin Private File System API (#29921)
Fixes https://github.com/microsoft/playwright/issues/29901

This clears the Origin Private File System API when using VSCode
extension.
2024-03-15 17:40:46 +01: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 5bc6ca6345
fix: allow disposing ElementHandles multiple times (#29953)
Fixes https://github.com/microsoft/playwright/issues/29945
2024-03-15 16:26:56 +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
Playwright Service 23bfeec5c7
feat(webkit): roll to r1989 (#29942)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2024-03-14 21:15:08 +01:00
Max Schmitt 7cbef691ae
fix: throw error if setInputFile does not exist (#29944)
Fixes https://github.com/microsoft/playwright/issues/29941
2024-03-14 20:27:33 +01:00
Max Schmitt b158e4ef96
fix: postDataJSON without Content-Type header (#29918)
Regressed after
38fc74db7c.

Test coverage: Some tests were failing on the flakiness dashboard
2024-03-14 16:48:34 +01:00
Karl Horky 914208c567
chore: fix typo in property name (#29907) 2024-03-13 12:22:40 +01:00
Dmitry Gozman 349b25e61a
fix(storageState): try to collect storage state on existing pages first (#29915)
This helps in a case where navigating to an origin fails for some
reason, for example because a registered service worker loads some
content into the supposedly blank page.

Fixes #29402.
2024-03-12 19:20: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
Yury Semikhatsky 166d2d4fde
chore: separate results for repeated snapshot names (#29880)
Reference #29719
2024-03-12 16:10:43 -07:00
Dmitry Gozman 78b8aed4bd
docs: mark addLocatorHandler as experimental (#29909) 2024-03-12 12:02:25 -07:00
Max Schmitt 38fc74db7c
fix: postDataJSON with application/x-www-form-urlencoded; charset=UTF-8 (#29889)
Fixes https://github.com/microsoft/playwright/issues/29872
2024-03-12 17:20:39 +01:00
Playwright Service be325507cb
feat(chromium-tip-of-tree): roll to r1201 (#29897)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2024-03-12 13:47:56 +01:00
Playwright Service ab23e9139b
feat(chromium-tip-of-tree): roll to r1200 (#29884)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2024-03-12 10:29:36 +01:00
Playwright Service 7840d3e6d9
feat(webkit): roll to r1988 (#29883)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2024-03-12 09:57:32 +01:00
Dmitry Gozman 88e80cf948
chore(test runner): simplify TimeoutManager and TimeoutRunner (#29863) 2024-03-11 15:43:50 -07:00
Yury Semikhatsky 59228f19ce
fix: tty.WriteStream method stubs for process.stdout/stderr (#29865)
Fixes #29839
2024-03-11 10:11:16 -07:00
Yury Semikhatsky 7f6f17d1c3
chore: simplify toMatchSnapshot names calculation (#29862)
Reference https://github.com/microsoft/playwright/issues/29719
2024-03-10 11:11:35 -07:00
Dmitry Gozman d214778548
chore(test runner): move timeout handling to the top, stop inheriting runnable (#29857) 2024-03-08 15:19:36 -08:00
Playwright Service 8f2c372bd8
feat(webkit): roll to r1987 (#29856)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2024-03-08 10:15:19 +01:00
Dmitry Gozman 875ce1cf09
fix(chromium): use blockedReason as failure reason when available (#29849)
This covers blocked requests, e.g. mixed-content, that receive
`loadingFailed` with empty `errorText`.

Also, forcefully resolve `allHeaders()` in this case, since we know
there will be no actual network headers.

Fixes #29833.
2024-03-07 14:07:04 -08: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
Dmitry Gozman 006ee7f3b0
feat: separate timeout for after hooks (#29828)
Instead of sharing the timeout with the test, and then extending it when
test times out, we give after hooks a separate timeout.
2024-03-06 12:31:54 -08:00
Sarkis Matinyan 0c3f60e95e
fix(ui): show stack frames in ui mode (#29560)
#29558, #29500
2024-03-06 12:29:35 -08:00
Lukas Bockstaller 425f737eb6
feat: exposes tags in testInfo (#29794)
Fixes #29793.

---------

Signed-off-by: Lukas Bockstaller <lukas.bockstaller@everest-erp.com>
Co-authored-by: Dmitry Gozman <dgozman@gmail.com>
2024-03-06 08:33:06 -08:00
Dmitry Gozman 1d4bdc6898
chore(test runner): make runAsStage throw and catch errors explicitly (#29814) 2024-03-05 16:35:11 -08:00
Dmitry Gozman a3ed799cd5
fix(tsconfig): when extending, retain pathsBasePath from the original config (#29822)
This fixes a case where we incorrectly used the final config's base path
when resolving relative path mappings in the absence of the baseUrl.

Fixes #29816.
2024-03-05 16:34:39 -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
Playwright Service 0feb05cf98
feat(chromium-tip-of-tree): roll to r1199 (#29817)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2024-03-05 13:11:37 +01:00
Pavel Feldman e314b83e56
chore: iterate towards tele reporter reuse in vscode (2) (#29812) 2024-03-04 19:52:20 -08:00
Dmitry Gozman 5eb8fea616
chore: rewrite worker main through TestInfoImpl._runAsStage (#29644) 2024-03-04 19:36:58 -08:00
Rui Figueira 73ffaf65d7
fix(codegen): fill action prevents omnibox navigation recording (#29790)
This PR is a fix proposal for a bug when trying to record a omnibox
navigation after a recorded action (e.g., `fill`).

The following test, included in this PR, reproduces the problem:

```ts
  test('should record omnibox navigations after recordAction', async ({ page, openRecorder, server }) => {
    const recorder = await openRecorder();
    await recorder.setContentAndWait(`<textarea></textarea>`);
    await Promise.all([
      recorder.waitForOutput('JavaScript', 'fill'),
      page.locator('textarea').fill('Hello world'),
    ]);
    // for performed actions, 5 seconds is the time needed to ensure they are committed
    await page.waitForTimeout(5000);
    await page.goto(server.PREFIX + `/empty.html`);
    await recorder.waitForOutput('JavaScript', `await page.goto('${server.PREFIX}/empty.html');`);
  });
```

After performed actions (e.g., `click`), it successfully records the
navigation as long as there's at least a 5 sec. gap between both
actions. That happens because after that 5 sec. interval the performed
action is automatically commited and therefore the navigation is not
stored as a signal of that action.

The proposed fix for recorded actions also forces that action to be
automatically commited after 5 sec (for testing, I'm using 500ms to
speed up the test execution).
2024-03-04 12:31:03 -08:00
Max Schmitt ef0a24a1b0
chore: remove chromium-with-symbols build (#29807) 2024-03-04 20:12:01 +01:00
Pavel Feldman 743a6ffe1d
chore: iterate towards tele reporter reuse in vscode (#29803) 2024-03-04 11:08:40 -08:00