1573 Commits

Author SHA1 Message Date
Dmitry Gozman
83f5628549
feat(rpc): misc fixes (#3351) 2020-08-07 15:40:21 -07:00
Pavel Feldman
b3091deb78
fix(cors): allow routing the cors request with credentials (#3336) 2020-08-07 14:02:41 -07:00
Joel Einbinder
eac8aeedaf
chore(types): convert tests to typescript part 3 (#3340) 2020-08-07 11:19:15 -07:00
Dmitry Gozman
cdfe73fee3
api(console): make ConsoleMessageLocation properties required (#3290)
Everywhere in our api, possibly missing properties are nullable.
However, to make things easier for everyone, we just default to an
empty url instead, so that users do not have to null-check it.
2020-08-05 22:25:56 -07:00
Max Schmitt
e582cc678c
fix(launcher): make PrintDeps.exe path configurable (#3311) 2020-08-05 13:33:40 -07:00
Max Schmitt
4956041109
fix(validation): error typo "unknown" (#3304) 2020-08-05 11:44:32 -07:00
Dmitry Gozman
126b1f79d4
feat(rpc): run doclint against rpc client (#3260) 2020-07-31 17:00:36 -07:00
Lars den Bakker
776f0192ab
fix(chromium): remove Debugger.paused event listener on coverage stop (#3252) 2020-07-31 15:45:29 -07:00
Yury Semikhatsky
7e8d03b050
fix(launcher): extend list of known missing DLLs (#3256)
#2745
2020-07-31 14:11:11 -07:00
Dmitry Gozman
4e5aa3c9c3
feat(rpc): support chromiumSandbox option (#3251) 2020-07-31 09:31:55 -07:00
Ross Wollman
ce0ddd270b
feat(download): create directories for saveAs (#3249)
This is to match the behavior for screenshots path added in #3247.
2020-07-30 23:21:03 -07:00
Pavel Feldman
93056ed8ef
chore(rpc): more protocol nits (#3246) 2020-07-30 17:51:41 -07:00
Yury Semikhatsky
cbfdca736c
feat(launcher): check dependencies before launch on Windows (#3240) 2020-07-30 17:15:46 -07:00
Dmitry Gozman
2f95b6e34e
feat(selectors): auto-detect xpath starting with ".." (#3239) 2020-07-30 16:21:48 -07:00
Dmitry Gozman
6297f86cfa
feat(rpc): run generate-channels during lint (#3238) 2020-07-30 15:08:21 -07:00
Pavel Feldman
1728a3df93
chore: minor protocol fixes (#3226) 2020-07-30 11:14:41 -07:00
Dmitry Gozman
cefb1b9727
feat(rpc): run fixtures.jest.js with channel (#3227)
Also, introduce setupInProcess wrapper to be used for in-process rpc.
2020-07-30 10:22:28 -07:00
Andrey Lushnikov
e09132527d
fix: a pretty error when browser executable is not found (#3220)
Make sure executable exists before launching it. If it doesn't and
we were launched without custom executable path, print a helpful
instruction to run `npm i playwright` and get browsers downloaded.

Note: there's already a test that makes sure bad executable paths
are treated fairly: 9132d23b2b/test/launcher.jest.js (L54-L59)

This doesn't test missing default browser installation which I think is
fine.

Fixes #3161
2020-07-29 23:16:24 -07:00
Max Schmitt
52eb6c609a
fix(rpc): protocol Route.fulfill (#3200) 2020-07-29 20:42:14 -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
9132d23b2b
fix(screenshot): wait for stable position before taking element screenshot (#3216)
Same goes for scrollIntoViewIfNeeded.
2020-07-29 16:36:02 -07:00
Dmitry Gozman
84a17f27eb
fix(rpc): Frame.dblclick is missing notWaitAfter (#3210) 2020-07-29 11:45:19 -07:00
Andrey Lushnikov
f111ad7437
fix: add missing libgles2 package to launch doctor (#3209)
References #2745
2020-07-29 10:40:33 -07:00
Andrey Lushnikov
6bc02f8fb6
feat(launchdoctor): detect missing libraries for dlopen (#3202)
WebKit WPE assumes `libglesv2.so` is available on the host system
and uses `dlopen` to open it.

This patch starts using `ldconfig -p` to check if the library
exists on the system.

References #2745
2020-07-29 09:58:45 -07:00
Yury Semikhatsky
a700a7a9a8
feat(chromium): roll to 07/29 (#3207) 2020-07-29 09:57:02 -07:00
Dmitry Gozman
fab5eba64f
fix(oopifs): translate coordinates to viewport (#3201)
Renderer-based method DOM.getContentQuads and DOM.getBoxModel return
coordinates relative to the local root's viewport, but we need them relative
to the root viewport.
2020-07-28 15:52:33 -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
Yury Semikhatsky
576e2c5287
fix(webkit): correctly report outerWidth/Height on Mac (#3133) 2020-07-27 16:06:50 -07:00
Dmitry Gozman
97c10002e7
api: introduce Browser.version() (#3177) 2020-07-27 13:41:35 -07:00
Andrey Lushnikov
6fa7547ce3
fix(launchDoctor): add package mapping for libvpx.so.5 (#3180)
Since we were bundling the library with the browsers before, the
mapping was missing.

References #2745
2020-07-27 10:39:45 -07:00
Tierney Cyren
51ce47f30f
docs: use "Node.js" instead of "Node" (#3176)
* docs: use "Node.js" instead of "Node"

* docs: fix broken anchor
2020-07-27 10:27:41 -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
Max Schmitt
9b502af4e3
fix(launchDoctor): support existing LD_LIBRARY_PATH (#3165) 2020-07-27 10:05:12 -07:00
Dmitry Gozman
f4e584ea08
feat(rpc): align class names with api docs (#3164) 2020-07-26 21:27:09 -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
Andrey Lushnikov
86b64a2311
feat(launchDoctor): package mappings for Ubuntu 20.04 (#3155)
This teaches Launch Doctor to print a command to install missing
packages on Ubuntu 20.04.

References #2745
2020-07-24 16:15:42 -07:00
Andrey Lushnikov
d4b707861c
feat: validate Ubuntu version if launching firefox (#3156)
The original plan was to rnu some checks against libc version the
binary is compiled with, but these turn out to be a little complicated:
parsing out libc version from both static binary and host system
requires text processing, and it's hard to make sure it works reliably
across distributions.

Instead, let's start with a very particular check against running
Firefox on Ubuntu 16.04.

References #2745
2020-07-24 16:14:14 -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
0f0e2acfaf
fix(type): unify selection behavior when typing (#3141)
Before typing/pressing, we focus the target element. WebKit
sometimes selects the value in this case. To unify the behavior
between the browsers we behave similar to human:
- when the input is already focused, we just type;
- when the input is not focused, we focus it, move caret
  to the start (like if user clicked at the start to focus the input)
  and then type.
Note this only affects inputs with non-empty value.
2020-07-24 09:30:31 -07:00
Andrey Lushnikov
678d16454a
devops: normalize blob names on the CDN (#3136)
This establishes a single naming for all our blobs with browser
builds that we upload to CDN: `<browser-name>-<os-version>`

- `<browser-name>` is either `firefox` or `webkit`.
- `os-version` is the OS that was used to produce the build.

References #2745
2020-07-24 00:31:18 -07:00
Andrey Lushnikov
bbe7dbe9ae
feat(installer): start downloadinb Ubuntu 20.04 builds (#3126)
Start auto-detecting Ubuntu 20.04 and downloading custom webkit
build for it.

References #2745
2020-07-23 17:37:47 -07:00
Andrey Lushnikov
63689e36a6
devops: prepare buildbots to the introduction of Ubuntu 20.04 builder (#3116)
This patch:
- specializes "linux" scripts into "Ubuntu 18.04" scripts
- renames all future linux blobs on CDN:
    * `firefox-linux.zip => firefox-ubuntu-18.04.zip`
    * `minibrowser-gtk.zip => minibrowser-gtk-ubuntu-18.04.zip`
    * `minibrowser-wpe.zip => minibrowser-wpe-ubuntu-18.04.zip`
    * `minibrowser-gtk-wpe.zip => minibrowser-gtk-wpe-ubuntu-18.04.zip`
- updates downloader to deal with the new names

References #2745
2020-07-23 11:59:23 -07:00
Dmitry Gozman
2bed312911
fix(electron): emit close events in the correct order (#3111) 2020-07-23 11:02:43 -07:00
Dmitry Gozman
68c4f79b02
feat(rpc): convert protocol to yaml (#3102) 2020-07-22 19:38:19 -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