Commit graph

105 commits

Author SHA1 Message Date
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 0d9ec60dc7
chore: implement jsHandle._objectCount in chromium (#22127) 2023-03-31 15:52:01 -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
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 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
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
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
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
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
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
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
Yury Semikhatsky cffe7b65e3
fix: do not hang on submitting target=_blank form (#20458)
Fixes #18392
2023-01-30 11:13:56 -08:00
Playwright Service 5ad635522c
feat(webkit): roll to r1784 (#20466) 2023-01-30 08:36:02 -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
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
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
Playwright Service 0c8d2cf4e0
feat(webkit): roll to r1744 (#19006) 2022-11-23 09:54:47 -08:00
Andrey Lushnikov c47c90cc25
chore: update WebKit browser version to 16.4 (#18830) 2022-11-15 12:46:15 -08: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
Pavel Feldman a7f5f2d7a1
chore: allow not overriding media when creating context (#18413) 2022-10-31 09:09:52 -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
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
Pavel Feldman df143031e7
chore: move protocol and trace types into the top-level packages (#17486) 2022-09-20 18:41:51 -07: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
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
Dmitry Gozman b734f36f8b
fix(frameElement): should work for frames inside closed shadow root (#17055) 2022-09-06 08:52:25 -07:00
Yury Semikhatsky da19219323
fix: throw clear message when requested screenshot is too large (#17025) 2022-09-01 18:15:49 -07: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
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
Max Schmitt 7e2aec7454
chore: align more ESLint rules with VSCode formatting (#16647) 2022-08-18 20:12:33 +02:00
Playwright Service 94c9db299d
feat(webkit): roll to r1703 (#16604) 2022-08-17 17:13:00 -07:00
Pavel Feldman 74f7005c02
chore: preserve window while reusing window (#16225) 2022-08-03 16:14:28 -07:00
Playwright Service ac480240bb
feat(webkit): roll to r1689 (#15943) 2022-07-26 08:48:18 -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
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
Pavel Feldman 0781d04a5e
chore: get rid of page state overrides (#15470) 2022-07-07 16:28:20 -07:00
Pavel Feldman cc6f415933
chore: share grant permissions init among browser types (#15457) 2022-07-07 11:39:05 -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
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
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
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 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