Commit graph

638 commits

Author SHA1 Message Date
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
Pavel Feldman 8f31191637
chore: pick locator tab (#26532) 2023-08-18 17:53:03 -07:00
Yury Semikhatsky 14a57a788b
test: screenshot of css transformation (#26533)
Failing tests for #26447.
2023-08-18 14:30:43 -07:00
Vignesh Shanmugam adc9b2d390
feat: add support for browserContext.on('pageerror') (#24452)
+ fix #24466
+ Adds support for exposing the `pageerror` events via `browserContext`
API.
+ Helps with capturing the overall exceptions that are thrown outside of
the the current page and also captures the exceptions happens on other
windows/popups.
+ Keeps the API in sync with `context.on('request)',
context.on('console'), etc..`
2023-08-17 09:10:03 -07:00
Pavel Feldman a705d68c8a
chore: filter actions, console and network based on the timeline window (#26509) 2023-08-16 16:30:17 -07:00
Pavel Feldman 576608b69d
chore: revert #24598 (#26484) 2023-08-15 11:29:33 -07:00
Playwright Service 96965cfbe9
feat(webkit): roll to r1885 (#26443)
Signed-off-by: Max Schmitt <max@schmitt.mx>
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Max Schmitt <max@schmitt.mx>
2023-08-12 19:17:07 +02:00
Pavel Feldman d0fec20fe1
chore: update test certificates (#26423) 2023-08-10 17:06:03 -07:00
Pavel Feldman f6563f1a90
chore: use header for service2 auth (#26419) 2023-08-10 13:43:16 -07:00
Andrey Lushnikov 0bb4dac28f
tests: fix race condition in codegen tests (#26405)
The console message comes in once the page navigates, not in the
`page.setContent()` call below.
2023-08-10 07:51:38 -07:00
Pavel Feldman 08d6abab4a
chore: allow merging defineConfig (#26390) 2023-08-09 17:23:34 -07:00
Pavel Feldman 65ac0d5256
chore: add k8s grid deployments (#26359) 2023-08-08 18:46:32 -07:00
Dmitry Gozman 9509c300e4
fix(reuse): make sure newly created page is not "server-side-only" (#26332)
This page is going to be the "page for reuse", so it should not be
marked as "server-side-only" and should issue all required events.

Fixes #24574.
2023-08-07 16:26:30 -07:00
Pavel Feldman 120de62798
chore(grid): add command line options (#24802) 2023-08-04 18:08:50 -07:00
Pavel Feldman aba6964bd1
chore: add grid tests (#24617) 2023-08-04 14:59:48 -07:00
Pavel Feldman 6731f5b6d5
chore: grid placeholder (#24598) 2023-08-04 08:38:07 -07:00
Pavel Feldman 744eb6823f
chore: fix s2 mode (#24525) 2023-07-31 11:24:04 -07:00
Dmitry Gozman d92fe16b76
fix(blob report): default location relative to package.json (#24481)
Also:
- remove `blob-report` directory at the start;
- markdown's `report.md` next to package.json;
- use default location in playwright's workflows.

References #24451.
2023-07-28 15:49:31 -07:00
Max Schmitt 83a98cccf3
test: skip tracing test on trace mode (#24483)
Thats like we do it here:
c8f2fc392a/tests/library/tracing.spec.ts (L26)
2023-07-28 18:48:34 +02:00
Pavel Feldman 1277ec9900
chore: fix tracing test in s2 mode (#24480) 2023-07-27 20:20:31 -07:00
Dmitry Gozman 6c1723ca3e
test: rebaseline webkit signals.spec (#24471)
Fixes #22226.
2023-07-27 13:36:43 -07:00
Dmitry Gozman 1754755684
fix(tracing): make sure resetForReuse does not throw (#24415)
When trace chunk recording is in progress, calling `stop()` throws
`Error: Must stop trace file before stopping tracing`.
2023-07-27 08:06:42 -07:00
Dmitry Gozman 1b233a5ae2
fix(trace viewer): do not serve 304 responses (#24435)
These do not have any content, and we should server the original
response that was cached by the browser.

Fixes #24255.
2023-07-27 08:06:00 -07:00
Pavel Feldman 216d08ba94
chore: use shared test run id (#24448) 2023-07-26 18:36:33 -07:00
Dmitry Gozman c8f2fc392a
chore: move fs operation in trace recorder to a separate class (#24383) 2023-07-26 17:31:00 -07:00
Dmitry Gozman ea6d127f28
feat(connect): exposeNetwork option (#24436) 2023-07-26 17:29:31 -07:00
Pavel Feldman 517cc18c9b
chore: remove retries, skip tracing tests (#24443) 2023-07-26 14:56:38 -07:00
Pavel Feldman 1ddfcf503d
chore: add yml for service2 test mode (#24441) 2023-07-26 14:32:48 -07:00
Dmitry Gozman c33a32dc9e
test: unflake two tests (#24416) 2023-07-26 06:50:38 -07:00
Pavel Feldman b39fd7283f
chore: skip tests that fail in cross-machine service mode (#24412) 2023-07-25 16:47:04 -07:00
Pavel Feldman 33d62d9a97
chore: do not use relative xpath when querying from document (#24405)
Fixes https://github.com/microsoft/playwright/issues/24399
2023-07-25 12:55:35 -07:00
Dmitry Gozman 4c8912f74e
chore: remove separate process that cleans up directories (#24376)
A separate process is `spawnSync`'ed on process exit to cleanup
temporary directories, introduced in #13769 that followed up after
#13343.

A separate process might stall for various fs-related issues, which
prevents the original process from exiting.

With the recent changes, we always gracefully close and cleanup after
all launched executables before calling `process.exit()`, and so it
should only be possible to leave temp directories when using Playwright
and calling `process.exit()` programmatically without closing browsers.

We can now drop the extra process and rely on `rimraf.sync` for
last-resort cleanup in these rare circumstances.
2023-07-24 15:24:29 -07:00
Yury Semikhatsky 59d5198d17
fix(fetch): handle negative max-age and expires attributes (#24311)
Fixes #24221
2023-07-20 15:42:52 -07:00
Playwright Service 20fcd6b272
feat(webkit): roll to r1875 (#24299)
Since
99ff08340f
search event is disabled in cocoa.

---------

Signed-off-by: Max Schmitt <max@schmitt.mx>
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Max Schmitt <max@schmitt.mx>
2023-07-19 18:24:21 +02:00
Yury Semikhatsky d92db9a513
devops: always create blob report on CI, write PR number within action (#24241) 2023-07-14 15:10:29 -07:00
Dmitry Gozman 97d55e275d
fix(locator): locator(locator) method uses internal:chain instead of >> (#24235)
Usually, we can just chain two locators with `>>` to implement
`Locator.locator(locator)`. However, this does not play nicely with more
advanced inner locators like `or` and `and`:

```ts
const child = page.locator('input').or(page.locator('button'));
page.locator('parent').locator(child);
```

One would expect the above to locate "input or button" inside a
"parent". However, currently it locates "input inside a parent" or
"button", because it's translated to `parent >> input >>
internal:or="button"`.

To fix this, we have to wrap inner locator into `internal:chain` and
query it separately from the parent.

Fixes #23724.
2023-07-14 12:21:45 -07:00
Dmitry Gozman 98f3ca05b9
fix(tracing): only access tracing state on the API calls, not inside trace operations (#24212)
References #23387.
2023-07-14 06:19:54 -07:00
Yury Semikhatsky 15c6dad114
chore: test cleanup (#24211)
The functionality was fixed in
https://github.com/microsoft/playwright/pull/24201.

 Fixes #24201
2023-07-13 09:57:51 -07:00
Playwright Service 7787988043
feat(webkit): roll to r1872 (#24201)
Signed-off-by: Max Schmitt <max@schmitt.mx>
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Max Schmitt <max@schmitt.mx>
2023-07-13 11:07:33 +02:00
Yury Semikhatsky cc51d13c36
test: request cookie order is same as in set-cookie (#24194) 2023-07-12 17:40:53 -07:00
Pavel Feldman 53bf1995db
chore: do not leak internal page handles after closing page (#24169)
Partial fix for https://github.com/microsoft/playwright/issues/6319

After this fix, the following scenario won't leak and the context state
(cookies, storage, etc) can be reused by the new page sessions:

```js
  for (let i = 0; i < 1000; ++i) {
    const page = await context.newPage();
    await page.goto('...');
    await page.close('...');
  }
```
2023-07-12 14:51:13 -07:00
Yury Semikhatsky 700a925565
test: simplify emulate media + connectOverCDP test (#24166) 2023-07-11 14:20:05 -07:00