1541 Commits

Author SHA1 Message Date
Andrey Lushnikov
638c77c8e2
devops: stop bundling FFMPEG with Chromium (#3806)
- This stops bundling FFMPEG with Chromium
- Stop supporting build numbers as fractional parts for Chromium
revisions
2020-09-08 17:05:21 -07:00
Yury Semikhatsky
a5a563659b
browser(webkit): fix basic screencast for accelerated compositing on win (#3803) 2020-09-08 16:00:51 -07:00
Yury Semikhatsky
1d4601b479
browser(webkit): fix screencast scale on Mac headful (#3797) 2020-09-08 14:22:33 -07:00
Andrey Lushnikov
bcb4944f1b
devops: auto-detect platform in //browser_patches/chromium/build.sh (#3772)
If there's no platform specified for the chromium build, we should
detect the host platform.

This will make it pleasant to verify Chromium rolls locally.
Assuming there's a `CR` env variable pointing to the local chromium,
rolling would look like this:

- bump a revision in `//browser_patches/chromium/BUILD_NUMBER`
- run `//browser_patches/chromium/build.sh`
- run tests with pulled chromium: `CRPATH=$CR npm run ctest`
2020-09-04 04:23:13 -07:00
Andrey Lushnikov
f09145e504 chore: fix typo in build script 2020-09-04 03:16:46 -07:00
Andrey Lushnikov
3cb3c650df
chore: build Chromium version with ffmpeg (#3770) 2020-09-04 03:14:29 -07:00
Andrey Lushnikov
a755d100b3
devops: encode build number together with Chromium revision (#3769)
This is an alternative approach to #3698 that was setting up a custom
mapping between chromium revisions and our mirrored builds. For example, we were
taking chromium `792639` and re-packaging it to our CDN as Chromium 1000.

One big downside of this opaque mapping was inability to quickly
understand which Chromium is mirrored to CDN.

To solve this, this patch starts treating browser revision as a fractional number,
with and integer part being a chromium revision, and fractional
part being our build number. For example, we can generate builds `792639`, `792639.1`,
`792639.2` etc, all of which will pick Chromium `792639` and re-package it to our CDN.

In the Playwright code itself, there are a handful of places that treat
browser revision as integer, exclusively to compare revision with some particular
revision numbers. This code would still work as-is, but I changed these places
to use `parseFloat` instead of `parseInt` for correctness.
2020-09-04 03:12:30 -07:00
Andrey Lushnikov
dfc0006b3b
devops: bundle ffmpeg with chromium (#3767)
This starts bundling FFMPEG v4.3.1 binary with Chromium archives on the
following platforms:
- chromium-mac
- chromium-win32
- chromium-win64

This specifically doesn't bundle FFMPEG with chromium-linux since we decided to use native ffmpeg on Linux instead. 

FFMPEG binaries are compiled following these instructions:
- windows: https://gist.github.com/aslushnikov/422f1e1a57796a476bf73ebe04f2e5ac
- mac: https://gist.github.com/aslushnikov/abf71be5a0b12c33b320044785fcb3bc

Our versions of FFMPEG are ~2MB zipped.

References #3680
2020-09-04 02:18:36 -07:00
Andrey Lushnikov
fa8de99611
Revert "devops: revision Chromium repackaged builds separately (#3698)" (#3763)
This reverts commit fcc1680f989f79e07a0e4ef4ba399f609fc388da.
2020-09-04 00:43:12 -07:00
Pavel Feldman
b6557b9f92
browser(webkit): remove incognito emoji from title (#3765) 2020-09-03 23:33:43 -07:00
Yury Semikhatsky
fc7b065b1b
browser(webkit): revert #3360 as it broke many sites (#3764) 2020-09-03 22:09:20 -07:00
Yury Semikhatsky
d3c677792c
browser(webkit): force repaint on screencast start (#3757) 2020-09-03 09:56:21 -07:00
Yury Semikhatsky
6b085a349c
browser(webkit): do not clear existing contexts from map when exiting (#3750) 2020-09-02 18:13:03 -07:00
Yury Semikhatsky
ee1becd897
browser(firefox): autoscale screencast to fit frame (#3720) 2020-09-01 17:10:06 -07:00
Pavel Feldman
76ab82faa7
browser(webkit): prepend http:// to the schema-less URLs (#3713) 2020-09-01 14:28:21 -07:00
Yury Semikhatsky
fad840d88d
browser(webkit): fit screencast to frame if no scale is specified (#3707) 2020-09-01 12:04:46 -07:00
Andrey Lushnikov
fcc1680f98
devops: revision Chromium repackaged builds separately (#3698)
Currently, we mirror Chromium revisions from gbuckets to our cdn and
name them same way as Chromium revision.

However, with the upcoming bundling of FFMPEG, we'd like to revision
Chromium packages separately, since our Chromium package will depend from
a number of factors:
- chromium upstream revision
- ffmpeg version
- extra files to add to the package or remove from the package

We should be able to produce a new Chromium build once any of these changes.

With this patch, to roll Chromium browser:
- update chromium revision number in the
`//browser_patches/chromium/UPSTREAM_CONFIG.sh`
- bump the build number in the `//browser_patches/chromium/BUILD_NUMBER`

Reference #3680
2020-08-31 10:44:33 -07:00
Joel Einbinder
abb50a79bd
browser(firefox): fix request frame attribution (#3657)
Firefox will sometimes send multiple requests with the same http channel id. When a frame is loaded, the favicon is requested in the parent frame, but with the same channel id. This can cause the document request to report the wrong frame, causing the test 'should capture iframe navigation request' to fail. It fails consistently on my computer.

This patch adds the content policy type into the http channelId to better distinguish requests. Maybe there is something better we can do? It looks like we use channelId has request ids, so there might be more bugs with these favicon requests in playwright?
2020-08-28 17:55:05 -07:00
Carlos Alberto Lopez Perez
19f21b1bde
browser(webkit): use webkit generate-bundle tool to generate the bundles (#3563)
* This changes the archive.sh script to use the webkit generate-bundle
 tool to generate the MiniBrowser bundles instead of using our custom
 logic.

 * pw_run.sh is simplified because the new bundles include a wrapper
 script that sets the needed LD_LIBRARY_PATH environment variables.
 pw_run.sh now calls this wrapper script (for GTK or WPE) instead of
 calling the MiniBrowser binary directly when running from a bundle.

Co-authored-by: Andrey Lushnikov <aslushnikov@gmail.com>
2020-08-28 10:48:57 -07:00
Yury Semikhatsky
80cf7e9fac
browser(webkit): do not crash when opening web inspector (#3631) 2020-08-26 08:55:18 -07:00
Yury Semikhatsky
1a37f8ba7a
browser(webkit): remove browserContextId from some events (#3628) 2020-08-25 17:15:21 -07:00
Yury Semikhatsky
17077fd901
browser(firefox): introduce browser level screencastFinished event (#3625) 2020-08-25 14:50:40 -07:00
Pavel Feldman
a0bd8def74
browser(chromium): package r799610 (#3624) 2020-08-25 13:14:31 -07:00
Pavel Feldman
c25dfba878
infra: pull chromium 801321 (#3620) 2020-08-25 08:16:03 -07:00
Yury Semikhatsky
14abee2b00
browser(webkit): fix compilation on mac (#3619) 2020-08-25 07:54:05 -07:00
Yury Semikhatsky
db7bec36c5
browser(webkit): introduce screencastFinished event on Context (#3611) 2020-08-24 19:59:35 -07:00
Yury Semikhatsky
1c6968269a
browser(webkit): avoid use after free on page close (#3599) 2020-08-24 10:38:39 -07:00
Yury Semikhatsky
4f1f972143
browser(webkit): fix mac compilation (#3598) 2020-08-24 08:56:33 -07:00
Yury Semikhatsky
93d8839947
browser(webkit): explicitly track pages reported for context (#3574) 2020-08-21 19:59:53 -07:00
Carlos Alberto Lopez Perez
de5ecc028f
browser(webkit): roll to r266002 08/21/2020 (#3561) 2020-08-21 09:56:10 -07:00
Yury Semikhatsky
9f3a1b5168
browser(firefox): send screencastStarted after attachedToTarget (#3554) 2020-08-20 14:03:05 -07:00
Yury Semikhatsky
5ba0254c99
browser(firefox): make sure response is sent when context is closed (#3553) 2020-08-20 13:26:04 -07:00
Yury Semikhatsky
854d755db5
browser(firefox): make context close wait for sessions to finish (#3550) 2020-08-20 11:04:57 -07:00
Yury Semikhatsky
f13cebc66d
browser(firefox): remove redundant checks for PageTarget._browserContext (#3541) 2020-08-19 15:39:46 -07:00
Yury Semikhatsky
df50660458
browser(firefox): make tab close listener sync again (#3533) 2020-08-19 12:52:43 -07:00
Yury Semikhatsky
73cd6ecef3
browser(firefox): add screencast control methods to context (#3530) 2020-08-19 12:43:53 -07:00
Yury Semikhatsky
56da4bb027
devops: make sure rust toolchain is installed (#3485)
Otherwise if required version is not installed the build fails with a cryptic message like
`error: toolchain '1.45.0-x86_64-unknown-linux-gnu' does not support components`
2020-08-19 09:11:28 -07:00
Max Schmitt
8ea280090d
devops: first implementation of browser auto-roll bot (#3455)
Relates #3258

After a chat with @aslushnikov we add this in two iterations. The first one (this PR) is about scheduled runs for testing the latest tip-of-tree version of the browsers daily and the next PR is about opening an automated PRs once its passing (not sure if its worth to add for failing too) or sending Telegram/Slack notifications.

Current status is that Firefox (around 2 hours) and WebKit (around 3-4 hours) works.

Known issues which I fix before we merge:
- ~~Changes in `test/base.fixture.ts` will get extracted in #3453~~

Feel free to review, current blockers are before we can merge:
- ~~#3453~~
- potential git clone optimisation by aslushnikov
2020-08-17 11:23:46 -07:00
Andrey Lushnikov
4dde2882e7
browser(firefox): roll Firefox to August 14 beta (#3465) 2020-08-13 23:14:24 -07:00
Yury Semikhatsky
ae5700b3f3
browser(webkit): do not crop video on Mac headless (#3457) 2020-08-13 16:50:22 -07:00
Joel Einbinder
a4eb86c3df
browser(firefox): update styles when changing color scheme (#3407)
`MediaFeatureValuesChanged` is what their devtools code uses to update the styles. I tried using their code directly, but it doesn't play nicely with navigations so I decided to stick with ours.
2020-08-13 12:16:00 -07:00
Yury Semikhatsky
c27e809a61
chore: suppress trailing whitespace warning in prepare_checkout (#3441) 2020-08-13 10:45:27 -07:00
Andrey Lushnikov
f2088e068a
devops: fix Chromium repackaging to respect symlinks (#3424) 2020-08-12 18:29:37 -07:00
Andrey Lushnikov
884cef734e
browser(chromium): roll Chromium to r796653 (#3419) 2020-08-12 14:59:12 -07:00
Andrey Lushnikov
915902c858
browser(firefox): roll Firefox to roughly July, 15 (#3411) 2020-08-12 10:09:20 -07:00
Dmitry Gozman
da95b73b59
browser(firefox): emit iframe lifecycle when initial navigation fails (#3389) 2020-08-11 16:05:34 -07:00
Yury Semikhatsky
f25449892c
browser(webkit): align GTK implementation with Win (#3377) 2020-08-10 17:11:24 -07:00
Yury Semikhatsky
538daf3302
browser(firefox): exclude frame from screencast video (#3372) 2020-08-10 15:10:12 -07:00
Andrey Lushnikov
8f30d15aca
devops: re-packge chromium on windows without interactive_ui_tests.exe (#3375)
This reduces archive size from 145MB to 97MB.

Fixes #3259
2020-08-10 15:00:37 -07:00
Yury Semikhatsky
89ae8e0fd1
browser(webkit): disable accelerated compositing on Windows (#3360) 2020-08-10 08:29:16 -07:00