Dmitry Gozman
9fca63f8ec
chore: move src/rpc/client to src/client ( #3581 )
2020-08-22 15:13:51 -07:00
Dmitry Gozman
655013d025
chore: move shared utilities to src/utils ( #3575 )
2020-08-22 07:07:13 -07:00
Dmitry Gozman
6fe1cd9812
chore: move protocol files to src/protocol ( #3571 )
2020-08-21 18:46:11 -07:00
Dmitry Gozman
57e8617474
chore: refactor impl-side events to be per-class ( #3569 )
2020-08-21 16:26:33 -07:00
Yury Semikhatsky
1f0e9db0a6
feat(firefox): support context-level screencast api ( #3555 )
2020-08-20 19:49:30 -07:00
Yury Semikhatsky
071931ebb1
feat(firefox): bump to 1166 ( #3557 )
2020-08-20 16:51:17 -07:00
Dmitry Gozman
e2bb6a07cd
fix(click): allow clicking 1x1 sized elements ( #3538 )
...
One by one seems like a resonable minimum size for clicking.
It is not surprising to see a 1x1 native accessible control
that is covered by a custom control that handles input instead.
2020-08-20 16:49:19 -07:00
Dmitry Gozman
4c5635434a
fix(permissions): browserContext.grantPermissions to respect the origin ( #3542 )
...
Due to wrong type usage, we ignored the origin while granting permissions.
Switching to generated types revealed this issue. We should follow up
with switching all dispatchers to the generated types.
2020-08-20 14:19:27 -07:00
Dmitry Gozman
eab5ff4eae
chore(rpc): use channels types in dispatchers ( #3549 )
...
This ensures we actually implement channels as intended.
For example, this change found an issue with Route.fulfill.
2020-08-20 11:25:33 -07:00
Dmitry Gozman
18292325b6
api: add waitForElementState('disabled') ( #3537 )
...
Allows waiting for the element to be disabled.
2020-08-19 17:20:10 -07:00
Dmitry Gozman
0a22e2758a
fix(chromium): disable lazy loading iframes ( #3535 )
...
These do not play nicely with our "page is loaded when all frames
are loaded" logic.
2020-08-19 15:58:13 -07:00
Dmitry Gozman
9ac1bbc2a5
chore: remove more paths and url matches from the server side ( #3528 )
2020-08-19 13:27:58 -07:00
Yury Semikhatsky
83de0071c9
feat(screencast): add start/stop events on context ( #3483 )
2020-08-19 12:45:31 -07:00
Dmitry Gozman
745dc339a6
chore: merge Browser{Context,}Base into Browser{Context,} ( #3524 )
2020-08-19 10:31:59 -07:00
Dmitry Gozman
63a2c673b5
chore: align SerializedAXNode with rpc protocol AXNode ( #3522 )
2020-08-18 20:25:03 -07:00
Joel Einbinder
97157520a6
feat(slowmo): only slowmo once per user action ( #3012 )
...
This changes the behavior of slowmo to slow down user actions instead of every protocol command. This makes slowmo a lot more predictable. Without this, there is no way to set slowmo to a good value without incurring a huge delay at the start of your test when it sets things up.
2020-08-18 19:13:40 -07:00
Dmitry Gozman
e54195ccfb
chore: align page.pdf options to the rpc protocol ( #3521 )
...
Drive-by: remove unused devices from playwright impl.
2020-08-18 18:48:44 -07:00
Dmitry Gozman
e7e8524e14
chore: remove screenshot path from the server side ( #3519 )
...
Also fixes auto-detection of mime type based on path and adds tests.
2020-08-18 18:46:56 -07:00
Dmitry Gozman
20c6b85178
chore: remove route/unroute from the server side ( #3518 )
...
We only use a global "intercept all requests" handler on
page and browser context, instead of granular ones.
2020-08-18 17:34:04 -07:00
Dmitry Gozman
3cf48f9bd4
chore: simplify conversions around setInputFiles ( #3516 )
...
We do not need api types on the server side anymore.
2020-08-18 17:32:11 -07:00
Dmitry Gozman
ecf4cd3933
chore: simplify conversions around selectOption ( #3517 )
...
We do not need to support api types on the server side.
2020-08-18 16:44:17 -07:00
Dmitry Gozman
aeadf50165
chore: use HeadersArray instead of Headers object on the server side ( #3512 )
...
This simplifies implementation and avoids multiple conversions.
Also adding some tests around lowercase and wrong types.
2020-08-18 15:38:29 -07:00
Dmitry Gozman
9790ea5b5d
chore: align more server-side options with rpc protocol ( #3506 )
...
This touches:
- noDefaultViewport;
- ignoreAllDefaultArgs;
- env;
- validateXYZ logic that was copying objects - we do not need that anymore;
- shuffles some converters closer to their usage.
2020-08-18 09:37:40 -07:00
Joel Einbinder
dfa1f103af
feat(screenshot): create directories for screenshot file
2020-08-17 16:53:19 -07:00
Dmitry Gozman
0e9793c452
api: ElementHandle.waitForElementState ( #3501 )
...
This method waits for visible, hidden, stable or enabled state,
similar to the actionability checks performed before actions.
This gives a bit more control to the user. Some examples:
- Allows to wait for something to be stable before taking a screenshot.
- Allows to wait for the element to be hidden/detached after a specific action.
2020-08-17 16:22:34 -07:00
Dmitry Gozman
58fc6b4003
chore: align some server-side methods with rpc calls ( #3504 )
...
- Never write to console on the server side - we use stdout for
communication. This includes logPolitely and deprecate.
- Pass undefined instead of null in some BrowserContext methods.
- Use explicit _setFileChooserIntercepted instead of on/off magic.
2020-08-17 16:19:21 -07:00
Dmitry Gozman
141a255a07
chore: remove unused methods from server side ( #3502 )
...
Most of these were api methods that are no longer called directly.
2020-08-17 14:36:51 -07:00
Dmitry Gozman
1e9c0eb705
chore: remove logger infrastructure from server side ( #3487 )
...
We do not implement LoggerSink on the server, so we can
use a simple debugLogger.
2020-08-17 14:12:31 -07:00
Joel Einbinder
d516f81eeb
fix(rpc): add a custom toJSON to help jest's expect library ( #3489 )
2020-08-16 14:41:33 -07:00
Dmitry Gozman
bc23324878
chore: remove apiName plumbing and some unused methods from server side ( #3481 )
...
We append apiName where needed on the client instead.
2020-08-14 18:25:32 -07:00
Dmitry Gozman
244c2f37b6
feat(rpc): make sure filechooser is only intercepted when needed ( #3482 )
...
So that user can choose a file manually in headful mode.
2020-08-14 18:24:36 -07:00
Dmitry Gozman
69e1e713ef
feat(click): provide preview of the element intercepting pointer events ( #3449 )
2020-08-14 14:48:36 -07:00
Dmitry Gozman
85c93e91a7
api: introduce ElementHandle.waitForSelector ( #3452 )
...
This is similar to Frame.waitForSelector, but relative to the handle.
2020-08-14 14:47:24 -07:00
Dmitry Gozman
ae4280a12b
chore: cleanup more non-rpc code ( #3471 )
...
- Replaces BrowserServer class with BrowserProcess struct.
- Removes src/api.ts.
- Removes helper.installApiHooks.
- Removes BrowserType.launchServer.
2020-08-14 13:19:12 -07:00
Dmitry Gozman
dec8fb7890
fix(hover): do not require the element to be enabled before hovering ( #3445 )
2020-08-14 13:18:32 -07:00
Dmitry Gozman
9b52ca8676
chore: remove unused non-rpc code, test options, infra, bots ( #3444 )
2020-08-13 16:00:23 -07:00
Dmitry Gozman
18b2cf5ec7
feat(rpc): use rpc protocol for browserType.connect ( #3380 )
2020-08-13 13:24:49 -07:00
Andrey Lushnikov
515665908e
chore: add comment to clarify /sbin
2020-08-13 11:44:21 -07:00
Joel Einbinder
23f5ed89b0
fix(launcher): default to ubuntu20.04 for newer releases ( #3400 )
2020-08-12 17:50:46 -07:00
Andrey Lushnikov
40f685226b
devops: migrate //utils/check_availability.js
off browser fetcher ( #3418 )
...
The script is used to check the state of chromium CDN, whereas
our browser fetcher now defaults to Playwright CDN.
2020-08-12 15:01:07 -07:00
Dmitry Gozman
a574fa6edb
api: add Frame.page() getter ( #3392 )
2020-08-12 14:45:36 -07:00
Joel Einbinder
1ef199f512
fix(launchDoctor): add sudo to install missing packages hint ( #3402 )
2020-08-12 08:48:35 -07:00
Andrey Lushnikov
c035560389
fix: full path to ldconfig
in linux ( #3401 )
2020-08-12 08:47:41 -07:00
Andrey Lushnikov
2db97e3b2d
feat(firefox): migrate to protocol-based proxy implementation ( #3362 )
...
This migrates Firefox to the protocol-based proxy implementation.
Benefits:
- supports secure web proxies (already supported by Chromium)
- unlocks support for SOCKS proxies with authentication
2020-08-11 11:36:27 -07:00
Dmitry Gozman
9697ad635f
fix(chromium): handle the case when new pending comes before old commit ( #3370 )
2020-08-11 08:59:00 -07:00
Yury Semikhatsky
d8d845afcc
feat(screencast): add private recording APIs and basic test ( #3296 )
2020-08-10 21:22:57 -07:00
Andrey Lushnikov
1b8128eb84
installer: start downloading Chromium archives from our CDN ( #3361 )
...
This starts downloading newer Chromium archives from our CDN, but
retains old endpoint for older Chromium revisions.
This backwards compatibility might help later on to implement
a browser bisecting tool.
References #3259
2020-08-10 11:40:30 -07:00
Dmitry Gozman
ef76f5b922
feat(rpc): introduce JSON type in the protocol for arbitrary blobs ( #3367 )
2020-08-10 11:20:32 -07:00
Dmitry Gozman
69c88d8063
feat(rpc): handle screenshot path on the client ( #3352 )
2020-08-07 15:41:34 -07:00
Dmitry Gozman
7e2cc77524
test: add a test for newCDPSession rejecting on non-pages ( #3353 )
2020-08-07 15:40:46 -07:00