github-actions[bot]
900cb0982d
feat(webkit): roll to r1538 ( #8575 )
...
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2021-08-31 11:14:40 +02:00
Pavel Feldman
a205ee27cb
fix(network): extra info can arrive before will send request ( #8569 )
2021-08-30 20:43:40 -07:00
Yury Semikhatsky
dd6dacb125
fix(fetch): throw on network error ( #8565 )
2021-08-30 14:34:31 -07:00
Yury Semikhatsky
6d51ed6e4d
feat(fetch): support baseURL, add tests for invalid args ( #8562 )
2021-08-30 13:41:25 -07:00
Dmitry Gozman
e3cc5b3e3f
chore: simplify responseExtraInfo handling ( #8560 )
2021-08-30 12:57:44 -07:00
github-actions[bot]
b6b9b4c170
feat(chromium): roll to r916288 ( #8551 )
...
Co-authored-by: Max Schmitt <max@schmitt.mx>
2021-08-30 19:51:06 +02:00
Pavel Feldman
e47bacdecb
fix(cookies): read response headers off extra info event, if any ( #8526 )
2021-08-30 09:58:44 -07:00
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
Andrey Lushnikov
7c017a6c1f
feat(firefox): roll firefox to M91 ( #8137 )
2021-08-11 10:13:09 -07:00
Yury Semikhatsky
252238f25c
feat(webkit): bump to 1530 ( #7991 )
2021-08-11 08:56:35 -07:00
Pavel Feldman
21b510c6e7
chore(tracing): remove resource id ( #8131 )
2021-08-10 21:23:31 -07:00
Dmitry Gozman
708fa43f03
fix(tracing): clear recording state at the end of tracing.stop ( #8120 )
...
This ensures that any tracing operations can access the recording state.
When stopping, we await for all operations to finish and then clear the state.
To avoid reentrancy, a new flag `isStopping` is introduced.
2021-08-10 17:36:06 -07:00
Andrey Lushnikov
4975f4179e
feat: make React and Vue selectors experimental ( #8106 )
2021-08-10 17:21:16 -07:00
Andrey Lushnikov
792986c92d
feat: support props matching in react and vue selectors ( #8104 )
2021-08-10 17:10:14 -07:00
Pavel Feldman
76150f1bcb
chore(tracing): remove proactive snapshotSizes caching ( #8126 )
2021-08-10 17:06:14 -07:00
Pavel Feldman
a9e1916672
chore(tracing): do not produce cached resources maps ( #8110 )
2021-08-10 12:08:19 -07:00
Pavel Feldman
8eac1e96d3
chore: add extensions to the trace resources ( #8105 )
2021-08-09 16:36:24 -07:00
Andrey Lushnikov
29f7dfa3ee
feat(chromium): roll Chromium to M94 ( #8047 )
2021-08-09 13:57:17 -07:00
Andrey Lushnikov
f455b6edc0
feat: introduce vue selector engine ( #8070 )
...
This patch adds support for the `vue` selector engine that allows
selecting DOM elements based on the component name.
> **NOTE**: `vue` engine supports Vue2 and Vue2.
References #7189
2021-08-09 01:34:52 -07:00
Andrey Lushnikov
f3ba2b54ff
feat: introduce react selectors ( #8069 )
...
This patch adds support for the `react` selector engine that allows
selecting DOM elements based on the component name.
> **NOTE**: in case of multi-root components (React.Fragment), `react`
engine will select all root DOM elements.
> **NOTE**: `react` engine supports react v15+.
References #7189
2021-08-07 16:51:39 -07:00
Pavel Feldman
2e63c59157
feat(trace-viewer): show remote object previews in console ( #8024 )
2021-08-06 11:37:36 -07:00
Dmitry Gozman
73b7230931
fix(trace viewer): render snapshots with correct viewport size ( #8020 )
2021-08-05 16:04:09 -07:00
Max Schmitt
98f9f050a1
fix(isVisible): do not throw when element is not connected ( #8012 )
2021-08-05 21:10:33 +02:00
Yury Semikhatsky
28fb3c776a
feat: response interception after redirects in chromium ( #7910 )
2021-08-05 08:49:02 -07:00
Dmitry Gozman
9ab60f66bf
feat(tracing): allow calling tracing.start multiple times ( #7992 )
...
Subsequent invocations reset the trace. This removes the `tracing._reset` method.
Also fixed a bug where BASE element was not reset properly.
Also fixed a bug where tracing would affect the result of protocol call
by setting `callMetadata.error` property.
2021-08-04 21:11:35 -07:00
Dmitry Gozman
3e05d8e9fa
feat(tracing): introduce _reset() and _export() ( #7974 )
...
`tracing._export({ path })` exports current tracing state into a file
and does not require tracing to be stopped.
`tracing._reset()` resets current tracing state, but keeps resources
around so they can be referenced in the future snapshots. Does not stop.
The usage pattern is:
```js
await tracing.start({ screenshots: true, snapshots: true });
// ...
await tracing._reset();
// Do stuff, it will all be in the export below.
await tracing._export({ path });
// ...
await tracing.stop();
```
2021-08-03 16:08:06 -07:00
Dmitry Gozman
c406b23387
feat(tracing): do not store scripts in trace ( #7970 )
...
We do not need them for snapshots.
2021-08-03 13:05:58 -07:00
Joel Einbinder
4fabe5e6e4
feat(drag): sourcePosition and targetPosition ( #7803 )
2021-08-03 13:12:34 -04:00
Joel Einbinder
a2cbba9c1c
chore(typescript): update to 4.3 ( #7809 )
2021-08-03 12:21:07 -04:00
Fabian Mendez
731f9453c5
feat(inputValue): implement inputValue for select elements ( #7951 )
2021-08-03 08:22:40 -07:00
Dmitry Gozman
dd0b089d13
feat(test runner): createContext fixture for multi-context scenarios ( #7779 )
2021-07-29 14:03:58 -07:00
Yury Semikhatsky
722f0606c4
feat(firefox): response interception ( #7510 )
2021-07-29 10:12:47 -07:00
Pavel Feldman
cc43f9339f
feat(locators): implement last,nth ( #7870 )
2021-07-27 15:58:18 -07:00
Pavel Feldman
b9aad5eb86
chore: move locators to strict selectors ( #7866 )
2021-07-27 15:27:36 -07:00
Pavel Feldman
982f61d575
chore: BFS nodes, simplify querying ( #7861 )
2021-07-27 12:53:12 -07:00
Pavel Feldman
0a6ae11da1
feat(strict): introduce strict mode ( #7851 )
2021-07-26 22:00:23 -07:00
Pavel Feldman
d370f65713
chore: rename $,$$ to readable names ( #7848 )
2021-07-26 15:46:51 -07:00
Pavel Feldman
95001fe8d1
chore: unify v1 and v2 selector handling ( #7844 )
2021-07-26 15:07:12 -07:00
Pavel Feldman
7bdb901bb0
feat(webkit): roll WebKit to 1521 ( #7798 )
2021-07-23 09:13:57 -07:00
Joel Einbinder
56ada374df
feat(dragAndDrop): page.dragAndDrop ( #6910 )
2021-07-19 12:42:55 -05:00
Joel Einbinder
2f07846c9a
fix(webkit): proper value for event.buttons ( #7680 )
2021-07-16 13:06:00 -05:00
Andrey Lushnikov
272759f296
feat(chromium): roll Chromium to another new version ( #7676 )
2021-07-16 09:03:42 -07:00
Max Schmitt
86b21d5299
feat: add High DPI and Low DPI Desktop device descriptors ( #7531 )
2021-07-15 22:16:27 +02:00
Max Schmitt
cf0fb33540
fix: add log entry if selector resolves to multiple elements on click ( #7623 )
2021-07-15 22:06:08 +02:00
Andrey Lushnikov
dd26529b3d
feat(firefox): roll to Firefox 90 ( #7652 )
...
Fixes #7583
2021-07-15 10:53:45 -07:00
Max Schmitt
1b92c674f9
feat: have up2date user-agents for WK and FF ( #7644 )
2021-07-15 17:41:23 +02:00
Yash Ladha
03b26ec783
chore(android): fix type in DeviceBackend ( #7628 )
2021-07-14 23:42:09 -07:00
Pavel Feldman
3eb21e2322
feat(webkit): roll to r1515 ( #7625 )
2021-07-14 18:43:51 -07:00
Dmitry Gozman
d1170b30fc
Revert "api: remove timeout option from isVisible and isHidden methods ( #7414 )" ( #7600 )
...
This reverts commit 9f71c96740 .
2021-07-14 10:46:00 +02:00
Dmitry Gozman
0742cb9076
chore: move working with browser channels to Registry Executables ( #7581 )
2021-07-13 19:03:49 -07:00
Dmitry Gozman
57c5e4d8cf
chore: replace Registry api with Executable list ( #7544 )
2021-07-13 15:57:40 -07:00