Commit graph

679 commits

Author SHA1 Message Date
Yury Semikhatsky 9c845365f7
chore: revert TestProject.botName for this release (#28670)
This is essentially a revert of f88288d71d

Reference https://github.com/microsoft/playwright/issues/27284
2023-12-15 09:48:34 -08:00
Yury Semikhatsky d89837c58e
chore: revert noWaitForFinish option, page.close does not wait for ro… (#28658)
…ute handlers

Reference https://github.com/microsoft/playwright/issues/23781
2023-12-15 09:00:12 -08:00
Yury Semikhatsky f28ceffa37
feat: page.unrouteAll and context.unrouteAll (#28635)
Reference https://github.com/microsoft/playwright/issues/23781
2023-12-14 13:48:17 -08:00
Yury Semikhatsky 66e056c306
fix: disable PaintHolding to be able to click in oopifs (#28604)
Fixes https://github.com/microsoft/playwright/issues/28023
2023-12-12 12:20:44 -08:00
Andrey Lushnikov dd9028cfe2
test: fix browsercontext-basic offline test (#28558)
Since the last firefox roll, firefox now does internal redirect to the
error page when it's been forced into offline mode.
2023-12-08 15:26:24 -08:00
Max Schmitt 736c0efd43
chore: use more explicit awaits when returning in client (#28443) 2023-12-07 20:13:35 -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
Yury Semikhatsky 411abdb752
feat: add fileName option to blob reporter (#28525)
Reference https://github.com/microsoft/playwright/issues/27284
2023-12-06 20:44:06 -08:00
Max Schmitt 2d2c270388
chore: mark outofprocess connection not as remote (#28156) 2023-12-06 17:58:19 -08:00
Max Schmitt 8ab0660d1b
test: skip webgl tests on macOS-arm64 (#28522)
Fixes https://github.com/microsoft/playwright/issues/28216.

Drive-by: adjust signals expectation.

---------

Signed-off-by: Max Schmitt <max@schmitt.mx>
2023-12-06 13:52:49 -08:00
Yury Semikhatsky 74e51d334e
feat: wait for active route handlers on page/context close (#28414)
Reference https://github.com/microsoft/playwright/issues/23781
2023-12-04 16:19:05 -08:00
Max Schmitt f44ef81af7
fix(snapshot): broken snapshot after use of setInputFiles (#28444) 2023-12-01 09:38:50 -08:00
Yury Semikhatsky 15a8ba5158
fix(route): correctly remove expired handlers (#28385)
* Check if handler is still in the route list before calling it
* Check if the handler is still in the list before removing it after
`times` expiration
2023-11-28 17:52:16 -08:00
Dmitry Gozman 11bf96fe98
test: unflake a few tests (#28205) 2023-11-16 16:31:42 -08:00
Max Schmitt ff706ec8bd
test: skip Intl.ListFormat test on ubuntu20.04 (#28185)
It was failing across the Ubuntu 20.04 bots:


![image](https://github.com/microsoft/playwright/assets/17984549/3b80f04d-cae8-4288-8fd3-b94d9bf1ce03)

This is most likely because on Ubuntu 20 libicu-dev has version 66.1.
And according to

https://wksearch.azurewebsites.net/#path=%2Fhome%2Fjoe%2Fwebkit%2FSource%2FJavaScriptCore%2Fruntime%2FIntlListFormat.h&line=32
the ListFormatter requires 67 which is the case in Ubuntu 22 (70).
2023-11-16 20:39:32 +01:00
Max Schmitt ee1e6cd72f
test: unskip service tests (#28170) 2023-11-16 20:14:55 +01:00
Yury Semikhatsky 85438edb97
test: Intl.ListFormat is working in playwright all browsers (#28178)
Fixes https://github.com/microsoft/playwright/issues/23978
2023-11-15 18:47:42 -08:00
Max Schmitt 7ffcb42551
test: fix 'exposeFunction should not leak' in video mode (#28169)
This is like how we do it with the other channel tests. In video mode we
produce artifacts so we need to add them to our expectation.
2023-11-15 21:48:47 +01:00
Max Schmitt b66839b039
fix(exposeFunction): exposeFunction should not leak client side BindingCalls (#28163)
This should already make it a bit better. There is more going on tho.

https://github.com/microsoft/playwright/issues/28146
2023-11-15 17:15:25 +01:00
Dmitry Gozman 16aee8b5d0
fix(codegen): comment-out generated expects for library scripts (#28118)
- reverts "fix(codegen): generate expect import for library
(https://github.com/microsoft/playwright/pull/28107)";
- comments-out generated expects.
2023-11-13 16:56:27 -08:00
Max Schmitt 8b1c637c16
fix(codegen): generate expect import for library (#28107) 2023-11-13 21:54:30 +01:00
Dmitry Gozman 120f0228c5
feat(selector generator): try improving text candidate with heuristics (#28074)
- Drop number-like prefixes and/or suffixes.
- Trim long texts to a word boundary around 15-25 character.
2023-11-13 11:30:16 -08:00
Dmitry Gozman 7f10fe935a
test: add a test for concurrent hover (#28042)
References #27969.
2023-11-09 08:27:34 -08:00
Pavel Feldman 87787dcc7d
chore: allow click close the page w/o errors (#27994) 2023-11-06 15:13:41 -08:00
Dmitry Gozman f401a482d2
fix(codegen): consume pointer events alongside mouse events (#27949)
Fixes #27926.
2023-11-03 13:41:51 -07:00
Pavel Feldman 817a130cdc
chore: dispose-based callback termination (#27911) 2023-11-01 16:36:39 -07:00
Max Schmitt d983941447
test: locale/timeZone should affect Intl.DateTimeFormat() (#27898)
https://github.com/microsoft/playwright/issues/27802
2023-11-01 17:29:57 +01:00
Yury Semikhatsky 36c4c24f8a
fix: only convert input files for browser collocated with server (#27873)
Reference #27452
Fixes #27792
2023-11-01 08:40:12 -07:00
Max Schmitt 08685a654a
test: using ServiceWorker on localhost over HTTPS (#27863) 2023-10-31 10:28:57 +01:00
Yury Semikhatsky c7b6a76437
fix(fetch): throw when methods are called on disposed context (#27868)
Fixes #27822
2023-10-30 15:23:12 -07:00
Max Schmitt 59b8cf008e
fix(codegen): don't generate page.frame() calls anymore (#27820)
Fixes https://github.com/microsoft/playwright/issues/27650
2023-10-30 21:56:45 +01:00
Dmitry Gozman f620828818
chore: allow PW_VERSION_OVERRIDE in tests (#27861) 2023-10-30 11:04:35 -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
Pavel Feldman ff206bd9c1
chore: render time in the trace viewer log (#27825) 2023-10-26 14:45:15 -07:00
Max Schmitt 5f0d91a42c
test: add test for multipart keeping order (#27787)
Test for https://github.com/microsoft/playwright/issues/27720
2023-10-25 19:33:00 +02:00
Pavel Feldman 7de0ccd36e
chore: support await using for close() and dispose() (#27766)
This change assumes that the user has Node 18 with Symbol.dispose
available.

Fixes https://github.com/microsoft/playwright/issues/27141
2023-10-24 12:25:53 -07:00
Pavel Feldman 5752a28f87
chore: make tests strict (1) (#27731) 2023-10-23 09:31:30 -07:00
Max Schmitt f48861ddee
fix(inspector): highlight xpath/css locators without engine prefix (#27742)
Motivation: As of today when a user inspects a Locator which is a xpath,
it won't work if the user has not prefixed it with `xpath=` because we
internally compare the given with the generated locator.

Works: `locator('xpath=//div[contains(@class, "foo")]')`
Does not work: `locator('//div[contains(@class, "foo")]')`

Relates
https://github.com/microsoft/playwright/issues/27707#issue-1952360264
Fixes
https://github.com/microsoft/playwright-dotnet/issues/2718#issuecomment-1771073816

---------

Signed-off-by: Max Schmitt <max@schmitt.mx>
2023-10-23 18:23:28 +02:00
Max Schmitt 6d7d37061d
fix(recorder): Locator picker had wrong initial language in language bindings (#27706)
**Description**

When a language port was using Inspector with the "Locator Picker"
feature, it only recognised JavaScript as a language by default. As a
workaround the user was able to click record, interact with the page and
then the language would be correctly used -> csharp e.g. would work in
the "Locator Picker".

**Why?**

Our language bindings are setting `PW_LANG_NAME=<sdkLanguage>` env var
-> good. Our recorder harness also uses this along its internal state
here:


b9b289b641/packages/playwright-core/src/server/recorder.ts (L369)

and it gets used here (no parameter means: we use the first language
aka. primary language):


b9b289b641/packages/playwright-core/src/server/recorder.ts (L95)

The only issue is that the Inspector frontend in the beginning does not
know which language it should use and pass over to the server side, it
then falls back to JavaScript.

**Proposed fix**

Instead of passing it over from the frontend to the server side, we just
always use it from the server side, aka. "currentLanguage". When the
user switches languages in the frontend, "currentLanguage" already gets
updated properly via the "fileChanged" event.

https://github.com/microsoft/playwright-dotnet/issues/2718

---------

Signed-off-by: Max Schmitt <max@schmitt.mx>
2023-10-22 13:02:14 +02:00
Dmitry Gozman d1d5fc67dc
fix(recorder): show action point in main frame only (#27719) 2023-10-20 20:58:09 -07:00
Dmitry Gozman 6fe31ab52c
feat: support alternative quotes in js parseLocator() (#27718)
Fixes #27707.
2023-10-20 08:42:29 -07:00
Yury Semikhatsky bd58c0d5d2
fix: preserve lastModified timestamp in setInputFiles (#27671)
Fixes #27452
2023-10-18 14:05:09 -07:00
Playwright Service 5262e5ab35
feat(chromium-tip-of-tree): roll to r1159 (#27605) 2023-10-17 22:41:23 +02:00
Pavel Feldman d4296dbff4
chore: break dowload.path() to throw (#27662) 2023-10-17 12:56:56 -07:00
Max Schmitt 0a49c3dbb9
chore: bump @babel dependencies (#27632)
This fixes:

```
Run npm audit --omit dev
# npm audit report

@babel/traverse  <7.23.2
Severity: critical
Babel vulnerable to arbitrary code execution when compiling specifically crafted malicious code - https://github.com/advisories/GHSA-[6](https://github.com/microsoft/playwright/actions/runs/6535308689/job/17744452034?pr=27631#step:10:7)[7](https://github.com/microsoft/playwright/actions/runs/6535308689/job/17744452034?pr=27631#step:10:8)hx-6x53-jw[9](https://github.com/microsoft/playwright/actions/runs/6535308689/job/17744452034?pr=27631#step:10:10)2
fix available via `npm audit fix`
node_modules/@babel/traverse

1 critical severity vulnerability

To address all issues, run:
  npm audit fix
Error: Process completed with exit code 1.
```
2023-10-17 20:52:41 +02:00
Yury Semikhatsky 4e845e7b1d
fix(fetch): JSON.stringify on client (#27644)
Fixes https://github.com/microsoft/playwright/issues/27602
2023-10-16 16:33:49 -07:00
Dmitry Gozman e8b4c03e54
fix(chromium): do not cancel downloads when intercepting (#27638)
Fixes #27575.
2023-10-16 15:12:52 -07:00
Yury Semikhatsky b2dc0d2fbd
test: unskip "should keep selection in multiple pages" (#27611)
https://github.com/microsoft/playwright/pull/27609 fixed the
functionality in WebKit.

Fixes https://github.com/microsoft/playwright/issues/27475
2023-10-16 09:47:05 -07:00
Dmitry Gozman fc32ca676b
feat: check client version on the server (#27585) 2023-10-13 21:02:30 -07:00
Yury Semikhatsky 80c408023e
test: unflake "should fail without credentials" (#27606)
Speculative fix. The test marked as failed => we reuse the browser
without closing the context.
2023-10-13 14:15:12 -07:00
Yury Semikhatsky d6adfee7c0
test: update expectation on windows for "should reject if launched br… (#27603)
…owser fails immediately"

The test has been failing on Windows since
f212fd1a83
2023-10-13 14:02:55 -07:00
Yury Semikhatsky bc59565d77
fix(webkit): support clipboard.readText (#27581)
Reference #27475
2023-10-13 09:10:35 -07:00
Yury Semikhatsky 9d76c09ddb
test: preserve selection when switching pages (#27578)
Reference https://github.com/microsoft/playwright/issues/27475
2023-10-12 12:52:06 -07:00
Pavel Feldman f212fd1a83
chore: unify target closed errors (#27540) 2023-10-12 11:05:34 -07:00
Dmitry Gozman a5be8ce86a
test: unflake some more tests (#27546) 2023-10-11 10:34:11 -07:00
Dmitry Gozman d05c865389
test: unflake a few tests (#27519) 2023-10-10 09:14:58 -07:00
Dmitry Gozman 40ba5ebc1d
test: unflake a launcher test in driver mode (#27518) 2023-10-09 14:52:05 -07:00
Dmitry Gozman e8523abea5
test: mark some --headless=new tests as fixme (#27516) 2023-10-09 14:07:22 -07:00
Dmitry Gozman 0717b386f9
test: disable some failing tests (#27463) 2023-10-05 15:00:08 -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
Pavel Feldman 13cca1db3d
test: add a test for cdp w/ trace (#27410)
Closes https://github.com/microsoft/playwright/issues/27409
2023-10-03 13:00:35 -07:00
Dmitry Gozman 55c4bb97af
chore: extract CDPSession on the server side, remove duplicate code (#27349)
This makes sure that protocol calls after target close are rejected
correctly.
2023-09-29 12:50:02 -07:00
Dmitry Gozman 81694b7401
test: unflake some tests (#27354) 2023-09-29 10:45:31 -07:00
Dmitry Gozman c8143748e6
chore: remove Page._didDisconnect (#27317)
Instead of having `didClose` based on page creation/destruction and
`didDisconnect` based on session lifetime, we make session lifetime
being managed by the `CRPage`/`FFPage`/`WKPage` instead.
2023-09-27 14:09:56 -07:00
Pavel Feldman 20f20e9fba
chore: use stock image matcher in library tests (#27319) 2023-09-26 18:46:21 -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 0f72ef0584
fix(streams): avoid leaking event listeners (#27291)
Fixes #26998.
2023-09-25 10:59:14 -07:00
Yury Semikhatsky 0bc55fac91
test: unskip "should capture full viewport" (#27233)
This is fixed by
https://github.com/microsoft/playwright-browsers/pull/643

Fixes https://github.com/microsoft/playwright-browsers/issues/637
2023-09-21 11:20:18 -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
Yury Semikhatsky 88038f1b00
fix: do not throw from fetch when response has invalid cookie (#27192)
Cookie value is limited by 4096 characters in the browsers. If
setCookies failed we try setting each cookie individually just in case
only some of them are bad.

Fixes https://github.com/microsoft/playwright/issues/27165
2023-09-19 16:18:16 -07:00
Yury Semikhatsky 8964587d18
test: update webkit test expectations after last roll (#27155)
https://github.com/microsoft/playwright/issues/26992 was fixed by
https://github.com/microsoft/playwright-browsers/pull/635.

Reference https://github.com/microsoft/playwright-browsers/issues/637
Fixes https://github.com/microsoft/playwright/issues/26992
2023-09-18 09:57:18 -07:00
Pavel Feldman 527d260cbf
chore: hide tracing calls from traces (#27096) 2023-09-15 12:55:49 -07:00
Andrey Lushnikov a34030be80
browser(firefox): support relative paths for firefox videos (#27099)
Firefox protocol requires absolute paths for video recording.

Fixes https://github.com/microsoft/playwright/issues/27086
2023-09-15 10:26:20 -07:00
Dmitry Gozman b3edf8e562
fix(har): handle invalid Expires/Max-Age (#27098)
Fixes #27073.
2023-09-14 17:06:56 -07:00
Andrey Lushnikov 64bf2a624f
test: fix webkit test on Darwin (#27029) 2023-09-12 15:01:44 -07:00
Yury Semikhatsky 700b310150
fix(fetch): restore from empty storage state (#27025)
Fixes #26833
2023-09-12 13:11:18 -07:00
Dmitry Gozman d9eabda09d
fix(locators): escape quotes in regular expressions (#27002)
Fixes #26974.
2023-09-11 15:49:04 -07:00
Dmitry Gozman 186f86905c
chore: make @playwright/test depend on playwright (#26946) 2023-09-08 14:23:35 -07:00
Yury Semikhatsky 0213fef484
test: unskip passing test (#26960)
The functionality was fixed in
[webkit](https://github.com/microsoft/playwright-browsers/pull/625) and
should be available with [recent
roll](https://github.com/microsoft/playwright/pull/26953).

Fixes #26876
2023-09-08 12:57:32 -07:00
Yury Semikhatsky fd28e8d801
test: reset view scale after navigation (#26939)
Failing test for #26876
2023-09-08 08:58:07 -07:00
Pavel Feldman 167c35ca66
chore: store scroll positions in trace viewer (#26938) 2023-09-07 17:14:39 -07:00
Playwright Service bcf59ed721
feat(webkit): roll to r1905 (#26909) 2023-09-07 07:41:46 +02:00
Pavel Feldman 61a1924328
chore: align recorder drawer with trace viewer (#26922) 2023-09-06 17:13:25 -07:00
Pavel Feldman d65da74b8f
fix(trace): allow typing in selector w/ frames (#26919) 2023-09-06 16:14:40 -07:00
Max Schmitt f71df9fb50
chore: introduce sdkLanguage based userDataDir misuse error (#26894)
Fixes https://github.com/microsoft/playwright-python/issues/2059

---------

Signed-off-by: Max Schmitt <max@schmitt.mx>
Co-authored-by: Dmitry Gozman <dgozman@gmail.com>
2023-09-06 22:58:44 +02:00
Dmitry Gozman 361038c950
feat: rename PageError to WebError (#26913) 2023-09-06 12:40:53 -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 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
Pavel Feldman 8c494e2519
chore: add log/error tabs and counters (#26843) 2023-09-01 20:12:05 -07:00
Yury Semikhatsky ce3e0dcf84
test: unskip test in headless (#26844)
Reference https://github.com/microsoft/playwright/issues/22617
2023-09-01 17:26:23 -07:00
Dmitry Gozman 6d85ba1494
fix: remove connectInsteadOfLaunching (#26828) 2023-08-31 15:29:04 -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 c209d7e708
chore: more network panel polish (#26780) 2023-08-29 22:20:28 -07:00
Yury Semikhatsky 501ed32856
fix(fetch): update host header on redirect (#26750)
Fixes https://github.com/microsoft/playwright/issues/26743
2023-08-28 12:42:50 -07:00
Max Schmitt feac31dbdc
test: mark 'should fire close event' as fixme in MSEdge (#26712)
https://github.com/microsoft/playwright/issues/26711

---------

Signed-off-by: Max Schmitt <max@schmitt.mx>
2023-08-25 23:57:56 +02:00
Max Schmitt c27317b6e5
feat(webkit): roll to r1893 (#26596)
This should make it into v1.38 and once its merged one day later it can
be tested in [Playwright
Canary](https://playwright.dev/docs/canary-releases).

Fixes https://github.com/microsoft/playwright/issues/22569
Fixes https://github.com/microsoft/playwright/issues/23259
2023-08-22 17:57:02 +02:00
Max Schmitt bb3152738d
test: fix macOS WebKit signals test (#26603) 2023-08-22 16:51:34 +02:00
Pavel Feldman c3c3c7f53c
chore: decorate console message sources (#26588) 2023-08-21 16:05:27 -07:00
Max Schmitt 2edecd4244
test: add libsoup3 related tests (#26572)
https://github.com/microsoft/playwright/issues/22569
https://github.com/microsoft/playwright/issues/23259
2023-08-21 22:12:12 +02:00