Commit Graph

409 Commits

Author SHA1 Message Date
Andrey Lushnikov d278675a62
devops: start using Xcode 13 to compile Firefox (#9401)
It didn't compile withh Xcode 12.2, but does compile with Xcode 13
locally for me.

Moving on to Xcode 13 then.
2021-10-08 13:05:32 -07:00
Andrey Lushnikov 120e919b8e
devops: move building Firefox for Mac Intel to MacOS 11 (#9383) 2021-10-07 16:23:00 -07:00
Andrey Lushnikov 3781faeaaa
chore: fix builds on Apple M1 (#9375)
Apple M1 builders are now updated to the BigSur 11.6.

This patch:
- changes build assertions to validate 11.6 operating system
- changes build archive name to have major version only
- updates `//src/utils/registry.ts` to a new archive name for M1

This affects only M1 builds for Firefox, Firefox-Beta & WebKit.
We should roll these browsers at least once before 1.16 release.
2021-10-07 13:56:08 -07:00
Max Schmitt 5953472899
devops: fix --full command in FF which installs deps (#8878)
Broken since https://github.com/microsoft/playwright/pull/8049

Previously when doing `build.sh --full` it was installing deps + building. Currently when passing `--full` it does not install the deps before, since it tries to compile before.
2021-09-13 08:01:35 -07:00
Max Schmitt 4e95448887
browser(firefox): expose encodedBodySize in requestFinished (#8835) 2021-09-10 08:41:34 -07:00
Andrey Lushnikov 2a07b353dc
browser(firefox): roll Firefox to Firefox Stable 92.0 (#8774) 2021-09-08 06:47:26 -07:00
Andrey Lushnikov 06b69f6a97
browser(firefox): disable background tasks and updater for firefox (#8773)
References #8536
2021-09-08 06:15:22 -07:00
Max Schmitt d9eb37b0b9
browser(firefox): resolve socks DNS on server side (#8723) 2021-09-06 16:34:28 +02:00
Max Schmitt 1762f4c547
browser(firefox): expose protocolVersion in ResponseFinished (#8687) 2021-09-03 11:39:38 -07:00
Andrey Lushnikov 30b6614e5a
browser(firefox): enable SharedArrayBuffer in Firefox builds (#8610) 2021-09-01 12:27:37 +02:00
Andrey Lushnikov 16b0a96e78
chore: enhance repack-juggler (#8586)
Instead of building firefox using `//browser_patches/buid.sh ff-beta`,
one can use `//browser_patches/repack-juggler.mjs ff-beta`.

The script will download the last Playwright build, and repack
Juggler and preferences there.
2021-08-31 04:04:30 -07:00
Andrey Lushnikov dce21f1cc5
chore: re-arrange firefox preferences (#8581)
There's a set of preferenes that's absolutely critical for juggler
to work. Keep these on top and mark them as critical.
2021-08-31 02:15:46 -07:00
Andrey Lushnikov 5901cb321d
browser(firefox): fix file chooser in iframes #8510 (#8510)
References #8016
2021-08-27 09:28:24 -07:00
Joel Einbinder e04ff81921
browser(firefox): Browser.setPlatformOverride (#8440) 2021-08-25 11:45:45 -04:00
Joel Einbinder f7950352b9
browser(firefox): Page.dispatchWheelEvent (#8439) 2021-08-25 11:27:12 -04:00
Joel Einbinder 744a2751de
browser(firefox): disable enterprise policies (#8388) 2021-08-25 10:26:20 -04:00
Dmitry Gozman 4344b3810a
browser(firefox): fix a race between Browser.close and closing context (#8294) 2021-08-18 14:47:21 -07:00
Yury Semikhatsky 90385a7941
browser(firefox): failure response interception (#8194) 2021-08-16 09:36:28 -07:00
Dmitry Gozman dba3c5055f
browser(firefox): support start/stop videos for context (#8173) 2021-08-12 17:17:54 -07:00
Yury Semikhatsky f434c41523
browser(firefox): fulfill intercepted response with empty body (#8152) 2021-08-11 14:39:49 -07:00
Andrey Lushnikov 75d77a82cc devops: fix rust firefox version 2021-08-11 16:01:52 +03:00
Andrey Lushnikov 75dfc15e62
browser(firefox): roll to new Firefox Stable M91 (#8130) 2021-08-10 17:37:57 -07:00
Yury Semikhatsky 128bf7b4d0
chore: update ff version after last commit (#8123) 2021-08-10 15:08:49 -07:00
Yury Semikhatsky f9efc7f8a4
browser(firefox): response interception after redirects (#8107) 2021-08-10 14:43:21 -07:00
Andrey Lushnikov b1b4d7b819
chore: quote all bash variables when used (#8066)
This way bash won't expand and post-process variable values in any way.
The changes are driven with
[`shellcheck`](https://github.com/koalaman/shellcheck)
2021-08-07 05:32:18 -07:00
Andrey Lushnikov 477ef552fb
devops(ff-beta): fix rust installation while building firefox (#8049) 2021-08-06 10:16:14 -07:00
Max Schmitt d03a54da64
browser(firefox): revert devtools flag CLI command (#7717)
revert 786f6c4d31
2021-07-19 17:01:06 +02:00
Andrey Lushnikov e801442f1e
browser(firefox): roll to match Firefox 90 release (#7605)
References #7583
2021-07-14 09:26:43 -07:00
Andrey Lushnikov 34777853f7
devops: enforce hard xcode version match for browser builds (#7591)
Browsers require particular xcode versions to be installed on the host
machine to produce successful build.

This patch starts using explicit xcode versions for all mac browser
builds.
2021-07-13 18:12:53 -07:00
Max Schmitt 786f6c4d31
browser(firefox): introduce auto-open-devtools-for-tabs CLI flag (#7580) 2021-07-13 18:29:35 +02:00
Yury Semikhatsky efb21b9e9f
browser(firefox): support response interception (#7509) 2021-07-09 05:41:53 -07:00
Dmitry Gozman fca965cb98
browser(firefox): properly handle HSTS redirects (#7391)
When Firefox decides to perform an http->https redirect based on HSTS
information, it issues an "internal" redirect and cancels the http request.

Since there is no response for the http request, we forge 307 redirect
in this case, following Chromium lead.

The relevant code is in nsHttpChannel::StartRedirectChannelToHttps.
2021-06-30 12:59:27 -07:00
Max Schmitt 18266722a1
browser(firefox): add Download.cancel (#7390) 2021-06-30 01:29:58 +02:00
Max Schmitt 8fa93ae6be
browser(firefox): add transferSize to Network.requestFinished (#7355) 2021-06-28 21:22:55 +02:00
Andrey Lushnikov 5002420a6f
chore: further enhanced repack-juggler script (#7188)
With this change, the script is now 2-stage:
- first, prepare browser build with `repack-juggler.js --prepare`
- afterwards, run the script to repack tot juggler version with the
  bubild
2021-06-16 17:32:37 -07:00
Andrey Lushnikov bc850b9ef9
feat: enhance repack-juggler.js to autodetect current platform (#7183)
This steals some parts of `//src/util/registry.ts`.
2021-06-16 15:13:51 -07:00
Andrey Lushnikov 04de4ad93e
devops: cleanup browser build configs (#7180)
- certain builds weren't listed in EXPECTED_BUILDS
- wekbit had one unused build configuration
2021-06-16 12:22:33 -07:00
Andrey Lushnikov 58878b584a
devops: introduce `repack-juggler` script (#7092)
This patch adds a new script -
`//browser_patches/firefox/repack-juggler.mjs`

This script lets you test Firefox changes if they are Juggler-specific
without firefox checkout / compilation.

The `repack-juggler.mjs` script does the following:
- downloads the latest build of Firefox-with-juggler
- finds an `omni.ja` file with Juggler files inside
- replaces juggler in omni.ja with the current juggler files in the index
2021-06-15 01:08:13 -07:00
Max Schmitt 9b9091b3fe
browser(firefox): fixed Array.prototype.toJSON workaround (#7018)
References #7015
2021-06-10 17:21:20 -07:00
Max Schmitt 226159defc
browser(firefox): forced-colors media query emulation (#6902) 2021-06-09 01:00:15 +02:00
Andrey Lushnikov 12d8c54e99
chore: swap firefox-stable and firefox (#6950)
With this patch:
- `//browser_patches/firefox` becomes firefox-stable
- `//browser_patches/firefox-stable` becomes firefox-beta

References #6817
2021-06-07 17:05:51 -07:00
Yury Semikhatsky f60b79a311
browser(firefox): do not use Array.prototype.toJSON for serialization (#6767) 2021-05-26 15:38:53 -07:00
Andrey Lushnikov 08773e836b
browser(firefox-beta): roll Firefox to 89.0b15 (#6689) 2021-05-20 15:29:00 -07:00
Max Schmitt b2b45afc22
browser(firefox): override reduced motion no-preference (#6683) 2021-05-20 21:07:39 +02:00
Joel Einbinder 2f9b057525
browser(firefox): partially revert scrollbars patch (#6670) 2021-05-19 18:59:57 -07:00
Max Schmitt 277eca1b98
devops: install all FF system dependencies with --full on build (#6657)
Before that it actually didn't install all needed dependencies and failed after that when starting the compiler suite. WebKit also installs dependencies with apt, so it should be fine to install them on OS level.
2021-05-19 15:16:33 -07:00
Max Schmitt c4a6c2bcab
browser(firefox): added reduced motion emulation (#6618) 2021-05-18 21:23:12 +02:00
Andrey Lushnikov debffa7476
browser(firefox): make Juggler types compliant with protocol viewer (#6626)
Protocol viewer can't handle anonymous objects since it's not clear how
to refer to them.
2021-05-17 21:40:29 -07:00
Joel Einbinder 5b223f92c8
browser(firefox): Browser.setScrollbarsHidden (#6457) 2021-05-14 08:06:34 -07:00
Andrey Lushnikov d02472a9e0
browser(firefox): fix uploads of large files in Firefox (#6547)
- to read post data of requests, we have to read stream
- to restore the stream later on, we have to rewind it back
- however, if the stream is large enough, it cannot be rewound back

This patch starts cloning post data streams if possible to avoid
back-rewinding them later on.

References #4704
2021-05-12 16:27:53 -07:00
Yury Semikhatsky 84031d4a07
browser(firefox): simplify isolated world structures (#6521) 2021-05-12 08:52:08 -07:00
Yury Semikhatsky f8039bed10
browser(firefox): bindings in isolated worlds (#6493) 2021-05-11 09:27:39 -07:00
Pavel Feldman 8d21b12454
browser(firefox): fit screencast images into given frame (#6495) 2021-05-10 22:01:41 -07:00
Dmitry Gozman f1a65820f4
browser(firefox): fix addBinding on pages with CSP (#6470) 2021-05-08 18:06:56 -07:00
Pavel Feldman edd2cc807c browser(ff): migrate screencast to client interfaces 2021-05-07 21:01:01 -07:00
Pavel Feldman 78ec057117
browser(firefox): implement screencast (#6452) 2021-05-06 19:11:42 -07:00
Andrey Lushnikov b1f80bad39
browser(firefox-beta): roll Firefox to v89.0b9 (May 6, 2021) (#6443) 2021-05-06 11:03:58 -07:00
Pavel Feldman 765d74987f
chore(ff): remove some dead code (#6423) 2021-05-05 13:27:51 -07:00
Joel Einbinder 1a58281394
browser(firefox): don't record video outside the viewport (#6361) 2021-05-04 05:33:32 -07:00
Andrey Lushnikov 4e0e13cf05
browser(firefox-beta): roll Firefox to beta 89.0b8 - May 2, 2021 (#6397) 2021-05-04 00:45:07 -07:00
Andrey Lushnikov 6c04b82256
browser(firefox-beta): roll @ beta Apr 29, 2021 - v89.0b6 (#6368) 2021-04-29 16:37:45 -07:00
Yury Semikhatsky b0fae0f831
browser(firefox): merge FrameData into Frame (#6365) 2021-04-29 15:09:10 -07:00
Andrey Lushnikov f4b8c3a848
browser(firefox): disable proton UI for now (#6327)
The new Proton UI breaks certain screencast tests. Disable
this for now.
2021-04-26 10:59:12 -07:00
Dmitry Gozman 10c76ff56f
browser(firefox): fix race between idleTasksFinishedPromise and window closure (#6308) 2021-04-23 16:05:37 -07:00
Andrey Lushnikov 09c35adbd5
browser(firefox): roll firefox-beta to Apr 20, 2021 - version 89.0b2 (#6247) 2021-04-20 13:27:57 -07:00
Andrey Lushnikov 4bec81b111
browser(firefox): roll Firefox to beta @ Apr 6, 2021 (#6111) 2021-04-06 17:25:18 -07:00
Andrey Lushnikov 2c6c816a41
devops: add firefox-ubuntu-20.04 as expected build (#6063) 2021-04-02 21:37:12 -07:00
Joel Einbinder 2357f0b562
browser(firefox): fix bootstrap on bots with --no-interactive (#6047)
The command --no-interactive moved and broke our build. See https://bugzilla.mozilla.org/show_bug.cgi?id=1695272
2021-04-02 07:52:42 -07:00
Andrey Lushnikov d662eba86a
browser(firefox): roll Firefox to beta @ Apr 1, 2021 (#6041)
Merging conflicts:
038f367c30

After this roll, we no longer require our custom `onFrameLocationChanged` instrumentation
since gecko now fixed the `NOTIFY_LOCATION` behavior so that it works
for same-document navigations inside iframes.
2021-04-01 16:49:01 -07:00
Dmitry Gozman 66541552d0
browser(firefox): make dpr emulation optional, take screenshots at 1x (#5555)
- deviceScaleFactor is now optional, so we can use host machine's dpr.
- Screenshots are not scaled up by dpr.
- Removed unused methods.
2021-04-01 14:51:02 -07:00
Joel Einbinder d71c147af7
browser(firefox): fix some missing mac edit commands (#6034) 2021-04-01 11:27:44 -07:00
Andrey Lushnikov cb15603ccb
browser(firefox): do not report console messages twice. (#6031)
References #6001
2021-04-01 09:29:33 -07:00
Ross Wollman 6d6f802e5a
fix: favicon with color pref crashes firefox (#5977) (#5979) 2021-03-29 14:53:18 -07:00
Andrey Lushnikov 1fab84577a
browser(firefox): roll Firefox to beta @ Mar 16, 2021 (#5852) 2021-03-17 00:46:02 -07:00
Andrey Lushnikov 8dc740570a
devops: refactor check_cdn.sh script (#5835)
Introduce `EXPECTED_BUILDS` list in each application folder and use
these lists when determining if all builds are ready.
2021-03-16 01:14:45 -07:00
Andrey Lushnikov 8565e72e63
chore: consolidate browser cheatsheets (#5832) 2021-03-15 17:54:25 -07:00
Joel Einbinder e56f56c11e
browser(firefox): pass null for the data transfer (#5723) 2021-03-04 17:20:45 -08:00
Andrey Lushnikov 28d9f244df
browser(firefox): roll Firefox to Beta @ Feb 28, 2021 (#5659)
Diff merges:
498eaa7a87

Additional changes:
8404fbe1ad
2021-03-02 18:52:19 -08:00
Pavel Feldman 8906ba332c
chore: spell overridden (#5605) 2021-02-24 15:11:34 -08:00
Joel Einbinder e677e7ba4e
browser(firefox): pass drag action test (#5560) 2021-02-23 15:21:29 -08:00
Andrey Lushnikov 496aeeba79
browser(firefox): follow-up with crash reporter disabling (#5534)
Since we now disable crash reporter compilation and don't ship it
with Firefox anymore, we should not attempt to disable it
with preferences.
2021-02-19 21:30:50 -08:00
Andrey Lushnikov bba9fabfe3
browser(firefox): roll Firefox to beta @ Feb 19, 2021 (#5521) 2021-02-19 13:11:05 -08:00
Andrey Lushnikov 18ce95632f
devops: fix firefox build (#5516) 2021-02-19 10:52:12 -08:00
Andrey Lushnikov b2d9af5e15
browser(firefox): properly initialize debugging pipe on windows (#5514)
browser(firefox): properly initialize debugging pipe on windows

Firefox on Windows has 2 launch modes:
- default: a special "launcher process" is used to start browser as a
  sub-process
- non-default: browser process starts right away

Firefox has a logic to detect how successful was the use of the
launcher process to do self-recovery when things go wrong. Namely:
- when attempting to use launcher process, firefox records a timestamp
  of the attempt beginning
- once the launcher process successfully launches browser sub-process,
  firefox records another timestamp of the completion

On a new launch, firefox checks what timestamps are present. If there's
a timestamp that signifies start of launcher process, but no successful
timestamp, it decides that last "launcher process" use was not
successful and falls back to launching browser right away.

When launching 2 firefox processes right away, the first process
uses attempts to use launcher process and records the first timestamp.

At the same time, the second instance sees the first timestamp and
doesn't see the second timestamp, and falls back to launching browser
right away. Our debugging pipe code, however, does not support
non-launcher-process code path.

This patch adds support for remote debugging pipe in case of
non-launcher-process startup.

Drive-by:
- disable crashreporter altogether
- remove stray dcheck that breaks firefox debug compilation
- disable compilation of firefox update agent
- do not use WIN32_DISTRIB flag unless doing full builds since
  it kills incremental compilation


References #4660
2021-02-19 10:32:47 -08:00
Dmitry Gozman 822f7cb1eb
browser(firefox): respect Set-Cookie header from fulfilled request (#5456) 2021-02-15 22:49:57 -08:00
Andrey Lushnikov a42c46b986
browser(firefox): roll Firefox to beta @ Feb 11, 2021 (#5421) 2021-02-11 14:15:26 -08:00
Andrey Lushnikov bbfbb1b2f7
browser(firefox): fix build on Windows (#5275) 2021-02-03 09:50:35 -08:00
Andrey Lushnikov 8d4dc600f8 devops(firefox): properly cleanup old node.js artifact 2021-02-02 23:59:33 -07:00
Andrey Lushnikov 986bddaecc devops(firefox): fix arm build dependency management 2021-02-02 23:03:54 -07:00
Andrey Lushnikov 11f570be61
devops(firefox): fix Firefox on Apple Silicon (#5272)
As per guide at https://docs.google.com/document/d/1N5yfEVEISofMmjAxfj3xXONGwyQYBSilsfXqux_M6TM/edit
2021-02-02 21:53:23 -08:00
Andrey Lushnikov b392c57a53
devops: attempt to install Firefox build deps on buildbots (#5271) 2021-02-02 21:35:12 -08:00
Andrey Lushnikov e53c9c35db
browser(firefox): roll Firefox to beta @ Feb, 1 2021 (#5248) 2021-02-01 15:50:11 -08:00
Andrey Lushnikov 2f29c6b066
browser(firefox): roll Firefox to beta Jan, 18 2021 (#5106) 2021-01-22 12:41:12 +03:00
Andrey Lushnikov 7665a6ec7f
devops: support apple silicon builds of Firefox (#4979) 2021-01-12 03:57:59 +03:00
Andrey Lushnikov 6b94f5f1b9
browser(firefox): roll Firefox to beta @ Jan 5, 2021 (#4904) 2021-01-06 02:49:28 +03:00
Yury Semikhatsky b3e7838582
browser(firefox): clear AuthCache when setting context proxy (#4793) 2020-12-21 15:54:15 -08:00
Andrey Lushnikov 761bd78879
browser(firefox): fix build on MacOS (#4758) 2020-12-17 21:02:01 -08:00
Andrey Lushnikov 0af34a4f0b
devops: firefox build now requires newer MacOS SDK to build against (#4732) 2020-12-15 16:27:34 -08:00
Andrey Lushnikov 5f6ccee742
browser(firefox): roll Firefox to beta Dec 14, 2020 (#4716)
Merge conflicts: 57ba98733f
2020-12-14 15:28:48 -08:00
Andrey Lushnikov 17f1b20f39
devops: trigger all builds with new windows buildbot (#4638) 2020-12-08 11:03:11 -08:00