Pavel Feldman
2b0b0a9119
fix(misc): assorted fixes ( #3031 )
2020-07-21 23:48: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
Joel Einbinder
f4b7ed5542
fix(chromium): reland support selectAll on macos ( #3038 )
...
Co-authored-by: Joel Einbinder <joel.einbinde@gmail.com>
2020-07-21 16:33:46 -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
1553f19bab
chore: update error messages to match future rpc validator ( #3075 )
2020-07-21 15:25:31 -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
Andrey Lushnikov
47e30f047b
feat: introduce chromiumSandbox launch option ( #3067 )
...
The option is intended to be used instead of the `--no-sandbox`
argument that is accepted exclusively by Chromium and crashes
WebKit.
References #2745
2020-07-21 13:49:09 -07:00
Andrey Lushnikov
af20d2704f
fix: auto-add --no-sandbox when running Chromium under root ( #3064 )
...
References #2745
2020-07-21 13:21:42 -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
cfe3aa3d94
test: add a few tests for null values ( #3035 )
2020-07-20 09:39:16 -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
Andrey Lushnikov
9a2245d30a
devops: show package names instead of missing libs on Ubuntu 18.04 ( #3013 )
...
This patch starts putting package names to install on Ubuntu instead
of missing dependencies list.
The mapping of library to package name is obtained using the following
script: https://gist.github.com/aslushnikov/2766200430228c3700537292fccad064
References #2745
2020-07-17 16:50:20 -07:00
Andrey Lushnikov
ef2a6522b8
feat: support atomic browser installation - attempt 2 ( #3008 )
...
Currently, Ctrl-C while extracting browser might yield users in
a bad place.
This patch adds a marker file inside browser directory to make
sure that browser extraction completed.
Note: this was already attempted in #2489 , but was eventually
reverted in #2534 .
References #2660
2020-07-17 16:39:27 -07:00
Dmitry Gozman
91e1a25f34
feat(rpc): gracefully close browsers in server process on disconnect ( #3005 )
2020-07-17 16:14:23 -07:00
Pavel Feldman
9d9801192e
test: wire test commands to jest ( #3014 )
2020-07-17 16:09:27 -07:00
Pavel Feldman
a8216339d8
Revert "fix(chromium): select all on macos should work again ( #3006 )" ( #3011 )
2020-07-17 14:34:05 -07:00
Pavel Feldman
096ec4c44f
test: move fixtures to jest ( #3010 )
2020-07-17 13:53:23 -07:00
Joel Einbinder
631fbce7ff
fix(chromium): select all on macos should work again ( #3006 )
...
* fix(chromium): select all on macos should work again
* Update src/chromium/crInput.ts
Co-authored-by: Joel Einbinder <joel.einbinde@gmail.com>
2020-07-17 10:59:48 -07:00
Joel Einbinder
9140063c90
fix(accessibility): don't filter everything when the page has a title ( #2909 )
2020-07-17 10:48:50 -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
Pavel Feldman
070a257600
test: move all generic page tests to jest ( #3002 )
2020-07-17 09:49:12 -07:00
Dmitry Gozman
5cf3e4f0f2
feat(rpc): switch Env to use an array, split ignoreDefaultArgs ( #2984 )
2020-07-17 09:32:27 -07:00
Pavel Feldman
1c0504ae28
test: respect fixtures in describe, match image snapshots ( #2989 )
2020-07-16 22:38:52 -07:00
Tapajyoti Bose
16e3776a9c
fix(JSCoverageEntry): added scriptId and isBlockCoverage ( #2955 )
2020-07-16 20:32:49 -07:00
Pavel Feldman
424f11d165
test: convert some tests to the jest+fixtures ( #2983 )
2020-07-16 16:59:45 -07:00
Dmitry Gozman
056f0e290d
feat(rpc): ensure that error stack traces point to the user code ( #2961 )
...
This also adds more "_wrapApiCall" calls for correct logs and stack traces.
2020-07-16 14:32:21 -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
4c8ba3ed67
chore: remove cli ( #2976 )
...
It will be a separate package instead.
2020-07-16 13:13:26 -07:00
Pavel Feldman
ecc130c644
test: convert evaluation.spec to jest+fixtures ( #2968 )
2020-07-16 11:18:38 -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
Andrey Lushnikov
0b9218149f
feat: validate browser dependencies before launching on Linux ( #2960 )
...
Missing dependencies is #1 problem with launching on Linux.
This patch starts validating browser dependencies before launching
browser on Linux. In case of a missing dependency, we will abandon
launching with an error that lists all missing libs.
References #2745
2020-07-15 15:24:38 -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
Dmitry Gozman
7f6171579b
feat(rpc): use headers array in the protocol ( #2959 )
2020-07-15 13:21:21 -07:00
Dmitry Gozman
2d5c0328cd
feat(rpc): return objects for every protocol command ( #2950 )
...
For future extensibility, returning objects with fields instead
of plain strings or channels.
2020-07-14 18:26:50 -07:00
Dmitry Gozman
1b84ec9023
fix(binding): dispatch binding after the page has been initialized ( #2938 )
...
... but not after it was closed.
2020-07-14 13:34:49 -07:00
Pavel Feldman
d5bd459986
chore(rpc): remove some paths from the channel ( #2934 )
2020-07-14 10:51:37 -07:00
Dmitry Gozman
cc8fe5a763
feat(rpc): support electron ( #2933 )
2020-07-13 21:46:59 -07:00
Dmitry Gozman
9fdb3e23c3
feat(rpc): support selectors ( #2936 )
2020-07-13 17:47:15 -07:00
Dmitry Gozman
65d45c18c3
feat(rpc): introduce Waiter for various waitFor implementations ( #2935 )
...
Use it for waitForEvent and waitForLoadState.
2020-07-13 16:03:24 -07:00
Dmitry Gozman
9fd30e58e2
feat(rpc): ensure feature-detection works as before ( #2898 )
...
For this, some tests are migrated from skip() to feature detection,
like our users would do.
2020-07-13 15:26:09 -07:00
Dmitry Gozman
2151757621
feat(rpc): run rpc tests in-process and out-of-process ( #2929 )
2020-07-13 15:00:20 -07:00
Dmitry Gozman
6d94c92053
feat(rpc): support no-serialization mode, run hook tests ( #2925 )
...
Added rpc_json_linux bots to excercise serialization - these
do not run hook tests.
2020-07-13 08:31:20 -07:00
Dmitry Gozman
6674458496
feat(rpc): log api calls into LoggerSink ( #2904 )
2020-07-10 18:00:10 -07:00
Dmitry Gozman
c63b706aac
fix(events): avoid firing events after close/detach ( #2919 )
2020-07-10 16:38:01 -07:00
Dmitry Gozman
fc6861410b
feat(rpc): merge DispatcherScope and Dispatcher ( #2918 )
2020-07-10 16:24:11 -07:00
Andrey Lushnikov
a403d4beff
fix(firefox): fix launching firefox without dependencies ( #2900 )
...
We always have to reject promises with some error. Otherwise,
our error-rewriting logic in try-catch miserably fails.
With this patch, attempt to launch Firefox when it's missing
dependencies will actually result in a thrown exception with
pretty logs. Without this patch, Playwright throws internal error.
2020-07-10 16:04:19 -07:00
Pavel Feldman
631f76df75
chore(rpc): remove union types from page and handles ( #2912 )
2020-07-10 15:39:11 -07:00
Dmitry Gozman
b6fd4dc56c
feat(rpc): merge ChannelOwner and ConnectionScope ( #2911 )
2020-07-10 15:11:47 -07:00
Pavel Feldman
c89c30e333
fix(popup): do not report frameless pages ( #2910 )
2020-07-10 13:15:39 -07:00
Dmitry Gozman
a91ec9a15d
feat(rpc): pass more tests ( #2896 )
...
Includes coverage, tracing and misc close() tests.
2020-07-09 15:33:01 -07:00
Joel Einbinder
e90ba26250
fix(context): fire close event for persistent contexts ( #2891 )
2020-07-09 08:34:07 -07:00
Dmitry Gozman
8fe29feb21
feat(rpc): support more chromium-specific apis ( #2883 )
...
This includes page CDPSession, backgroundPages() and serviceWorkers().
This has also revealed an issue with closing order between the context
and the service worker.
2020-07-08 21:36:03 -07:00
Pavel Feldman
b3ca4afd40
chore: misc test fixes ( #2857 )
2020-07-08 18:42:31 -07:00
Pavel Feldman
6209d14f87
chore: misc test fixes ( #2888 )
2020-07-08 18:42:04 -07:00
Yury Semikhatsky
b93e0994bc
browser(webkit, firefox): bump versions ( #2866 )
2020-07-08 17:10:33 -07:00
Andrey Lushnikov
458aaa508f
feat(chromium): roll Chromium to r786218 ( #2879 )
...
This roll includes:
- https://crrev.com/786119 - mac: close context menu when destroying RenderViewContextMenuMacCocoa
Fixes #2700
2020-07-08 17:09:42 -07:00
Paul
71713c9580
fix(webkit): Fix default User-Agent ( #2886 )
...
Co-authored-by: pspaul <pspaul@pspaul.de>
2020-07-08 16:15:31 -07:00
Dmitry Gozman
0c80c22716
feat(rpc): plumb CDPSession ( #2862 )
2020-07-07 18:47:00 -07:00
Dmitry Gozman
2a86ead0ac
chore: replace FrameTask with internal events on Frame ( #2856 )
...
We now use a few helper.waitForEvent calls to wait for internal
events kNavigationEvent and kLifecycleEvent. With these events,
we should be able to replicate logic over rpc.
2020-07-07 15:22:05 -07:00
Dmitry Gozman
35cb20d5ad
test: unflake recorder tests ( #2808 )
...
We ensure that recorder is installed in the main frame before running the test.
2020-07-07 14:11:59 -07:00
Dmitry Gozman
0380400de4
chore: refactor waiting for lifecycle events ( #2851 )
...
Instead of checking lifecycle events on every change, we
notify precisely when lifecycle event in the subtree
is satisfied. This allows FrameTask to be later switched
to event-based approach, and will easily translate to the
rpc client.
2020-07-06 17:33:56 -07:00
Dmitry Gozman
db3439d411
chore: introduce DocumentInfo ( #2765 )
...
It encapsulates documentId and request.
2020-07-06 15:58:27 -07:00
Andrey Lushnikov
15ddb5d32b
chore: update webkit version ( #2804 )
...
Safari Technology Preview reports WebKit 14.0. Align with them!
2020-07-06 15:13:53 -07:00
Dmitry Gozman
ac2185a9d9
test: update http credentials tests ( #2806 )
2020-07-06 11:28:07 -07:00
Pavel Feldman
6bbe7eb006
chore(rpc): inline options parameter in all rpc channels ( #2842 )
2020-07-06 10:04:09 -07:00
Pavel Feldman
241d39f904
chore(rpc): exit server upon pipe disconnect ( #2836 )
2020-07-04 09:52:38 -07:00
Pavel Feldman
2540805bf2
chore(rpc): misc serializer improvements ( #2832 )
2020-07-03 18:04:08 -07:00
Joel Einbinder
f484b20eea
fix(recorder): allow node to close gracefully ( #2817 )
2020-07-02 08:02:27 -07:00
Dmitry Gozman
19abc9bd9f
fix(dialogs): let click timeout, log information about dialogs ( #2781 )
...
We should not stall selector actions because of dialogs
and properly timeout instead. For this, we should not await
the handle.dispose() call because it will never happen
while dialog is shown.
Also, log information about dialogs to make it easier to debug.
2020-07-01 22:10:37 -07:00
Dmitry Gozman
9d6eaadba7
fix(navigation): ensure that goBack/goForward work with file urls ( #2792 )
2020-07-01 19:17:27 -07:00
Pavel Feldman
c15dc94f8e
chore(rpc): explicitly create page dispatcher ( #2799 )
2020-07-01 18:36:09 -07:00
Dmitry Gozman
e8e45e8450
feat(dom): migrate innerText, innerHTML and getAttribute to tasks ( #2782 )
...
This ensures synchronous access to avoid element recycling.
2020-07-01 16:10:53 -07:00
Dmitry Gozman
ff1fe3ac39
fix(close): actually mark the page as closing ( #2798 )
...
Currently double-closing flakiness is seen on Firefox bots.
2020-07-01 16:05:56 -07:00
Dmitry Gozman
5c4751d5dd
chore: generate protocol during browser roll ( #2719 )
...
We now commit protocol.ts files during the roll.
New utils/roll_browser.js helps with that.
This makes our installation very shallow:
- build installer;
- download browsers.
2020-07-01 15:22:29 -07:00
Pavel Feldman
c25fc4956d
chore(rpc): scope client-side handles ( #2796 )
2020-07-01 13:55:29 -07:00
Pavel Feldman
95538e73e7
chore(rpc): move classes around, fix tests, respect dispatcher scopes ( #2784 )
2020-06-30 22:21:17 -07:00
Pavel Feldman
87516cb3a3
chore(rpc): make dispatcher creation and lookup explicit ( #2783 )
2020-06-30 21:30:39 -07:00
Andrey Lushnikov
922cbe6718
chore: roll https-proxy-agent to v5 ( #2777 )
...
Co-authored-by: Luke Edwards <luke.edwards05@gmail.com>
2020-06-30 17:03:01 -07:00
Andrey Lushnikov
55a07dbf4d
fix: follow-up with offline comments on implementation of deprecation ( #2770 )
...
This moves all extra deprecation messages from vendor implementations
into a single vendor-neutral land.
2020-06-30 11:02:12 -07:00
Pavel Feldman
e29f7b9f58
chore(rpc): support workers, file chooser, browser server ( #2766 )
2020-06-30 10:55:11 -07:00
Pavel Feldman
5bb018e0e5
chore(rpc): attribute calles to page, ignore USES_HOOKS ( #2764 )
2020-06-29 18:58:09 -07:00
Pavel Feldman
3a7d629c61
chore(rpc): pass more network tests ( #2762 )
2020-06-29 16:37:38 -07:00
Andrey Lushnikov
0963c1979e
chore: deprecate method context.setHTTPCredentials() ( #2763 )
...
This will start emitting deprecation warning once
`context.setHTTPCredentials` is called.
2020-06-29 16:37:01 -07:00
Dmitry Gozman
38236b4f29
fix(close): ensure close() can be called twice ( #2744 )
...
... without any exceptions.
2020-06-29 16:26:32 -07:00
Dmitry Gozman
1fa9d30992
fix(evaluate): awaitPromise when Promise is overwritten ( #2759 )
...
Firefox and WebKit require native promises to provide awaitPromise
functionality. When the Promise is overwritten, all evaluations
in the main world produce wrong Promise, so we wrap with async
function to get a native promise instead.
2020-06-29 16:25:52 -07:00
Pavel Feldman
e920fde9f7
chore(rpc): bootstrap demo for rpc ( #2741 )
2020-06-27 11:32:27 -07:00
Pavel Feldman
4e94bdabfd
chore(rpc): serialize rpc into actual wire string ( #2740 )
2020-06-27 11:10:07 -07:00
Pavel Feldman
3e33523ee3
chore(rpc): clear the browsercontext test spec ( #2739 )
2020-06-26 22:38:21 -07:00
Pavel Feldman
db12ddebb3
chore(rpc): clear the page test spec ( #2736 )
2020-06-26 21:22:03 -07:00
Pavel Feldman
6393407a6a
chore(rpc): support downloads, dialogs, persistent context ( #2733 )
2020-06-26 17:24:21 -07:00
Dmitry Gozman
b54303a386
fix(textContent): make page.textContent(selector) atomic ( #2717 )
...
We now query selector and take textContent synchronously. This
avoids any issues with async processing: node being recycled,
detached, etc.
More methods will follow with the same atomic pattern.
Drive-by: fixed selector engine names being sometimes case-sensitive
and sometimes not.
2020-06-26 16:32:42 -07:00
Dmitry Gozman
43f70ab978
test: add more failing tests with react recycle ( #2731 )
2020-06-26 16:31:51 -07:00
Pavel Feldman
02f7501725
chore(rpc): strongly-type the initializer, remove __init__ phase ( #2729 )
2020-06-26 12:28:27 -07:00
Pavel Feldman
18d6140d3e
chore(rpc): support routes and bindings ( #2725 )
2020-06-26 11:51:47 -07:00