Commit graph

852 commits

Author SHA1 Message Date
Pavel Feldman dd31f3bd43
chore: introduce manual promise helper (#8533) 2021-08-29 11:21:06 -07:00
Yury Semikhatsky 60b0f46b60
feat(fetch): support setHTTPCredentials (#8528) 2021-08-27 23:47:33 -07:00
Yury Semikhatsky 3727aa5b67
feat(fetch): send extra http headers (#8527) 2021-08-27 23:47:21 -07:00
Yury Semikhatsky 951b9ac21a
fix(fetch): handle cookies on redirects (#8519) 2021-08-27 15:28:36 -07:00
Max Schmitt f3dde0650f
feat(network): expose bodySize, transferSize, and headerSize (#8234) 2021-08-27 22:53:57 +02:00
Max Schmitt 89245de0ef
fix(har): rewrite sizes and make transferSize work in WK/Linux (#8504) 2021-08-27 20:42:45 +02:00
Yury Semikhatsky 768a97cfdc
feat(fetch): set user-agent and other default headers (#8491) 2021-08-27 08:26:19 -07:00
Pavel Feldman 47ecd28a3d
fix(strict): erase injected script stack from strict error (#8493) 2021-08-26 21:21:19 -07:00
Pavel Feldman 4ed976f2e9
chore: remove isContextDestroyedError heuristic (#8456) 2021-08-26 18:44:49 -07:00
Yury Semikhatsky 210ad72228
fix: remove node-fetch dependency, use custom fetch implementation (#8486) 2021-08-26 16:18:54 -07:00
github-actions[bot] 183ebeaae5
feat(firefox): roll to r1288 (#8460)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2021-08-26 10:08:45 -04:00
Andrey Lushnikov 2198769f6c
fix(react-vue): support nested trees (#8467)
Turns out you can mount nested trees in both React and Vue.
This patch changes root discovery to support nested trees.

Fixes #8455
2021-08-26 03:07:33 -07:00
github-actions[bot] fe96cc274f
feat(webkit): roll to r1535 (#8457)
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2021-08-26 11:47:34 +02:00
Pavel Feldman 95be45967a
feat(strict): list ambiguous matches when throwing strict exception (#8449) 2021-08-25 14:51:03 -07:00
Dmitry Gozman 02bef1eded
fix(tracing): modernize old resources to new har format (#8453) 2021-08-25 14:36:52 -07:00
Ross Wollman cd110e6477
feat(har): Remotely accessible HAR file (#8385)
This change ensure's the HAR file is saved at `recordHar.path` on the
client instead of the server.

NB: The goal was to make this change transparent to the user and NOT
introduce any new APIs. Namely, I want to leave the API open for
potential `context.har.start()` and `context.har.stop()`.

This does BREAK servers that expect the HAR to be at the `recordHar.path`
on the server, but I think that's OK since there haven't been reports
of missing HAR on client making me think not many users are getting
HAR with client and server on different hosts anyways.

Closes #8355
2021-08-25 13:32:56 -07:00
Dmitry Gozman e726c18788
chore: use 'mime' for various mimeType-extension mappings (#8426) 2021-08-25 11:18:35 -07:00
Joel Einbinder fc991fe897
chore(typescript): turn on noImplicitOverride (#7810) 2021-08-25 10:11:18 -04:00
Max Schmitt 8189de42cf
test: fix package installation tests (#8430) 2021-08-25 13:34:54 +02:00
Dmitry Gozman 29eb6cb777
chore: migrate tracing to har (#8417)
chore: migrate tracing to har

- `HarTracer` is used by both `HarRecorder` that implements
  `recordHar` context option, and by tracing.
- We keep the `trace.network` format for now, so it is not
  yet a valid har file, but it contains har entries.
2021-08-24 21:09:41 -07:00
Dmitry Gozman b188468fa4
fix(tracing): rewrite blob urls so that we can intercept them (#8423) 2021-08-24 17:05:26 -07:00
Yury Semikhatsky c0010d16c6
feat: introduce BrowserContext._fetch (#8349) 2021-08-24 14:29:04 -07:00
Joel Einbinder c9718359f1
fix(codegen): properly escape everything for windows (#8415) 2021-08-24 17:09:05 -04:00
Dmitry Gozman b0a7843247
chore: migrate tracing ResourceSnapshot to follow har entry format (#8391)
This will ease the migration of tracing to har.
2021-08-24 13:17:58 -07:00
Yury Semikhatsky 59422a00f5
feat(route): rename method, add response option (#8386) 2021-08-24 11:07:54 -07:00
Dmitry Gozman 47724fed5a
chore(tracing): rework start/export chunks (#8378)
Instead of filtering the whole trace file on export, we write
into separate trace file for each chunk. We also write a separate
trace.network file with all resources, because it is reused between
chunks.

This brings us towards `tracing.startFile()/stopFile()` api.
2021-08-23 16:08:09 -07:00
Joel Einbinder 0ed3c79d51
fix(selectors): nicer errors if the selector engine returns a bad value (#8259)
Co-authored-by: Pavel Feldman <pavel.feldman@gmail.com>
2021-08-23 22:54:02 +02:00
Dmitry Gozman 827a909d36
docs: deprecate timeout option in isVisible/isHidden methods (#8371) 2021-08-23 12:32:06 -07:00
Joel Einbinder 60829f8909
fix(codegen): escape tricky characters (#8350) 2021-08-23 12:22:19 -04:00
Max Schmitt c4eb2d4b1e
chore: move sdkLanguage over to the protocol init call (#8329) 2021-08-20 21:32:21 +02:00
Andrey Lushnikov 48e94c15c1
feat: support multiple roots in React and Vue selectors (#8313)
Fixes #8230
2021-08-20 05:05:52 -07:00
Dmitry Gozman 9c96468b9e
fix(tracing): do not stall while capturing snapshot with an open dialog (#8328) 2021-08-19 18:20:15 -07:00
Pavel Feldman 80dded6ccf
feat(proxy): bind proxy to open port (#8331) 2021-08-19 18:08:55 -07:00
Pavel Feldman 44887c237d
chore: reimplement socks to be readable (#8315) 2021-08-19 15:16:46 -07:00
Max Schmitt 96a9a26f9f
fix: strict mode on page.* methods on context level (#8324) 2021-08-19 23:08:28 +02:00
Dmitry Gozman f06e7b91fb
fix(tracing): serialize resource writes against trace export (#8296)
Inlining TraceSnapshotter makes it easier to serialize writes and removes no-op glue.
We also stop writing the same resource twice.
2021-08-19 07:26:24 -07:00
Pavel Feldman 6ef76e333e
feat(strict): add context-level selector strictness (#8290) 2021-08-18 12:51:45 -07:00
Dmitry Gozman 8d81890e47
feat(codegen): support --save-trace option (#8267) 2021-08-18 07:27:45 -07:00
Dmitry Gozman 99993e173b
fix(snapshots): account for malformed headers (#8241)
When browser receives multiple header values for the same header name,
we present them as LF-separated value. This is not considered valid in
Node, so we should split by LF when serving a snapshot.

There more invalid characters in headers, so just in case we try/catch it.
2021-08-16 17:40:46 -07:00
Yury Semikhatsky 8cc4140933
fix: throw if intercepted response fails (#8195) 2021-08-16 16:40:47 -07:00
Bùi Gia Thịnh 1e8e547023
fix(devices): typo in device name Desktop Edge (#8233) 2021-08-16 22:38:26 +02:00
Ross Wollman 101662765c
api(cdp): newCDPSession accepts frames, too (#8157)
Without this, Playwright's CDP feature leaves unreachable
targets (namely OOPIFs).

This change allows for more advanced experimentation in user-land
without relying on out-of-band CDP connections and clients.

Now you can, for example, call `DOM.getDocument` on the
page OR main frame, observe there is an iframe node with
no `contentDocument` (i.e. OOPIF), make note of the referenced
`frameId`, and then iterate of page.frames() calling `Target.getInfo`
on each to link the Playwright Frame with the CDP `frameId` and
then recurse.

Relates #8113
2021-08-16 12:49:10 -07:00
Yury Semikhatsky 90385a7941
browser(firefox): failure response interception (#8194) 2021-08-16 09:36:28 -07:00
Yury Semikhatsky 39f663834f
test: intercepted response status line (#8189) 2021-08-13 16:28:42 -07:00
Dmitry Gozman 5327b8ca6d
feat(firefox): bump firefox to 1283, firefox-beta to 1277 (#8184) 2021-08-13 08:29:25 -07:00
Andrey Lushnikov 819287cc0e
fix: do not show the "accept incoming network connections" dialog (#8162)
The dialog is provoked by a [MediaRouter chromium component](https://chromium.googlesource.com/chromium/src/+/HEAD/docs/mac_build_instructions.md#avoiding-the-incoming-network-connections-dialog)

In general, this is a very narrow functionality that should be safe
to disable to not affect majority of users on MacOS.

Fixes #7937
2021-08-12 08:33:02 -07:00
Yury Semikhatsky 59df541de5
fix: fulfill intercepted response with empty body (#8151) 2021-08-11 14:47:05 -07:00
Yury Semikhatsky 41770bf444
feat(webkit): response interception after redirects (#8017) 2021-08-11 11:14:50 -07:00
Pavel Feldman 1d4e2fe98c
feat(nth): make nth and visible selectors public (#8142) 2021-08-11 11:06:09 -07:00
Andrey Lushnikov aaf565c9ce
chore: update webkit version to 15.0 (#8143) 2021-08-11 10:48:21 -07:00