Commit graph

351 commits

Author SHA1 Message Date
Dmitry Gozman 49a3f943b6
feat(selectors): switch to the new engine (#4589)
We leave old implementation under the boolean flag,
just in case we need a quick revert.
2020-12-04 06:51:18 -08:00
Dmitry Gozman 016925cd16
feat(selectors): implement builtin selectors in new evaluator (#4579) 2020-12-03 14:10:40 -08:00
Dmitry Gozman 3121de403b
test: remove tests for SelectorEngine.create (#4580)
We are not going to keep this functionality on arbitrary engines.
2020-12-03 14:10:26 -08:00
Dmitry Gozman 3d6194e8a1
feat(selectors): introduce css evaluator (#4573)
Not used for production yet.
2020-12-02 14:46:19 -08:00
Dmitry Gozman 52ae218bfc
fix(fill): allow filling more input types (#4563)
This includes invalid types that are no recognized by the browser.
2020-12-02 14:43:41 -08:00
Joel Einbinder 3624e3e315
chore: add internal method for utility context bindings (#4566)
* internal binding extracted from dnd patch

* refactor it into the page

* dgozman comments 1
2020-12-02 13:43:16 -08:00
Dmitry Gozman a45532fd82
feat(selectors): update css parser (#4565)
This change requires string arguments to be quoted,
for example `:text("foo")` works but `:text(foo)` does not.
2020-12-02 08:16:02 -08:00
Dmitry Gozman e98aceb981
feat(selectors): introduce css parser (#4522)
It is not used for anything just yet.
2020-11-30 16:31:40 -08:00
Andrey Lushnikov f916c98081
chore: update WebKit version to 14.1 (#4515)
Safari Technology Preview now reports WebKit 14.1
2020-11-23 16:21:42 -08:00
Pavel Feldman a0587949a5
feat(chromium): roll to r828656 (#4503) 2020-11-20 08:10:27 -08:00
Dmitry Gozman aea106b28e
chore: simplify server screencast code (#4501)
Currently, we always throw from FrameSession._stopScreencast
when not running with video, and immediately catch it in
CRPage.didClose (thanks to debugger to point that).

Overall, we have code prepared for start/stop API, which
we never did, so it makes sense to simplify code a bit,
and throw if something goes wrong.
2020-11-19 19:26:53 -08:00
Dmitry Gozman 5e6eed0d87
fix(frames): do not start network idle timer after detach (#4502)
This fixes a common flaky error on the bots:
```
Error: Cannot find object to emit "loadstate": Frame@f5b80c8c318c5471a1e6af552866e981
```
2020-11-19 19:20:53 -08:00
Dmitry Gozman 09f9a35198
fix(protocol): rename websocket error event to socketerror (#4495)
This is to avoid special handling of error events in node.
2020-11-19 12:09:42 -08:00
Yury Semikhatsky a877c24f05
fix(route): throw on attempt to fulfill with redirect in WebKit (#4449) 2020-11-17 16:56:04 -08:00
Dmitry Gozman 38fadcaded
fix(chromium): use frameDetached reason (#4468)
This fixes the local -> remote frame swap when
Page.frameDetached arrives before Target.attachedToTarget.

Instead of error-prone logic we do currently, new CDP exposes
frame detach reason that we can use.
2020-11-17 10:24:13 -08:00
Dmitry Gozman b9ac9df837
fix: prevent memory leak when collecting logs from injected script poll (#4448) 2020-11-16 14:11:55 -08:00
Joel Einbinder 31bebc7ea0
fix(close): allow errors when closing all pages of a context (#4324) 2020-11-16 10:26:34 -08:00
Yury Semikhatsky dfe3552b59
feat(route): support URL overrides in continue (#4438) 2020-11-16 09:59:00 -08:00
Yury Semikhatsky 732e83f48d
feat(webkit): bump to 1385 (#4430) 2020-11-13 16:29:20 -08:00
Pavel Feldman 9404d2abb6
fix(debug): do not generate source urls for anonymous scripts (#3691) 2020-11-13 14:47:55 -08:00
Pavel Feldman d20e56e197
feat(state): allow getting / setting context state (#4412) 2020-11-13 14:24:53 -08:00
Pavel Feldman a35d207091
test: fix resource timing for bigsur test (#4419) 2020-11-13 14:10:32 -08:00
Dmitry Gozman e69315f711
fix(websocket): remove "skip frames" logic (#4435)
This optimization turned out to be racy, so better remove it for now.
2020-11-13 14:03:21 -08:00
Pavel Feldman b0d174fd9a
revert: lifecycle refactoring, it breaks setContent (#4420) 2020-11-12 16:13:55 -08:00
Pavel Feldman 5d47214e2c
chore: register frameless listeners separately (#4407) 2020-11-12 13:44:38 -08:00
Pavel Feldman bd7507e133
chore: unify new page handling across vendors (#4411) 2020-11-12 12:41:23 -08:00
Yury Semikhatsky eee82a7fca
fix(oopif): store child frame id between frameDetached and attachedToTarget (#4410) 2020-11-12 09:51:17 -08:00
Yury Semikhatsky 5702eca1f2
fix(selectors): make selectOptions work for labels (#4402) 2020-11-11 15:33:23 -08:00
Dmitry Gozman 138680f93c
fix(launchServer): stream protocol logs into options.logger (#4403)
fix(launchServer): stream protocol logs into options.logger

This has regressed in v1.4.
2020-11-11 15:12:10 -08:00
Pavel Feldman 2158d6d073
feat(scopes): make page a scope (#4385) 2020-11-10 14:47:26 -08:00
Andrey Lushnikov 775be21db6
fix(launchdoctor): fix launch doctor (#4387)
New webkit build, generated by 19f21b1bde, changed webkit build
layout: now there are subfolders that contain libraries and executables, and some of the dependencies are no longer bundled.

This patch:
- teaches launch doctor new directories structure: subfolders are now inspected for missing dependencies, and they are also used in the `LD_LIBRARY_PATH`.
- adds `libevent` and `libicudata` libs to the mapping for ubuntu 18.04
2020-11-09 16:47:15 -08:00
Pavel Feldman 28f6547d67
chore: add adb-based connectivity (#4375) 2020-11-06 16:31:11 -08:00
Dmitry Gozman 3db8b23b25
fix(chromium): lifecycle events race (#4369) 2020-11-06 13:37:15 -08:00
Dmitry Gozman c83ac444b4
api(websocket): do not send websocket frames without a listener (#4361)
Once user adds 'websocket' listener, we start sending the frames
for all websockets on the page.
2020-11-06 12:30:16 -08:00
Dmitry Gozman 5faf6f9e69
feat(firefox): switch to use pipe instead of websocket (#3279) 2020-11-05 14:15:25 -08:00
Dmitry Gozman c384313058
feat(fill): allow filling based on the label selector (#4342)
This enables filling the input based on the connected label:

```html
<label for=target>Name</label><input id=target>
```

```js
await page.fill('text=Name', 'Alice');
```
2020-11-05 05:22:49 -08:00
Dmitry Gozman e942138913
fix: do not report errored pages after context closure (#4346)
Consider the following sequence:
- page opens a popup;
- popup target is attached, we start initializing it;
- user calls browser.close();
- browser is closed, and popup initialization fails;
- we report "errored page" on the already closed context;
- RPC client cannot make sense of this:
  "Cannot find parent object BrowserContext@guid to create Frame@guid"

This issue was revealed during Firefox pipe migration.
2020-11-04 16:23:38 -08:00
Andrey Lushnikov 65009dc867
feat(chromium): roll Chromium to r823944 (#4341)
Fixes #4021
2020-11-04 11:20:02 -08:00
Dmitry Gozman 924cc9894a
feat(text selector): normalize spaces in lax mode (#4312) 2020-11-03 04:37:06 -08:00
Dmitry Gozman 1c39689dd6
api(videos): introduce a single recordVideo option bag (#4309)
api(videos): introduce a single recordVideo option bag

Currently contains `dir` and `size`, previously known as
`videosPath` and `videoSize`.
2020-11-02 19:42:05 -08:00
Dmitry Gozman f80f81545e
feat(chromium): bump to 823078 (#4308) 2020-11-02 14:34:08 -08:00
Pavel Feldman ac8ab1e1b5
feat(websocket): add WebSocket.waitForEvent and isClosed (#4301) 2020-11-02 14:09:58 -08:00
Pavel Feldman d117d0bb93
feat(scopes): make page a scope (#4300) 2020-11-02 13:06:54 -08:00
Dmitry Gozman 9c80cbdf9e
fix(docs): small docs changes for new apis (#4305) 2020-11-02 12:48:05 -08:00
Andrey Lushnikov 7fbbd1822e
feat(firefox): support WebSockets on Firefox (#4289) 2020-10-30 10:34:24 -07:00
Pavel Feldman 914f6372ec
feat(proxy): enable per-context http proxy (#4280) 2020-10-29 16:12:30 -07:00
Pavel Feldman f384a864a8
test(har): uncomment some raw header tests (#4273) 2020-10-28 15:58:45 -07:00
Pavel Feldman 7bedbb2d78
feat(browser): roll WebKit to r1370 (#4257) 2020-10-28 13:46:05 -07:00
Pavel Feldman 0b8c33ee75
fix(ECONRESET): fix it once and for all (#4258) 2020-10-27 11:09:41 -07:00
Pavel Feldman be8428475d
feat(websocket): implement Web Sockets for Chromium & WebKit (#4234) 2020-10-26 22:20:43 -07:00