Commit graph

2243 commits

Author SHA1 Message Date
Dmitry Gozman 92c738b14a
test: unflake some tests (#23984) 2023-06-30 13:08:18 -07:00
Dmitry Gozman 1d0b48f18b
fix(route): handle escapes in the glob pattern (#23932)
Fixes #23303.
2023-06-28 16:33:04 -07:00
Dmitry Gozman 1ab99fe1b8
feat(electron): support tracesDir option (#23947)
References #23620.
2023-06-28 16:32:16 -07:00
Dmitry Gozman b0b429fed0
feat: support bigint in evaluates (#23930)
Fixes #22719.
2023-06-28 08:55:45 -07:00
Max Schmitt dcdf38f119
chore: keep UI Mode running when used with browser mode (#23876)
This will keep UI Mode running in browser mode. When launched in normal
persistent context mode, we know when the persistent context closes, so
we can run the project teardown code.

Fixes https://github.com/microsoft/playwright/issues/23801
2023-06-26 22:21:44 +02:00
Max Schmitt e1c220a37b
fix(trace-viewer): file path contains encoded characters (#23893)
This fixes:

```
npx playwright show-trace %20I%20Love%20Node.zip
```

Extracted from https://github.com/microsoft/playwright/pull/23414.
2023-06-26 18:13:40 +02:00
zhengjitf 6f67f6b52b
fix(chromium): can get correct orientation angle on non-mobile devices (#23796)
Fix #23772
2023-06-23 11:34:09 -07:00
Playwright Service f85480a12e
feat(firefox-beta): roll to r1415 (#23866)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Andrey Lushnikov <aslushnikov@gmail.com>
2023-06-23 07:03:20 -07:00
Dmitry Gozman 5821c547aa
fix(selector generator): use the same label definition as getByLabel (#23846)
This extracts `getElementLabels` helper function to be used both for
generating and querying.
2023-06-22 08:34:08 -07:00
Moritz Horstmann bdac3e28a6
fix: best-effort support for TUXEDO OS (#23813)
TUXEDO OS is an Ubuntu based distribution built by the Linux computer
vendor TUXEDO.
2023-06-22 07:14:18 -07:00
Playwright Service f7ecb7094d
feat(chromium): roll to r1069 (#23856)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2023-06-22 15:54:56 +02:00
Ben Hofferber 752176fd23
feat(goto): better navigation error message (#23609)
While this log message is only a sanity check, it is still beneficial to
have a message that can better inform what is happening when this
occurs.
2023-06-21 11:10:35 -07:00
Dmitry Gozman fe5c9dad4d
fix(locators): allow identical frameLocators inside and/or/has (#23740)
So, the following will work:

```
page.frameLocator('iframe').locator('span').or(page.frameLoactor('iframe').locator('div'))
```

The following will not work, because frame locators are not exactly the
same:

```
page.frameLocator('#iframe1').locator('span').or(page.frameLoactor('#iframe2').locator('div'))
```

Also improve the error message to be more readable and include the
locator.

Fixes #23697.
2023-06-19 15:22:26 -07:00
vemv 380209af37
chore: log when websockets are proactively closed (#23689)
Closes https://github.com/microsoft/playwright/issues/23566

n.b., while that issue describes a fairly specific "use case", this
logging is simple and generic. It seems very plausible that it can help
diagnose all sorts of issues.

Cheers - V
2023-06-19 11:12:02 -07:00
Max Schmitt 0f9f863183
fix(codegen): generate no Enter keyboard events for textareas (#23775)
Fixes https://github.com/microsoft/playwright/issues/23774
2023-06-19 17:07:37 +02:00
Andrey Lushnikov e171194c86
feat(firefox): roll Firefox to 1414 (#23768)
- roll Firefox stable to 1414
- roll Firefox beta to 1414

Fixes #23138
2023-06-17 12:10:20 -07:00
Dmitry Gozman 09b1e3ffa9
fix(chromium): response.body() for worker requests should work (#23764)
Previously, worker requests used page's session to call
`Network.getResponseBody`.

Fixes #23750.
2023-06-16 20:44:32 -07:00
Max Schmitt b44723708c
chore: move extracting of browser out-of-process (#23739)
https://github.com/microsoft/playwright/issues/23729
2023-06-16 20:40:15 +02:00
Dmitry Gozman de422b5afb
chore: speedup multiple roleUtils calls (#23745)
When generating a selector, we tend to match by role and call various
roleUtils methods multiple times.

Apply the usual pattern for "nested operations counter" and aggressively
cache the results.
2023-06-16 11:39:39 -07:00
Machiel-B 0358f6c434
fix: make trace viewer not use 301 to redirect (#23757) 2023-06-16 18:16:01 +02:00
Playwright Service d92a648284
feat(chromium): roll to r1068 (#23756) 2023-06-16 17:57:45 +02:00
Dmitriy Dudkevich fc8f0101c8
fix(selenium): send additional headers to delete session method (#23719)
In the process of completing the task -
https://github.com/microsoft/playwright/pull/23348, I didn't notice the
need to pass headers to the session deletion method. So I fixed it here.
And support headers for selenium@3.
2023-06-16 11:44:04 +02:00
Dmitry Gozman d11bc88784
chore(codegen): do not use accessible name for non-text selectors (#23717)
Accessible name usually includes text, so we don't want it for non-text
selectors, e.g. for `expect()` selectors.
2023-06-15 12:30:18 -07:00
Andrey Lushnikov 3c0fab489b
chore: miscellaneous trace viewer fixes (#23695)
- properly annotate continued requests
- nest `attach` steps inside the related `expect` step
- fix primary-id-to-non-primary-id mapping
- make sure images in trace are not draggable

Fixes #23693

---------

Signed-off-by: Andrey Lushnikov <aslushnikov@gmail.com>
Co-authored-by: Max Schmitt <max@schmitt.mx>
2023-06-14 09:37:19 -07:00
Max Schmitt 9e636687ea
chore: add more logging for browser install process (#23675) 2023-06-14 15:33:06 +02:00
Dmitry Gozman 5b2e8a6a7a
chore: optional root for generateSelector (#23692) 2023-06-13 21:25:39 -07:00
Dmitry Gozman c80a23842b
fix(css): relative-to-scope selectors work (#23665)
Chained selectors where the second part starts with a scope did not work
before:

```ts
page.locator('div').locator(':scope + span')
page.locator('div >> +span')
```
2023-06-13 10:27:25 -07:00
Dmitry Gozman dd417d83d9
fix(locators): escape >> inside a regular expression (#23631)
To avoid selector being parsed as a chain.

Fixes #23540.
2023-06-12 10:34:37 -07:00
Dmitry Gozman 734705e9b3
chore: elementHandle getters implemented through Frame (#23557)
This is a step towards not using handles for locator operations.
2023-06-09 07:18:13 -07:00
Dmitry Gozman 11659ceb73
fix(role): handle display:contents elements (#23607)
Fixes #23521.
2023-06-08 16:00:48 -07:00
Dmitriy Dudkevich 187cfdc328
feat: ability to pass additional headers to selenium (#23348) 2023-06-08 10:41:36 -07:00
Dmitry Gozman 5cfd6d9fe9
fix(cr network): emit sw-handled requests when routing is enabled (#23589)
Previously, such requests were skipped because they never receive
`Fetch.requestPaused` as there was no real network.

Also cleanup some redundant tests and move them from chromium-only file.

Fixes #23424.
2023-06-08 10:33:28 -07:00
Playwright Service 54a35dd108
feat(chromium): roll to r1067 (#23593)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2023-06-08 19:03:48 +02:00
Dmitry Gozman 4f8680f7a3
fix(pause): revert timeouts after pause (#23578)
Fixes #23523.
2023-06-07 12:30:10 -07:00
Pavel Feldman 0b30f2017c
chore: make trace server work over http (#23561) 2023-06-06 18:36:05 -07:00
Andrey Lushnikov 2e327c9d0c
fix: miscellaneous improvements for tracing UI (#23558)
- feat(tracing): mark API requests with "API" label
- feat(tracing): do not attribute any resources to `route.` API calls;
  otherwise, network traffic might get inside the `route.` actions.
- fix(tracing): map actionIds from primary contexts to actionIds from
  non-primary contexts
- fix(tracing): show leading `/` in URL path in network panel

This is a result of a pair-programming session with @pavelfeldman
2023-06-06 17:38:44 -07:00
Pavel Feldman 7579572688
chore: unflake the network status test (#23551) 2023-06-06 16:55:53 -07:00
Max Schmitt 85be65b07b
chore: update npx playwright uninstall docs (#23552) 2023-06-06 22:09:15 +02:00
Max Schmitt 8bc26a2b44
chore: wait for downloads getting removed on context.close() (#23500)
Before there was a race, that we ran into this code:


9cd49d5dd5/packages/playwright-core/src/server/browserContext.ts (L236-L237)

and then into this code:


9cd49d5dd5/packages/playwright-core/src/server/browserContext.ts (L429-L431)

which had the side effect, that the first call did not wait. Then
immediately clears the downloads Set and then the second call is a NOOP.
This ends up that the the removal of the downloads can happen after the
context is closed, hence the test is flaky.

Relates to https://github.com/microsoft/playwright/pull/6151 where it
got introduced. So something for @yury-s.

Fixes https://github.com/microsoft/playwright/issues/22525
2023-06-06 20:38:36 +02:00
Pavel Feldman 6351630af2
chore: do not show the open error (#23547) 2023-06-06 11:09:08 -07:00
Pavel Feldman d4349e5d6f
chore: print listening on message in terminal for web trace modes (#23546) 2023-06-06 09:36:49 -07:00
Pavel Feldman 699ac3a0f2
chore: allow opening ui mode over http (#23536) 2023-06-06 08:31:52 -07:00
Andrey Lushnikov 3a00fc4edf
fix: call focus() twice to workaround firefox not focusing element (#23535)
When focus is moved from one tab to another, it might require calling
`focus()` twice to actually focus an element in Firefox.

Fixes https://github.com/microsoft/playwright/issues/23117
2023-06-05 16:46:52 -07:00
Pavel Feldman eacfff8127
chore: make trace viewer work over http (#23531) 2023-06-05 16:30:30 -07:00
Pavel Feldman def24c0a14
chore: propagate client-side instrumentation across connect (#23524)
Fixes https://github.com/microsoft/playwright/issues/23504
2023-06-05 12:28:20 -07:00
Playwright Service d95b6f40a4
feat(webkit): roll to r1860 (#23494)
Fixes https://github.com/microsoft/playwright/issues/20489
2023-06-05 09:51:39 -07:00
Dmitry Gozman b518d1f6da
chore: update error message when using wrong cli (#23512)
Now recommends uninstalling other packages. Fixes #23314.

Example messages:

```
Please install @playwright/test package before running "npx playwright show-report"
  npm uninstall playwright playwright-firefox
  npm install -D @playwright/test
```

```
Please install @playwright/test package before running "yarn playwright show-report"
  yarn remove playwright playwright-chromium playwright-firefox playwright-webkit
  yarn add -D @playwright/test
```

```
Please install @playwright/test package before running "pnpm exec playwright show-report"
  pnpm remove playwright
  pnpm add -D @playwright/test
```
2023-06-05 09:51:08 -07:00
Max Schmitt 75971af55b
feat(cli): introduce npx playwright uninstall (#23128)
Co-authored-by: Dmitry Gozman <dgozman@gmail.com>
2023-06-05 18:50:21 +02:00
Max Schmitt 00f662531e
Revert "fix(tracing): workaround chromium scrollTop slowness" (#23486)
This commit reverts f6712ec43a

I manually ran
https://github.com/microsoft/playwright/issues/14037#issuecomment-1122256514
and made sure that the performance did not regress. ~same.

Fixes https://github.com/microsoft/playwright/issues/23455
2023-06-02 23:25:55 +02:00
Yury Semikhatsky 401fc4cb9e
fix(tracing): record available response headers without waiting for extra info (#23483)
Fixes #23115
2023-06-02 14:15:20 -07:00
Ivaylo Pavlov e3f91bbabf
Fix header to pass Selenium Grid Capabilities (#23346)
Fixes: #23345
2023-06-02 13:28:23 -07:00
Dmitriy Dudkevich 7ab754f5d5
fix: render actions in ui mode with browsers from selenium (#23382) 2023-06-02 13:24:21 -07:00
Pavel Feldman 5a14619bab
chore: render route markers in the trace network panel (#23476)
Fixes https://github.com/microsoft/playwright/issues/23040


![net](https://github.com/microsoft/playwright/assets/883973/5191163e-63f9-4999-9197-d10dcd09a665)
2023-06-02 13:00:27 -07:00
Max Schmitt b21c81d344
devops: add bot for Chromium --headless=new (#23440)
https://github.com/microsoft/playwright/issues/23389
2023-06-02 20:40:12 +02:00
Dmitry Gozman 835f14d7c9
fix(pause): ignore page.pause on the server (#23417)
Fixes #23051.
2023-06-02 08:32:30 -07:00
Kristo Jorgenson a4a363f4f4
chore: upgrade @types/node to 16.x (#23429)
Co-authored-by: Max Schmitt <max@schmitt.mx>
2023-06-02 10:04:41 +02:00
Dmitry Gozman 14a1eaa474
chore: add Playwright to attribution (#23447)
This makes it easier to plumb all kinds of options around.
2023-06-01 17:54:43 -07:00
Playwright Service 3e73906027
feat(chromium): roll to r1066 (#23433)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2023-06-01 16:03:49 +02:00
Dmitry Gozman 6bb5c0a549
fix: make evaluate not wait for scheduled navigations (#23402)
Fixes #23141.
2023-05-31 14:08:44 -07:00
Pavel Feldman 658b1dfea3
chore: trace viewer server for vscode (#23383) 2023-05-30 18:31:15 -07:00
João Neves 7e6e5f0706
feat: Support React forwards refs and memo (#23262)
This PR fixes the react selector behavior to support components that are
wrapped by the memo or forwardRef React builtin functions.

Previously these components couldn't be selected. This PR fixes that
behavior, enabling selecting those components.

Current behavior:
```
const Foo = memo(() => <div id="foo_component" />);
Foo.displayName = "Foo";
...
playwright.$("_react=Foo") -> undefined
```

Fixed behavior:
```
const Foo = memo(() => <div id="foo_component" />);
Foo.displayName = "Foo";
...
playwright.$("_react=Foo") -> <div id ="foo_component" />
```
2023-05-30 17:14:47 -07:00
Dmitry Gozman 6db6498565
chore: replace sigint handler per browser with a single one (#23317)
Otherwise, multiple sigint handlers (one from each browser) would try to
`process.exit(130)` each.
2023-05-30 13:54:04 -07:00
Max Schmitt 13f70b6d89
chore: have type modifiers directly on file import (#23337) 2023-05-30 21:11:35 +02:00
Max Schmitt 2710fd8d6f
fix: should be able to upload multiple large files (#23360)
Fixes https://github.com/microsoft/playwright/issues/23258
2023-05-30 18:41:09 +02:00
Max Schmitt f819b1c72d
fix: trace viewer with global applied background-color (#23362)
Fixes https://github.com/microsoft/playwright/issues/23275
2023-05-30 17:58:29 +02:00
Max Schmitt 9e75b95153
fix: display testId as regex in trace-viewer (#23361)
Fixes https://github.com/microsoft/playwright/issues/23298
2023-05-30 17:45:48 +02:00
Pavel Feldman ec972fb7c1
chore: make trace viewer self-desctruct on input disconnect (#23291) 2023-05-26 14:54:54 -07:00
Dmitry Gozman fa86f2aee0
chore: createHttpServer that destroys sockets upon close (#23294)
This avoids the server hanging on close.
2023-05-26 07:03:41 -07:00
Pavel Feldman 1e95b6d906
chore: allow sending trace URLs over stdin (#23288) 2023-05-25 15:38:47 -07:00
Playwright Service c5c0b9a78b
feat(chromium): roll to r1065 (#23281)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2023-05-25 13:04:36 -07:00
Yury Semikhatsky bcc711145e
feat(webkit): roll to r1855 (#23267) 2023-05-24 16:09:58 -07:00
Dmitry Gozman 848f1dff3f
feat(trace): instantiate consoleAPI in popout with correct testIdAttribute (#23238) 2023-05-23 12:17:26 -07:00
Pavel Feldman 6cce93b697
chore: explicit server mode control (#23215) 2023-05-23 10:56:37 -07:00
Pavel Feldman b814e8a5f1
chore: bring back per test artifacts (#23153) 2023-05-23 09:36:35 -07:00
Jasiel Guillén 700062c836
feat(screenshot): Add customizable color option for masked elements (#23185)
I added a new option to the screenshot method to customize the color of
the box when we want to mask some elements for the screenshot.

The default color is pink `#FF00FF`, but with this new option you can
specify the color you like the most, like a nice green `#00FF00`:

```js
await page.screenshot({
  mask: [page.locator('div').nth(5)],
  maskColor: "#00FF00",
})
```


![ss](https://github.com/microsoft/playwright/assets/23271049/05f754de-0ba6-47a3-ae3e-769720d3da3b)

---------

Signed-off-by: Jasiel Guillén <darkensses@gmail.com>
2023-05-22 18:44:44 -07:00
Andrey Lushnikov 5f36a2946e
fix: add missing webkit deps on ubuntu 20.04 (#23209)
Fixes https://github.com/microsoft/playwright/issues/23186
2023-05-22 15:43:09 -07:00
Pavel Feldman 631edc9744
chore(internal): generate code in jsonl (#23124) 2023-05-20 10:15:33 -07:00
Pavel Feldman bd090e67df
lint: prevent object string concatenation (#23172) 2023-05-19 15:17:43 -07:00
Dmitry Gozman bd33e5f8c0
fix(tracing): when zipping remotely, use correct file name (#23171)
Fixes #23108.
2023-05-19 14:42:01 -07:00
Dmitry Gozman 422b65eeae
feat(connect): pw:server:channel and pw:socks debug logs (#23144)
Fixes #23081.
2023-05-18 13:44:48 -07:00
Max Schmitt acdb71878e
test: unskip selenium driver test (#23129)
Issue is that [when `stop()` is
called](28504f6dc7/tests/library/browsertype-launch-selenium.spec.ts (L202)),
`onExit()` gets called and then it throws an unhandled rejection.

This regressed in https://github.com/microsoft/playwright/pull/23028.

I didn't find a reason to keep onExit, so removed it for now since
transport should handle these scenarios.

Fixes https://github.com/microsoft/playwright/issues/23110
2023-05-18 18:33:11 +02:00
Playwright Service 5957d8f306
feat(chromium): roll to r1064 (#23130)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2023-05-18 15:52:45 +02:00
Dmitry Gozman be7984bdc9
fix(unroute): do not compare regexp instances (#23101)
References #23092.
2023-05-17 16:27:32 -07:00
Playwright Service f1e0aed03c
feat(chromium): roll to r1063 (#23104)
Fixes https://github.com/microsoft/playwright/issues/22967

Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2023-05-18 00:49:13 +02:00
Max Schmitt e80ff0df77
chore: don't install gstreamer for WebKit Ubuntu 20 (#23062) 2023-05-17 18:31:24 +02:00
Pavel Feldman fbc461ede0
chore(trace): do not flush console events (#23073)
Fixes https://github.com/microsoft/playwright/issues/20626
2023-05-16 18:44:27 -07:00
Dmitry Gozman fec5059fee
feat(connect): print debug log when remote connection failed (#23069) 2023-05-16 16:46:02 -07:00
Max Schmitt 3cd21cb6d4
chore: ignore SIGINT inside driver process (#23028)
https://github.com/microsoft/playwright-python/issues/1843

Almost reverts https://github.com/microsoft/playwright/pull/11826 since
this is not used by VSCode anymore and was legacy.
2023-05-17 01:44:17 +02:00
Dmitry Gozman 62146b946c
fix(codegen): ignore previously hovered detached nodes (#23057)
Fixes #23043.
2023-05-16 11:13:19 -07:00
Dmitry Gozman 73f9f81db4
feat(locators): allow ambiguous locators when parsing (#23034)
This supports locators like `nth(0)` and `locator('div', { hasText:
'foo' })` that are not canonical, but still work.

Fixes #22990, #22965.
2023-05-15 19:42:51 -07:00
Max Schmitt edd003c230
chore: validate expected image buffer when comparing images (#23030)
Fixes https://github.com/microsoft/playwright/issues/23012
2023-05-15 23:32:16 +02:00
Max Schmitt 17ab777db5
chore: set min viewport for WK on Win to 250x240 (#22969)
Follow-up for https://github.com/microsoft/playwright/pull/22956.
2023-05-14 16:59:15 +02:00
Dmitry Gozman 9472f79d32
fix(reuse): reset mouse position in Firefox (#22973)
Otherwise, Firefox sometimes keeps the current position and triggers
unexpected hover effects.

Fixes #22432.
2023-05-12 13:21:49 -07:00
Andrey Lushnikov bf1aba885b chore: fix lint 2023-05-12 13:04:11 -07:00
Andrey Lushnikov eea7a8e638
browser(firefox): roll Firefoxes (#22998)
Fixes https://github.com/microsoft/playwright/issues/15405
Fixes https://github.com/microsoft/playwright/issues/22618
2023-05-12 11:27:19 -07:00
Pavel Feldman 59b9a39740
chore: add string attachments to trace (#22921) 2023-05-11 16:32:32 -07:00
Andrey Lushnikov d7f5f1f5fe
feat: default screenshot jpeg quality to 80 (#22966)
Fixes https://github.com/microsoft/playwright/issues/22436
2023-05-11 11:09:19 -07:00
Max Schmitt 00187172f2
chore: introduce minimal viewport for WebKit/Windows/headed (#22956)
Fixes https://github.com/microsoft/playwright/issues/22616
2023-05-11 17:54:05 +02:00
Playwright Service d17d43c4fa
feat(firefox): roll to r1406 (#22962)
Fixes https://github.com/microsoft/playwright/issues/22580

Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2023-05-11 08:18:51 -07:00
Dmitry Gozman f2ad5bbfbb
fix(isVisible): return false during navigation (#22943)
Instead of throwing "Execution context was destroyed" error.

Drive-by: improve internal error messages for `ScopedRace` errors.

Fixes #22925.
2023-05-10 16:56:59 -07:00
Dmitry Gozman 80f46892cd
fix(getByLabel): ignore empty aria-label (#22935)
Accessible name computation ignores empty aria-label, and so should
getByLabel.

Fixes #22915.
2023-05-10 10:38:46 -07:00
Alexander Sorokin cbf4f39957
fix: React selectors should work after unmount (#22750)
Fixes #22729
2023-05-10 06:18:01 -07:00
Max Schmitt 1541206482
test: use custom browser binary for connnect tests (#22900)
Fixes https://github.com/microsoft/playwright/issues/22898
2023-05-10 09:30:56 +02:00
Pavel Feldman 5e0574dc44
chore: list attachments in the trace (#22919)
Fixes https://github.com/microsoft/playwright/issues/22736
2023-05-09 17:53:01 -07:00
Yury Semikhatsky 75e106745f
fix(fetch): support proxy.bypass (#22914)
Fixes #21916
2023-05-09 14:51:49 -07:00
Pavel Feldman 5fb426e7db
fix(webkit): do not update console counter on unhandled rejections (#22890)
Fixes https://github.com/microsoft/playwright/issues/22886
2023-05-08 18:50:40 -07:00
Pavel Feldman efad19b332
chore: render test steps in the trace (#22837) 2023-05-05 15:12:18 -07:00
Dmitry Gozman 641e223ca8
fix(server): explicit allowlist for launch options (#22855)
Some options, usually paths, do not make sense when running remotely.

Fixes #22844.
2023-05-05 13:07:06 -07:00
Yury Semikhatsky 02a1a2e6a9
fix(webkit): define window.GestureEvent (#22768)
Polyfill GestureEvent so that Safari detection works.

Fixes #22735
2023-05-05 11:37:28 -07:00
Dmitry Gozman 160888df99
feat(locators): reland locator.and(locator) (#22850)
Removed in #22223.
Fixes #22585.
2023-05-05 11:14:01 -07:00
Dmitry Gozman 42328478ea
feat: make console/dialog events based on subscription (#22835)
This way we do not send events from the server unless the client is
interested.

Fixes #22621.
2023-05-05 11:12:33 -07:00
Dmitry Gozman 2393602e8c
fix(reuse): ignore late bindings after dispatchers were disposed (#22838)
When reusing the context, we first dispose all dispatchers, and then
reset the page/context. If bindings are triggered during the reset, they
try to send messages on disposed dispatchers.

Since there is no way to unregister bindings, just ignore them after
disposal.

Fixes #22803.
2023-05-05 11:10:53 -07:00
Dmitry Gozman 236c329ea9
feat: browserContext.on('dialog'/'console') (#22805)
Relanding #22033 and #21943.
2023-05-04 15:11:46 -07:00
Dmitry Gozman ca3629186c
fix(role): fix native controls text alternative when aria-labelledby is present (#22800)
Fixes #22779.
2023-05-03 16:09:08 -07:00
Pavel Feldman b868f3a9d0
chore: extend raw stack (#22794) 2023-05-03 13:53:02 -07:00
Dmitry Gozman 3c724c2498
fix: do not crash upon download in unknown page (#22774)
Fixes #22551.
2023-05-02 18:49:04 -07:00
Pavel Feldman 116fb349ce
chore: allow configuring test id attribute for codegen (#22716)
Fixes: https://github.com/microsoft/playwright/issues/22653
2023-04-29 12:04:33 -07:00
Dmitry Gozman ffc00566b9
chore: separate options fixture vs artifacts fixture (#22713)
Later on, artifacts fixture can be made worker-scoped.
2023-04-28 16:54:52 -07:00
Pavel Feldman e9373dfb6e
chore: make client-side instrumentation non-nullable (#22694) 2023-04-28 08:57:43 -07:00
Playwright Service e50e2e6bc9
feat(webkit): roll to r1840 (#22686)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2023-04-27 17:37:19 +02:00
Max Schmitt c5880f9994
chore(chromium): remove --disable-sync CLI switch (#22667)
Fixes https://github.com/microsoft/playwright/pull/22583
Fixes https://github.com/microsoft/playwright/issues/22560

Not relevant anymore, it only takes effect when profiles is signed in.

See https://bugs.chromium.org/p/chromium/issues/detail?id=1439737.
2023-04-26 15:34:47 -07:00
Pavel Feldman d34c4e99f5
chore: add step attachments into the expect trace event (#22543) 2023-04-25 17:38:12 -07:00
Pavel Feldman 6b487ff49d
chore: remove cli from playwright-core (#22612)
Fixes https://github.com/microsoft/playwright/issues/22599
2023-04-25 11:19:37 -07:00
Andrey Lushnikov 62bd41912d
chore: cleanup bandaid firefox pref (#22570)
This patch removes the bandaid preferences that got migrated
to the build.
2023-04-23 19:58:00 -07:00
Max Schmitt f6aa9f49ce
chore: make evaluate work with busted Array.prototype.map/push (#22528)
Fixes https://github.com/microsoft/playwright/issues/22460

Signed-off-by: Max Schmitt <max@schmitt.mx>
Co-authored-by: Dmitry Gozman <dgozman@gmail.com>
2023-04-21 19:52:13 +02:00
Pavel Feldman bbc47ba315
chore: ensure web assertions are merged in trace (#22544) 2023-04-21 10:07:23 -07:00
Andrey Lushnikov a919f5f66f
chore: attempt to fix firefox-beta WebGL tests on MacOS 12.6 (#22548)
Looks like https://phabricator.services.mozilla.com/D164016
disabled software rendering.

If Firefox-beta passes on MacOS, then this bandaid setting will be
migrated to the firefox-beta default settings.
2023-04-21 09:54:25 -07:00
Playwright Service 94b36a3805
feat(chromium): roll to r1060 (#22529)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2023-04-20 18:21:29 +02:00
☃ Elliot Shepherd 106fa45f50
feat(route): accept timeout to fetch (#22475)
Fixes: #22474
2023-04-20 08:41:33 -07:00
Pavel Feldman 0c70f6900e
chore: fix ui mode w/ multiple contexts (#22514)
Fixes: https://github.com/microsoft/playwright/issues/21895
2023-04-20 08:19:00 -07:00
Pavel Feldman d45efe881f
chore: don't leak from waitFor (#22465)
Fixes https://github.com/microsoft/playwright/issues/22458
2023-04-18 11:11:46 -07:00
Playwright Service 4e9faba34d
feat(webkit): roll to r1834 (#22462)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2023-04-18 19:41:56 +02:00
Pavel Feldman 9f661b710a
chore: bump the trace packet size to be 1Mb (#22446) 2023-04-17 18:36:08 -07:00
Pavel Feldman 00df08b3cf
chore: explicitly control actions with slow mo (#22445)
Fixes https://github.com/microsoft/playwright/issues/22273
2023-04-17 16:19:30 -07:00
Yury Semikhatsky 1fecc20238
feat(webkit): roll to r1830 (#22412)
https://github.com/microsoft/playwright/issues/22411
Fixes https://github.com/microsoft/playwright/issues/21892
2023-04-14 13:32:50 -07:00
Playwright Service da8672711b
feat(firefox): roll to r1398 (#22397)
Fixes https://github.com/microsoft/playwright/issues/22343

Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2023-04-14 07:24:54 -07:00
Andrey Lushnikov 8bb708be70
test: unflake inspector-cli tests (#22347)
This patch:
- changes the `childProcess` fixture to reliably SIGKILL all descendants
  (children and grand-children, regardless of their process group).
This is achieved using the `ps` command to build the process tree, and
then send
  `SIGKILL` to the descendant process groups.
- changes the `runCLI` fixture to **not** auto-close codegen by default;
  the `childProcess` fixture will clean up all processes. This makes
sure that all `runCLI.waitFor()` commands actually wait until the
necessary
  output.
- for a handful of tests that do actually want to auto-close codegen,
  introduce an optional `autoCloseWhen` flag for the `runCLI` fixture
that makes sure to close the codegen once a certain output was reached.
2023-04-12 09:37:24 -07:00
Yury Semikhatsky 5cd9f83c7b
fix(webkit): properly set user agent in persistent context (#22283)
Fixes https://github.com/microsoft/playwright/issues/22274
2023-04-07 19:50:49 -07:00
Yury Semikhatsky 8d2502ee62
test: make page-leaks tests pass in electron (#22277)
They've been failing
https://devops.playwright.dev/flakiness.html#filter_spec=page%2Fpage-leaks.spec.ts&test_parameter_filters=%5B%5D&timestamp=1680901928195
2023-04-07 17:20:49 -07:00
Playwright Service 26bbf8ca1b
feat(chromium): roll to r1058 (#22264) 2023-04-07 14:11:18 -07:00
Playwright Service f610577a18
feat(webkit): roll to r1823 (#22227)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2023-04-06 11:52:48 +02:00
Dmitry Gozman 08cef43e82
feat(locator): remove locator.and and locator.not (#22223)
Not shipping for now, after API review.
2023-04-05 16:28:13 -07:00
Dmitry Gozman 35afb056ea
feat(locator): filter({ hasNotText }) (#22222)
The opposite of `filter({ hasText })`.
2023-04-05 14:13:28 -07:00
Dmitry Gozman bc1de5f28d
feat(locator): filter({ hasNot }) (#22219)
This is the opposite of `filter({ has })`.
2023-04-05 12:45:46 -07:00
Johannes Loher bd698efaef
fix(webServer): follow relative redirects when checking the url (#22035)
Fixes https://github.com/microsoft/playwright/issues/22144
2023-04-05 10:39:35 +02:00
Dmitry Gozman d7b3836752
chore: revert console and dialog events on BrowserContext (#22195)
This reverts #22033 and #21943, since there will be no immediate
benefits in v1.33.
2023-04-04 13:13:52 -07:00
Pavel Feldman 3608425d57
chore: allow reusing browser between the tests (#22191) 2023-04-04 12:31:42 -07:00
Dmitry Gozman ab85b23e67
fix(expect): report expect "Timed out" when it actually does (#22174)
Previously, it would say "Timed out" when page was closed at test
timeout, or not say "Timed out" when at least one element matched.

Fixes #21664.
2023-04-03 15:06:13 -07:00
Dmitry Gozman 26c00a97a5
fix(expect): do not produce logs twice (#22171) 2023-04-03 15:05:40 -07:00
Pavel Feldman 3b9e62432d
chore: do not leak on clicks (#22129)
Fixes #22115
2023-03-31 18:18:45 -07:00
Dmitry Gozman 41e3e6d13f
fix(tracing): avoid clashing network file names (#22126)
With two contexts in the same test, we can get:
- `<testId>.network` and `<testId>-1.network` files;
- for export, we can copy `<testId>.network` into `<testId>-1.network`
and try to copy into a file when another trace is reading from it.

Fixes #22089.
2023-03-31 17:29:39 -07:00
Pavel Feldman 0d9ec60dc7
chore: implement jsHandle._objectCount in chromium (#22127) 2023-03-31 15:52:01 -07:00
Andrey Lushnikov 5223c1ba39
feat: add timeout to electron.firstWindow() method (#21863)
Fixes https://github.com/microsoft/playwright/issues/21846
2023-03-31 15:35:54 -07:00
Dmitry Gozman 1fbefa694f
fix(role): update accessible name calculation for native buttons (#22124)
There is a new section in the spec:

https://w3c.github.io/html-aam/#button-element-accessible-name-computation

Fixes #21808.
2023-03-31 14:17:18 -07:00
Dmitry Gozman a95ced0fef
fix(waitFor): when frameLocator does not match, resolve hidden/detached states (#22119)
Fixes #21879.
2023-03-31 10:54:07 -07:00
Dmitry Gozman 37d1659508
feat(connect): support special headers for debug/attachments (#22106)
`x-playwright-debug-log: value` headers are printed to `pw:browser`
debug log.
`x-playwright-attachment: name=value` headers are attached to each test.

Fixes #21619.
2023-03-31 08:57:07 -07:00
Pavel Feldman b1fdf0bcb6
chore: nest test steps based on zones (#22108)
Fixes: #21423
2023-03-30 21:05:07 -07:00
Dmitry Gozman 539d9873c2
feat: rename Locator.filter(locator) to Locator.and (#22101) 2023-03-30 14:41:30 -07:00
Dmitry Gozman e6148bb725
feat: Locator.not(locator) (#22066) 2023-03-30 08:52:30 -07:00
Playwright Service da3f2c042e
feat(chromium): roll to r1057 (#22093)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2023-03-30 15:36:15 +02:00
Pavel Feldman 968abd27d5
chore: do not use attributes for trace target annotation (#22075)
Fixes: https://github.com/microsoft/playwright/issues/22004
2023-03-29 23:17:17 -07:00
Dmitry Gozman 548e4a0c0f
fix(role): account for unslotted elements being hidden for aria (#22070)
When element is not assigned to any slot in the shadow root, it is not
rendered and is considered hidden for ARIA in all browsers.

In Chromium/Firefox we use `Element.checkVisibility` that already
handles this, but in WebKit we have to check it manually.

Fixes #21487.
2023-03-29 17:08:05 -07:00
Dmitry Gozman 6929214dbf
feat(expect): expect(locator).toBeAttached() (#22067)
Fixes #13467.
2023-03-29 11:09:17 -07:00
Dmitry Gozman 6a2b4ed142
fix(role): use <title> for elements inside svg (#22043)
Follows svg-aam mapping:
https://www.w3.org/TR/svg-aam-1.0/#mapping_additional_nd

Fixes #21486.
2023-03-28 15:52:16 -07:00
Dmitry Gozman 3b359e27b7
feat: BrowserContext.on('dialog') (#22033)
Dialogs created early during page initialization are only reported on
the context, with `page()` being `null`.
2023-03-28 13:15:55 -07:00
Dmitry Gozman f502c72f2b
feat: browserContext.on('console') (#21943) 2023-03-27 16:35:05 -07:00
Dmitry Gozman 525097d465
feat: Locator.filter(locator) (#21975)
Produces a locator that matches both locators.
Implemented through `internal:and` selector.

Fixes #19551.
2023-03-27 14:29:30 -07:00
Sébastien Richert 591e4ea976
feat: Restrain sending http credentials on a specific origin (#20374)
For security purpose, we would like to restrain sending HTTP credentials
to only the specified server. The idea is to give the ability to specify
a origin (scheme://host:port) additionally to current pair
username/password. When an authorization response is received from
servers, the credentials are sent only if the server origin in the
request matches case insensitive the specified origin.
2023-03-27 08:52:00 -07:00
Playwright Service 60ebea1e80
feat(chromium): roll to r1056 (#21956)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2023-03-24 15:07:37 +01:00
Pavel Feldman d4e0ef7f1a
chore: explicitly send route's requestUrl for tracing (#21940) 2023-03-23 14:57:03 -07:00
Dmitry Gozman d10fac4f6a
feat: Locator.or(locator) (#21884) 2023-03-22 15:28:59 -07:00
Dmitry Gozman a01fd04d63
chore: remove hierarchy of SnapshotStorage (#21853) 2023-03-22 09:32:21 -07:00
Dmitry Gozman 295a8ec92b
chore(tracing): remove extra fs.access call (#21855) 2023-03-21 19:01:09 -07:00
Dmitry Gozman 80a37ec171
fix(socks): use happy-eyeballs to create a connection (#21847) 2023-03-21 14:12:24 -07:00
Dmitry Gozman 21e1c50bcd
fix(run-server): do not engage socks when not requested (#21848)
Fixes #21762.
2023-03-21 14:06:55 -07:00
Yury Semikhatsky 1004e762aa
chore(fetch): host does not include port (#21845) 2023-03-21 13:14:50 -07:00
Pavel Feldman 0bf406c8aa
chore: sort tracing actions by wall time (#21839) 2023-03-21 10:03:49 -07:00
Pavel Feldman 543c812d2f
chore(ui): queue watch runs (#21809) 2023-03-20 13:45:35 -07:00
Pavel Feldman f151c45c91
chore: do not pass chromium args when running carlo-alike apps (#21782) 2023-03-19 12:04:45 -07:00
Pavel Feldman 8a65cf9aac
chore(ui): ui polish / nits (#21781) 2023-03-19 12:04:19 -07:00
Dmitry Gozman 3a80d119e0
chore: update routeFromHAR options for release (#21764) 2023-03-17 11:49:45 -07:00
Pavel Feldman b0bda92f9e
chore(ui): store selected projects in settings (#21737) 2023-03-17 09:41:23 -07:00
Max Schmitt 4a0dec6807
chore: do not leak recorder event registrations (#21751) 2023-03-17 16:16:08 +01:00
Max Schmitt 53d341be01
test: do not pollute stderr with trace-viewer wsEndpoint (#21748) 2023-03-17 16:15:20 +01:00
Playwright Service eac910db82
feat(firefox): roll to r1391 (#21732)
Fixes https://github.com/microsoft/playwright/issues/21668

Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2023-03-16 18:49:01 -07:00
Pavel Feldman ecd0f927f4
chore: make stacks rendering live in ui mode (#21728)
Co-authored-by: Max Schmitt <max@schmitt.mx>
2023-03-16 18:17:07 -07:00
Pavel Feldman f47a8a677c
chore: verify chromium builds (#21730) 2023-03-16 16:56:25 -07:00
Playwright Service 03a0f479d2
feat(chromium): roll to r1055 (#21721)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2023-03-16 19:25:59 +01:00
Dmitry Gozman 2518bfa8d3
Revert "feat(tracing): throttle trace event writes (#21694)" (#21718)
This reverts commit 3f20602735.
2023-03-16 11:15:57 -07:00
Dmitry Gozman 3f20602735
feat(tracing): throttle trace event writes (#21694) 2023-03-16 07:04:05 -07:00
Dmitry Gozman ea85242941
chore: improve client-side options plumbing (#21697) 2023-03-16 07:03:33 -07:00
Pavel Feldman c45d8749b0
chore: split trace events into phases (#21696) 2023-03-15 22:33:40 -07:00
Dmitry Gozman 40a6eff8f2
feat: support name option in tracing.startChunk() (#21692) 2023-03-15 17:34:56 -07:00
Dmitry Gozman bde2e90973
fix(selector generator): do not produce has-text="foo"s (#21679)
There is no locator counterpart for it. Instead, produce a regex.

Also fix locator generator to not produce incorrect locator in this
case.

Fixes #21649.
2023-03-15 13:43:42 -07:00
Pavel Feldman 99d8f6e7de
chore(ui): show live trace (#21677) 2023-03-15 11:17:03 -07:00
Pavel Feldman 27048adebe
chore: introduce testInfo.testId (#21670) 2023-03-14 15:58:55 -07:00
Dmitry Gozman ccd5d7fd10
fix(hit target): workaround webkit elementsFromPoint bug (#21642)
Fixes #21596.
2023-03-13 19:33:56 -07:00
Playwright Service 4e807f9824
feat(firefox): roll to r1390 (#21591) 2023-03-13 16:43:49 -07:00
Playwright Service e6d13f1f2c
feat(webkit): roll to r1811 (#21637)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2023-03-13 22:34:34 +01:00
Dmitry Gozman 8e7ec88462
fix(electron): do not use loader for packaged apps (#21577)
References #21387, #21512.
2023-03-13 12:52:52 -07:00
Pavel Feldman 1d870ac407
chore(ui): start adding ui mode tests (2) (#21608) 2023-03-13 12:14:51 -07:00
Pavel Feldman a12e909a40
chore(ui): start adding ui mode tests (#21601) 2023-03-12 15:18:47 -07:00
Dmitry Gozman ea8aa63f1a
feat: support PWTEST_PROFILE_DIR in run-server (#21582)
This creates one profile per connection in the specified directory.
2023-03-10 19:07:40 -08:00
Dmitry Gozman 46f9fa005e
fix(tracing): do not double-zip entries in remote mode (#21579)
Fixes #21435.
2023-03-10 14:54:32 -08:00
Andrey Lushnikov 870edd1aae
feat(firefox): roll Firefox to 1387 (#21542)
Fixes #21109
Fixes #21430
2023-03-10 09:25:54 -08:00
Dmitry Gozman 0794cb1486
fix(fetch): preserve case in header names (#21543)
Fixes #21492.
2023-03-10 08:58:12 -08:00
Playwright Service dab61df451
feat(chromium): roll to r1054 (#21559)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2023-03-10 15:09:36 +01:00
Yury Semikhatsky c30d88a63a
test: setContent with disabled javascript (#21399)
Fixes https://github.com/microsoft/playwright/issues/21379
2023-03-09 10:45:19 -08:00
Playwright Service 2b0a663dc2
feat(chromium): roll to r1053 (#21459)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2023-03-07 15:24:24 +01:00
Pavel Feldman cffb6ac269
chore: move sever/isomorphic to utils/ to use it in client (#21445) 2023-03-06 18:49:14 -08:00
Pavel Feldman b6ff3bad98
chore: split code mirror and xterm modules (#21415) 2023-03-06 10:40:45 -08:00
Pavel Feldman 86ca7e3949
chore: introduce manual promise race (#21358)
Fixes https://github.com/microsoft/playwright/issues/21345
2023-03-06 08:50:03 -08:00
Pavel Feldman 47427e87ec
chore: do not use module.exports in the injected esm files (#21412)
Follow up to #17145
2023-03-05 20:01:35 -08:00
Yury Semikhatsky 0ebe090b8c
fix(har): do not hang on chunked response in har recorder (#21397)
Fixes #21182
2023-03-03 17:27:34 -08:00
Dmitry Gozman 0c5d46bb94
feat: allow chaining locators with Locator.locator(anotherLocator) (#21391) 2023-03-03 14:50:53 -08:00
Yury Semikhatsky be259dac7c
fix: expose window.safari in webkit (#21361)
The actual API of the object is not implemented because those who want
to test it will likely need their own mock and for the browser detection
logic (as described in the bug) just having the property on window
should be sufficient.

Fixes #21037
2023-03-03 13:38:13 -08:00
Playwright Service 0af8c0169e
feat(webkit): roll to r1807 (#21389) 2023-03-03 11:28:05 -08:00
Pavel Feldman c17eea7a3c
chore: fix xpath-in-iframe (#21367)
Fixes https://github.com/microsoft/playwright/issues/21364
2023-03-03 09:13:25 -08:00
Max Schmitt 778f8e65d2
chore: do not cache between reused context (#20052)
Fixes https://github.com/microsoft/playwright/issues/19926
2023-03-03 12:37:44 +01:00
Pavel Feldman 09ff7eaaf2
chore: throw on context.close() if it was closed externally (#21347) 2023-03-02 13:46:54 -08:00
Playwright Service b7dd226edd
feat(chromium): roll to r1052 (#21353)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2023-03-02 22:07:20 +01:00
Playwright Service 0ce5651975
feat(webkit): roll to r1805 (#21349)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2023-03-02 22:07:05 +01:00
Max Schmitt e1e69cbbcc
fix(cli): pdf/screenshot did not save artifacts (#21352)
As of today we support CLI argument wise `--save-storage` and
`--save-har` in pdf/screenshot CLI command. But they are not working,
since we just close the browser rather than the context where we take
care of saving the artifacts.

`launchContext` has 4 usages:

- open/codegen there closing the browser / `SIGINT` will close it
gracefully
- pdf/screenshot there we will now close the page which will then
[here](b00579edb7/packages/playwright-core/src/cli/cli.ts?q=cli.ts#L503)
close the browser.

I did not find any tests except the [installation
test](3e84ab4701/tests/installation/playwright-cli-screenshot-should-work.spec.ts),
I'm happy to add one for both command if requested.

Fixes https://github.com/microsoft/playwright/issues/20718
2023-03-02 22:05:39 +01:00
Andrey Lushnikov bfc895787f
fix(firefox): fix reload with hash URLs (#21322)
Fixes #21145
2023-03-01 18:56:30 -08:00
Yury Semikhatsky 3b800344b0
fix(oopif): get response body from adopting frame (#21324)
Fixes https://github.com/microsoft/playwright/issues/20809
2023-03-01 17:18:58 -08:00
Pavel Feldman e222874445
chore: ui mode first cut (#21291) 2023-03-01 15:27:23 -08:00
Yury Semikhatsky 60e5a93832
fix(store): support text and binary values (#21006) 2023-03-01 08:49:31 -08:00
Playwright Service d12d35f124
feat(firefox): roll to r1384 (#21271)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2023-03-01 10:25:43 +01:00
Pavel Feldman de3a5e2a91
chore(trace): include expect steps in a trace (#21199) 2023-02-28 13:26:23 -08:00
Dmitry Gozman 27027658dc
chore: fix all Proxy() to account for symbol properties (#21272)
Fixes #20940.
2023-02-28 12:45:14 -08:00
Playwright Service f11febd232
feat(firefox): roll to r1383 (#21254)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2023-02-28 14:05:21 +01:00
Pavel Feldman 81bd637d94
chore: merge traces into a single zip file (#21242) 2023-02-27 22:31:47 -08:00
Pavel Feldman 22d82b6e1b
chore: flatten metadata in trace events (#21214) 2023-02-27 15:29:20 -08:00
NoamGaash e17e0e40f8
feat(routeFromHAR): add arguments (#21223) 2023-02-27 15:27:38 -08:00
Tarnay Kálmán e28801f6ef
fix(snapshot): render srcdoc iframe snapshots (#21003) 2023-02-27 13:34:39 -08:00
Playwright Service 4b8f36dbed
feat(webkit): roll to r1802 (#21201)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2023-02-25 14:14:29 +01:00
Pavel Feldman 09f77c41dd
chore: migrate to protocol's StackFrame type (#21198) 2023-02-24 18:36:15 -08:00
Pavel Feldman 3fa19e80ad
chore: wrap expect call in a zone (#21191) 2023-02-24 12:17:03 -08:00
Playwright Service f585d75be7
feat(chromium): roll to r1051 (#21189)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2023-02-24 17:34:14 +01:00
Pavel Feldman 8ccc02a9d3
chore: use client wall time in traces (#21163) 2023-02-23 14:37:53 -08:00
Pavel Feldman b61036d22a
chore(trace): dedupe filenames, not stack frames (#21160) 2023-02-23 09:10:09 -08:00
Playwright Service 46d70266db
feat(firefox): roll to r1382 (#21156)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2023-02-23 07:38:40 -08:00
Dmitry Gozman 2718123d30
fix(snapshots): define dummy custom elements (#21131)
For all custom elements defined in the page, we preserve their names and
define them in the rendered snapshot.
This makes things like `:defined` css pseudo work.

Fixes #21030.
2023-02-22 21:53:27 -08:00
Pavel Feldman 55c95a4463
chore: do not send stacks as a part of the call metainfo (#21089) 2023-02-22 21:08:47 -08:00
Playwright Service c8f63c04cc
feat(chromium): roll to r1050 (#21118)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2023-02-22 19:17:55 -08:00
Yury Semikhatsky d6dae8ea1f
fix: eval serialization w/ overridden URL/RegExp/Date (#21112)
Fixes #21109
2023-02-22 15:45:42 -08:00
Max Schmitt ae369144b6
chore: consolidate http/https fetching (#21104)
Fixes https://github.com/microsoft/playwright/issues/20784
Supersedes https://github.com/microsoft/playwright/pull/21076
2023-02-22 17:09:56 +01:00
Pavel Feldman b07637a316
chore: roll chromium back to 1047 (#21092) 2023-02-22 00:08:54 -08:00
Pavel Feldman 3f8f2a0fdd
chore: do not use library stack capturer in test runner (#21075) 2023-02-21 19:24:17 -08:00
Pavel Feldman 06fc72b6ed
revert(#12706): also fix related bugs it introduced (#21070) 2023-02-21 14:15:11 -08:00
Dmitry Gozman c69a7424b4
chore: split off FrameSelectors helper class (#21042)
This class manages everything related to querying selector for the
frame.
2023-02-21 14:08:51 -08:00
Playwright Service 44eccc0add
feat(chromium): roll to r1049 (#21065)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2023-02-21 19:10:00 +01:00
Playwright Service cda830645d
feat(webkit): roll to r1799 (#21045) 2023-02-21 08:18:22 +01:00
Playwright Service b3c4750547
feat(webkit): roll to r1798 (#20975)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2023-02-20 12:36:01 +01:00
Dmitry Gozman 24c8d45c70
chore: enable tsc for ttest sources (#21018) 2023-02-19 11:18:07 -08:00
Dmitry Gozman ae05808f4b
chore: align js routing logic with other langs (#21010)
Mostly reverts #20353. This makes porting easier.
2023-02-18 11:41:24 -08:00
Andrey Lushnikov 1b441ef4f0
fix: stricter condition for Firefox codegen tests workaround (#20998)
This patch fixes the following tests on WebKit @ Darwin:
- library/inspector/cli-codegen-2.spec.ts:197:7 › cli codegen › should
download files
- library/inspector/cli-codegen-2.spec.ts:428:7 › cli codegen › should
update hover model on action
2023-02-17 12:19:46 -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
Andrey Lushnikov 1db04f2839
fix: simplify protocol for toBeInViewport (#20960) 2023-02-16 11:02:19 -08:00
Andrey Lushnikov 4feb7c9e3b
fix: best-effort support for KDE Neon (#20920)
This is a yet-another linux distribution based on Ubuntu.

Fixes #20838
2023-02-15 09:13:14 -08:00
Andrey Lushnikov 5f9e2f3db9
chore: fix inspector cli firefox tests flakiness (#20919) 2023-02-15 09:12:37 -08:00
Pavel Feldman 798696a18a
chore: fix context reuse disposal (#20876)
Fixes: https://github.com/microsoft/playwright/issues/20409
2023-02-14 12:56:47 -08:00
Andrey Lushnikov 72942e81d5
chore: fixes to toBeInViewport (#20870) 2023-02-13 15:21:40 -08:00
Andrey Lushnikov 94b859f471
feat: roll Firefox and Firefox Beta (#20878)
Fixes #20791
2023-02-13 15:21:05 -08:00
Andrey Lushnikov 3a685ecae4
fix: hide highlight in recorder before toHaveScreenshot command (#20874)
Fixes #20866
2023-02-13 13:15:55 -08:00
Andrey Lushnikov fdcd7b549d
chore: mark comparator option back as experimental (#20816)
This reverts commit 303c5998f8.

Reason for revert: I tried enabling `ssim-cie94` by default on
ionic-framework test suite, and it proves to be overly strict for their
usecase.
2023-02-13 11:11:44 -08:00
Dmitry Gozman 6b69d23f44
fix(actions): ignore indeterminate for isChecked api (#20834)
Fixes #20190.
2023-02-10 18:56:45 -08:00
Dmitry Gozman 789b1c75e6
fix(expect): report received when timedOut during oneShot (#20806) 2023-02-10 14:59:21 -08:00
Playwright Service e03f0ea309
feat(chromium): roll to r1048 (#20815)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2023-02-10 17:27:55 +01:00
Andrey Lushnikov 68e170ef89
feat: implement expect(locator).toBeInViewport() (#20668)
The method accepts a `ratio` option to assert the ratio
of the element in viewport. `ratio` defaults to `Number.MIN_VALUE`.

NOTE: this reverts commit d950f5b6ee and
adds `ratio` option support + does the rename.

Fixes #8740
2023-02-10 04:33:22 -08:00
Andrey Lushnikov bcb2d67c5d
chore: remove experimental dockerfile.remote (#20790)
We didn't find a compelling-enough use case to release this.
2023-02-09 12:18:02 -08:00
Pavel Feldman 6b0a7003c4
chore(watch): run by default again (#20763) 2023-02-08 18:53:07 -08:00
Dmitry Gozman 6e5964cccd
fix(connect): respect launch options when turning into connect (#20757) 2023-02-08 13:06:05 -08:00
Pavel Feldman 0678b6575f
chore(watch): allow toggling browser (#20738) 2023-02-08 08:36:02 -08:00
Dmitry Gozman edfff8cd8c
test: run more tests in 'service' mode (#20734) 2023-02-07 18:25:33 -08:00
Dmitry Gozman 2d3e4027e7
fix(chromium): do not pre-populate non-preflight OPTIONS requests (#20684)
Fixes #20469.
2023-02-07 15:10:44 -08:00
Dmitry Gozman fbccc8ef64
fix(role): closed <details> are considered hidden (#20726)
Fixes #20610.
2023-02-07 15:10:18 -08:00
Dmitry Gozman bc74383480
test: remove service2 mode and experimental-grid (#20730) 2023-02-07 14:19:37 -08:00
Andrey Lushnikov b67cef2c4d
feat: introduce Dockerfile.remote image (#20691)
When this image is launched, it exposes a single endpoint
that can be used to connect to and to launch browsers.
2023-02-07 10:50:44 -08:00
Andrey Lushnikov 303c5998f8
feat: release "comparator" option from experiment (#20720)
The option defines a comparator to be used to compare images.
Possible values are `"pixelmatch"` and `"ssim-cie94"`.

Note: This reverts commit 8167f8bf54.
2023-02-07 08:51:48 -08:00
Andrey Lushnikov d3c5430080
fix: reset SNAP* env variables when launching Firefox (#20692)
Our builds never come from Snap, so Playwright's Firefox should
never consider that it's been installed via SNAP.

Fixes #20555

---------

Signed-off-by: Andrey Lushnikov <aslushnikov@gmail.com>
Co-authored-by: Max Schmitt <max@schmitt.mx>
2023-02-07 01:41:12 -08:00
Andrey Lushnikov 1120b82ba2
feat(firefox): roll Firefox & Firefox Beta (#20670)
Fixes #19685 
Fixes #20093
2023-02-06 14:08:32 -08:00
Andrey Lushnikov 0a752f3fd6
chore(docker): remove experimental docker integration (#20676)
This removes everything related to docker integration experiments that
we conducted over the last 6 months.

I'll send a follow-up with an alternative suggestion that was demo'ed on
a team meeting in the end of December.
2023-02-06 10:50:45 -08:00
Andrey Lushnikov 9c6a1a6ff0
fix: make sure screenshots work when main page context is tampered (#20615)
This patch has 2 fixes:
- screenshot code was accidentally using main page context to fetch
  page layout metrics instead of a utility context
- Avoid usage of `self.eval` inside utility context since it escapes
Firefox sandbox. This turns out to be an upstream bug:
https://bugzilla.mozilla.org/show_bug.cgi?id=1814898

Fixes #20434
2023-02-03 10:01:23 -08:00
Dmitry Gozman 3180bc9804
fix(types): make most fixtures non-undefined (#20573)
Fixes #20416.
2023-02-02 13:11:50 -08:00
Dmitry Gozman 6ad4687f4d
feat(route): add maxRedirects option to Route.fetch (#20567)
References #20501.
2023-02-01 14:43:21 -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 c27ad35299
fix(locators): properly escape slash inside attributes (#20510)
Fixes #20471.
2023-01-30 13:27:41 -08:00
Playwright Service a1c264c476
feat(firefox): roll to r1375 (#20507)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2023-01-30 12:21:35 -08:00
Yury Semikhatsky cffe7b65e3
fix: do not hang on submitting target=_blank form (#20458)
Fixes #18392
2023-01-30 11:13:56 -08:00
Max Schmitt 92eb8e5090
chore: make connectOverCDP work with localhost (#20396)
This wraps happy eyeballs in two places, the place where we make the
JSON request to Chromium and the actual CDP WebSocket request.

It required changes inside our happy eyeballs implementation since the
[websocket library does not
set](https://github.com/websockets/ws/blob/master/lib/websocket.js#L714)
the `clientRequestOptions.hostname` field, it just sets the `host` field
where we then fall back to when its not set.

This test would pass before Node.js 18 and fail after Node.js 18 without
my changes.

Fixes https://github.com/microsoft/playwright/issues/20364
2023-01-30 17:44:26 +01:00
Playwright Service 5ad635522c
feat(webkit): roll to r1784 (#20466) 2023-01-30 08:36:02 -08:00
Yury Semikhatsky 532ca3f7b3
fix: throw on tap when hasTouch=false (#20457)
Fixes #20430
2023-01-27 15:51:57 -08:00
Max Schmitt 71752b4b2a
fix(windows): enable socks5 hostname resolution on WebKit (#20435)
Fixes https://github.com/microsoft/playwright/issues/20451
2023-01-27 23:33:06 +01:00
Etienne 252b489a7f
feat(trace-viewer): allow host and port to be specified (#20258) 2023-01-27 14:20:25 -08:00
Dmitry Gozman d458e84f5b
feat(route): match pattern on the server side (#20410)
This avoids client-side roundtrip for requests that are not handled by
any route.

Fixes #19607.
2023-01-27 10:43:19 -08:00
Dmitry Gozman ead4989947
fix(api): Response.finished() throws when target closes (#20453) 2023-01-27 10:42:43 -08:00
Andrey Lushnikov 2af31edadd
feat: roll Firefox and Firefox-Beta to latest builds (#20449)
These builds initiate browser-side navigation for `page.goto` command.

Drive-by: add a minimal file URL test.
2023-01-27 09:31:45 -08:00
Andrey Lushnikov 9ca9b08d90
fix: better formatting for sparse arrays (#20379)
Right now arrays preview yields all array elements. In case
of a sparse array with a single element on index 10000000,
this results in a large string that OOM Node.js.

This patch changes pretty-printing. For example:

```ts
// Given this array
const a = [];
a[10] = 1;
// Before this patch, pretty printing will yield:
"[,,,,,,,,1]"
// With this patch, pretty printing yields:
"[empty x 9, 1]"
```

The new array pretty-printing is equal to what Chrome DevTools
do to render sparse arrays.

Fixes #20347
2023-01-27 05:07:55 -08:00
Andrey Lushnikov 5b93c1d2f9
chore: truncate long protocol logs (#20412)
This affects the logs in the `DEBUG=pw:protocol` mode so that they
never span more then 10 lines of 80-character-width terminal.
2023-01-27 04:58:13 -08:00
Dmitry Gozman 332dbc5bf6
fix(chromium): enable gpu support in mac headless (#20418) 2023-01-26 13:21:25 -08:00
Playwright Service ff302585d9
feat(chromium): roll to r1046 (#20397)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2023-01-26 16:55:45 +01:00
Dmitry Gozman cab52cded9
chore: consolidate route handling logic in NetworkRouter (#20353)
References #19607.
2023-01-25 14:11:53 -08:00
Dmitry Gozman a9422beecb
Revert "chore: respect headless option when reusing browser (#19980)" (#20336)
This reverts commit e674ea217f.
2023-01-24 11:07:53 -08:00
Dmitry Gozman 38f260cc51
test: unflake "should respect interval" (#20298) 2023-01-23 17:57:37 -08:00
Max Schmitt 05843bdfd9
chore: support Debian 11 arm64 (#19676)
https://github.com/microsoft/playwright/issues/18319
2023-01-23 15:54:25 +01:00
Dmitry Gozman 71798d658f
chore: remove separate network tethering client connection (#20267) 2023-01-21 18:18:22 -08:00
Dmitry Gozman b700c08dc5
feat(screenshots): when actual and expected have different sizes, pad and produce the diff image (#20208)
Also show sizes in the html report to easier spot the size mismatch
issue.

<img width="1030" alt="diff"
src="https://user-images.githubusercontent.com/9881434/213327632-b8fcd69c-8d08-460c-9de1-b5f4f8c56359.png">

Fixes #15802.
2023-01-20 19:41:43 -08:00
Dmitry Gozman eafa6fda13
fix(expect): poll/toPass should not wait over specified timeout (#20266)
Drive-by: unflake some timeout-dependent tests.
2023-01-20 15:47:24 -08:00
Dmitry Gozman d950f5b6ee
chore: remove toIntersectViewport for the next release (#20232)
Mostly reverts #19901.
2023-01-19 15:04:09 -08:00
Andrey Lushnikov 1b8b20dc25
chore: drop locator.viewportRatio() method (#20131)
As per API review discussion, we'd like to refrain from
exposing this method.
2023-01-19 08:46:45 -08:00
Playwright Service 4b53b1842f
feat(chromium): roll to r1045 (#20219)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2023-01-19 14:40:26 +01:00
Playwright Service e740522069
feat(webkit): roll to r1761 (#20207)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2023-01-19 11:22:00 +01:00
Playwright Service 6d63773965
feat(webkit): roll to r1760 (#20197) 2023-01-18 12:24:12 -08:00
Max Schmitt df05c00da3
fix: filter out pwt stacks correctly (#20158)
Fixes https://github.com/microsoft/playwright/issues/20155
2023-01-17 22:38:30 +01:00
Playwright Service b740aa04e7
feat(chromium): roll to r1044 (#20137)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2023-01-16 13:44:28 +01:00
Playwright Service 8671bfc53f
feat(firefox): roll to r1371 (#20115)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2023-01-13 22:37:26 -08:00
Pavel Feldman d1c161ce99
chore: merge the util exports (#20110) 2023-01-13 13:50:38 -08:00
Alex b984bb9ad6
fix: serviceWorker.register function (#20072) 2023-01-12 10:47:45 -08:00
Max Schmitt 1c1955a6e7
fix: do not write to stdout on cssTokenizer parse error (#20012)
Fixes https://github.com/microsoft/playwright/issues/20074
2023-01-12 19:10:01 +01:00
Max Schmitt a7495c3326
fix: use no internal selectors for frame locators (#19964)
Fixes https://github.com/microsoft/playwright/issues/19406
2023-01-11 21:53:19 +01:00
Dmitry Gozman 4f837690e2
fix(connect): do not log ws query params (#20047) 2023-01-11 12:27:27 -08:00
Dmitry Gozman e674ea217f
chore: respect headless option when reusing browser (#19980)
References #19746.
2023-01-10 10:49:53 -08:00
Max Schmitt 0fe327c21b
chore: return Promise<any> in {page,context}.route (#20005)
Fixes https://github.com/microsoft/playwright/issues/19855
Closes https://github.com/microsoft/playwright/pull/19856
2023-01-10 18:07:17 +01:00
Playwright Service db5087e951
feat(chromium): roll to r1043 (#19991)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2023-01-10 14:55:27 +01:00
Pavel Feldman 3f0adf5dd0
chore: release from pause when the page closes (#19975)
Fixes: https://github.com/microsoft/playwright/issues/19168
2023-01-09 18:49:18 -08:00
Dmitry Gozman 830c3c9f0f
fix(reuse): workaround long sw unregister (#19930)
Bogus `importScripts()` sometimes makes `unregister()` hang for long
time. We detect this case and not await it.

Fixes #19789.
2023-01-06 17:02:40 -08:00
Andrey Lushnikov 2a49c5e498
feat(expect): introduce expect(locator).toIntersectViewport() (#19901)
This is a new web-first assertion that should be used like this:

```ts
test('should work', async ({ page }) => {
  const locator = page.locator('body');
  // New web-first assertion.
  await expect(locator).toIntersectViewport();
  // The same functionality.
  await expect.poll(() => locator.viewportRatio()).toBeGreaterThan(0);
});
```

Fixes #8740
2023-01-06 16:56:24 -08:00
Max Schmitt 7bbaf2af21
fix(docker): take language binding version in consideration (#19924) 2023-01-06 19:47:37 +01:00
Max Schmitt c339e1615b
fix(fetch): handle invalid redirect URL (#19890)
Fixes https://github.com/microsoft/playwright/issues/19879.

This part is then similar to how node-fetch is doing it:
55a4870ae5/src/index.js?q=location#L152-L159

node-fetch also throws as of today with this URL. Before in Python it
was stalling, because the error was written to stdout and on Windows the
stdout wasn't working. On Node.js it ended up in an unhandled exception.
2023-01-06 10:22:17 -08:00
Dmitry Gozman 31a63b5c2a
fix(reuse): make reuse work with tracing (#19733)
Fixes #19059.
2023-01-05 14:50:47 -08:00
Yury Semikhatsky 10ccfa9517
feat(fetch): happy eyeballs (#19902)
Fixes #18790
2023-01-05 14:39:49 -08:00
Andrey Lushnikov 1afa38d5a7
chore(expect): extract polling from expect.poll and expect().toPass (#19882)
This extracts & unifies polling machinery from `expect.poll` and
`expect.toPass` methods.
2023-01-05 11:14:37 -08:00
Max Schmitt ddccb59093
chore: fix Java CLI invocation on Windows (#19895)
For reference: https://stackoverflow.com/a/64300409
2023-01-05 10:55:07 -08:00
Andrey Lushnikov 3883799d68
feat: introduce locator.viewportRatio (#19761)
References #8740
2023-01-05 10:49:32 -08:00
Oren 59e1437d7f
fix(serviceworker): network inspection works without options.serviceWorkers set (#19870) 2023-01-04 13:20:47 -08:00
Dmitry Gozman 6193e6d8ea
fix(reuse): reset tracing (#19876)
References #19059.
2023-01-04 13:19:05 -08:00
Playwright Service 2714e728d0
feat(chromium): roll to r1042 (#19799)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2023-01-02 14:11:44 +01:00
Andrey Lushnikov caec93ef42
test: enable ssim-cie94 image comparison algorithm for our tests (#19313) 2022-12-29 23:48:28 -08:00
Ross Wollman 359d176ff6
fix(driver): avoid polluting stdout (#19759)
Relates microsoft/playwright-python#1699.
2022-12-28 17:09:11 -08:00
Yury Semikhatsky b8f96a9411
fix(generator): FilterOptions in java (#19741)
Fixes #19448
2022-12-28 09:13:06 -08:00
Dmitry Gozman 0fba4d5611
chore: migrate waitForFunction to not use rerunnable task (#19730) 2022-12-27 17:22:44 -08:00
Dmitry Gozman 0b223b9036
fix(hit target): account for iframes with padding (#19732)
Padding on iframes moves the `documentElement` inside the iframe, so we
should account for it when converting coordinates between frames.

Fixes #19613.
2022-12-27 16:59:34 -08:00
Dmitry Gozman 3334d89ad7
fix(socks): support ipv6 (#19727)
Signed-off-by: Dmitry Gozman <dgozman@gmail.com>
Co-authored-by: Yury Semikhatsky <yurys@chromium.org>
2022-12-27 14:45:35 -08:00
Dmitry Gozman c1b9a56079
chore: migrate waitForSelector to not use rerunnable task (#19715) 2022-12-27 13:39:35 -08:00
Dmitry Gozman 24f2ccb4ca
feat(getByLabel): support aria-label (#19726)
References #19284.
2022-12-27 12:43:55 -08:00
Dmitry Gozman 3ad65e7ce8
fix(launchServer): disable socks by default (#19723)
Socks does not support ipV6 yet.

References #19661.
2022-12-27 10:43:36 -08:00
Dmitry Gozman 1bb019ac81
chore: migrate most of rerunnable tasks to element callback (#19713) 2022-12-27 09:22:22 -08:00
Dmitry Gozman 0087bfac23
fix(role): update allowsNameFromContent to closer align with blink/gecko (#19692) 2022-12-27 09:06:46 -08:00
Dmitry Gozman cce29215f9
chore: make input actions not use rerunnable task (#19638) 2022-12-24 10:40:36 -08:00
Pavel Feldman e61a8c6592
fix(generator): penalize for the selector length (#19672) 2022-12-22 20:54:04 -08:00
Pavel Feldman 8b80e22a03
fix(har): recalculate receive time after response ended (#19646)
Fixes https://github.com/microsoft/playwright/issues/19327
2022-12-22 17:30:32 -08:00
Pavel Feldman fe989d95eb
chore(electron): move loader to be preload (#19650)
Fixes https://github.com/microsoft/playwright/issues/19648
2022-12-22 17:28:08 -08:00
Dmitry Gozman 83418aa8ab
fix(socks): cleanup event listeners upon disconnect (#19671)
References #19661.
2022-12-22 17:15:51 -08:00
Ross Wollman 06c7f1fb6c
fix(html): test and fix reporter timing display (#19670)
#19576 introduced a regression where the CLI reporters displayed some
times with way too many decimals. e.g. 7.123456789ms.

Prior to #19576, there were two monotonicTime implementations; that PR
updated the reporters to use the common definition that had existed in
utils.ts. However, that introduced a regression in the base.ts reporters
which used the ms duration humanizing package which did not account for
the more precise decimals used by the shared monotonicTime function.

This fix removes the dependency on the third-party ms package and now
consistently uses Pavel's humanize function which the HTML reporter had
been using and proved to have better defaults for decimals.
Additionally, we add more test coverage to limit future regressions
since this was caught in passing.

Closes #19556.
Relates #19576.
2022-12-22 15:57:55 -08:00
Dmitry Gozman e12cf19012
chore: refactor frame.expect to not use rerunnable task (#19626) 2022-12-21 15:31:08 -08:00
Dmitry Gozman eaae8ebbf3
chore: throw InvalidSelectorError from selector parser, add some tests (#19636) 2022-12-21 14:27:35 -08:00
Max Schmitt 7508c574e1
chore: bring ubuntu bionic back (#19625) 2022-12-21 18:37:42 +01:00
Dmitry Gozman ae2b1ac5e8
chore: move some injected code to InjectedScript (#19609) 2022-12-20 17:26:54 -08:00
Pavel Feldman 95cc5c2a2e
fix(electron): fix the directory app path (#19601) 2022-12-20 12:50:53 -08:00
Pavel Feldman 971e30482a
fix(electron): allow using pre-ready apis (#19599) 2022-12-20 10:40:48 -08:00
Dmitry Gozman 412c11db20
fix(reuse): make sure all dispose and close sequences are executed (#19572)
- When disposing recursively, only the root dispatcher received
`_dispose()` call, while some dispatchers need `_onDispose()` to clean
things up.
- When reusing the context, pages should be notified with `_onClose()`
so that all client-side waiting promises could reject.

Fixes #19216.
2022-12-19 15:54:53 -08:00
Pavel Feldman 3f333a8ef7
chore: simplify post_data processing (#19490) 2022-12-15 11:57:51 -08:00
Dmitry Gozman 1263bc3edd
feat(console api): first/last/nth (#19485) 2022-12-15 11:17:59 -08:00
Pavel Feldman 3afd83c8cc
chore: withdraw locator.enumerate (#19484) 2022-12-15 10:13:56 -08:00
Playwright Service ed196ae9a2
feat(chromium): roll to r1040 (#19477)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2022-12-15 15:53:47 +01:00
Max Schmitt 1dcb8f643d
chore: fix Android tests (#19426) 2022-12-15 07:56:57 +01:00
Pavel Feldman 17a0074459
feat(api): introduce Locator.all, enumerate (#19461) 2022-12-14 16:42:50 -08:00
Dmitry Gozman a27f1f744f
feat(getByLabel): support aria-labelledby (#19456)
Testing library also treats them equally.

Fixes #19284.
2022-12-14 13:51:05 -08:00
Andrey Lushnikov 8167f8bf54
chore: hide "comparator" option from documentation and types (#19441) 2022-12-14 09:58:19 -08:00
Pavel Feldman d1559a0fcc
chore: route.fetch(postData) (#19436) 2022-12-13 14:01:39 -08:00
Pavel Feldman 6cadc56ea3
feat(api): allow getByTestId(regex) (#19419) 2022-12-13 08:43:13 -08:00
Dmitry Gozman 539893402e
feat(socks): support pattern similar to proxy bypass rules (#19387)
- `<loopback>` for local interfaces;
- `123.123.123.123` for IPv4;
- `[1:2:3:4:5:6:7:8]` for IPv6;
- `*.example.com` and `.example.com` for subdomains;
- `example.com` for domains;
- `anything:3000` for port matching.
2022-12-12 12:27:34 -08:00
Pranav Jain 59118b83f9
feat(android): add support for passing CR args & proxy when launching browser (#19212)
Fixes https://github.com/microsoft/playwright/issues/19211
2022-12-12 16:15:19 +01:00
Dmitry Gozman 3c17a2603a
feat(console api): support locator.filter (#19389) 2022-12-09 15:25:12 -08:00
Dmitry Gozman 256e9fd443
feat(connect): allow exposing local network to the remote browser (experimental) (#19372)
`connectOptions: { _exposeNetwork: '*' | 'localhost' }`

References #19287.
2022-12-09 11:16:29 -08:00
Playwright Service 8ea48752db
feat(chromium): roll to r1039 (#19382)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2022-12-09 13:23:38 +01:00
Andrey Lushnikov 858c2453b3
feat(containers): implement reverse proxy for novnc and server (#18569)
This patch adds a reverse proxy in front of novnc and playwright
server inside the container.

As a result:
- container exposes a single HTTP port to the host
- all Playwright clients can connect using this exposed port, e.g.
  `http://127.0.0.1:5400`
- navigating to the exposed port in the browser lands on a nice HTML
page
  with a link to view container screen
- users can also manually navigate to `http://127.0.0.1:5400/screen` to
  view screen
2022-12-08 17:17:18 -08:00
Andrey Lushnikov 526bc3f252
fix(ssim-cie94): further tune SSIM-CIE94 to fight wk artifacts (#19370)
This patch adds a grid border around the image so that the SSIM
resolution doesn't drop for the border pixels.

We also add a test with WebKit rendering artifacts to make sure
new approach helps to fight this.
2022-12-08 16:08:41 -08:00
Dmitry Gozman 465278a54f
feat(tether): always enable socks proxy on the server (#19363) 2022-12-08 14:23:14 -08:00
Max Schmitt 92b3995101
chore(recorder): align toolbar buttons correctly (#19357) 2022-12-08 17:33:18 +01:00
Dmitry Gozman bdaf11a568
chore: refactor roleEngine to allow alternative representation (#19344) 2022-12-07 16:49:20 -08:00
Andrey Lushnikov 6139b432fd
fix(ssim-cie94): increase SSIM window radius (#19343)
While migrating Playwright tests from pixelmatch comparator to the
ssim-cie94 comparator, we noticed a rendering artifact that happens
on playwright screenshot tests on WebKit Linux.

This PR adds a set of cropped-down examples and tunes the ssim-cie94
comparator to accept these rendering artifacts.
2022-12-07 16:25:16 -08:00
Pavel Feldman 7aa3935dcc
chore: match selected options by both value and label (#19316) 2022-12-07 09:04:32 -08:00
Dmitry Gozman fd22d8bde1
feat(tether): support hostname pattern in socks proxy (#19302)
For now, only '*' and 'localhost' are supported.

References #19287.
2022-12-07 08:46:35 -08:00
Andrey Lushnikov cac67fb94f
chore: do not use "threshold" option for the ssim-cie94 comparator (#19314) 2022-12-06 17:03:13 -08:00
Dmitry Gozman d294c5da33
chore: roll stable-test-runner to 1.28.1 (#19310)
This required `allowJs: false` in our `tsconfig.json` due to the
following error:

```

Error: Cannot find module './utilsBundleImpl'
Require stack:
- <playwright>/packages/playwright-core/src/utilsBundle.ts
- <playwright>/packages/playwright-test/lib/reporters/html.js
- <playwright>/tests/playwright-test/reporter-html.spec.ts
- <playwright>/tests/playwright-test/stable-test-runner/node_modules/@playwright/test/lib/loader.js
- <playwright>/tests/playwright-test/stable-test-runner/node_modules/@playwright/test/lib/runner.js
- <playwright>/tests/playwright-test/stable-test-runner/node_modules/@playwright/test/lib/cli.js
- <playwright>/tests/playwright-test/stable-test-runner/node_modules/playwright-core/lib/cli/cli.js
- <playwright>/tests/playwright-test/stable-test-runner/node_modules/playwright-core/cli.js
- <playwright>/tests/playwright-test/stable-test-runner/node_modules/@playwright/test/cli.js

   at ../../packages/playwright-core/src/utilsBundle.ts:20

  18 | import path from 'path';
  19 |
> 20 | export const colors: typeof import('../bundles/utils/node_modules/colors/safe') = require('./utilsBundleImpl').colors;
     |                                                                                   ^
  21 | export const debug: typeof import('../bundles/utils/node_modules/@types/debug') = require('./utilsBundleImpl').debug;
  22 | export const getProxyForUrl: typeof import('../bundles/utils/node_modules/@types/proxy-from-env').getProxyForUrl = require('./utilsBundleImpl').getProxyForUrl;
  23 | export const HttpsProxyAgent: typeof import('../bundles/utils/node_modules/https-proxy-agent').HttpsProxyAgent = require('./utilsBundleImpl').HttpsProxyAgent;

    at Object.<anonymous> (<playwright>/packages/playwright-core/src/utilsBundle.ts:20:83)
    at Object.<anonymous> (<playwright>/packages/playwright-test/src/reporters/html.ts:17:1)

```
2022-12-06 15:46:19 -08:00
Dmitry Gozman 4784dae10f
fix(role): accessibleName computation should walk the flat dom tree (#19301)
- When visiting `<slot>` element, descend into assigned nodes.
- When node has `assignedSlot`, skip it during regular traversal.

Fixes #18989.
2022-12-06 09:31:26 -08:00
Dmitry Gozman 81c8620bfe
chore: upgrade internal types to support TypeScript 4.9.3 (#19280)
Fixes https://github.com/microsoft/TypeScript/issues/51619

Co-authored-by: Max Schmitt <max@schmitt.mx>
2022-12-05 17:22:25 -08:00
Dmitry Gozman 48182a4eb2
chore: refactor code around text selectors (#19278) 2022-12-05 14:08:54 -08:00
Playwright Service e576bd17df
feat(chromium): roll to r1038 (#19237)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2022-12-03 13:03:43 -08:00
Dmitry Gozman 0be4fa768a
fix(codegen): do not generate Promise.all (#19182)
Drive-by: fix `download`, `dialog` and `popup` signals to use different
variable names in all languages.
2022-12-02 17:33:01 -08:00
Andrey Lushnikov 6d82460a02
feat: implement a new image comparison function (#19166)
This patch implements a new image comparison function, codenamed
"ssim-cie94". The goal of the new comparison function is to cancel out
browser non-determenistic rendering.

To use the new comparison function:

```ts
await expect(page).toHaveScreenshot({
  comparator: 'ssim-cie94',
});
```

As of Nov 30, 2022, we identified the following sources of
non-determenistic rendering for Chromium:
- Anti-aliasing for certain shapes might be different due to the
  way skia rasterizes certain shapes.
- Color blending might be different on `x86` and `aarch64`
architectures.

The new function employs a few heuristics to fight these
differences.

Consider two non-equal image pixels `(r1, g1, b1)` and `(r2, g2, b2)`:
1. If the [CIE94] metric is less then 1.0, then we consider these pixels
   **EQUAL**. (The value `1.0` is the [just-noticeable difference] for
   [CIE94].). Otherwise, proceed to next step.
1. If all the 8 neighbors of the first pixel match its color, or
   if the 8 neighbors of the second pixel match its color, then these
   pixels are **DIFFERENT**. (In case of anti-aliasing, some of the
   direct neighbors have to be blended up or down.) Otherwise, proceed
   to next step.
1. If SSIM in some locality around the different pixels is more than
   0.99, then consider this pixels to be **EQUAL**. Otherwise, mark them
   as **DIFFERENT**. (Local SSIM for anti-aliased pixels turns out to be
   very close to 1.0).

[CIE94]: https://en.wikipedia.org/wiki/Color_difference#CIE94
[just-noticeable difference]:
https://en.wikipedia.org/wiki/Just-noticeable_difference
2022-12-02 15:22:05 -08:00
Andrey Lushnikov 4cb49cb162
fix: remove firefox bandaid preferences (#19217)
These preferences were migrated to those we ship with builds.

Fixes #17442
2022-12-01 12:45:50 -08:00
Max Schmitt 3565d97a36
feat(recorder): make it work with [contenteditable] (#19066)
https://github.com/microsoft/playwright/issues/19029
2022-12-01 12:41:03 -08:00
Max Schmitt 1d3feba578
chore: do not set bypassCSP when inspector is used (#19190)
Fixes https://github.com/microsoft/playwright/issues/19186
2022-12-01 12:39:40 -08:00
Playwright Service dbe4362b9c
feat(firefox): roll to r1366 (#19185)
Fixes https://github.com/microsoft/playwright/issues/18307.

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>
2022-11-30 19:13:11 -08:00
Pavel Feldman f0e8d8f074
feat(api): introduce route.fetch and route.fulfill(json) (#19184) 2022-11-30 17:26:19 -08:00
Dmitry Gozman 307a0b6ea7
fix(dotnet): codegen/docs use Name instead of NameString (#19156) 2022-11-29 20:56:18 -08:00
Pavel Feldman 5ac426b3d5
chore: expose utility script to inner evaluates (#19147) 2022-11-29 16:57:11 -08:00
Zihua Li 0c6a0f40c6
feat(keyboard): support simple cut-pasting using meta+x/v (#18756) 2022-11-29 12:58:14 -08:00
Dmitry Gozman 43a6bf4d45
fix(inspector): support custom test id attribute (#18996)
Fixes #18959.
2022-11-29 11:43:47 -08:00
Pavel Feldman 85467d1b7d
chore: generate get by title (#19119) 2022-11-28 19:55:34 -08:00
Playwright Service 0c8d2cf4e0
feat(webkit): roll to r1744 (#19006) 2022-11-23 09:54:47 -08:00
Yury Semikhatsky d3f41eaa47
fix(fetch): cookie with domain=localhost (#18998)
Fixes https://github.com/microsoft/playwright/issues/18362
2022-11-23 09:22:49 -08:00
Dmitry Gozman 503f8f51dc
fix(reuse): stop pending operations upon reuse/disconnect (#18997) 2022-11-22 15:21:20 -08:00
Dmitry Gozman 190ed9465f
fix(chromium): detach from shared workers (#18976)
This prevents shared workers from stalling upon restart.

We receive `Inspector.targetCrashed` and
`Inspector.targetReloadedAfterCrash` events that assume
`Runtime.runIfWaitingForDebugger` from any attached client. It is easier
and more stable to just detach from shared workers, because we do not
inspect them.

For service workers, we should actually issue
`Runtime.runIfWaitingForDebugger` in such cases, because we attach to
them.

Fixes #18932.
2022-11-22 15:20:42 -08:00
Pavel Feldman 73e7c0ed3d
fix(electron): tolerate connection closed during quit (#18993) 2022-11-22 11:50:35 -08:00
Pavel Feldman a0ea9b5fba
chore: simplify slowmo implementation (#18990) 2022-11-22 11:06:45 -08:00
Playwright Service a51c48fcb1
feat(chromium): roll to r1035 (#18984)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2022-11-22 07:48:46 -10:00
Pavel Feldman b5d756686d
fix(electron): consistently emit ready event after app is loaded (#18972)
Fixes: https://github.com/microsoft/playwright/issues/18928
2022-11-21 15:13:53 -08:00
Dmitry Gozman 8ad3bc7ff3
fix(role selector): expanded=false does not match elements without aria-expanded (#18929)
Fixes #18920.
2022-11-21 14:13:51 -08:00
Max Schmitt 6a5552ba24
chore: drop Ubuntu 18.04 support (#18924) 2022-11-21 11:23:45 -10:00
Dmitry Gozman 941090f0c4
fix(click): account for transformed iframes (#18926)
- Properly convert coordinates for iframes with non-zero borders.
- IFrames that have `transform` anywhere in the ancestors skip
`hitPoint`-based check because we cannot reliably translate the viewport
point into frame document's coordinates.

Fixes #18245.
2022-11-18 16:51:39 -08:00
Dmitry Gozman 1ec0bb277d
feat(expect): ensure at least one expectation check, no matter the timeout (#18895)
References #18859.
2022-11-17 19:43:10 -08:00
Pavel Feldman b1acc0d0ea
chore: render user-friendly intermediate match values (#18867) 2022-11-16 18:05:36 -08:00
Pavel Feldman 4e58b0c2ea
chore: render timed out error message when expect timeouts (#18863)
Fixes https://github.com/microsoft/playwright/issues/18859
2022-11-16 17:00:42 -08:00
Andrey Lushnikov c47c90cc25
chore: update WebKit browser version to 16.4 (#18830) 2022-11-15 12:46:15 -08:00
Dmitry Gozman f5b4e499fb
fix(locators): frameLocator().nth serialized correctly (#18819)
Fixes #18798.
2022-11-15 10:50:46 -08:00
Pavel Feldman 5c530154f9
chore(electron): filter test args out (#18822) 2022-11-15 10:48:24 -08:00
Pavel Feldman dbf3fc5089
fix(electron): stall node while browser is starting (#18804)
Fixes https://github.com/microsoft/playwright/issues/17765
2022-11-14 22:01:54 -08:00
Pavel Feldman 6258ed53f0
fix: recorder dark theme and strict explore locator parser (#18801) 2022-11-14 16:49:15 -08:00
Pavel Feldman 59418aa6f3
chore: ignore untrusted clicks when recording (#18796)
Fixes https://github.com/microsoft/playwright/issues/18776
2022-11-14 15:16:25 -08:00
Pavel Feldman 4bbfcef792 Revert "chore: support narrow terminal windows for messages (#18714)"
This reverts commit 23171c5037.
2022-11-14 08:47:17 -08:00
Pavel Feldman 8e882fdd58
chore: make generated report writable (#18750)
Fixes: https://github.com/microsoft/playwright/issues/18747
2022-11-13 12:46:35 -08:00
Playwright Service 1b13519984
feat(chromium): roll to r1034 (#18736) 2022-11-11 17:11:58 -08:00
Dmitry Gozman a7b2b04588
fix(getByRole): name and exact (#18719)
Following the `getByText()` and other methods:

- By default, matching is substring and case-insensitive. Before, it was
only case-insensitive, but not substring.
- With new option `exact: true`, matching is full string and
case-sensitive.
- Matching always normalizes whitespace.
- Codegen generates `exact: false` by default.
- `internal:role` treats `[name="foo"i]` as non-exact match.

Various fixes:
- Updated `getByRole` docs to match the reality.
- Locator generator edge cases.
2022-11-11 15:58:36 -08:00
Andrey Lushnikov 7685c929bf
chore: use '--disable-component-update' flag to avoid component updates (#18745) 2022-11-11 13:44:09 -08:00
Pavel Feldman d5eb74fa5d
chore: allow toggling recorder/traceviewer color modes (#18718)
Fixes: https://github.com/microsoft/playwright/issues/18700
2022-11-10 17:20:09 -08:00
Andrey Lushnikov dfb4ad388a
feat: support custom png comparator (#18689)
This way we might experiment with different custom PNG comparators
for VRT.
2022-11-10 16:16:05 -08:00
Andrey Lushnikov 23171c5037
chore: support narrow terminal windows for messages (#18714)
This patch starts using a message box that's not really a box and thus
is better behaving on a narrow-width terminals.

Before:
<img width="744" alt="image"
src="https://user-images.githubusercontent.com/746130/201216551-abbac0f8-71b4-413f-9f4e-159c7123ef3d.png">

After:
<img width="745" alt="image"
src="https://user-images.githubusercontent.com/746130/201216504-25257727-06c8-4ae9-8557-a2d937b7ca0b.png">

Signed-off-by: Andrey Lushnikov <aslushnikov@gmail.com>
Co-authored-by: Dmitry Gozman <dgozman@gmail.com>
2022-11-10 15:50:52 -08:00
Max Schmitt 56d7d47d43
fix(codegen): make select work with size attribute (#18712)
Fixes https://github.com/microsoft/playwright/issues/18711
2022-11-10 15:06:53 -08:00
Yury Semikhatsky 0765182a4d
fix: conversion to snake case (#18707)
Fixes https://github.com/microsoft/playwright/issues/18695
2022-11-10 14:54:07 -08:00
Pavel Feldman ac25fdd74b
chore: fix ff tests with new events mode (#18708) 2022-11-10 12:59:27 -08:00
Dmitry Gozman 7c80b77c57
feat(clear): remove clear() methods from all classes except Locator (#18703)
The preferred way is to use the locator, so we should not encourage the
use of `ElementHandle` or `Page` in the new APIs.
2022-11-10 12:29:14 -08:00
Pavel Feldman ca2e7ef199
chore: report paused signal to the debug controller clients (#18701) 2022-11-10 12:15:29 -08:00
Pavel Feldman c25e67a0e7
chore: conditionally dispatch network events (#18687) 2022-11-09 21:10:57 -08:00
Dmitry Gozman cafa558845
fix(codegen): update priorites in selector generator (#18688)
- prefer `role=checkbox` over `input[type=checkbox]`
- prefer `#id` over `input[type=checkbox]` and `role=checkbox`
- prefer `text=foo` over `internal:has-text=foo`
- ignore `none` and `presentation` roles
- remove non-strict support
2022-11-09 17:22:13 -08:00
Andrey Lushnikov 9bcb28f25a
Revert "feat: send SIGTERM to webserver before SIGKILL'ing it. (#18220)" (#18661)
This reverts commit c63a0b536d.

Reason: https://github.com/microsoft/playwright/pull/18564
2022-11-09 09:18:33 -08:00
Dmitry Gozman a7f1c8cb65
fix(codegen): fix csharp options syntax (#18662) 2022-11-08 21:48:01 -08:00
Dmitry Gozman ef1b68a998
feat(locators): support frame locators in asLocator (#18653)
Drive-by: change `true` to `True` in python.

References #18524.
2022-11-08 17:08:08 -08:00
Pavel Feldman 0355d8618f
chore: use provided value for the generated test id (#18631) 2022-11-08 12:04:43 -08:00
Dmitry Gozman 05b623e6b0
feat(locators): asLocator supports internal:has= (#18625)
The following snippet:
```js
rowLocator
    .filter({ hasText: 'John' })
    .filter({ has: page.getByRole('button', { name: 'Say hello' }) })

```

is shown in the logs:

```log
pw:api waiting for getByRole('listitem').filter({ hasText: 'John' }).filter({ has: getByRole('button', { name: 'Say hello' }) })
```
2022-11-08 08:47:02 -08:00
Dmitry Gozman 1cee65722b
fix(inspector): disable highlight during screenshot actions (#18621)
Fixes #18049.
2022-11-07 13:53:15 -08:00
Pavel Feldman 8432d1592f
chore: expose new locator apis on window.playwright (#18595) 2022-11-07 09:06:13 -08:00
Dmitry Gozman 6a65a43e9a
chore: use consistent asLocator() in all logs (#18586)
References #18524.
2022-11-04 15:19:16 -07:00
Dmitry Gozman 7a9f1b5ee4
fix(firefox): force fast shutdown after "xpcom-will-shutdown" phase (#18556) 2022-11-04 09:02:13 -07:00
Playwright Service ae811774b1
feat(chromium): roll to r1033 (#18558)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2022-11-03 16:21:39 -07:00
Pavel Feldman 3bc9e07daf
chore: parse locators strictly (#18553) 2022-11-03 15:17:08 -07:00
Andrey Lushnikov 8538f61a72
feat(containers): implement global network tethering for playwright server (#17719)
This patch implements a new mode of network tethering for Playwright
server & its clients.
With this patch:
- playwright server could be launched with the
`--browser-proxy-mode=tether` flag to engage in the new mode
- a new type of client, "Network Tethering Client" can connect to the
server to provide network traffic to the browsers
- all clients that connect to the server with the `x-playwright-proxy:
*` header will get traffic from the "Network Tethering Client"

This patch also adds an environment variable
`PW_OWNED_BY_TETHER_CLIENT`. With this env, playwright server will
auto-close when the network tethering client disconnects. It will also
auto-close if the network client does not connect to the server in the
first 10 seconds of the server existence. This way we can ensure that
`npx playwright docker start` blocks terminal & controls the lifetime of
the started container.
2022-11-03 13:47:51 -07:00
Pavel Feldman eac5cc98df
fix: compare selector when validating highlight (#18530) 2022-11-03 09:55:45 -07:00
Pavel Feldman 4d34a1a371
chore: do not generate role= selector, use internal (#18519) 2022-11-02 14:57:19 -07:00
Pavel Feldman b2e4f5652e
chore: do not update highlight on focus outside of the recording mode (#18516) 2022-11-02 14:09:02 -07:00
Pavel Feldman 67c9624924
chore: send structured codegen info to the debug controller (#18491) 2022-11-01 18:02:14 -07:00
Dmitry Gozman c56877032d
fix(persistent): close browser instead of pages (#18485)
Previously, we closed pages one by one before closing the browser when
shutting down the persistent context. This logic was introduced in
https://github.com/microsoft/playwright/pull/4040 to properly finish
video recordings in persistent context.

Such a process makes it unnecessary brittle to close the persistent
context. For example, Chromium headless is sometimes unable to close the
last persistent page for unknown reasons.

Instead, we can just stop video recordings manually and close the
browser right away.

Fixes #18229.
2022-11-01 14:26:38 -07:00
Max Schmitt 57c2ed91d9
chore: fix language binding based install message (#18480) 2022-11-01 13:46:17 -07:00
Pavel Feldman 4d53fd9c63
chore: download android driver from the cdn (#18466) 2022-10-31 16:08:26 -07:00
Dmitry Gozman 9cc5ca0cd4
feat(firefox): process.env.PLAYWRIGHT_DISABLE_FIREFOX_CROSS_PROCESS (#18458) 2022-10-31 15:19:10 -07:00
Pavel Feldman 2c3fa1b1ff
chore: add explore locator parser (#18429) 2022-10-31 12:55:35 -07:00
Pavel Feldman a7f5f2d7a1
chore: allow not overriding media when creating context (#18413) 2022-10-31 09:09:52 -07:00
Playwright Service 2e2698fa9d
feat(chromium): roll to r1032 (#18437)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2022-10-30 21:03:06 -07:00
Pavel Feldman 041a98928b
chore: print where the browsers are downloaded from (#18360)
Fixes https://github.com/microsoft/playwright/issues/16926
2022-10-27 09:19:09 -07:00
Pavel Feldman 1505a952fe
chore: make handle beforeunload when reusing the context (#18357)
Fixes: https://github.com/microsoft/playwright/issues/17903
2022-10-26 15:17:40 -07:00
Max Schmitt e25537f941
feat(android): add AndroidDevice.close event (#18306) 2022-10-25 18:18:14 -07:00
Dmitry Gozman 0653692a5b
fix(selectors): :scope combined with other css should work (#18324)
Previously, we considered root when selector has `:scope` modifier, but
did not actually match it with other css specifiers, like in
`:scope.selected`.

Fixes #17824.
2022-10-25 14:31:39 -07:00
Max Schmitt 721ae2b3ed
fix: make reoccurring networkidle work (#18323)
Fixes https://github.com/microsoft/playwright/issues/18283

Signed-off-by: Max Schmitt <max@schmitt.mx>
2022-10-25 13:35:18 -07:00
Jean-François Greffier 0fe1998c72
feat(api): add clear() (#18296)
Add `clear()` method as a convenience shortcut for `fill('')`.
Implemented for AndroidDevice, ElementHandle, Frame, Locator and Page.

Fixes https://github.com/microsoft/playwright/issues/14041
2022-10-25 12:56:11 -07:00
Pavel Feldman 37250cde17
chore: switch to the new debug controller harness (#18308) 2022-10-25 09:55:20 -07:00
Pavel Feldman d8ec7cba47
chore: don't generate new lines in codegen (#18309) 2022-10-25 09:02:06 -07:00
Dmitry Gozman 3cd64e1449
fix(check): support all ARIA roles that could be aria-checked (#18304)
Fixes #18193.
2022-10-25 06:11:11 -07:00
Dmitry Gozman 329b3eadb4
feat: locator.blur() (#18303)
Note this is only available on Locator. Fixes #10724.
2022-10-25 06:10:40 -07:00
Max Schmitt 805312b722
feat(android): add Android.{launchServer,connect} (#18263)
Fixes https://github.com/microsoft/playwright/issues/17538
2022-10-24 17:23:11 -07:00
Pavel Feldman d3948d1308
chore: enable debug controller testing (#18270) 2022-10-24 16:19:58 -07:00
Dmitry Gozman 9a684d39ab
feat(firefox): prepare to fission roll (#18302)
- Handle `Runtime.executionContextsCleared` event.
- Skip one auto-waiting test, because navigations now happen
asynchronously.
2022-10-24 16:03:56 -07:00
Pavel Feldman 3f850d27e9
fix(highlight): fix the testing harness to be real (#18294) 2022-10-24 15:01:48 -07:00
Max Schmitt be67189a54
fix(fetch): throw on unexpected end of file brotli requests (#18223)
https://github.com/microsoft/playwright/issues/18190
2022-10-24 12:51:45 -07:00
Pavel Feldman 3c0832a0d9
chore: brush up the debug controller api (#18262) 2022-10-21 17:57:22 -07:00
Dmitry Gozman 48c44f2c78
fix(selectors): hasText and getByText exact match should consider full text (#18260)
Fixes #18259.
2022-10-21 16:29:45 -07:00
Dmitry Gozman d4053abd29
fix(video): do not produce frames much faster than desired fps (#18228)
Otherwise, we get very long but slow videos.

Fixes #18198.
2022-10-21 14:30:14 -07:00
Playwright Service 96aa42c541
feat(chromium): roll to r1031 (#18258)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2022-10-21 14:27:46 -07:00
Andrey Lushnikov c63a0b536d
feat: send SIGTERM to webserver before SIGKILL'ing it. (#18220)
We now will send `SIGTERM` to the webserver and wait for the `timeout`
before sending `SIGKILL` to it.

Fixes #18209
2022-10-21 08:55:06 -07:00
Pavel Feldman 5b1e4e08a5
chore: detect browser reuse based on the connection headers (#18230) 2022-10-20 18:30:37 -07:00
Pavel Feldman 84daeafb3a
chore: use internal locator for role (#18187) 2022-10-19 19:38:47 -07:00
Dmitry Gozman 852a5c234b
feat(install): connection timeout (#18161)
- `PLAYWRIGHT_DOWNLOAD_CONNECTION_TIMEOUT` for custom timeout.
- Bumped default timeout from 10s to 30s.
- Inlined `download.ts` to avoid extra plumbing.
- Removed optional arguments - we always pass them.
- Updated installation docs.

Fixes #18156.
2022-10-19 13:06:35 -07:00
Yury Semikhatsky 69092b153a
chore(codegen): do not generate waitForURL (#18167)
Fixes https://github.com/microsoft/playwright/issues/17179
2022-10-19 11:26:19 -07:00
Playwright Service 60068a3ac8
feat(chromium): roll to r1030 (#18142)
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>
2022-10-19 08:49:45 -07:00
Playwright Service e325adc42b
feat(firefox): roll to r1359 (#18171)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2022-10-19 08:37:52 -07:00
Pavel Feldman 1b541c9932
chore: render typed locators in the trace viewer (#18166) 2022-10-18 19:23:40 -07:00
Pavel Feldman 739b64a09a
chore: render typed locators in the recorder (#18162) 2022-10-18 16:39:58 -07:00
Pavel Feldman 304a4ee8ec
chore: migrate to the internal:text selector (#18135) 2022-10-18 13:09:54 -07:00
Pavel Feldman 928f7c8766
chore: port css parser to ts (#18134) 2022-10-18 12:44:48 -07:00
Pavel Feldman 64e80f0460
chore: beautify error message (#18002) 2022-10-18 11:16:47 -07:00
Playwright Service 8ff2eda16a
feat(webkit): roll to r1727 (#18138)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2022-10-18 08:23:26 +02:00
Dmitry Gozman 6d363888f2
fix(tracing): do not serialize buffers into the trace file (#18132)
Fixes #18126.
2022-10-17 16:17:25 -07:00
Yury Semikhatsky 7219a68b12
fix: exception in exposeFunction when oopif detaches (#18078)
The test is racy but it was reliably failing several times in 100
iterations.

Fixes https://github.com/microsoft/playwright/issues/18067
2022-10-14 08:37:42 -07:00
Max Schmitt 693ed9b19e
chore: wire sourcesChanged event to the ProtocolHandler (#18044)
https://github.com/microsoft/playwright/issues/18043
2022-10-13 19:38:25 +03:00
Max Schmitt a60073d664
fix(generator): .NET getByRole w/ name (#18060) 2022-10-13 08:23:43 -07:00
Barbara Lócsi 347544db09
fix: override cookie even if new is expired (#17998) 2022-10-11 23:06:16 -07:00
Pavel Feldman ec1f8d17f0
fix(generator): generate nice locators for arbitrary selectors (#18010) 2022-10-11 17:50:41 -07:00
Pavel Feldman 37b04e5391
chore: better integrity error message (#17959)
Fixes https://github.com/microsoft/playwright/issues/17955
2022-10-10 12:34:25 -07:00
Pavel Feldman 35a5e805b3
fix(codegen): use constants when generating C# and Java roles (#17961)
Fixes #[17960](https://github.com/microsoft/playwright/issues/17960)
2022-10-10 12:25:56 -07:00
Playwright Service afe23ffa73
feat(chromium): roll to r1029 (#17917)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2022-10-08 09:02:13 +03:00
Yury Semikhatsky 639b28db3b
fix: noWaitAfter option for hover (#17856)
Fixes https://github.com/microsoft/playwright/issues/17833
2022-10-07 12:43:48 -07:00
Yury Semikhatsky 1b5c2f9aba
fix(trace): show waitForLoadState when event has already fired (#17826)
Fixes https://github.com/microsoft/playwright/issues/17807
2022-10-07 11:27:56 -07:00
Dmitry Gozman ca54643f7d
chore: fix docker tests in branch, attempt 2 (#17908) 2022-10-07 09:21:33 -07:00
Dmitry Gozman 51a8807f6b
chore: make local docker build work on branch (#17896)
Branch does not pass `isDevelopmentMode` check because it does not have
a version ending with `-next`. Therefore, `env.PWTEST_DOCKER_BASE_IMAGE`
is ignored which leads to the pull of non-existent image.
2022-10-07 06:55:26 -07:00
Dmitry Gozman b64457d8ce
fix(locators): make regex escape work when multiple spaces are present (#17893) 2022-10-06 16:23:40 -07:00
Pavel Feldman 8b018f6b41
chore: make role name case-insensitive (#17888) 2022-10-06 14:35:10 -07:00
Dmitry Gozman 9a12ae9890
chore(docker): make sure failed commands exit with non-zero code (#17863) 2022-10-05 21:31:50 -07:00
Pavel Feldman f2685cab95
chore: use api selectors in codegen hover (#17855) 2022-10-05 17:59:34 -07:00
Pavel Feldman 3ecaa36e25
chore: make locators generator isomorphic (#17850) 2022-10-05 13:13:22 -07:00
Pavel Feldman c168f5494f
chore: generate getByLabel for inputs (#17845) 2022-10-05 12:02:15 -07:00
Pavel Feldman ff15fcf911
chore: hide selector factories (#17844) 2022-10-05 12:00:01 -07:00
Dmitry Gozman 2bcd9ce9ae
chore: internal selectors (#17827)
- Rename internal selectors `has`, `control` and `attr` to
`internal:has`, `internal:control` and `internal:attr`.
- Fix `getByLabel()` to respect strictness, by introducing
`internal:label` selector.
- Move tests essential for ports to `selectors-by.spec`.
2022-10-05 08:45:10 -07:00
Dmitry Gozman a9c02b9753
fix(locators): properly escape various locator methods (#17798)
References #17604.
2022-10-04 13:21:38 -07:00
Pavel Feldman 8810b55504
feat(api): shorted getByLabel, getByPlaceholder (#17816) 2022-10-04 10:29:26 -07:00
Pavel Feldman 1311767f87
chore: generate api calls (#17794) 2022-10-03 17:14:02 -07:00
Pavel Feldman 42a4d8a829
chore(codegen): prioritize role selectors (#17750) 2022-10-03 08:44:24 -07:00
Max Schmitt 4306b38c2e
chore: download browsers out of process (#17743)
https://github.com/microsoft/playwright/issues/17394
2022-10-01 01:06:36 +02:00
Yury Semikhatsky 9b35a8071f
fix(fetch): support SameSite attribute (#17748)
Fixes https://github.com/microsoft/playwright/issues/17398
2022-09-30 15:01:59 -07:00
Playwright Service 4a32010dbc
feat(chromium): roll to r1028 (#17749)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2022-09-30 23:53:16 +02:00
Pavel Feldman 5754fb9c6d
chore: do not emit comments from codegen (#17747) 2022-09-30 12:36:54 -07:00
Andrey Lushnikov 5b57789c6d
devops: proper error for the Webkit @ MacOS 10.15 (#17731)
The error looks like this:

```
aslushnikov:~/prog/playwright(main)$ npx playwright wk
[object.<anonymous>: Browser closed.
==================== Browser output: ====================
<launching> /Users/andreylushnikov/Library/Caches/ms-playwright/webkit-1616/pw_run.sh --inspector-pipe --no-startup-window
<launched> pid=15076
[pid=15076][out] ****************************************************************
[pid=15076][out] ****************************************************************
[pid=15076][out]
[pid=15076][out] ERROR: MacOS version is too old!
[pid=15076][out]
[pid=15076][out] This version of Playwright does not support running
[pid=15076][out] WebKit on MacOS 10.15. Please either:
[pid=15076][out] - update your operating system to version 11 or higher
[pid=15076][out] - use Playwright v1.25 or older
[pid=15076][out]
[pid=15076][out] ****************************************************************
[pid=15076][out] ****************************************************************
[pid=15076] <process did exit: exitCode=1, signal=null>
[pid=15076] starting temporary directories cleanup
=========================== logs ===========================
```

Fixes #17699
2022-09-30 01:40:17 -07:00
wodyjowski 33bbb15e30
fix: grid connection invalid method (#17706)
This patch fixes invalid method (GET instead of POST) used when
connecting to Selenium Grid by http with proxy.

Fixes #17707
2022-09-30 00:41:03 -07:00
Pavel Feldman bfb8a43ece
feat(api): all getByTitle, getByAltText (#17724) 2022-09-29 21:45:44 -07:00
Pavel Feldman 083fb4401c
feat(api): add getByPlaceholderText (#17722) 2022-09-29 18:12:49 -07:00
Andrey Lushnikov d897407833
chore: hide docker integration behind the curtain (#17715)
This is not ready for the prime time yet.
2022-09-29 14:22:09 -07:00
Max Schmitt d009500fa1
chore: fix WebKit deps on Ubuntu 18 (#17718) 2022-09-29 23:15:04 +02:00
Pavel Feldman e09945c637
chore: handle unexpected ws response (#17714) 2022-09-29 14:04:19 -07:00
Pavel Feldman b4ee84fb0c
chore(api): remove locator.get() (#17709) 2022-09-29 12:50:52 -07:00
Max Schmitt d715ad116d
chore: fix WebKit on debian after deps changes (#17712)
Follow-up on https://github.com/microsoft/playwright/pull/17676.
2022-09-29 21:14:33 +02:00
Pavel Feldman e3a2316013
feat(api): add getByLabelText (#17684) 2022-09-29 11:06:58 -07:00
Dmitry Gozman a49ea7357a
fix(firefox): remove pref override (#17674)
There is no need for the workaround anymore.

Fixes #17528.
2022-09-29 09:22:39 -07:00
Playwright Service afa9c1528b
feat(webkit): roll to r1722 (#17676) 2022-09-29 09:00:31 -07:00
Pavel Feldman 2a85806cc0
chore: follow up to getTestById, escape it (#17650) 2022-09-28 09:23:47 -07:00
Playwright Service 57c4f703a7
feat(chromium): roll to r1027 (#17641)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Max Schmitt <max@schmitt.mx>
2022-09-28 10:53:21 +02:00
Pavel Feldman d8f67eb75d
feat(api): introduce getByTestId (#17645) 2022-09-27 21:06:07 -07:00
Playwright Service 57337e8df8
feat(firefox): roll to r1354 (#17601)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Andrey Lushnikov <aslushnikov@gmail.com>
2022-09-27 17:48:32 -07:00
Pavel Feldman d9a28bd244
feat(api): introduce get/getByText/getByRole (#17577) 2022-09-27 16:13:56 -07:00
Pavel Feldman 06e73b414f
chore: move connect utility into localUtils (#17590) 2022-09-27 13:05:06 -07:00
Dmitry Gozman 3409a37f77
feat: allow opening multiple html reporters and trace viewers (#17636)
This makes `HttpServer` accept `preferredPort` option that will first
try to listen on that port, and if that port is already in use, listen
on some available port instead.

Fixes #17201.
2022-09-27 12:45:42 -07:00
Yury Semikhatsky 72a24973f3
fix: ignore timing data when request served from memory cache (#17595)
`Response.timing` contains stale data when the request is served from
memory cache, in that we should ignore it and return -1 where we don't
know the value.

Fixes https://github.com/microsoft/playwright-java/issues/1080
2022-09-26 17:12:47 -07:00
Playwright Service d6dbfe547f
feat(webkit): roll to r1721 (#17591)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2022-09-26 20:39:52 +02:00
Yusuke Iwaki f5d7089819
fix: accept post data params for request.get and request.head (#17566) 2022-09-26 09:28:07 -07:00
Andrey Lushnikov ec40e49978
feat: expose configuration for HTML report serving. (#17560)
Fixes #16667
2022-09-25 20:36:38 -07:00
Playwright Service 04f77f2319
feat(chromium): roll to r1026 (#17545)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2022-09-22 23:24:16 +02:00
Joey Arhar ab323122d8
feat(chromium): use Element.checkVisibility in isElementVisible (#16592)
Element.checkVisibility is a new browser API that was shipped in
chromium 105:
https://bugs.chromium.org/p/chromium/issues/detail?id=1309533

Using checkVisibility accounts for the content-visibility:hidden in the
user-agent ShadowRoot of the details element, which means we can remove
the usage of the AutoExpandDetailsElementFlag (I am trying to remove the
flag in chromium).

This behavior is covered by the existing "isVisible and isHidden should
work with details" test in locator-convenience.spec.ts.
2022-09-22 13:48:58 -07:00
Andrey Lushnikov 4cd2176155
feat(containers): introduce separate container commands (#17541)
This patch introduces hidden commands to control container
lifecycle:
- `npx playwright docker install-server-deps` to install fluxbox,
  vnc, novnc & to configure them.
- `npx playwright docker run-server` to run a server inside the
  container.

Drive-by: remove old version of container image when building a new
version with the same name. This way we won't pile up untagged
container images.
2022-09-22 13:38:54 -07:00
Andrey Lushnikov 6b4afbb8df
chore: support http protocol with browserType.connect() (#17483) 2022-09-22 11:59:58 -07:00
Pavel Feldman cb10ef3c71
chore: rename reuseController to debugController (#17520) 2022-09-21 15:35:52 -07:00
Dmitry Gozman f17d345ac9
fix(ct): support empty fragments (#17475)
Currently, we ues `#root` vs `#root > *` selector for component roots
depending on the number of root children. This heuristic detects
fragments that render multiple elements inside the root.

However, this does not work with empty fragments that do not render
anything.

The fix is to make the `#root >> control=component` selector that would
dynamically detect the root. This supports empty fragments and also
allows for dynamic updates of the fragments.
2022-09-21 15:12:18 -07:00
Andrey Lushnikov d431958603
chore: move container integration back to playwright-core (#17487) 2022-09-21 12:45:43 -07:00
Playwright Service 292b3e998e
feat(firefox): roll to r1352 (#17494)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2022-09-21 11:12:45 -07:00
Jérémy Lal 840a1f6436
chore: replace __proto__ by getPrototypeOf (#17386) 2022-09-20 19:01:12 -07:00
Pavel Feldman df143031e7
chore: move protocol and trace types into the top-level packages (#17486) 2022-09-20 18:41:51 -07:00
Yury Semikhatsky cd9a5946d2
fix(expect): toHaveAttribute with empty value should not match missing attribute (#17477)
Reference #16517
2022-09-20 17:11:12 -07:00
Pavel Feldman 3abbe0d850
chore: migrate codegen to controller events (#17450) 2022-09-20 14:32:21 -07:00
Ross Wollman 8d639ae50e
chore: revert toHaveAttribute type sig and overloads (#17406)
Relates #16517.

Revert "docs(python): add missing NotToHaveAttribute overloads (#17371)"

This reverts commit 2e1ea29614.

Revert "docs(release-notes): add 1.26 release notes for language ports
(#17345)"

This reverts commit 4b8a85e69d.

Revert "test: unflake "should support boolean attribute with options"
(#17024)"

This reverts commit 1dc05bd4c6.

Revert "fix: support toHaveAttribute(name, options) (#16941)"

This reverts commit f30ac1d678.

Revert "feat: expect(locator).toHaveAttribute to assert attribute
presence (#16767)"

This reverts commit 622c73cc1e.
2022-09-16 11:17:35 -07:00
Playwright Service 58b43004d2
feat(chromium): roll to r1025 (#17372)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2022-09-16 10:59:17 +02:00
Playwright Service 8d696868c1
feat(webkit): roll to r1719 (#17364)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2022-09-16 10:58:22 +02:00
Andrey Lushnikov 7019cc8b97
feat(docker): closeAllBrowsers command for reuseController (#17383) 2022-09-15 20:38:28 -07:00
Dmitry Gozman 43304e980d
feat: show browser.close() stack in "Browser has been closed" error (#17376)
Often times we see "Browser has been closed" error, but it's not
entirely clear why. Showing the close stack might help.

```js
page.goto: Connection closed
    ==== Closed by ====
    at /Users/dgozman/code/playwright/tests/library/browsertype-connect.spec.ts:477:32
```
2022-09-15 17:04:41 -07:00
Pavel Feldman 872bcc9734
chore: expose driver protocol on the pw object (#17363) 2022-09-15 15:53:18 -07:00
Pavel Feldman 30ff27843a
chore: rebuild components on new vite (#17367) 2022-09-15 15:24:01 -07:00
Dmitry Gozman e1a2f7a168
fix(socks proxy): destroy sockets on close to avoid hanging (#17349) 2022-09-14 21:15:46 -07:00
Max Schmitt 59c32bf2c6
Revert "chore(generator): use new .NET test attributes (#17172)" (#17344)
This reverts commit 15add13a6a.
2022-09-14 22:44:38 +02:00
Max Schmitt 00a3b1b0a2
fix: make evaluate work with overridden Window/Document/Node (#17288)
Fixes https://github.com/microsoft/playwright/issues/17287
2022-09-13 18:21:07 +02:00
Andrey Lushnikov af042beb13
feat: introduce docker integration (#16382)
This patch introduces the following commands:
- `npx playwright docker build` that builds a VRT docker image
  locally that is based off the `mcr.microsoft.com/playwright:jammy`
- `npx playwright docker start` that launches a docker container with
  browsers.
- `npx playwright docker stop` that stops given docker container.
- `npx playwright docker test` that runs all the tests inside a
  launched docker container.
2022-09-09 15:25:42 -07:00
Vincenzo Gasparo 17b203affb
feat: added follow and redirect arguments to fetch (#17033) 2022-09-09 12:14:42 -07:00
Playwright Service 9e93913900
feat(chromium): roll to r1024 (#17203)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2022-09-09 14:36:55 +02:00
Max Schmitt 5e56bc413a
chore: set default http request timeouts (#17200)
* chore: set default http request timeouts

* Update chromium.ts
2022-09-09 06:18:57 +02:00
Andrey Lushnikov ea7ef328e7
fix: inject caret-hiding style in every shadow tree (#16907)
Style inheritance disregards selector specificity, so we can't
dominate local shadow dom styles.

To mitigate this, we inject the style tag with caret-hiding
style in every shadowDom tree.

Fixes #16732
2022-09-08 09:50:08 -07:00
Andrey Lushnikov b0ff4f58ce
feat: implement --dry-run for npx playwright install (#17158)
* feat: implement `--dry-run` for `npx playwright install`

The `--dry-run` command prints URLs for browsers to be installed.

Demo output:

```
browser: chromium version 106.0.5249.21
  Install location:    /Users/andreylushnikov/Library/Caches/ms-playwright/chromium-1023
  Download url:        https://playwright.azureedge.net/builds/chromium/1023/chromium-mac-arm64.zip
  Download fallback 1: https://playwright-akamai.azureedge.net/builds/chromium/1023/chromium-mac-arm64.zip
  Download fallback 2: https://playwright-verizon.azureedge.net/builds/chromium/1023/chromium-mac-arm64.zip

browser: firefox version 104.0
  Install location:    /Users/andreylushnikov/Library/Caches/ms-playwright/firefox-1350
  Download url:        https://playwright.azureedge.net/builds/firefox/1350/firefox-mac-11-arm64.zip
  Download fallback 1: https://playwright-akamai.azureedge.net/builds/firefox/1350/firefox-mac-11-arm64.zip
  Download fallback 2: https://playwright-verizon.azureedge.net/builds/firefox/1350/firefox-mac-11-arm64.zip

browser: webkit version 16.0
  Install location:    /Users/andreylushnikov/Library/Caches/ms-playwright/webkit-1714
  Download url:        https://playwright.azureedge.net/builds/webkit/1714/webkit-mac-12-arm64.zip
  Download fallback 1: https://playwright-akamai.azureedge.net/builds/webkit/1714/webkit-mac-12-arm64.zip
  Download fallback 2: https://playwright-verizon.azureedge.net/builds/webkit/1714/webkit-mac-12-arm64.zip

browser: ffmpeg
  Install location:    /Users/andreylushnikov/Library/Caches/ms-playwright/ffmpeg-1007
  Download url:        https://playwright.azureedge.net/builds/ffmpeg/1007/ffmpeg-mac-arm64.zip
  Download fallback 1: https://playwright-akamai.azureedge.net/builds/ffmpeg/1007/ffmpeg-mac-arm64.zip
  Download fallback 2: https://playwright-verizon.azureedge.net/builds/ffmpeg/1007/ffmpeg-mac-arm64.zip
```

Fixes #16926
2022-09-08 09:05:09 -07:00
Playwright Service cf8f662f13
feat(webkit): roll to r1715 (#17192)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2022-09-08 18:00:55 +02:00
Max Schmitt 1e517731ef
chore: have a socket timeout when downloading browsers (#17187) 2022-09-08 14:40:41 +02:00
Pavel Feldman 80e9c5dc55
fix(reuse): restore storage state (#17175) 2022-09-07 19:15:04 -07:00
Max Schmitt 15add13a6a
chore(generator): use new .NET test attributes (#17172) 2022-09-08 01:44:58 +02:00
Pavel Feldman c91df61ca3
chore: optionally connect instead of launching (#17174) 2022-09-07 15:57:20 -07:00
Dmitry Gozman 6e1c94b5fe
fix(click): allow clicking inside closed shadow root (#16900)
Although Playwright selectors do not pierce closed shadow roots,
one can still obtain a reference to an element inside a closed shadow root:
- through `page.evaluate()`;
- through `handle.$()` where `handle` is inside the shadow root;
- through `frame.locator()` by choosing an iframe that belongs
  to a closed shadow root.

In this case, `click()` action fails during the hit check test,
but it's possible to make it work by going bottom up from the target
rather than top down from the document.
2022-09-06 17:55:15 -07:00
Dmitry Gozman f0c5810609
feat(assertions): support toBeEditable({ editable }) (#17065) 2022-09-06 12:50:45 -07:00
Pavel Feldman 92f44e34d6
chore: silenсe best effort cleanup errors (#17137) 2022-09-06 12:48:40 -07:00
Dmitry Gozman b734f36f8b
fix(frameElement): should work for frames inside closed shadow root (#17055) 2022-09-06 08:52:25 -07:00
Pavel Feldman f4b90e5cc8
chore: reparent network back to context (#17023) 2022-09-05 10:19:44 +02:00
Yury Semikhatsky 01d83f1d5e
fix(har): record request overrides to har (#17027) 2022-09-04 10:52:20 -07:00
Playwright Service f051948400
feat(chromium): roll to r1023 (#17061)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2022-09-03 11:24:25 +02:00
Dmitry Gozman 54e7f44974
fix(firefox): disable cookie partitioning (#17051) 2022-09-02 15:46:03 -07:00
Dmitry Gozman 3548f3f898
feat(firefox): roll ff to 1350, beta to 1353 (#17006) 2022-09-02 08:35:29 -07:00
Yury Semikhatsky da19219323
fix: throw clear message when requested screenshot is too large (#17025) 2022-09-01 18:15:49 -07:00
Yury Semikhatsky 27ffdcc944
fix: accept post data for GET and HEAD http methods (#17008) 2022-09-01 08:36:08 -07:00
Yury Semikhatsky 5d6253f743
fix: stop har recording when APIRequestContext is disposed (#17007) 2022-08-31 21:51:38 -07:00
Yury Semikhatsky aaa28394cd
feat(trace): include url into route.fulfill call params (#16934) 2022-08-31 12:37:49 -07:00
Max Schmitt 6533eb2e5b
chore: fix deps for WebKit on ubuntu20 (#16950) 2022-08-31 12:27:09 +02:00
Playwright Service 77f6b25941
feat(webkit): roll to r1712 (#16933) 2022-08-30 14:24:14 -07:00
Dmitry Gozman fea8772d95
fix: emit load/domcontentloaded events as reported by the browser (#16861)
Instead of requiring all frames in the subtree to receive a particular
event, we rely on the browser's definition of load and DOMContentLoaded.

This changes logic in a few edge cases:
- Some browsers do not emit load event upon window.stop() at all.
- DOMContentLoaded does not wait for subframes, so they might not be
  ready when passing `{ waitUntil: 'domcontentloaded' }`.

`networkidle` preserves the old logic.
2022-08-26 13:48:05 -07:00
Pavel Feldman 6319b14069
chore: dispatcher is a scope (#16843) 2022-08-26 09:30:27 -07:00
Playwright Service 3b1af7d75d
feat(chromium): roll to r1022 (#16844)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2022-08-25 21:42:58 +02:00
Pavel Feldman a07a4a25a2
chore: make parent scope explicit (#16819) 2022-08-25 11:58:41 -07:00
Andrey Lushnikov 622c73cc1e
feat: expect(locator).toHaveAttribute to assert attribute presence (#16767)
This patch changes `expect(locator).toHaveAttribute()` so that the
`value` argument can be omitted. When done so, the method will
assert attribute existance.

Fixes #16517
2022-08-25 05:28:34 -07:00
Max Schmitt 74ab343e2b
feat(codegen): add NUnit/MSTest (#16803) 2022-08-25 11:58:58 +02:00
Dmitry Gozman 2c1723b6f5
chore: avoid protocol calls on disposed context (#16812)
Otherwise, we always get a failing protocol message when closing a context.
2022-08-24 17:21:01 -07:00
Playwright Service c4e91bded1
feat(firefox): roll to r1347 (#16788) 2022-08-24 08:37:52 -07:00
Andrey Lushnikov 6ebd3ea61f
chore(electron): put client-provided arguments in front (#16782)
Fixes #16614
2022-08-23 15:08:36 -07:00
Ross Wollman aa23914659
chore: remove invalid device configurations (#16777)
Resolves #16622.

- removes current invalid configurations
- validates future changes
2022-08-23 14:03:41 -07:00
Andrey Lushnikov 1cedd805ed
chore: a nicer message to urge updating docker image with Playwright (#16758)
This will result in the following message:

```
root@docker-desktop:/playwright# node a.mjs
node:internal/process/esm_loader:94
    internalBinding('errors').triggerUncaughtException(
                              ^

browserType.launch: Executable doesn't exist at /ms-playwright/chromium-1021/chrome-linux/chrome
╔══════════════════════════════════════════════════════════════════════╗
║ Looks like Playwright Test or Playwright was just updated to 1.26.0. ║
║ Please update docker image as well.                                  ║
║ -  current: mcr.microsoft.com/playwright:v1.23.0-focal               ║
║ - required: mcr.microsoft.com/playwright:v1.26.0-focal               ║
║                                                                      ║
║ <3 Playwright Team                                                   ║
╚══════════════════════════════════════════════════════════════════════╝
    at file:///playwright/a.mjs:3:43 {
  name: 'Error'
}
```

Fixes #15483
2022-08-23 10:39:59 -07:00
Max Schmitt 35a9daa425
chore: validate pw-core version when pwtest CLI gets executed (#16475) 2022-08-20 12:20:31 +02:00
Pavel Feldman ba722a2580
fix(selectors): make them work in the browser reuse mode (#16691) 2022-08-19 13:48:33 -07:00
Andrey Lushnikov e1e1035e10
chore: do not specify custom LD_LIBRARY_PATH for Firefox (#16681)
We used to bundle `libstdc++` for Firefox but we no longer do so,
so this code should not be needed.
2022-08-19 07:18:41 -07:00
Max Schmitt be33ec817b
feat(webkit): add forced colors media query override (#16654) 2022-08-19 14:19:54 +02:00
Playwright Service 5282edca7c
feat(webkit): roll to r1706 (#16659)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2022-08-19 07:42:58 +02:00
Playwright Service f99f0c099f
feat(chromium): roll to r1021 (#16657)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2022-08-19 07:42:09 +02:00
Max Schmitt 7e2aec7454
chore: align more ESLint rules with VSCode formatting (#16647) 2022-08-18 20:12:33 +02:00
Andrey Lushnikov 59562de0ec
fix(pipe): do not store accumulated message as string (#16641)
Accumulated message must be stored raw; otherwise, unicode encoding
will break while trying to decode them.

Fixes #16367
2022-08-18 07:53:56 -07:00
Playwright Service 94c9db299d
feat(webkit): roll to r1703 (#16604) 2022-08-17 17:13:00 -07:00
Yury Semikhatsky 4dcb492ef0
fix: make viewer reference all trace urls (#16561)
Single trace viewer page may render several traces, count it as a client for each of the trace files.

Fixes #16429
2022-08-15 20:54:57 -07:00
Max Schmitt 13596b7be3
chore: language specific dropdowns in codegen (#16452) 2022-08-15 19:44:46 +02:00
Max Schmitt 09e6bb9c0f
chore: sunset Node.js 12 (#16512) 2022-08-15 18:10:04 +02:00
Max Schmitt 9acfe2d469
feat(chromium): roll to 1020 (#16534) 2022-08-15 10:21:24 +02:00
Max Schmitt 435272248f
docs(dotnet): PowerShell install enhancements (#16520) 2022-08-14 20:01:00 +02:00
Dmitry Gozman 3ae50861a3
fix(reload): make sure reload() does not pick same-document navigaiton (#16504)
We lack `documentId` when doing a reload over browser protocols, so
`reload()` waits for the next navigation to finish. Sometimes, the page
might issue a same-document navigation while reload is in progress,
which confuses the reload command.

To fix the issue, just ignore same-document navigations for reload,
because it is always a new document.
2022-08-12 13:48:47 -07:00
Dmitry Gozman 3dc1920ce8
feat(expect): toHaveText/toContainText work with text in shadow dom (#16433) 2022-08-11 14:10:12 -07:00
Pavel Feldman fce45210c1
feat(driver): report backend state (#16477) 2022-08-11 13:42:16 -07:00
Dmitry Gozman 51076d55ad
chore: move retargeting from expectHitTarget to retarget (#16474)
This aligns all retargeting in a single place, so that we
can pass around "retarget strategy" to make sure we retarget
as expected in every single action.
2022-08-11 13:06:12 -07:00
Pavel Feldman c84fbc2e4e
feat(driver): add reuse and navigate commands (#16420) 2022-08-10 10:57:28 -07:00
jfgreffier fb91f829d7
chore: listen on localhost for html report (#16205) 2022-08-10 11:05:31 +02:00
Max Schmitt 699a52ec74
fix(codegen): make sure input recording with japanese IME Work (#16400)
Co-authored-by: kawasaki.taiga <kigtaiga@gmail.com>
Co-authored-by: Max Schmitt <max@schmitt.mx>
2022-08-10 09:46:30 +02:00
Yury Semikhatsky 11391910e7
Revert "fix(codegen): make sure input recording with japanese IME Wor… (#16393)
Revert "fix(codegen): make sure input recording with japanese IME Work (#16210)"

This reverts commit 925de8da2b.
2022-08-09 16:47:32 -07:00
Pavel Feldman 737975bc7d
chore: expose hidehighlight from server (#16387) 2022-08-09 16:42:55 -07:00
YA2KM 925de8da2b
fix(codegen): make sure input recording with japanese IME Work (#16210)
Co-authored-by: kawasaki.taiga <kigtaiga@gmail.com>
Co-authored-by: Max Schmitt <max@schmitt.mx>
2022-08-10 01:02:42 +02:00
Max Schmitt ff5f241b84
chore: set --allow-pre-commit-input flag on Android/Electron (#16383) 2022-08-09 23:18:15 +02:00
Pavel Feldman c99d6cdd4c
chore: enable reused browser autoclose (#16363) 2022-08-08 17:16:13 -07:00
Dmitry Gozman 0fa20d5d1e
fix(click): make it work for display:contents elements (#16356)
After protocol fixes in all browsers, we can now scroll and click display:contents elements.
The only problem is that `elementsFromPoint()` misbehaves in Chromium and Firefox, so we
need a workaround. Hopefully, it will be fixed upstream - shadow dom spec folks think
"it becomes a real compatibility concern".

This needs Chromium 105 roll.
2022-08-08 16:05:09 -07:00
Ross Wollman 36b92d8847
fix: toBeFocused should match shadow elements (#16362)
Fixes #16268.
2022-08-08 15:34:58 -07:00
Max Schmitt 1ca6635bb8
fix(cli): store trace/storage/har on SIGINT (#16339) 2022-08-09 00:13:38 +02:00
Max Schmitt 57fcb590f7
chore: hide stackTrace.js from recorded frames (#16242) 2022-08-08 23:27:59 +02:00
Pavel Feldman 2d7c003ada
chore: minor inspect tweaks (#16334) 2022-08-08 10:39:54 -07:00
Playwright Service 53917f43e1
feat(chromium): roll to r1019 (#16335)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Max Schmitt <max@schmitt.mx>
2022-08-07 15:32:38 +02:00
Pavel Feldman 8ed238843b
chore: allow inspecting element from server (#16324) 2022-08-05 19:34:57 -07:00
Dmitry Gozman 706c00d242
chore: remove UMD wrapper from cssTokenizer (#16322)
This wrapper conflicts with some bundlers in the wild, and we don't really need it.
2022-08-05 15:24:11 -07:00
Pavel Feldman 5d7e80bed6
chore: don't show reused browser intro (#16289) 2022-08-04 22:09:27 -07:00
Pavel Feldman 97fa2518e9
fix(reuse): clear storage after stopping all scripts (#16275) 2022-08-04 16:39:18 -07:00
Pavel Feldman 3aa5710b49
feat(reuse): retain different browser types when reusing (#16269) 2022-08-04 15:04:00 -07:00
Pavel Feldman b3d30a808f
fix(reuse): reset sw, db, storages (#16265) 2022-08-04 15:01:34 -07:00
Dmitry Gozman 6b6b13c71b
feat(selenium): update docs and include SE_NODE_GRID_URL requirement (#16230) 2022-08-04 13:39:12 -07:00
Max Schmitt 35bcecc5c3
chore: cleanup WK deps and fix WK on debian (#16253) 2022-08-04 15:35:32 +02:00
Max Schmitt f92a34aa18
fix: add libatomic1 to WebKit ubuntu22 native deps (#16252) 2022-08-04 14:56:12 +02:00
Pavel Feldman db2972792b
feat(server): queue run-server clients (#16234) 2022-08-03 19:37:06 -07:00
Pavel Feldman 8eca6339c2
feat(reuse): account for the browser launch args when reusing the bro… (#16229)
feat(reuse): account for the browser launch args when reusing the browsers
2022-08-03 17:32:29 -07:00
Andrey Lushnikov fb76d62a2b
feat(firefox): roll Firefox stable to 103 (#16224) 2022-08-03 16:55:19 -07:00
Pavel Feldman 74f7005c02
chore: preserve window while reusing window (#16225) 2022-08-03 16:14:28 -07:00
Pavel Feldman df9a318d14
chore: open browser for reuse, destroy run server on detach (#16183) 2022-08-02 21:09:39 -07:00
Pavel Feldman d5bc5ee6f7
fix(reuse): clear cookies and local storage when reusing context (#16175) 2022-08-02 17:26:59 -07:00
Playwright Service d86a15c1a1
feat(chromium): roll to r1018 (#16165)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2022-08-02 22:49:09 +02:00
Max Schmitt 153670978d
chore: fix Android 13 compatibility (#16139) 2022-08-02 18:22:27 +02:00
Max Schmitt 0ef7e9803d
chore: disable Translate feature in Chromium (#16136) 2022-08-02 11:07:04 +02:00
Dmitry Gozman 5481e25015
chore: print full stacks when PWDEBUGIMPL is set (#16113)
For debugging purposes, especially on the client's computers.
2022-08-01 13:44:59 -07:00
Pavel Feldman 5a79054544
feat(innerloop): allow reusing browsers over the remote connection (#16065) 2022-07-31 14:31:17 -07:00
Dmitry Gozman 809002df60
fix(events): avoid firing lifecycle events twice (#16055)
Previously, when some iframe started/finished a new navigation, we
could have removed and then re-addded load/domcontentloaded on the
main frame.

Drive-by: unflake wheel test in Firefox.
2022-07-29 12:44:04 -07:00
Yury Semikhatsky af8e3e7afa
feat: print response text when toBeOK fails (#16040) 2022-07-29 11:46:48 -07:00
Pavel Feldman d73f9b7b88
chore: experimental test server implementation (#16033) 2022-07-29 11:40:33 -07:00
Dmitry Gozman 03b0f911d9
fix(screenshot): avoid unnecessary work (#16035)
Do not evaluate when not hiding caret nor disabling animations.
2022-07-29 09:23:02 -07:00
Making Stuffs 6f47f0f22a
fix(chromium): Add error message to asset when there is one. (#15892)
[196] -- Provide the assert function with with either the error message in the provided object or undefined if there isn't one
2022-07-28 14:45:25 -07:00
Dmitry Gozman 829a1b8444
fix(isVisible): make sure isVisible check is atomic (#16004) 2022-07-28 14:09:36 -07:00
Playwright Service d5f3b10eba
feat(chromium): roll to r1017 (#16030)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2022-07-28 22:36:09 +02:00
Dmitry Gozman 607910f6aa
fix(isVisible): do not retarget visibility checks (#16002)
We used to go to the enclosing button (inherited from click logic), which is unexpected.
2022-07-27 14:02:35 -07:00
Eran Rom 68d558f896
chore(default context): Apply context workaround only when browser and scenario match (#15904) 2022-07-27 12:23:22 -07:00
Dmitry Gozman 09461f8a76
fix(driver): make sure IpcTransport messages arrive in different tasks (#15978) 2022-07-26 18:42:02 -07:00
Playwright Service ac480240bb
feat(webkit): roll to r1689 (#15943) 2022-07-26 08:48:18 -07:00
Andrey Lushnikov a5738998f6
fix: accomodate to changed MSEdge download format (#15933)
Fixes #15932
2022-07-25 16:55:24 -07:00
Dmitry Gozman c4dae2a628
fix(cli): remove --save-trace from open command (#15905) 2022-07-25 09:16:20 -07:00
Dmitry Gozman 4bec6309df
fix(lifecycle): recalculate lifecycle on iframe detach (#15812)
It could be that iframe was blocking some event, like load or networkidle,
and we never updated the lifecycle after the iframe was detached. This
lead to goto and other navigation commands to never resolve.
2022-07-22 19:44:02 -07:00
Dmitry Gozman fd21852b01
fix(text selector): ignore NOSCRIPT elements (#15887)
These are usually not rendered, and some sites have very big content inside,
for example full page markup.
2022-07-22 16:18:06 -07:00
Playwright Service 7d29231177
feat(chromium): roll to r1016 (#15857)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2022-07-21 23:19:26 +02:00
Dmitry Gozman ba3c8ffa5c
test: make sure browser crashes in CLI tests are marked as such (#15821) 2022-07-20 15:32:57 -07:00
Pavel Feldman 55cd3928b7
chore: reuse context in the innerloop mode (#15719) 2022-07-15 10:36:36 -07:00
Pavel Feldman a198b6d753
chore: reparent context objects into the object (#15689) 2022-07-15 08:56:47 -07:00
Ross Wollman 732b8f4760
chore: PW_EXPERIMENTAL_SERVICE_WORKER_NETWORK_EVENTS and doc clarifications (#15688) 2022-07-14 17:40:22 -07:00
Andrey Lushnikov 0a01a9456a
chore: update WebKit browser version (#15679)
As of July 14, 2022, Safari Technoly Preview returns the following:

```
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.0 Safari/605.1.15
```
2022-07-14 13:56:20 -07:00
Andrey Lushnikov 173ea04b02
fix: add missing gstreamer dependencies for wk on debian 11 (#15675) 2022-07-14 13:12:49 -07:00
Max Schmitt 4bba41ab8f
Revert "feat(matchers): add toContainClass (#15491)" (#15670)
This reverts commit e4debd0bf6.
2022-07-14 22:03:37 +02:00
Andrey Lushnikov 53118c074e
chore: use JHBuild WebKit Debian 11 build (#15673)
Fixes #3167
2022-07-14 12:54:43 -07:00
Yury Semikhatsky cb81d23ad6
fix(selectors): max hasText regex against nested nodes (#15638) 2022-07-14 08:23:11 -07:00
Playwright Service 0ac893d0f8
feat(chromium): roll to r1015 (#15649)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2022-07-14 14:34:02 +02:00
Andrey Lushnikov 83e3dbb1bb
chore: add support for debian 11 downloads (#15596) 2022-07-13 04:09:24 -07:00
Yury Semikhatsky 3436e64b75
feat: dispatch wheel event (#15593) 2022-07-12 17:17:45 -07:00
Pavel Feldman 3939b9f36e
chore: migrate component testing to server-side page reuse (#15477) 2022-07-12 14:30:24 -07:00
Max Schmitt e4debd0bf6
feat(matchers): add toContainClass (#15491) 2022-07-12 23:17:10 +02:00
Ross Wollman 8858162692
fix: Service Workers+Interception: missing page-level Network events (#15549)
Fixes #15474.

Notes:

* page-level requests that are also handled by a SW's fetch handler, should not be interceptable at the page-level
* `Network.requestWillBeSent` does not provide enough metadata for Playwright to fire the `request` event at that time, so it does it as soon as it gets to the end of the request lifecycle
2022-07-12 13:23:35 -07:00
Pavel Feldman 8402001c32
chore: remove joining emitter (#15588) 2022-07-12 13:04:20 -07:00
Max Schmitt 7e1801bd30
fix(matchers): repeating values lead to no error (#15559) 2022-07-12 20:03:27 +02:00
Pavel Feldman 5fc637e44a
chore: experimental resetForReuse (#15432) 2022-07-11 13:10:08 -07:00
Yury Semikhatsky 2850aae924
fix(webkit): use new protocol methods for bindings (#15503) 2022-07-08 15:11:29 -07:00
Yury Semikhatsky b9d1a5ad69
feat(webkit): roll to r1677 (#15500) 2022-07-08 13:15:57 -07:00
Playwright Service dfd6fa356a
feat(chromium): roll to r1014 (#15490)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2022-07-08 13:41:21 +02:00
Pavel Feldman 0781d04a5e
chore: get rid of page state overrides (#15470) 2022-07-07 16:28:20 -07:00
Pavel Feldman 5fd6ce4de0
chore: allow aborting in-flight routes on context reuse (#15460) 2022-07-07 13:07:09 -07:00
Max Schmitt 86a65a03e4
chore: add CI to default user agent (#15450) 2022-07-07 21:43:47 +02:00
Pavel Feldman cc6f415933
chore: share grant permissions init among browser types (#15457) 2022-07-07 11:39:05 -07:00
Playwright Service b7e66d2b14
feat(firefox): roll to r1335 (#15434)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2022-07-07 05:51:41 -07:00
Pavel Feldman f71b620de7
chore: unregister handlers when dispatcher goes (#15425) 2022-07-06 20:32:31 -07:00
Pavel Feldman b9e41df0a5
chore: respect event name in removeAllListeners (#15430) 2022-07-06 15:04:27 -07:00
Andrey Lushnikov e9d66535ba
browser(firefox): move screenshots to browser-side (#15230)
* `clip` option is always passed from the client code
* with this change, we can no longer capture screenshot of a blinking
  caret; the browser-side API doesn't have this capability.
2022-07-06 15:02:48 -07:00
Dmitry Gozman 0142bdce76
test: mark driver mode as remote (#15402)
Otherwise we are passing buffers as objects, not as base64.
2022-07-06 09:20:07 -07:00
Dmitry Gozman d60b8aba23
fix(codegen): handle more context options (#15319)
The following options now work across languages:
- `recordHar`
- `serviceWorkers`

In addition, object properties are now sorted alphabetically.
Drive-by: fixed `--target` help message to include all available targets.
2022-07-05 13:30:46 -07:00
Ross Wollman 5f03bd9477
chore(test-runner): increase jpeg-js max mem allowance (#15381)
Resolves #14255.

PNGs should be preferred as they are deterministic, but increasing this
limit should be fine for JPEG users. (Looking through jpeg-js source code, the actual memory allocation is based on the size of the image—so unless a user is hitting this limit already—this should not impact the memory consumption of Playwright.
2022-07-05 13:25:54 -07:00
Playwright Service 449b66591d
feat(firefox): roll to r1333 (#15382)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2022-07-05 12:16:56 -07:00
Dmitry Gozman 4eccb89a79
chore: do not serialize buffers into base64 in local mode (#15316) 2022-07-05 08:58:34 -07:00
Sean Doyle ef5a56ce18
feat(evaluate): serialized URL instances (#15023)
Add support for returning [URL][] instances from `page.evaluate` calls.
Follow the patterns established by `Date` and `RegExp` serialization.

[URL]: https://developer.mozilla.org/en-US/docs/Web/API/URL
2022-07-05 17:53:02 +02:00
Max Schmitt 35a2792bb4
fix(html-report): listen on 127.0.0.1 only (#15361)
Fixes #11568
2022-07-05 08:48:30 -07:00
Maël Nison 7609785d53
fix: Detects React 17+ first (#15343) 2022-07-05 07:49:31 -07:00
Pavel Feldman 9e62cc4da9
fix(test): speculative attempt to fix trace viewer test flakiness (3) (#15342) 2022-07-03 11:55:18 -07:00
Dmitry Gozman 71dcad3b2e
test: fix some flaky failures (#15314)
- Never use open shadow root for highlight. This messes up
  our selectors that accidentally match internal preview elements.
- Remove failing electron test that we do not care about.
- Skip `channels.spec.ts` in non-default mode.
2022-07-01 13:57:33 -07:00
Ross Wollman 6cb3236acd
feat(chromium): Service Worker Network Instrumentation and Inspection (#14716)
Adds Chromium support for Service Worker Networking (interception/routing, Request/Response events, and HAR).

Resolves #1090.
Depends on #14714 and #14714.
Supercedes #14321.
Follow up #14711.

Landed upstream patches:
- https://chromium-review.googlesource.com/c/chromium/src/+/3510917
- https://chromium-review.googlesource.com/c/chromium/src/+/3526571
- https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/3566669
- https://chromium-review.googlesource.com/c/chromium/src/+/3544685
- https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/3610924
- https://chromium-review.googlesource.com/c/chromium/src/+/3689949
2022-07-01 12:49:43 -07:00
Dmitry Gozman 82032be368
chore(server): validate/convert protocol both ways (#14811)
Previously, we only validated/converted on the way to the server,
but not from the server.

Validating both ways catches issues earlier, and allows us to
perform automatic conversions, for example only converting
buffers to base64 when sending over wire.
2022-07-01 09:58:07 -07:00
Playwright Service 3e86c7af95
feat(chromium): roll to r1013 (#15303)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2022-07-01 15:18:58 +02:00
Playwright Service 2e96db4655
feat(firefox): roll to r1332 (#15291)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2022-07-01 05:24:10 -07:00
Pavel Feldman 6425ab9e78
fix(ff): allow more time to launch browser (#15290) 2022-06-30 18:07:25 -07:00
Max Schmitt 3d1d723c56
fix(esm): show codeframe when errors get reported (#15262) 2022-06-30 21:17:08 +02:00
Yury Semikhatsky 4de14e7d2c
feat(webkit): roll to r1673 (#15276) 2022-06-30 12:07:33 -07:00
Dmitry Gozman 0254cd3be7
fix(firefox): launch races (#15259)
Potential fixes to avoid startup races:
- Wait for "juggler listening" message.
- Make sure `transport.onclose` is called when connecting to the transport after the actual pipe closure.
2022-06-30 10:58:22 -07:00
Max Schmitt 71fc53bbf8
fix(matchers): toHaveClass on SVG elements (#15267)
Fixes #15260
2022-06-30 07:01:26 -07:00
Dmitry Gozman ff2647cfa3
fix(network): remove races from sizes calculation (#15208)
- Do not resolve raw headers upon `loadingFinished`, since they may still come later in
  `responseReceivedExtraInfo`.
- Introduce separate promises for `encodedBodySize`, `transferSize` and `responseHeadersSize`.
- Make sure we resolve each of them either with data available
  from the browser, or a fallback calculation.
- Set raw response headers for redirects on WebKit.
- Do not stall on cached responses in Chromium, they have erroneously set `hasExtraInfo` flag.
- Use `transferSize` that is available in Firefox protocol.
2022-06-29 18:11:22 -07:00
Max Schmitt b3c31f5b13
fix: do not throw on removeListener without listener (#15224)
Co-authored-by: Andrey Lushnikov <aslushnikov@gmail.com>
2022-06-29 13:53:13 +02:00
Dmitry Gozman 8220ab1379
feat(firefox): roll ff 1328 and ff-beta 1330 (#15185) 2022-06-29 03:04:46 -07:00
Max Schmitt e34fa4feeb
fix(evaluate): fallback to toJSON if it exists when serializing (#15188)
* fix(evaluate): fallback to toJSON if it exists when serializing

* fix test in ff

* window.performance test
2022-06-29 08:07:32 +02:00
Pavel Feldman 6a8d835145
chore: allow updating har while routing (#15197) 2022-06-28 15:09:36 -07:00
Max Schmitt aa1e736f3f
chore: print response body when browser download failed (#15101) 2022-06-28 18:19:31 +02:00
Playwright Service fab12c70f7
feat(chromium): roll to r1012 (#15111)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Andrey Lushnikov <aslushnikov@gmail.com>
2022-06-27 10:01:10 +02:00
Dmitry Gozman 660516d22a
fix(network): make allHeaders wait until all headers are available (#15094)
fix(network): make allHeaders wait until all header are available

Before, calling `allHeaders()` from `page.on('request')` would yield
provisional headers instead.

With these changes:
- In Firefox, all headers are available immediately.
- In Chromium, all headers are available upon requestWillBeSentExtraInfo.
- In WebKit, all headers are available upon responseReceived.
- In all browsers, intercepted requests use "provisional" headers
  as all headers, since there is no network stack to change the headers.

Drive-by: migrated Chromium to `hasExtraInfo` flags that simplifies
the logic quite a bit.
2022-06-24 13:51:09 -07:00
Dmitry Gozman 2f11807552
fix(click): no element should intercept events over the target frame (#15043)
When target element is inside a non-main frame, there could be an
overlay in some of the parent frames that intercepts pointer events.
However, we never detected this case.
2022-06-24 13:17:25 -07:00
Pavel Feldman ae6f48c4b8
fix(route): match against updated url while chaining (#15112) 2022-06-24 10:48:16 -07:00
Pavel Feldman 7bd72716f9
feat(har): introduce the slim mode (#15053) 2022-06-22 14:44:12 -07:00
Dmitry Gozman 033c250f6d
fix(har): remove types/har.d.ts, update har.ts per spec (#15046)
Drive-by: typo fix in `notFound` option name.
2022-06-22 12:16:29 -07:00
Max Schmitt fb441faab1
fix: request/response events with backgroundPages (#15032) 2022-06-22 17:23:51 +02:00
Pavel Feldman 9525bedc1f
feat(har): re-add routeFromHAR (#15024) 2022-06-21 22:12:37 -07:00
Dmitry Gozman 6af6fab84a
fix(har): internal redirect in renderer-initiated navigations (#15000)
fix(har): internal redirect in renderer-initiated navigations
2022-06-21 11:01:01 -07:00
Tommi Finnilä 6b1bd6ec16
fix: Add Ubuntu 22.04 deps for arm64 (#15007) 2022-06-21 13:51:19 +02:00
Elias Sørensen 6ca18b3bb8
chore: support Pop!_OS 22.04 versioning (#14859)
Co-authored-by: Elias Sorensen <elias.soerensen@usercentrics.com>
2022-06-21 03:02:48 -07:00
Dmitry Gozman bff90b5abb
fix(chromium): disable back-forward cache (#14996)
Otherwise, back/forward navigation does not intercept requests.
2022-06-20 17:27:45 -07:00
Pavel Feldman 883e4d449a
test(har): add more har tests (#14997) 2022-06-20 17:22:32 -07:00
Pavel Feldman aaafb77036
feat(har): disambiguate using matching headers (#14995) 2022-06-20 16:41:53 -07:00
Pavel Feldman b5524aa756
chore(har): brush up post data serialization (#14994) 2022-06-20 15:29:13 -07:00
Dmitry Gozman e3da3ebfa4
feat(har): do not expose HAR types, remove HARResponse fulfill (#14992) 2022-06-20 15:19:54 -07:00
Pavel Feldman eb87966441
feat(har): disambiguate requests by post data (#14993) 2022-06-20 14:14:40 -07:00
Ross Wollman c3bbf8963d
test: installation test for CDN failover (#14963) 2022-06-20 11:24:23 -07:00
Pavel Feldman 920f1d52fc
chore: allow routing by uncompressed har (#14987) 2022-06-20 11:07:53 -07:00
Pavel Feldman e5372c3421
chore: move har router into local utils (#14967) 2022-06-18 20:24:55 -07:00
Yury Semikhatsky ed6b14f0f4
fix(har): restart redirected navigation (#14939) 2022-06-17 21:17:30 -07:00
Pavel Feldman 030e7d211c
chore(har): allow replaying from zip har (#14962) 2022-06-17 16:11:22 -07:00
Max Schmitt 822b86d8a4
chore: add CDN download fallbacks (#14933) 2022-06-17 11:47:32 -07:00
Playwright Service 466d50e3e3
feat(chromium): roll to r1011 (#14948)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2022-06-17 18:41:06 +02:00
Pavel Feldman e9069bef6b
fix(body): fetch body explicitly for prefetched scripts (#14941) 2022-06-16 22:07:43 -07:00
Pavel Feldman be64e9ce66
chore(har): attach resources for .zip hars (#14938) 2022-06-16 18:27:25 -07:00
Pavel Feldman 245c33a5d4
feat(har): allow storing content as separate files (#14934) 2022-06-16 16:33:32 -07:00
Yury Semikhatsky 2bdb0998bd
feat(cli): block-service-workers option (#14931) 2022-06-16 16:03:35 -07:00
Dmitry Gozman cdb862767f
fix(page): "load" event should fire before "waitForLoadState" resolves (#14897)
Currently, `loadstate` and `load` are two separate events in the protocol,
and are fired in this order. As a result, `waitForLoadState()` sometimes
resolves before the `'load'` event is fired, which is unexpected.

Also fixes a flaky test that assumed `load` event comes after `domcontentloaded`
for the empty page, which is not always a case in Chromium.
2022-06-16 09:35:53 -07:00
Yury Semikhatsky 79378dd1eb
fix: add pw:api logging to har router (#14903) 2022-06-16 07:48:57 -07:00
Yury Semikhatsky c349c1d57f
feat: newContext.har (#14892)
Replaced {Page,BrowserContext}.(un)routeFromHar with browser.newContext.har.
2022-06-15 16:35:44 -07:00
Pavel Feldman 225ab68d1c
fix(test): fix the route test (#14890) 2022-06-15 16:15:45 -07:00
Pavel Feldman b8fece7204
chore: allow joining async handlers (#14893) 2022-06-15 15:27:31 -07:00
Pavel Feldman 464cbb7457
feat(chromium): allow attaching to other targets as to pages (#14873) 2022-06-15 09:31:32 -07:00
Yury Semikhatsky 259c8d64a5
feat: Page.routeFromHar (#14870) 2022-06-15 08:41:46 -07:00
Dmitry Gozman 06c8d8e31c
chore: use channels types instead of a copy in server (#14874)
This is to avoid duplicating types for no reason.
2022-06-14 22:02:15 -07:00
Yury Semikhatsky e00a26a11d
feat(route): fulfill with HARResponse (#14865) 2022-06-14 15:07:22 -07:00
Playwright Service c8283cf9de
feat(chromium): roll to r1010 (#14863)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2022-06-14 23:18:03 +02:00
Dmitry Gozman e640f553b5
fix(connectOverCDP): make sure downloads work in default context (#14864) 2022-06-14 12:36:35 -07:00
Pavel Feldman 48f98673ef chore: remove stray fallback overrides check 2022-06-13 18:06:01 -07:00
Pavel Feldman 9cf068ad06
feat(fallback): allow falling back w/ overrides (#14849) 2022-06-13 17:56:16 -07:00
Ross Wollman 3974d1b359
revert(#14797): fix(test runner): collect artifacts when calling browser.close() (#14846)
Revert "fix(test runner): collect artifacts when calling `browser.close()` (#14797)"

This reverts commit c7a28ac7e9.

Looks like it broke a bunch of tracing tests:

* Good: https://github.com/microsoft/playwright/runs/6838098316?check_suite_focus=true
* First Bad: https://github.com/microsoft/playwright/runs/6838104691?check_suite_focus=true
* Still bad on HEAD (88664c39c9): https://github.com/microsoft/playwright/runs/6868333846?check_suite_focus=true
2022-06-13 17:20:59 -07:00
Andrew Branch 26e22c9a89
fix(types): compilation error in TypeScript 4.8 (#14847) 2022-06-13 16:39:55 -07:00
Pavel Feldman dcdd3c3cdb
feat(route): explicitly fall back to the next handler (#14834) 2022-06-13 12:30:51 -07:00
Pavel Feldman c7b3f4646f
fix(strict): escape css class names when generating selectors (#14810) 2022-06-12 09:39:30 -07:00
Dmitry Gozman 7c0bff15ca
feat(fulfill): improve fulfilling from har (#14789)
- `har` option is now an object `{ path, fallback }`.
- Allows falling back to `abort()`, `continue()` or throwing.
- Matches based on url + method.
- Follows redirects in the HAR file.
- Nice error/stack when throwing.
- Tests.
2022-06-10 14:26:45 -07:00
Dmitry Gozman c7a28ac7e9
fix(test runner): collect artifacts when calling browser.close() (#14797)
Previously, we only collected artifacts on context closure.
However, in serial mode it is possible to close the browser instead.
2022-06-10 14:11:34 -07:00
Dmitry Gozman 868e00253f
feat(har): store textual content without base64 encoding (#14772) 2022-06-10 14:10:52 -07:00
Pavel Feldman 7a568a2952
feat(route): chain routes (#14771) 2022-06-10 09:06:39 -07:00
Dmitry Gozman 6822d03f0b
fix(cli): default to no timeout (#14769) 2022-06-09 21:07:57 -07:00
Max Schmitt a2e8c17fbf
chore: fix WK ubuntu 22 deps on Docker (#14770) 2022-06-10 00:00:05 +02:00
Max Schmitt 3853014fa7
chore: add ubuntu 22 support (#14588) 2022-06-09 13:20:18 +02:00
Dmitry Gozman e975aef961
feat(route): fulfill from har (#14720)
feat(route): fulfill from har

This allows to use pre-recorded HAR file to fulfill routes.
2022-06-08 20:29:03 -07:00
Ross Wollman 85d03714d9
feat: add allow/block serviceWorkers option (#14714)
Adds cross-browser support for easily allowing/blocking Service Workers via a Context option.

Includes plumbing for Playwright Test's `use`.

Resolves #14522.

Relates #1090.
Supercedes #14321.
2022-06-08 18:27:51 -04:00
Ross Wollman fccee89b41
feat: add Response.fromServiceWorker flag (#14715)
Resolves #14666.

Relates #1090.
Supercedes #14321.
2022-06-08 17:34:19 -04:00
Dmitry Gozman 176ab7e48b
chore: make LocalUtils easily available on the client (#14717)
Instead of plumbing it around, expose it through Connection.
2022-06-08 13:22:05 -07:00
Dmitry Gozman 6c739eb345
feat(cli): option to record har (#14696)
`npx playwright open --save-har=file.har` produces a HAR file that
can be later inspected or used for mocks.
`--save-har-glob="**/*.{png,woff2}"` option can be used to
produce a smaller har that only contains entries matching the glob.
2022-06-08 10:59:50 -07:00
Yury Semikhatsky 7f026dd64c
feat(webkit): roll to r1658 (#14709)
Language override behavior changed upstream in WebKit/WebKit@039ebd9
New logic is closer to the actual behavior of WebKit on macOS, meaning that when the user changes system language the actual locale changes according to some weird OS rules:
ru-RU => navigator.language === 'ru'
fr-CH => navigator.language === 'fr-FR'
es-MX => navigator.language === 'es-MX'
Our locale emulation is aligned with that, so setting locale to fr-CH will result in fr-FR etc.
2022-06-08 10:16:49 -07:00
Dmitry Gozman fdcdd58d7f
feat(har): introduce urlFilter (#14693)
This is a glob or regex pattern that filters entries recorder in the HAR.
2022-06-07 18:09:47 -07:00
Playwright Service 712ad4ec12
feat(firefox): roll to r1327 (#14614)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Max Schmitt <max@schmitt.mx>
2022-06-07 17:42:08 +02:00
Playwright Service cf2c6ee81d
feat(chromium): roll to r1009 (#14620)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2022-06-07 17:38:13 +02:00
Sébastien Règne 4c2fc6b6eb
feat(browser): add Browser.BrowserType() method (#14468) 2022-06-06 09:46:08 -07:00
Dmitry Gozman 40bfdb0f4e
fix(codegen): use name attribute for frame elements (#14609) 2022-06-02 21:14:01 -07:00
Ross Wollman 978854b859
chore: move multi-select assertion to toHaveValues (#14595)
Follow-up to e0a87e52d7
2022-06-02 16:01:34 -04:00
Elijah dbc2494e54
fix: sanitize URLs with vbscript: (#14325)
fix: sanitize URLs with vbscript:

The vbscript: protocols can be used to run scripts in much the same way as the javascript: protocol. This PR adds in validation for those aforementioned protocols in snapshotterInjected.ts and snapshotRenderer.ts.
2022-06-02 12:25:59 -07:00
Ross Wollman e0a87e52d7
feat: support multi-select/combo box with toHaveValue (#14555) 2022-06-02 12:10:28 -04:00
Dmitry Gozman d00efa0dfe
feat(expect): add ignoreCase option to toHaveText and toContainText (#14534) 2022-06-02 05:52:53 -07:00
Dmitry Gozman c4581e54c0
fix(click): detect iframe overlays that cover target element (#13876)
This restores the old hit target check, in addition to the new
hit target interceptor.

This way, we got some coverage for iframes and other quirky cases,
but keep the bullet-proof hit target check in place.
2022-06-01 15:23:41 -07:00
Dmitry Gozman dbcf039717
chore: remove experimental types (#14560) 2022-06-01 15:22:43 -07:00
Playwright Service c53676e605
feat(firefox): roll to r1325 (#14512)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2022-06-01 01:39:28 -07:00
Playwright Service f087e39c01
feat(chromium): roll to r1008 (#14448)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Max Schmitt <max@schmitt.mx>
2022-05-30 15:04:05 +02:00
Yury Semikhatsky abced7223c
fix: filechooser interception in OOPIFs (#14432) 2022-05-27 13:04:58 -07:00
Pavel Feldman 2fab2c1ca1
fix(tracing): invalidate non-stalling evaluates on crash (#14392) 2022-05-24 14:02:32 -07:00
Playwright Service c12a9077d5
feat(chromium): roll to r1007 (#14307)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2022-05-24 11:26:20 +03:00
Max Schmitt e02e5e66f0
chore: bump TypeScript to 4.6 (#14358) 2022-05-23 22:59:33 +03:00
Pavel Feldman a1324bd935
fix(route): support route w/ async handler & times (#14317) 2022-05-21 21:55:46 -07:00
Pavel Feldman b92163176d
chore: render titles on all matching nodes (#14316) 2022-05-20 22:09:10 -07:00
Ross Wollman fbb364c1cd
fix: page.locator.focus() and page.locator(…).type(…) (#14267)
Fixes focus and blur management when `page.locator(…).focus()`  and  `page.locator(…).type(…)` are used which was regressed by 7a5b070 (#13510).

#13510 relied on an implicit assumption that this (conditional) [`blur`](7a5b070e95/packages/playwright-core/src/server/injected/injectedScript.ts (L672)) call would always be followed by a call that resulted in a newly focused element via this [`focus`](7a5b070e95/packages/playwright-core/src/server/injected/injectedScript.ts (L674)) call.

However, some elements are [not focusable](https://html.spec.whatwg.org/multipage/interaction.html#focusable-area), so we were blurring incorrectly, and losing focus that we should have maintained.

Two regression tests were added that pass on the commit prior to 7a5b070e95 (and match manual testing/expectations):

* `page.locator(…).focus()`: _keeps focus on element when attempting to focus a non-focusable element_
* `page.locator(…).type(…)`: _should type repeatedly in input in shadow dom_

Additionally, a third test (_should type repeatedly in input in shadow dom_) was added to check the invariant from #13510 that states:

> This affects [contenteditable] elements, but not input elements.

and allows us to introduce the targeted fix (contenteditble check before blur) without breaking FF again.

And _should type repeatedly in contenteditable in shadow dom with nested elements_ was added to ensure the above fix works with nest contenteditble detection.

Fixes #14254.
2022-05-19 14:31:56 -07:00
Pavel Feldman d5ea1b38f0
fix(recorder): remove waitForNavigation from codegen (#14166) 2022-05-18 10:02:09 -07:00
Pavel Feldman b5beeab98b
fix(click): climb the hit target hierarchy to anchor (#14235)
fix(click): climb the hit target hierarcchy to anchor
2022-05-18 10:01:34 -07:00
Pavel Feldman fe0afd6b5c
fix(toHaveProperty): serialize falsy arguments as well (#14232) 2022-05-17 14:44:12 -07:00
github-actions[bot] f1307f4a4d
feat(chromium): roll to r1006 (#14192)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2022-05-16 10:56:38 -07:00
Dmitry Gozman f6712ec43a
fix(tracing): workaround chromium scrollTop slowness (#14114)
References #14037.

We used to query and save all non-zero `scrollTop`/`scrollLeft` to restore the page perfectly. However, this became very slow with Chromium v100 regression (see issue).

This change only queries and stores `scrollTop`/`scrollLeft` for elements that are ancestors of the action target. The resulting snapshot does not perfectly recreate the original screen, but should be good enough to inspect the action.
2022-05-12 10:55:29 -07:00
Dmitry Gozman 0e2855348c
feat(locators): remove layout locators (#14129) 2022-05-12 18:50:19 +01:00
Dmitry Gozman b753ff8686
chore: split injected utils into proper files (#14093) 2022-05-11 13:49:12 +01:00
Pavel Feldman c99ca17199
chore: disable AvoidUnnecessaryBeforeUnloadCheckSync on chromium (#14080) 2022-05-10 14:55:44 -07:00
Dmitry Gozman ba0cfaeb2d
fix(chromium): work around about:blank issue on Chromium (#14068)
fix(chromium): work around about:blank issue on Chromium

We don't receive the `loaderId` which translates to `newDocumentId`,
so we expect the same-document navigation. Instead, we can wait
for any new-document navigation as a workaround, only for `about:blank`.

This also reverts commit f0f65fa247.
2022-05-10 20:32:19 +01:00
Andrey Lushnikov 3ba1ea5c39
fix: support installing dependencies on non-ubuntu. (#14010)
We should not fast-return if someone tries to run
`npx playwright install-deps` on Debian.

Instead, we should warn users, fallback to Ubuntu 20.04 dependencies,
and proceed.
2022-05-10 04:05:39 -07:00
Pavel Feldman cf89a36181
chore: serialize circular objects (#14045) 2022-05-09 18:51:53 -07:00
Pavel Feldman f0f65fa247 Revert "feat(chromium): roll to r1005 (#13999)"
This reverts commit 56b3bca8db.
2022-05-09 18:28:39 -07:00
Pavel Feldman e55f7bd896
feat(bindings): best-effort serialize circular structures (#14008) 2022-05-09 15:07:04 -07:00
Max Schmitt 04fafcabd8
fix: leaking server side objects (#13991) 2022-05-09 17:34:00 +01:00
github-actions[bot] 56b3bca8db
feat(chromium): roll to r1005 (#13999)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Max Schmitt <max@schmitt.mx>
2022-05-09 15:52:00 +01:00
Pavel Feldman a052211dbf
chore: do not reset internal bindings for reuse (#14019) 2022-05-09 07:44:20 -07:00
Dmitry Gozman 6931d89eaf
feat(locators): rename locator.that to locator.filter (#14025) 2022-05-08 21:59:40 +01:00
Dmitry Gozman 64cd55089a
chore: role selectors non-experimental (#14021) 2022-05-08 11:07:01 +01:00
Dmitry Gozman c3cf7ee4a7
feat(layout locators): remove maxDistance option (#14013) 2022-05-08 07:18:16 +01:00
Pavel Feldman 5c9e7f48e0
fix(debug): do not pause on internal calls, update ct docs (#14018) 2022-05-07 19:56:25 -07:00
Andrey Lushnikov 5a5bb36d28
chore: nuke "fonts" screenshot option (#14004)
It was never released since it wasn't working as expected on WebKit WPE.

Fixes #12839
2022-05-06 17:54:17 -07:00
Andrey Lushnikov bfafb2680d
fix: put browserVersion in the browsers.json (#13946)
This patch:
- adds `browserVersion` field to the `browsers.json`. This is
  updated every time we roll browser.
- starts using `browserVersion` to display browser version that's
  been downloaded.

The downloading output now looks like this:

```bash
Downloading Chromium 101.0.4951.41 (playwright build v1003) - 118.9 Mb [====================] 100% 0.0s
Chromium 101.0.4951.41 (playwright build v1003) downloaded to /Users/andreylushnikov/Library/Caches/ms-playwright/chromium-1003
Downloading FFMPEG playwright build v1007 - 1 Mb [====================] 100% 0.0s
FFMPEG playwright build v1007 downloaded to /Users/andreylushnikov/Library/Caches/ms-playwright/ffmpeg-1007
Downloading Firefox 99.0.1 (playwright build v1323) - 67.5 Mb [====================] 100% 0.0s
Firefox 99.0.1 (playwright build v1323) downloaded to /Users/andreylushnikov/Library/Caches/ms-playwright/firefox-1323
Downloading Webkit 15.4 (playwright build v1632) - 52.7 Mb [====================] 100% 0.0s
Webkit 15.4 (playwright build v1632) downloaded to /Users/andreylushnikov/Library/Caches/ms-playwright/webkit-1632
```

Fixes #13198
2022-05-05 04:17:13 -07:00
Dmitry Gozman cf5101d44a
fix(networkidle): do not produce networkidle event on errored pages (#13938) 2022-05-04 20:52:50 +01:00
Yury Semikhatsky a919414553
feat(chromium): roll tot, ignore unknown session error (#13932)
After https://chromium-review.googlesource.com/c/chromium/src/+/3606712 browser returns an error to messages addressed to unknown session id (previously such messages would never get a response).

#13637
2022-05-04 10:00:02 -07:00
Dmitry Gozman cd53346594
fix(codegen): do not reset current source on every recorded action (#13925)
Currently, when I choose "Java" in the sources list and then
click on the page to generate the "click" action, sources reset
to "JavaScript". This is very inconvenient.

This changes the logic to only forcefully change files if either
old or new file is a user file, not a generated one.

Use cases considered:
- run `codegen`, click around, choose different language, click more;
- run script with inspector, pause, click "Record" and record an action;
- same as above, but then continue and see that user source is revealed.
2022-05-04 17:16:24 +01:00
Dmitry Gozman 9e0aa67d28
feat(codegen): brush up context options in pytest codegen (#13924) 2022-05-04 11:14:53 +01:00
Ronie Martinez 2c597f06bd
feat(codegen): pytest support in codegen (#13746)
feat(codegen): pytest support in codegen
2022-05-04 09:41:20 +01:00
Max Schmitt b5183b4cf9
chore: make React selectors work on React 18 (#13864)
Fixes #13845
2022-05-03 13:46:52 -07:00
github-actions[bot] 029aff16e4
feat(firefox): roll to r1323 (#13897)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2022-05-03 09:14:20 -07:00
Dmitry Gozman 54dd6d01e5
feat(locator): layout options (leftOf, rightOf, above, below, near) (#13821)
This also includes corresponding selector engines `left-of` and others,
modeled after existing `has` selector engine.
2022-05-03 10:33:33 +01:00
Yury Semikhatsky ed344a882b
fix: delete headers with undefined value (#13880) 2022-05-02 12:38:57 -07:00
Andrey Lushnikov bd2a2873b7
chore: unexperiment role selectors (#13858) 2022-05-02 09:32:50 -07:00
Yury Semikhatsky 4b682f9f13
fix(chromium): disable DialMediaRouteProvider in addition to MediaRouter (#13854) 2022-04-29 14:29:31 -07:00
Pavel Feldman 18bff137ce
chore: remove default config from cli (#13832) 2022-04-28 16:49:36 -07:00
Andrey Lushnikov a06b06b82b
fix: typo in the missing X Display error message (#13810) 2022-04-28 08:35:01 -07:00
Pavel Feldman e756528ad2
feat(plugins): expose suite to plugin setup (#13807) 2022-04-28 08:16:17 -07:00
Dmitry Gozman 38fdc5fe24
fix(selectors): refactor chaining logic (#13764)
This fixes a few issues:
- strict mode was producing false negatives if multiple query paths
  lead to the same element being picked;
- in some cases the number of intermediate items in the list was
  exponential and crashed quickly.

What changed:
- `visible` engine is a real engine now;
- `capture` selectors are transformed to `has=` selectors for
  easier implementation;
- chained querying switched from a list to a set to avoid
  exponential size.
2022-04-27 20:51:57 +01:00
Dmitry Gozman dab2384b0e
fix(process launcher): use spawnSync to cleanup synchronously (#13769)
This allows us to use the full retry logic of rimraf in the `onexit` handler.
Note this is already covered by failing on Windows test
`should remove temp dir on process.exit`.
2022-04-27 15:01:30 +01:00
Dmitry Gozman c0f0979055
fix(frames): networkidle for iframes with quirky urls (#13767) 2022-04-26 17:13:45 +01:00
Dmitry Gozman 39cfa2b6e3
test: switch temp dir tests to use userDataDir (#13745) 2022-04-26 09:32:58 +01:00
Dmitry Gozman 97750ccf9a
feat: locator.that (#13731)
Filters existing locator by options, currently `has` and `hasText`.
2022-04-25 20:06:18 +01:00
Yury Semikhatsky aab1a746d3
fix: join individual css selectors by > in cssFallback (#13712) 2022-04-25 11:11:24 -07:00
Dmitry Gozman 01a8977b4d
feat: make scrollIntoView work with zero-sized elements (#13702)
We skip waiting for "visible" state that enforces non-zero size.
Other invisible conditions like "display:none" fail during the
actual "scrolling" step and will retry.
2022-04-23 21:48:36 +01:00
Max Schmitt 39525878ab
chore: show small progress bar in downloader without tty (#13690) 2022-04-22 19:55:43 +02:00
Andrey Lushnikov 317b649f78
feat: support tip-of-tree chromium channel (#13701) 2022-04-22 09:43:57 -07:00
Max Schmitt ca4cfca8ad
chore: make tests pass on Node.js 17+ (#13678) 2022-04-22 13:42:52 +02:00
Yury Semikhatsky 801dbe0699
fix(oopif): dispose child sessions when frame session is disposed (#13693) 2022-04-21 18:32:56 -07:00
Pavel Feldman 5990eb6074
chore: use vite plugin for registry (#13658) 2022-04-21 17:30:17 -07:00
Pavel Feldman 89b8fdd4e5
fix(tracing): do not reset frame counter on every chunk (#13689) 2022-04-21 15:40:30 -07:00
github-actions[bot] 5753f7a7fa
feat(chromium): roll to r1003 (#13680)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2022-04-21 22:22:15 +02:00
Max Schmitt 4a3180aca9
chore: make Android host option configurable (#13685) 2022-04-21 22:16:42 +02:00
Max Schmitt c397daeb07
chore: language agnostic browsers missing error message (#13650) 2022-04-20 12:02:28 -07:00
Pavel Feldman 06645b0a1f
chore: fix the android ws sender/receiver (#13641) 2022-04-19 13:28:05 -07:00
Andrey Lushnikov a617604962
test: make sure toHaveScreenshot doesn't tolerate bad option values (#13627)
Fixes #13495
2022-04-19 07:43:18 -07:00
Andrey Lushnikov 80bc532874
fix: support undo/redo editing commands (#13606)
Fixes #13601
2022-04-18 22:22:52 -07:00
Pavel Feldman 3c896f6bc5
fix(tests): installation tests (#13623) 2022-04-18 22:17:56 -07:00
Pavel Feldman 007e908cd9
chore: bundle pwt deps (#13622) 2022-04-18 21:47:18 -07:00
Pavel Feldman 7989427ea6
chore: bundle core deps (#13621) 2022-04-18 20:20:49 -07:00
Pavel Feldman 63ea81ec54
chore: make bundles typed (#13620) 2022-04-18 17:50:25 -07:00
Pavel Feldman 58d79e5e4d
chore: add core utils bundle (#13615) 2022-04-18 13:47:23 -07:00
Pavel Feldman 4f0103fef0
chore: babel, expect, zip bundles (#13588) 2022-04-18 11:31:58 -07:00
Pavel Feldman 5f843c347d
chore: bundle pixelmatch, it has not changed for 2 years (#13585) 2022-04-15 16:58:31 -07:00
Yury Semikhatsky 7ffce1da53
chore: remove PlaywrightClient and Docker factory (#13571) 2022-04-15 12:11:38 -07:00
Yury Semikhatsky aee6ba299a
chore: remove GridClient, run only page tests in service mode (#13566) 2022-04-14 15:30:04 -07:00
Ross Wollman 11179982fc
chore: force localPaths to be resolved (#13544) 2022-04-14 11:19:36 -07:00
github-actions[bot] a29a986d67
feat(chromium): roll to r1002 (#13554)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2022-04-14 14:51:03 +02:00
Max Schmitt 584140f97a
fix: make fetch api work with connectOverCDP (#13521) 2022-04-14 12:53:49 +02:00
Dmitry Gozman 20dcc45afa
feat: support experimental doc entries (#13446)
feat: support experimental doc entries

- Params/options/members are marked as experimental in the docs.
- `experimental.d.ts` is generated that contains all types and
  includes experimental features.
- `experimental.d.ts` is references in our tests so that we
  can test experimental features.
- `fonts` option is restored as experimental.
2022-04-13 16:13:30 -07:00
Yury Semikhatsky e2fff31848
chore: send run_id from agent to server (#13542) 2022-04-13 12:13:35 -07:00
Yury Semikhatsky 00199b5617
chore: add link to workflow (#13541) 2022-04-13 11:56:00 -07:00
Andrey Lushnikov 269716d7d7
revert(#12877): chore: print error if install-deps is used != ubuntu (#13536)
Reason: turns out Debian Buster requires just one source list to
install `ttf-ubuntu-font-family` font.

All other dependencies are satisfied.

Fixes #13530
2022-04-13 11:03:28 -07:00
Yury Semikhatsky 9b8aceaa61
feat: support os parameter (#13511) 2022-04-12 22:20:48 -07:00
Dmitry Gozman 7a5b070e95
fix(type): focus switch between contenteditables in shadow dom (#13510)
Firefox has a bug: calling `node.focus()` does make the node focused,
but some internal "current contenteditable node" is not changed.
Blurring the previous one and focusing the new one helps.
2022-04-12 16:44:27 -07:00
Yury Semikhatsky ae4d2e75aa
chore: adjust gha agent params (#13509) 2022-04-12 13:39:08 -07:00
Max Schmitt 95d4041b8b
chore: fix mark-docker-image CLI command (#13499) 2022-04-12 10:10:34 -07:00
Andrey Lushnikov 0f6638190e
fix: do not require --force flag when installing channel on CI (#13487) 2022-04-11 13:42:21 -07:00
Yury Semikhatsky 9712b9ee08
fix: match against secure path (#13442) 2022-04-08 14:57:43 -07:00
Yury Semikhatsky 212c665152
fix: pass full grid url to agent (#13438) 2022-04-08 14:15:38 -07:00
Pavel Feldman f0156d057e
chore: flatten supplements (#13437) 2022-04-08 12:52:40 -07:00
kaivean d65263f151
feat(android): allow getting webviews by socket name (#13248) 2022-04-08 20:52:16 +02:00
github-actions[bot] d91349f22a
feat(webkit): roll to r1629 (#13407) 2022-04-08 11:50:53 -07:00
Ross Wollman db7bd8ebd2
chore: don't auto-install browsers if global install (#13299) 2022-04-08 10:46:24 -07:00
github-actions[bot] e72975d9c6
feat(chromium): roll to r1001 (#13424)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2022-04-08 18:39:42 +02:00
Dmitry Gozman dfb1584703
chore: remove MEMUSAGE workaround on Windows (#13408)
This was introduced in #7500 to fight `ERROR: The process "4436" not found.`
messages when killing a process that did already exit.

Since then, we no longer inherit stdout/stderr, so the error message
should not appear anymore.
2022-04-08 09:37:51 -07:00
Pavel Feldman 845e32cbb8
chore: use utils via index export (6) (#13417) 2022-04-07 21:48:41 -07:00
Pavel Feldman e79b90f454
chore: use utils via index export (5) (#13413) 2022-04-07 20:18:22 -07:00
Dmitry Gozman 155bb7fcae
fix: wait for cleanup on double SIGINT (#13411)
This is a speculative fix to leftover tmp directories.
When users issues SIGINT twice, we enter `gracefullyClose()`
twice, and shortcut the second time. It turns out, we do
not wait for directories removal.

Note: it is unknown how often we reach this codepath in practice.
2022-04-07 19:20:54 -07:00
Yury Semikhatsky f803a929e4
feat: pass server address as argument (#13412) 2022-04-07 17:22:52 -07:00
Pavel Feldman a3c02222bf
chore: use utils via index export (4) (#13404) 2022-04-07 14:36:13 -07:00
Pavel Feldman 40d5e3a3c9
chore: use utils via index export (3) (#13403) 2022-04-07 13:55:44 -07:00
Pavel Feldman 6c1fa62000
chore: use utils via index export (2) (#13399) 2022-04-07 13:28:30 -07:00
Pavel Feldman dbafe3bb4e
chore: use utils via index export (1) (#13398) 2022-04-07 13:26:50 -07:00
Dmitry Gozman b7116906fc
feat(remote): support headless/x-playwright-headless (#13391)
This only applies when remote launches the browser.
2022-04-07 10:19:56 -07:00
Pavel Feldman 90d5990e75
chore: fix installation scripts (#13376) 2022-04-06 23:09:10 -07:00
Pavel Feldman bde7bf4ea9
chore: move registry & dispatchers to under server (#13370) 2022-04-06 22:21:27 -07:00
Yury Semikhatsky 32d30ae71d
chore: fix assert imports (#13359) 2022-04-06 21:30:48 -07:00