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
9ac1bbc2a5
chore: remove more paths and url matches from the server side ( #3528 )
2020-08-19 13:27:58 -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
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
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
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
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
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
18b2cf5ec7
feat(rpc): use rpc protocol for browserType.connect ( #3380 )
2020-08-13 13:24:49 -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
Max Schmitt
4956041109
fix(validation): error typo "unknown" ( #3304 )
2020-08-05 11:44:32 -07:00
Pavel Feldman
1728a3df93
chore: minor protocol fixes ( #3226 )
2020-07-30 11:14:41 -07:00
Dmitry Gozman
3bd97776b8
feat(rpc): do not use server types and events in rpc/client ( #3219 )
...
This change removes almost all dependencies from rpc/client
to the rest of the project. The last ones would be utilities
like helper, converters, etc.
2020-07-29 17:26:59 -07:00
Dmitry Gozman
6cb1e03713
feat(rpc): disallow deps into rpc client from outside ( #3199 )
...
For this, common converters are extracted from rpc serializers.
2020-07-28 15:33:38 -07:00
Dmitry Gozman
97c10002e7
api: introduce Browser.version() ( #3177 )
2020-07-27 13:41:35 -07:00
Dmitry Gozman
b2179193c6
feat(rpc): replace implicit scopes with explicit dispose ( #3173 )
...
This adds one more protocol message __dispose__
to dispose a scope and all child objects.
Now, client side does not need a notion of scope anymore -
it just disposes the whole object subtree upon __dispose__.
Server, on the other hand, marks some objects as scopes
and disposes them manually, also asserting that all parents
are proper scopes.
2020-07-27 10:21:39 -07:00
Dmitry Gozman
98cc9db8e8
chore: simplify doclint ( #3162 )
...
This renames CRBrowserContext events into ChromiumBrowserContext and
simplifies some doclint/coverage logic.
2020-07-24 20:40:21 -07:00
Dmitry Gozman
fd2e65b73c
api: export all browsers from every package ( #3128 )
...
This makes it easier to reason about our packages.
The only difference is what each package downloads.
When the browser is not downloaded, it will fail to launch.
Each browser gets a 'download' attribute in the browser.json file.
2020-07-24 16:36:00 -07:00
Dmitry Gozman
d9890f1102
feat(rpc): make ElectronApplication a scope ( #3159 )
2020-07-24 16:22:20 -07:00
Dmitry Gozman
415e94f410
feat(rpc): server-side validator ( #3150 )
2020-07-24 15:16:33 -07:00
Pavel Feldman
e7cca86757
fix(postData): allow overriding binary post data ( #3120 )
2020-07-24 12:16:45 -07:00
Dmitry Gozman
deccddba24
feat(rpc): update BrowserServer ( #3112 )
...
- Make BrowserServer a scope.
- Plumb exitCode and signal to BrowserServer.on('close').
- Use toImpl in a test.
2020-07-24 10:17:07 -07:00
Dmitry Gozman
b1a5a02154
feat(rpc): client-side parameters validation ( #3069 )
2020-07-22 18:05:07 -07:00
Dmitry Gozman
65002a0ac2
feat(rpc): support firefox user prefs ( #3093 )
...
Also ignore firefoxUserPrefs in launchPersistentContext according to our api.
2020-07-22 17:20:00 -07:00
Pavel Feldman
80c0711d98
feat(firefox): roll firefox to r1137 ( #3095 )
2020-07-22 15:59:37 -07:00
Ross Wollman
d8a17fb0ab
api(download): Add saveAs helper ( #2872 )
2020-07-22 14:55:27 -07:00
Dmitry Gozman
1aee8dfc7c
feat(rpc): align types/guids in the protocol with their pdl definition ( #3079 )
...
This makes the protocol self-explanatory, and avoids silly conversions
in codegenerators, e.g. cdpSession <-> CDPSession.
2020-07-22 10:37:21 -07:00
Dmitry Gozman
ced0bc2d1b
api: make clear the use of null in page.emulateMedia ( #3078 )
...
We can pass null to disable emulating particular feature.
This change updates the docs and rpc protocol accordingly.
2020-07-21 18:56:41 -07:00
Dmitry Gozman
db4e856a57
feat(rpc): use SerializedValue for CDPSession ( #3076 )
...
This is our way to define a schema for arbitrary values.
2020-07-21 15:58:00 -07:00
Dmitry Gozman
18cb1c017a
feat(rpc): inline selectors.register options in the protocol ( #3072 )
2020-07-21 14:41:33 -07:00
Dmitry Gozman
3dd61629e0
feat(rpc): update Response.finished to return string instead of Error ( #3071 )
2020-07-21 14:40:53 -07:00
Dmitry Gozman
3dead4c8d1
feat(rpc): remove last union types from the protocol ( #3059 )
2020-07-21 12:44:30 -07:00
Pavel Feldman
99658c2d32
feat(bringToFront): enable on all browsers ( #3052 )
2020-07-21 09:36:54 -07:00
Dmitry Gozman
2d59a8f9c2
feat(rpc): remove some union types ( #3058 )
2020-07-21 08:26:48 -07:00
Dmitry Gozman
5848ed8f41
feat(rpc): introduce protocol.pdl ( #3054 )
...
We now generate channels.ts from the protocol definition. There are still some shortcomings,
like union types - these will be addressed in follow ups.
2020-07-20 17:38:06 -07:00
Dmitry Gozman
29504c0824
feat(rpc): make SerializedValue format pdl-friendly ( #3007 )
...
This avoids sum types and instead uses different fields
for different types.
2020-07-19 19:46:19 -07:00
Dmitry Gozman
d8bedd851d
chore: explicitly type SerializedArgument, fix rpc dispatchEvent ( #2988 )
...
We now have types for SerializedValue/SerializedArgument. This will
allow us to avoid double parse/serialize for evaluation arguments/results.
Drive-by: typing exposed a bug in ElementHandle.dispatchEvent().
2020-07-17 09:53:13 -07:00
Dmitry Gozman
5cf3e4f0f2
feat(rpc): switch Env to use an array, split ignoreDefaultArgs ( #2984 )
2020-07-17 09:32:27 -07:00
Dmitry Gozman
b890569afc
feat(rpc): move leftover extraHTTPHeaders to HeadersArray ( #2980 )
2020-07-16 13:36:22 -07:00
Dmitry Gozman
439e048a4c
feat(rpc): migrate DeviceDescriptors payload to an array ( #2981 )
...
Currently it is an object with arbitrary keys - that makes it
hard to have a protocol definition.
2020-07-16 13:18:54 -07:00
Dmitry Gozman
198ecee875
api(exposeBinding): allow handles in the binding result ( #2970 )
2020-07-15 20:05:11 -07:00
Dmitry Gozman
aa4c893b09
feat(rpc): implement waitForNavigation on the client ( #2949 )
...
Drive-by: fix electron issues, exposed by the test using
waitForNavigation.
Drive-by: mark some tests skip(CHANNEL) that were mistakenly
marked skip(USES_HOOKS).
2020-07-15 18:48:19 -07:00
Dmitry Gozman
c51ea0afd1
feat(rpc): remove PageAttribution from the protocol, attribute on the client side ( #2957 )
...
This also changes timeout error format to
"page.click: Timeout 5000ms exceeded", so that all errors
can be similarly prefixed with api name.
We can now have different api names in different clients,
and our protocol is more reasonable.
2020-07-15 14:04:39 -07:00