aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNatanael Copa <ncopa@alpinelinux.org>2021-12-03 23:31:12 +0100
committerNatanael Copa <ncopa@alpinelinux.org>2021-12-03 23:36:26 +0100
commiteb22c8d7389b4ec5159bcfefcd4043084075ce2b (patch)
treea0434c7277601a8a022a3f281608dea37a990645
parent0e1e3d6610438aafc55cd722f5c31c3c71577c62 (diff)
downloadaports-eb22c8d7389b4ec5159bcfefcd4043084075ce2b.tar.gz
aports-eb22c8d7389b4ec5159bcfefcd4043084075ce2b.tar.bz2
aports-eb22c8d7389b4ec5159bcfefcd4043084075ce2b.tar.xz
community/chromium: upgrade to 96.0.4664.45
enable pulseaudio and pipewire
-rw-r--r--community/chromium/APKBUILD131
-rw-r--r--community/chromium/aarch64-fixes.patch11
-rw-r--r--community/chromium/chromium-96-CommandLine-include.patch24
-rw-r--r--community/chromium/chromium-96-CouponDB-include.patch25
-rw-r--r--community/chromium/chromium-96-RestrictedCookieManager-tuple.patch31
-rw-r--r--community/chromium/chromium-VirtualCursor-standard-layout.patch216
-rw-r--r--community/chromium/chromium-harfbuzz-3.0.0.patch20
-rw-r--r--community/chromium/chromium-revert-drop-of-system-java.patch (renamed from community/chromium/revert-2778794.patch)7
-rw-r--r--community/chromium/chromium-revert-ffmpeg-roll.patch31
-rw-r--r--community/chromium/chromium-use-alpine-target.patch36
-rw-r--r--community/chromium/clang-no-format.patch48
-rw-r--r--community/chromium/default-pthread-stacksize.patch14
-rw-r--r--community/chromium/disable-floc-component.patch15
-rw-r--r--community/chromium/fix-bits-stdint-intn-include.patch11
-rw-r--r--community/chromium/fix-missing-includes.patch60
-rw-r--r--community/chromium/fix-narrowing-cast.patch37
-rw-r--r--community/chromium/fix-unittests-base.patch66
-rw-r--r--community/chromium/fix-unittests-net-py2tests.patch1023
-rw-r--r--community/chromium/fix-unittests-net.patch259
-rw-r--r--community/chromium/gcc-fno-delete-null-pointer-checks.patch17
-rw-r--r--community/chromium/gdbinit.patch4
-rw-r--r--community/chromium/musl-fixes.patch164
-rw-r--r--community/chromium/musl-libc++.patch8
-rw-r--r--community/chromium/musl-stat.patch12
-rw-r--r--community/chromium/no-execinfo.patch8
-rw-r--r--community/chromium/no-getcontext.patch (renamed from community/chromium/musl-fixes-breakpad.patch)0
-rw-r--r--community/chromium/no-mallinfo.patch66
-rw-r--r--community/chromium/quiche-arena-size.patch8
-rw-r--r--community/chromium/remove-strip_binary.patch32
-rw-r--r--community/chromium/remove-unsupported-attribute.patch27
-rw-r--r--community/chromium/resolver.patch60
-rw-r--r--community/chromium/revert-use-ffile-compilation-dir.patch48
-rw-r--r--community/chromium/skia-harfbuzz-3.0.0.patch100
-rw-r--r--community/chromium/strip-binary.patch20
-rw-r--r--community/chromium/swiftshader.patch33
-rw-r--r--community/chromium/unbundle-fix-visibility-of-build-config-freetype.patch31
-rw-r--r--community/chromium/use-deprecated-ffmpeg-api.patch12
37 files changed, 763 insertions, 1952 deletions
diff --git a/community/chromium/APKBUILD b/community/chromium/APKBUILD
index 6c9254b9db..b3f45022b3 100644
--- a/community/chromium/APKBUILD
+++ b/community/chromium/APKBUILD
@@ -1,8 +1,8 @@
# Contributor: Carlo Landmeter <clandmeter@alpinelinux.org>
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=chromium
-pkgver=93.0.4577.82
-pkgrel=2
+pkgver=96.0.4664.45
+pkgrel=0
pkgdesc="Chromium web browser"
url="https://www.chromium.org/Home"
arch="aarch64 x86_64" # x86: ./v8_context_snapshot_generator segfaults
@@ -65,6 +65,8 @@ makedepends="
opus-dev
pciutils-dev
perl
+ pipewire-dev
+ pulseaudio-dev
python3
re2-dev
snappy-dev
@@ -88,14 +90,14 @@ source="https://commondatastorage.googleapis.com/chromium-browser-official/chrom
default-pthread-stacksize.patch
musl-fixes.patch
- musl-fixes-breakpad.patch
+ no-getcontext.patch
musl-hacks.patch
musl-libc++.patch
musl-sandbox.patch
no-execinfo.patch
no-mallinfo.patch
resolver.patch
- swiftshader.patch
+ musl-stat.patch
chromium-use-alpine-target.patch
media-base.patch
@@ -103,32 +105,31 @@ source="https://commondatastorage.googleapis.com/chromium-browser-official/chrom
musl-v8-monotonic-pthread-cont_timedwait.patch
nasm.patch
- gcc-fno-delete-null-pointer-checks.patch
gcc-arm.patch
- aarch64-fixes.patch
elf-arm.patch
- remove-unsupported-attribute.patch
- fix-missing-includes.patch
- revert-2778794.patch
fix-narrowing-cast.patch
use-deprecated-ffmpeg-api.patch
- clang-no-format.patch
- disable-floc-component.patch
-
- fix-unittests-base.patch
fix-unittests-sandbox.patch
- fix-unittests-net.patch
- fix-unittests-net-py2tests.patch
+
+ chromium-revert-drop-of-system-java.patch
scoped-file.patch
- strip-binary.patch
+ remove-strip_binary.patch
gdbinit.patch
quiche-arena-size.patch
- chromium-harfbuzz-3.0.0.patch
- skia-harfbuzz-3.0.0.patch
- "
+ unbundle-fix-visibility-of-build-config-freetype.patch
+ revert-use-ffile-compilation-dir.patch
+ chromium-96-CommandLine-include.patch
+ chromium-96-RestrictedCookieManager-tuple.patch
+ chromium-96-CouponDB-include.patch
+ fix-bits-stdint-intn-include.patch
+ chromium-VirtualCursor-standard-layout.patch
+ chromium-revert-ffmpeg-roll.patch
+"
+
+
# secfixes:
# 93.0.4577.82-r0:
@@ -339,8 +340,12 @@ else
_is_component_build=false
fi
+upstream_version() {
+ curl --silent https://omahaproxy.appspot.com/all \
+ | awk -F, '$1 == "linux" && $2 == "stable" {print $3}'
+}
+
prepare() {
- patch_args="-p0"
default_prepare
cd "$srcdir"/"chromium-$pkgver"
@@ -392,6 +397,13 @@ prepare() {
$use_system
python3 third_party/libaddressinput/chromium/tools/update-strings.py
+ # prevent annoying errors when regenerating gni
+ sed -i 's,^update_readme$,#update_readme,' \
+ third_party/libvpx/generate_gni.sh
+
+ # allow system dependencies in "official builds"
+ sed -i 's/OFFICIAL_BUILD/GOOGLE_CHROME_BUILD/' \
+ tools/generate_shim_headers/generate_shim_headers.py
}
_gn_flags() {
@@ -416,47 +428,53 @@ build() {
local _c _ca
_c=$(_gn_flags \
- blink_symbol_level=0 \
+ blink_symbol_level=$_symbol_level \
+ build_with_tflite_lib=false \
+ chrome_pgo_phase=0 \
clang_use_chrome_plugins=false \
custom_toolchain=\"//build/toolchain/linux/unbundle:default\" \
+ disable_fieldtrial_testing_config=true \
enable_hangout_services_extension=true \
- enable_nacl_nonsfi=false \
enable_nacl=false \
+ enable_nacl_nonsfi=false \
enable_precompiled_headers=false \
+ enable_vr=false \
fatal_linker_warnings=false \
ffmpeg_branding=\"Chrome\" \
- fieldtrial_testing_like_official_build=true \
gold_path=\"/usr/bin/ld.gold\" \
google_api_key=\"$_google_api_key\" \
google_default_client_id=\"$_google_default_client_id\" \
google_default_client_secret=\"$_google_default_client_secret\" \
host_toolchain=\"//build/toolchain/linux/unbundle:default\" \
icu_use_data_file=true \
+ is_cfi=false \
is_clang=true \
is_component_build=$_is_component_build \
is_debug=$_is_debug \
+ is_official_build=true\
+ link_pulseaudio=true \
proprietary_codecs=true \
+ rtc_use_pipewire=true \
symbol_level=$_symbol_level \
treat_warnings_as_errors=false \
- use_allocator_shim=false \
use_allocator=\"none\" \
+ use_allocator_shim=false \
+ use_cfi_icall=false \
use_cups=true \
use_custom_libcxx=false \
use_gnome_keyring=false \
use_gold=false \
use_lld=true \
- use_pulseaudio=false \
+ use_pulseaudio=true \
use_sysroot=false \
- use_system_harfbuzz=true \
use_system_freetype=true \
use_system_harfbuzz=true \
+ use_system_lcms2=true \
use_system_libdrm=true \
use_system_libjpeg=true \
use_system_libpng=true \
- use_system_lcms2=true \
use_system_zlib=true \
- build_with_tflite_lib=false \
- enable_vr=false \
+ use_thin_lto=false \
)
case $CARCH in
@@ -486,7 +504,7 @@ build() {
ulimit -n 2048
# finish rest of the build
- ninja -C out/$_buildtype chrome chrome_sandbox chromedriver
+ ninja -C out/$_buildtype chrome chrome_sandbox chromedriver chrome_crashpad_handler
if [ -n "$CHECK" ]; then
ninja -C out/$_buildtype \
@@ -606,7 +624,7 @@ package() {
# binaries
install -Dm755 chrome "$pkgdir"/usr/lib/$pkgname/chrome
install -Dm4755 chrome_sandbox "$pkgdir"/usr/lib/$pkgname/chrome-sandbox
- install -Dm755 crashpad_handler "$pkgdir"/usr/lib/$pkgname/crashpad_handler
+ install -Dm755 chrome_crashpad_handler "$pkgdir"/usr/lib/$pkgname/chrome_crashpad_handler
# resources
install -Dm644 snapshot_blob.bin "$pkgdir"/usr/lib/$pkgname/
@@ -701,46 +719,43 @@ angle() {
}
sha512sums="
-730e4a316fee4a5be1bf95301cf25c0c1d192ceeb661f051c1d74b7083fe928f1c5fd24c744cbbda6ef39c9edc64607a2621644e153e5e3de2201b5ac60e4d64 chromium-93.0.4577.82.tar.xz
+0b1ccaf95697c14cb080dcb22e8584817ddcd98e704d081bc4f35a22dcfc8cca82dcabc4b82ad89ed0cd64752d226f389941bfab33b615e3948e2f778b9d9028 chromium-96.0.4664.45.tar.xz
f554ccc5d8a5c066634357878c89944cc591809ea6f6c6ef5b35e970e9674e0b3be8fddb06c0d333ddc65211fa09ae5e0b4b483ca70048156c29607c5487c017 test_fonts-cd96fc55dc243f6c6f4cb63ad117cad6cd48dceb.tar.gz
b9a810416dd7a8ffc3a5ced85ad9acebda1665bd08a57eec7b189698cc5f74d2c3fd69044e20fcb83297a43214b2772a1312b2c6122ea0eb716abacf39524d60 chromium-launcher.sh
f6d962b9e4c22dd42183df3db5d3202dab33eccecafb1bf63ca678147289581262db1e5e64cbe8f9c212beefb0a6717bb8d311e497f56b55fe95b8bab2db493f chromium.conf
e182c998a43d22d1c76a86c561619afd1fca8c2be668265ad5e2f81a3806f7a154272cc027a2f8b370fb69446892c69e5967a4be76082325c14245ee7915234c chromium.desktop
2d8237a940ea691bd10b08315429677a587f7ef9692a0cca53bfd066eae82998a6c71f402a8669e9de39f94d7f3280745d1628ea6eac5d76ca7116844d4e0dac google-api.keys
-7a7efd7617b0f2950ccc75293639a7bf94c6325ca69705e7fe68b8b6f679f25d47d4a2b1206ee20e911789a38d0d9bf842b98dfd7b04c492122925fa69d27f1c default-pthread-stacksize.patch
-838debc14136707cb4209d5e00484392bcb06639a435c2d13e4062587cbe903ad851c9eba64c2b93263b5ed7b9e1eebec7565c844d59af74689fc0bf9138eabb musl-fixes.patch
-e8675aff9fccd8b58cc839ef1d9e0e022d66aa94f72baa72e7acf92ceb2691f6a7907cc60ec3a87f894efdd639a3dec7fe702c97d446fcdea99452caec57e002 musl-fixes-breakpad.patch
+832598bf84b53c0fb3f9c99359388b8ed430fc05dfc763450404b6e0127b658c6da09c08fe315bb57553114bbbc7d814f302844366fd29424dd6b469ba696505 default-pthread-stacksize.patch
+e802ec47e43ffddc986a18c9855383bb41f15d721dbbca84369217bc4656e3be2e692b7a85b1d4b6c41876a4c7efef85ea00c769a88af54239e076d5d62b6c18 musl-fixes.patch
+e8675aff9fccd8b58cc839ef1d9e0e022d66aa94f72baa72e7acf92ceb2691f6a7907cc60ec3a87f894efdd639a3dec7fe702c97d446fcdea99452caec57e002 no-getcontext.patch
798ed4cd9b6a1113200e5ad91073f6affebc66ed8c1bd56bc87ffbacf3117ee1fedd41889d75a2853291c01dfcc2e942b88a41209454fa359fc585b3cc2d906f musl-hacks.patch
-919f13a2cd65673f267321cf95c5410e65bc5264d6704d0791b25d39111282bedb425bd9824dde3b67422cfb874c86a9383ded686e39cfd4aac239edaf41cfc8 musl-libc++.patch
+a361989c7ff4a285ed36c499e4fe1e97ed8d904a9b92f8d3c01b056b469490b7d215b6edb803ba3b0955633f58f3682d4fb60cc710cba68153a6b23df3ba7ba9 musl-libc++.patch
ef43fa90b05e2407b6daa822193121cdeef6ee9068175572f0928f156f186be9c77539dfa06863adfaa25afd498ec1b5081f9e476543616f9472b9033fd921dc musl-sandbox.patch
-1762308e6d378fa299c841785405895545a44f71d78cd30500b0d220108d9748f2b4bb4200a82a96638ab380b8ef96bb02fe97c4092f510e20c320e4909447c6 no-execinfo.patch
-2b4708a5db420c8745d7f79e18f3c4e0043cdb7d6ded2a11060fbde2fb771ca8287048470e3bdce784d6c596d2e4ee164b9ba82b61681d114c13379ef9be0487 no-mallinfo.patch
-3a7810105c45c84563efb6c739d9fff8c3645ae70a168b2c47aa375c4d6960ba4287e339243cb8ec50809522ab40f57d8cc6f471ff4390b8aa747cc1a7af65aa resolver.patch
-f4265df7532625070c51ac43466e3e0f21e696f90c3b6040ef62a21defa7666203ff8219d9c9a5bebc011024aff300fbcbd941cebd0df59c4bc068d8f290221e swiftshader.patch
-9acaf25823b9245489bd1f04f77f529e8c69b3231d2d147fae86d140f0344029d28816e03b5705d23817fc30b97400d040d68ce13b68a5510432b5293b24cbcc chromium-use-alpine-target.patch
+7aa351e79c29de63972f1f16fbab0465b2569bc0a22174780988e0cdfe4fcaff3c664dd277937bb33f2b77f108d20afa8720c427524b09d26074f9cf6807e147 no-execinfo.patch
+3646907cdc6dd766eebc5c7a59302e6ae59a27467316e24bcd7632d661be7471ac444d23ffff5b46fdd83dd1f3973d154dcba4d6beba475b3d1da0b14a0321c1 no-mallinfo.patch
+9f866f1e5052a5cf4bd2fc50a0bf1faa4fcd3d22983822d47296f367b399d24c4033fd679052e39d0bbf1cb895de6192273001a9f24ffad2fb4c8dc1142e953e resolver.patch
+6bf334f462caea4b779b436151bfccc965c93788001ad6c42a226b3f55b6b7ddaa0f11db8dcc1b7d447ff0f10ccb83e11ebf66a6c8bd4f4463004921be5fd94f musl-stat.patch
+06ee9c99d52710817f43c37c8cab0d32a7a608e973d42898e4ae208e84f34988f738a615e4ae3f111981e36ef5b9b50cd49c46c8b7712f7226e216ac206350ad chromium-use-alpine-target.patch
599f5ef338b5797e04436bdc88921c31365d2dea2613d40053be6e774f654e2889efb0c0bd55c2c5044a6805510fbc337da555971169a75d584fac93e18256ac media-base.patch
2e5a83826239849d096aead033eb519338b84e6fbbf58abfcd7cfe40d0b3070b66bcc825ec84406484d73d1a333f1b9d23a8ab44987ab5c8b187076c84cd668b musl-crashpad.patch
556cc2ba28184a75745f13c673605327f5be590be179eb3f941dc0abded854a814e5da1432a28fb8d4dcdcd66ffd4c94ee1a8824d2cd93b632f48e9310dbc3fa musl-v8-monotonic-pthread-cont_timedwait.patch
7957aae04e8ef3badbc98c982ba1acb1b9ef5e665440116c704512f11554d7b64ba3643b7ff7d00476a6686324033b0cf762deb78ce798619226380953b9dc9c nasm.patch
-56a357668c0928bc488ccec8f53fd37fccbaefe0a185ceaf067c8c39e0fae3d2b61ca010ccabc785bec0f2e86b19f37cebb3ac344225aa8d7651c822e48c6064 gcc-fno-delete-null-pointer-checks.patch
ad4ddc25df7aa1de2038b7adb86d27679ecdb7e3e16c0eec994e947a08c41504b6fb41166f7868ff5f58ce8191c78800cbb91d259c864840fa5af1d7ba5d43a1 gcc-arm.patch
-cc67d2a77910663e5a1ad5f66606ee2544867aa1fef25e1a1bc355a8db765d5928edb72f158e6a2ece4195c9b62b875dcdcab4e4055e7611edab405e8cfd658e aarch64-fixes.patch
9b1441fe42421ef9ead86a5143bf997d989bd53a8969cdfdf4e0c45f847efc8c1d127e15fb05e2ef5dbefbb228cbdc2849404d74997ca56265599e12e5efd6e4 elf-arm.patch
-51fabfc4725ab13f626653c1cc91a70df5e60477351ac1fe7f94bc9f1b1f8fb32d984ba4657f0384f53de620b7dd4aa154c6f2f104c4c42fcfe2f9721ba5ea1f remove-unsupported-attribute.patch
-11876fd8c1614ff394f9e0c07982caf50b70673a29432343c9bae3523144cba02e0e61cee76444780b5ab6680037a143f609ec8eba176c7c7bc20445cc6f5efb fix-missing-includes.patch
-2f976087c7f9b685d7526c6ccfe662ba642189b5044224e662e6965d9dfa5ba5b96f8bb7ebef1cb225356e7f63427288b42f12e9842d432164de9ac74642805a revert-2778794.patch
-1745907170ceacafcee9f18bb4d8c5b9f97f609fd0519058546827366612a1ea05df3ef2a6f581dbeac94f85a3e537a86bd887454ff335d5c148a34e1fcb4334 fix-narrowing-cast.patch
-b656e0714805a35f4fe1d727b8fb7b62c9f2ae0a29835130e211853a5472d58ab3dcae4f780c59249fe324143cfb9d41c441ed33ec7a7bc885afff8e8c62de70 use-deprecated-ffmpeg-api.patch
-6e88b89d9644e3c6e4ab88d79ec7c755c1db7cea0a396aa06236635202c129dbc4f41f2cceec76174437e3446a1135b8308b5b816ab138980934438d54b39bee clang-no-format.patch
-f2291a1fb233615cf0eb2e1fac61307a8e6dc1981eb60f3f4f91e4318dfbc2ce8d96660cd355d397882b06fe4d66a091247c9affc30e19d17190cfe3ac155352 disable-floc-component.patch
-0b88dfe4456966e51385af08a49840ca591f66812be37c708ec5473b9f6ee18964a069ab90b1e4d009938c91c693fd48bd3950bd73d75b95e70738f8fd691e87 fix-unittests-base.patch
+e60f381c557a15598d71e33b7aacc63be4a8e17b16cdd95047df5e5e9577ad925864ffd64597d5dbc9a4516de13b3f17c26099b36692165df8c66b1b4d399ce9 fix-narrowing-cast.patch
+ce562436249c4caf275c59aaa4e19ac910af26d11e7e053c6fe281ddd2ad9e1f1046e2a5be9567f8880d6901879bc86a61145cf1cc604816f5e1f9afb851577c use-deprecated-ffmpeg-api.patch
54f07ee9d85577e284e04460e79132fa6769251ceb045561cea811dde0369e9e4cdbcf26566235b0d12c649be4d46fea294f7c6a4e2a75109dc3282e6e7d7993 fix-unittests-sandbox.patch
-805319867214c997a262b0eee161c2efe9f46420b2d244083f186977c7ffa413526161682759fbfcc7bb5845bcf9624557c2f496dc560bd4d85ab71a9e47c305 fix-unittests-net.patch
-94d48612e98063f0b4589aadbc74d681170c0672df643d7e97485e947c92bf8437e7962323dc2940a4a36b7dcb009ed25d58654877e04644c13f9a9bd13ba99c fix-unittests-net-py2tests.patch
+c4654d5b23c6f5d9502507e534fe1951d6749c62251e49b6adfe10d1569431e7f7a5a6fa5ff09ec30984415ced27a5e20985df8c91295de34af3c84557fa5b91 chromium-revert-drop-of-system-java.patch
8d11b2ba811fdd6280784bfafcef073238324941b4c33e7c9a5ccfde8506242d06e5136d697f047bab3838b43a666f1da404af7b4f4ff9a0c6bf6bdb8448e5b2 scoped-file.patch
-7ab510eb458c5e736237c8b0251b13677d78653c75cc693e54d0885695ce8578f65b5f96b95886c3993dcfa6987eac0c9f90309545b701005a8da20261033496 strip-binary.patch
-b2684e64c7fc248ab8ddbd942326353ecfa2fa4195d2b96434d9dae52e11dadb8d81f0ecc740d13232fd73324318d8b4831ea08ce788106ec762e53df545e743 gdbinit.patch
-18e642f377d5fe0c76271b7f316ee3c96304ebeb25d54cca2905bc70d676a8327594f0a11acef24be8a6994212974ac1779f1289b5d55a1c1ca2353e37516cb1 quiche-arena-size.patch
-6df3b63f41d42de7d2c49f703d521659eb14151f77d07b76b2056a0a1a113dd1b9fc0ba070e7749eb659d210cade6b1052fabad4132a7def0f2a1414dcb86d91 chromium-harfbuzz-3.0.0.patch
-f40566ae6a50ab522432f2c579d4825bb1ab38f8365166dd53fa4fb91f2f0eb77ccdd88c3078badd56531ed5f68f7d1dc4347f1f02c849379e41dada672c30e9 skia-harfbuzz-3.0.0.patch
+91dafba2138175b6618ec4c96c7ea39f3a26f6a09b69adabad4f9355dd84d436f3de3274b31465d5f46deeb452fde64e4cfbbda0bb4ed7e9a25d953e1b73e5d2 remove-strip_binary.patch
+82f2bd4aa613e792d3af6e7a8632e0920cf48504a7572fb97d5480ea182fa125fe526e7df1ce4311b5d139a3f78da0f0b54605fbd09d7cd43135906a7639e47f gdbinit.patch
+ad10d3ac758b43caf034791ea50e4588f4979a07a9c4f71763d4987750db261f22cccb30279899878b14e8c9b9aef66fd81f1686e7198768db7513e340aa65ee quiche-arena-size.patch
+c0d3db69dfc05939e4eaf7a4ce7945f67993b49ca7d4ec7617793ab6175bb64bd7b8624ce278101307b7c2089c8505bb0b71f0db5c7ee483d1a03e1477c6a0a3 unbundle-fix-visibility-of-build-config-freetype.patch
+2fdd0b2fd403dd4440533288f7e08bb8480702c42c7571ea764aac18ba5eaf72494793c77e4244991d12f45e5acfceae0772995b11d323916c07cb53c43a2f59 revert-use-ffile-compilation-dir.patch
+18ab7dbec896e13b928acb3fd70e49849bb31c0f077f69fbcf93d2c06672e90774e7058946361838eab0246b3ca4a59dda2483057ca46459c210b4fb4cd21b04 chromium-96-CommandLine-include.patch
+231bd3d084f0937342f675fc3157b146c637cf3beabefc64c462860046e86a688d5e875f2f4748353c19f1564d4daf61bd615ebdd22556fcaf5608d0ec0f5344 chromium-96-RestrictedCookieManager-tuple.patch
+4661b1c9bdd165d4e872489ecc4b2b8f335ea14545567f083badaa2e6d13a5c6d43e00ca6a517d0e70988ca305c1edd5f66ac2df7413eec125c9b166c36ba862 chromium-96-CouponDB-include.patch
+dc8dd75fc178f12f0f13ccac7e519e6b4ce34e6815b30aca1b9660d731a5db4e81223f104611ca3d76f7b626c45c138a09c481922d595d06a00b961e99231660 fix-bits-stdint-intn-include.patch
+0fc131ef4ad32964815744080f40cc2566c70da1cd4ddaf1da8456d1c86e67e3ebf38f43208d17d40b646744e8e662f5b314e236a1c90bc6f8b936313e42a3cf chromium-VirtualCursor-standard-layout.patch
+9a8e17f442ff162448a7a1b36765991e7da3bfce904ba9c45618b6a78a909dc47c061bdb7d7762f93153f16685b60070c4b98b7af7544e87393c19551b064e6b chromium-revert-ffmpeg-roll.patch
"
diff --git a/community/chromium/aarch64-fixes.patch b/community/chromium/aarch64-fixes.patch
deleted file mode 100644
index f0a73b6bfa..0000000000
--- a/community/chromium/aarch64-fixes.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- third_party/swiftshader/third_party/llvm-10.0/configs/linux/include/llvm/Config/config.h
-+++ third_party/swiftshader/third_party/llvm-10.0/configs/linux/include/llvm/Config/config.h
-@@ -125,7 +125,7 @@
- /* #undef HAVE_MALLCTL */
-
- /* Define to 1 if you have the `mallinfo' function. */
--#define HAVE_MALLINFO 1
-+// #define HAVE_MALLINFO 1
-
- /* Define to 1 if you have the <malloc/malloc.h> header file. */
- /* #undef HAVE_MALLOC_MALLOC_H */
diff --git a/community/chromium/chromium-96-CommandLine-include.patch b/community/chromium/chromium-96-CommandLine-include.patch
new file mode 100644
index 0000000000..2d7b7e9023
--- /dev/null
+++ b/community/chromium/chromium-96-CommandLine-include.patch
@@ -0,0 +1,24 @@
+From 39e6e77798d86033e5eb1fb2a2caf20a5bca2262 Mon Sep 17 00:00:00 2001
+From: Stephan Hartmann <stha09@googlemail.com>
+Date: Sat, 9 Oct 2021 08:27:04 +0000
+Subject: [PATCH] IWYU: add memory for std::unique_ptr in base::CommandLine
+
+---
+ base/command_line.h | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/base/command_line.h b/base/command_line.h
+index 706726a..ad02812 100644
+--- a/base/command_line.h
++++ b/base/command_line.h
+@@ -19,6 +19,7 @@
+ #include <stddef.h>
+ #include <functional>
+ #include <map>
++#include <memory>
+ #include <string>
+ #include <vector>
+
+--
+2.32.0
+
diff --git a/community/chromium/chromium-96-CouponDB-include.patch b/community/chromium/chromium-96-CouponDB-include.patch
new file mode 100644
index 0000000000..41acfb31b9
--- /dev/null
+++ b/community/chromium/chromium-96-CouponDB-include.patch
@@ -0,0 +1,25 @@
+From 3a7b8dd0fcceffcfd0ea7e3186d2850deed7a00b Mon Sep 17 00:00:00 2001
+From: Stephan Hartmann <stha09@googlemail.com>
+Date: Wed, 6 Oct 2021 15:36:47 +0000
+Subject: [PATCH] IWYU: add vector for std::vector in CouponDB
+
+---
+ chrome/browser/commerce/coupons/coupon_db.h | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/chrome/browser/commerce/coupons/coupon_db.h b/chrome/browser/commerce/coupons/coupon_db.h
+index f0758f4..93e2dd3 100644
+--- a/chrome/browser/commerce/coupons/coupon_db.h
++++ b/chrome/browser/commerce/coupons/coupon_db.h
+@@ -5,6 +5,8 @@
+ #ifndef CHROME_BROWSER_COMMERCE_COUPONS_COUPON_DB_H_
+ #define CHROME_BROWSER_COMMERCE_COUPONS_COUPON_DB_H_
+
++#include <vector>
++
+ #include "base/callback_helpers.h"
+ #include "base/memory/weak_ptr.h"
+ #include "url/gurl.h"
+--
+2.32.0
+
diff --git a/community/chromium/chromium-96-RestrictedCookieManager-tuple.patch b/community/chromium/chromium-96-RestrictedCookieManager-tuple.patch
new file mode 100644
index 0000000000..cbdca44b73
--- /dev/null
+++ b/community/chromium/chromium-96-RestrictedCookieManager-tuple.patch
@@ -0,0 +1,31 @@
+From 86b1886673c3e75d3a7b8c802b3e9fa6ea945a1e Mon Sep 17 00:00:00 2001
+From: Jose Dapena Paz <jdapena@igalia.com>
+Date: Fri, 08 Oct 2021 06:32:55 +0000
+Subject: [PATCH] libstdc++: no implicit conversion from tuple created with std::tie to an std::pair in restricted cookie manager.
+
+Fix compilation error:
+ ../../services/network/restricted_cookie_manager.cc:164:30: error: no match for ‘operator[]’ (operand types are ‘network::CookieAccessesByURLAndSite’ {aka ‘std::map<std::pair<GURL, net::SiteForCookies>, std::unique_ptr<std::set<net::CookieWithAccessResult, network::CookieWithAccessResultComparer> > >’} and ‘std::tuple<const GURL&, const net::SiteForCookies&>’)
+
+There is no conversion from tuple to pair.
+
+Bug: 957519
+Change-Id: Idf29c7b21895ae28f45b35d6193ab4ac555945c8
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3211752
+Reviewed-by: Robbie McElrath <rmcelrath@chromium.org>
+Commit-Queue: José Dapena Paz <jdapena@igalia.com>
+Cr-Commit-Position: refs/heads/main@{#929597}
+---
+
+diff --git a/services/network/restricted_cookie_manager.cc b/services/network/restricted_cookie_manager.cc
+index 425426f..c8c10c6 100644
+--- a/services/network/restricted_cookie_manager.cc
++++ b/services/network/restricted_cookie_manager.cc
+@@ -161,7 +161,7 @@
+ const GURL& url,
+ const net::SiteForCookies& site_for_cookies) {
+ std::unique_ptr<CookieAccesses>& entry =
+- recent_cookie_accesses_[std::tie(url, site_for_cookies)];
++ recent_cookie_accesses_[std::make_pair(url, site_for_cookies)];
+ if (!entry) {
+ entry = std::make_unique<CookieAccesses>();
+ }
diff --git a/community/chromium/chromium-VirtualCursor-standard-layout.patch b/community/chromium/chromium-VirtualCursor-standard-layout.patch
new file mode 100644
index 0000000000..721e19413b
--- /dev/null
+++ b/community/chromium/chromium-VirtualCursor-standard-layout.patch
@@ -0,0 +1,216 @@
+diff --git a/sql/recover_module/btree.cc b/sql/recover_module/btree.cc
+index 9ecaafe..839318a 100644
+--- a/sql/recover_module/btree.cc
++++ b/sql/recover_module/btree.cc
+@@ -135,16 +135,25 @@
+ "Move the destructor to the .cc file if it's non-trival");
+ #endif // !DCHECK_IS_ON()
+
+-LeafPageDecoder::LeafPageDecoder(DatabasePageReader* db_reader) noexcept
+- : page_id_(db_reader->page_id()),
+- db_reader_(db_reader),
+- cell_count_(ComputeCellCount(db_reader)),
+- next_read_index_(0),
+- last_record_size_(0) {
++void LeafPageDecoder::Initialize(DatabasePageReader* db_reader) {
++ DCHECK(db_reader);
+ DCHECK(IsOnValidPage(db_reader));
++ page_id_ = db_reader->page_id();
++ db_reader_ = db_reader;
++ cell_count_ = ComputeCellCount(db_reader);
++ next_read_index_ = 0;
++ last_record_size_ = 0;
+ DCHECK(DatabasePageReader::IsValidPageId(page_id_));
+ }
+
++void LeafPageDecoder::Reset() {
++ db_reader_ = nullptr;
++ page_id_ = 0;
++ cell_count_ = 0;
++ next_read_index_ = 0;
++ last_record_size_ = 0;
++}
++
+ bool LeafPageDecoder::TryAdvance() {
+ DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
+ DCHECK(CanAdvance());
+diff --git a/sql/recover_module/btree.h b/sql/recover_module/btree.h
+index d76d076..33114b0 100644
+--- a/sql/recover_module/btree.h
++++ b/sql/recover_module/btree.h
+@@ -102,7 +102,7 @@
+ //
+ // |db_reader| must have been used to read an inner page of a table B-tree.
+ // |db_reader| must outlive this instance.
+- explicit LeafPageDecoder(DatabasePageReader* db_reader) noexcept;
++ explicit LeafPageDecoder() noexcept = default;
+ ~LeafPageDecoder() noexcept = default;
+
+ LeafPageDecoder(const LeafPageDecoder&) = delete;
+@@ -150,6 +150,15 @@
+ // read as long as CanAdvance() returns true.
+ bool TryAdvance();
+
++ // Initialize with DatabasePageReader
++ void Initialize(DatabasePageReader* db_reader);
++
++ // Reset internal DatabasePageReader
++ void Reset();
++
++ // True if DatabasePageReader is valid
++ bool IsValid() { return (db_reader_ != nullptr); }
++
+ // True if the given reader may point to an inner page in a table B-tree.
+ //
+ // The last ReadPage() call on |db_reader| must have succeeded.
+@@ -163,14 +172,14 @@
+ static int ComputeCellCount(DatabasePageReader* db_reader);
+
+ // The number of the B-tree page this reader is reading.
+- const int64_t page_id_;
++ int64_t page_id_;
+ // Used to read the tree page.
+ //
+ // Raw pointer usage is acceptable because this instance's owner is expected
+ // to ensure that the DatabasePageReader outlives this.
+- DatabasePageReader* const db_reader_;
++ DatabasePageReader* db_reader_;
+ // Caches the ComputeCellCount() value for this reader's page.
+- const int cell_count_ = ComputeCellCount(db_reader_);
++ int cell_count_;
+
+ // The reader's cursor state.
+ //
+diff --git a/sql/recover_module/cursor.cc b/sql/recover_module/cursor.cc
+index 0029ff9..42548bc 100644
+--- a/sql/recover_module/cursor.cc
++++ b/sql/recover_module/cursor.cc
+@@ -26,7 +26,7 @@
+ int VirtualCursor::First() {
+ DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
+ inner_decoders_.clear();
+- leaf_decoder_ = nullptr;
++ leaf_decoder_.Reset();
+
+ AppendPageDecoder(table_->root_page_id());
+ return Next();
+@@ -36,18 +36,18 @@
+ DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
+ record_reader_.Reset();
+
+- while (!inner_decoders_.empty() || leaf_decoder_.get()) {
+- if (leaf_decoder_.get()) {
+- if (!leaf_decoder_->CanAdvance()) {
++ while (!inner_decoders_.empty() || leaf_decoder_.IsValid()) {
++ if (leaf_decoder_.IsValid()) {
++ if (!leaf_decoder_.CanAdvance()) {
+ // The leaf has been exhausted. Remove it from the DFS stack.
+- leaf_decoder_ = nullptr;
++ leaf_decoder_.Reset();
+ continue;
+ }
+- if (!leaf_decoder_->TryAdvance())
++ if (!leaf_decoder_.TryAdvance())
+ continue;
+
+- if (!payload_reader_.Initialize(leaf_decoder_->last_record_size(),
+- leaf_decoder_->last_record_offset())) {
++ if (!payload_reader_.Initialize(leaf_decoder_.last_record_size(),
++ leaf_decoder_.last_record_offset())) {
+ continue;
+ }
+ if (!record_reader_.Initialize())
+@@ -99,13 +99,13 @@
+ int64_t VirtualCursor::RowId() {
+ DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
+ DCHECK(record_reader_.IsInitialized());
+- DCHECK(leaf_decoder_.get());
+- return leaf_decoder_->last_record_rowid();
++ DCHECK(leaf_decoder_.IsValid());
++ return leaf_decoder_.last_record_rowid();
+ }
+
+ void VirtualCursor::AppendPageDecoder(int page_id) {
+ DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
+- DCHECK(leaf_decoder_.get() == nullptr)
++ DCHECK(!leaf_decoder_.IsValid())
+ << __func__
+ << " must only be called when the current path has no leaf decoder";
+
+@@ -113,7 +113,7 @@
+ return;
+
+ if (LeafPageDecoder::IsOnValidPage(&db_reader_)) {
+- leaf_decoder_ = std::make_unique<LeafPageDecoder>(&db_reader_);
++ leaf_decoder_.Initialize(&db_reader_);
+ return;
+ }
+
+diff --git a/sql/recover_module/cursor.h b/sql/recover_module/cursor.h
+index afcd690..b15c31d 100644
+--- a/sql/recover_module/cursor.h
++++ b/sql/recover_module/cursor.h
+@@ -129,7 +129,7 @@
+ std::vector<std::unique_ptr<InnerPageDecoder>> inner_decoders_;
+
+ // Decodes the leaf page containing records.
+- std::unique_ptr<LeafPageDecoder> leaf_decoder_;
++ LeafPageDecoder leaf_decoder_;
+
+ SEQUENCE_CHECKER(sequence_checker_);
+ };
+diff --git a/sql/recover_module/pager.cc b/sql/recover_module/pager.cc
+index 58e75de..5fe9620 100644
+--- a/sql/recover_module/pager.cc
++++ b/sql/recover_module/pager.cc
+@@ -23,8 +23,7 @@
+ "ints are not appropriate for representing page IDs");
+
+ DatabasePageReader::DatabasePageReader(VirtualTable* table)
+- : page_data_(std::make_unique<uint8_t[]>(table->page_size())),
+- table_(table) {
++ : page_data_(), table_(table) {
+ DCHECK(table != nullptr);
+ DCHECK(IsValidPageSize(table->page_size()));
+ }
+@@ -57,8 +56,8 @@
+ std::numeric_limits<int64_t>::max(),
+ "The |read_offset| computation above may overflow");
+
+- int sqlite_status =
+- RawRead(sqlite_file, read_size, read_offset, page_data_.get());
++ int sqlite_status = RawRead(sqlite_file, read_size, read_offset,
++ const_cast<uint8_t*>(page_data_.data()));
+
+ // |page_id_| needs to be set to kInvalidPageId if the read failed.
+ // Otherwise, future ReadPage() calls with the previous |page_id_| value
+diff --git a/sql/recover_module/pager.h b/sql/recover_module/pager.h
+index 0e388ddc..99314e3 100644
+--- a/sql/recover_module/pager.h
++++ b/sql/recover_module/pager.h
+@@ -5,6 +5,7 @@
+ #ifndef SQL_RECOVER_MODULE_PAGER_H_
+ #define SQL_RECOVER_MODULE_PAGER_H_
+
++#include <array>
+ #include <cstdint>
+ #include <memory>
+
+@@ -70,7 +71,7 @@
+ DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
+ DCHECK_NE(page_id_, kInvalidPageId)
+ << "Successful ReadPage() required before accessing pager state";
+- return page_data_.get();
++ return page_data_.data();
+ }
+
+ // The number of bytes in the page read by the last ReadPage() call.
+@@ -137,7 +138,7 @@
+ int page_id_ = kInvalidPageId;
+ // Stores the bytes of the last page successfully read by ReadPage().
+ // The content is undefined if the last call to ReadPage() did not succeed.
+- const std::unique_ptr<uint8_t[]> page_data_;
++ const std::array<uint8_t, kMaxPageSize> page_data_;
+ // Raw pointer usage is acceptable because this instance's owner is expected
+ // to ensure that the VirtualTable outlives this.
+ VirtualTable* const table_;
diff --git a/community/chromium/chromium-harfbuzz-3.0.0.patch b/community/chromium/chromium-harfbuzz-3.0.0.patch
deleted file mode 100644
index 9bd43fdcce..0000000000
--- a/community/chromium/chromium-harfbuzz-3.0.0.patch
+++ /dev/null
@@ -1,20 +0,0 @@
-# https://github.com/chromium/chromium/commit/b289f6f3fcbc
-
-diff --git a/components/paint_preview/common/subset_font.cc b/components/paint_preview/common/subset_font.cc
-index 8ff0540d9a..20a7d37474 100644
---- ./components/paint_preview/common/subset_font.cc
-+++ ./components/paint_preview/common/subset_font.cc
-@@ -72,9 +72,11 @@ sk_sp<SkData> SubsetFont(SkTypeface* typeface, const GlyphUsage& usage) {
- hb_set_t* glyphs =
- hb_subset_input_glyph_set(input.get()); // Owned by |input|.
- usage.ForEach(base::BindRepeating(&AddGlyphs, base::Unretained(glyphs)));
-- hb_subset_input_set_retain_gids(input.get(), true);
-+ hb_subset_input_set_flags(input.get(), HB_SUBSET_FLAGS_RETAIN_GIDS);
-
-- HbScoped<hb_face_t> subset_face(hb_subset(face.get(), input.get()));
-+ HbScoped<hb_face_t> subset_face(hb_subset_or_fail(face.get(), input.get()));
-+ if (!subset_face)
-+ return nullptr;
- HbScoped<hb_blob_t> subset_blob(hb_face_reference_blob(subset_face.get()));
- if (!subset_blob)
- return nullptr;
diff --git a/community/chromium/revert-2778794.patch b/community/chromium/chromium-revert-drop-of-system-java.patch
index 47069c7b73..117a50f8e4 100644
--- a/community/chromium/revert-2778794.patch
+++ b/community/chromium/chromium-revert-drop-of-system-java.patch
@@ -1,5 +1,6 @@
---- ./third_party/closure_compiler/compiler.py.orig
-+++ ./third_party/closure_compiler/compiler.py
+This was dropped for some reason in 6951c37cecd05979b232a39e5c10e6346a0f74ef
+--- a/third_party/closure_compiler/compiler.py 2021-05-20 04:17:53.000000000 +0200
++++ b/third_party/closure_compiler/compiler.py 2021-05-20 04:17:53.000000000 +0200
@@ -13,8 +13,9 @@
@@ -7,7 +8,7 @@
-_JAVA_PATH = os.path.join(_CURRENT_DIR, "..", "jdk", "current", "bin", "java")
-assert os.path.isfile(_JAVA_PATH), "java only allowed in android builds"
+_JAVA_BIN = "java"
-+_JDK_PATH = os.path.join(_CURRENT_DIR, "..", "jdk", "current", "bin", _JAVA_BIN)
++_JDK_PATH = os.path.join(_CURRENT_DIR, "..", "jdk", "current", "bin", "java")
+_JAVA_PATH = _JDK_PATH if os.path.isfile(_JDK_PATH) else _JAVA_BIN
class Compiler(object):
diff --git a/community/chromium/chromium-revert-ffmpeg-roll.patch b/community/chromium/chromium-revert-ffmpeg-roll.patch
new file mode 100644
index 0000000000..4257cde7b0
--- /dev/null
+++ b/community/chromium/chromium-revert-ffmpeg-roll.patch
@@ -0,0 +1,31 @@
+diff --git a/media/ffmpeg/ffmpeg_common.h b/media/ffmpeg/ffmpeg_common.h
+index 97d6307..cede8ac 100644
+--- a/media/ffmpeg/ffmpeg_common.h
++++ b/media/ffmpeg/ffmpeg_common.h
+@@ -29,7 +29,6 @@ extern "C" {
+ #include <libavformat/avformat.h>
+ #include <libavformat/avio.h>
+ #include <libavutil/avutil.h>
+-#include <libavutil/channel_layout.h>
+ #include <libavutil/imgutils.h>
+ #include <libavutil/log.h>
+ #include <libavutil/mastering_display_metadata.h>
+diff --git a/media/filters/ffmpeg_demuxer.cc b/media/filters/ffmpeg_demuxer.cc
+index 026c0f8..f830ce2 100644
+--- a/media/filters/ffmpeg_demuxer.cc
++++ b/media/filters/ffmpeg_demuxer.cc
+@@ -106,12 +106,12 @@ static base::TimeDelta ExtractStartTime(AVStream* stream) {
+
+ // Next try to use the first DTS value, for codecs where we know PTS == DTS
+ // (excludes all H26x codecs). The start time must be returned in PTS.
+- if (av_stream_get_first_dts(stream) != kNoFFmpegTimestamp &&
++ if (stream->first_dts != kNoFFmpegTimestamp &&
+ stream->codecpar->codec_id != AV_CODEC_ID_HEVC &&
+ stream->codecpar->codec_id != AV_CODEC_ID_H264 &&
+ stream->codecpar->codec_id != AV_CODEC_ID_MPEG4) {
+ const base::TimeDelta first_pts =
+- ConvertFromTimeBase(stream->time_base, av_stream_get_first_dts(stream));
++ ConvertFromTimeBase(stream->time_base, stream->first_dts);
+ if (first_pts < start_time)
+ start_time = first_pts;
+ }
diff --git a/community/chromium/chromium-use-alpine-target.patch b/community/chromium/chromium-use-alpine-target.patch
index 05270f31a0..481583f10f 100644
--- a/community/chromium/chromium-use-alpine-target.patch
+++ b/community/chromium/chromium-use-alpine-target.patch
@@ -1,5 +1,5 @@
---- build/config/compiler/BUILD.gn
-+++ build/config/compiler/BUILD.gn
+--- ./build/config/compiler/BUILD.gn
++++ ./build/config/compiler/BUILD.gn
@@ -752,8 +752,8 @@
}
} else if (current_cpu == "arm") {
@@ -64,16 +64,26 @@
} else {
cflags += [
"-EB",
-@@ -1619,11 +1619,7 @@
- "-Wno-deprecated-copy",
-
- # TODO(https://crbug.com/1050281): Clean up, enable.
-- "-Wno-non-c-typedef-for-linkage",
--
-- # TODO(https://crbug.com/1203071): Clean up and enable.
-- "-Wno-unused-but-set-parameter",
-- "-Wno-unused-but-set-variable",
-+ "-Wno-non-c-typedef-for-linkage"
+diff --git a/build/config/compiler/BUILD.gn b/build/config/compiler/BUILD.gn
+index c325f72..543baa2 100644
+--- a/build/config/compiler/BUILD.gn
++++ b/build/config/compiler/BUILD.gn
+@@ -1516,18 +1516,6 @@ config("default_warnings") {
+ "-Wno-builtin-assume-aligned-alignment",
]
- cflags_c += [
+- # NaCl does not support flags from ToT.
+- if (!is_nacl) {
+- cflags += [
+- # TODO(https://crbug.com/1203071): Clean up and enable.
+- "-Wno-unused-but-set-parameter",
+- "-Wno-unused-but-set-variable",
+-
+- # TODO(https://crbug.com/1255745): Clean up, enable.
+- "-Wno-bitwise-instead-of-logical",
+- ]
+- }
+-
+ if (is_fuchsia) {
+ # TODO(https://bugs.chromium.org/p/fuchsia/issues/detail?id=77383)
+ cflags += [ "-Wno-deprecated-copy" ]
diff --git a/community/chromium/clang-no-format.patch b/community/chromium/clang-no-format.patch
deleted file mode 100644
index 32bd5fe36c..0000000000
--- a/community/chromium/clang-no-format.patch
+++ /dev/null
@@ -1,48 +0,0 @@
---- ./buildtools/linux64/clang-format
-+++ ./buildtools/linux64/clang-format
-@@ -1,10 +1,8 @@
--#!/usr/bin/env python2
-+#!/usr/bin/env python3
- # Copyright 2020 The Chromium Authors. All rights reserved.
- # Use of this source code is governed by a BSD-style license that can be
- # found in the LICENSE file.
-
--import os
--import subprocess
- import sys
-
- args = sys.argv[1:]
-@@ -13,33 +11,6 @@
- contents = ''
- if '-' in args or not inputfiles:
- contents = sys.stdin.read()
--
--# Tarball builds may or may not have depot_tools in $PATH. In the former case,
--# running 'clang-format' will call back into this script infinitely. Strip off
--# directories from $PATH one-by-one until either the system clang-format is
--# used or there's no usable clang-format.
--env = os.environ.copy()
--if 'TARBALL_CLANG_FORMAT_WRAPPER' in env:
-- env['PATH'] = os.pathsep.join(env['PATH'].split(os.pathsep)[1:])
--env['TARBALL_CLANG_FORMAT_WRAPPER'] = ''
--
--# Try formatting with the system clang-format.
--try:
-- proc = subprocess.Popen(
-- ['clang-format'] + args,
-- stdin=subprocess.PIPE,
-- stdout=subprocess.PIPE,
-- stderr=subprocess.PIPE,
-- env=env)
-- stdout, stderr = proc.communicate(input=contents)
-- # Ignore if clang-format fails. Eg: it may be too old to support C++14.
-- if proc.returncode == 0:
-- sys.stdout.write(stdout)
-- sys.stderr.write(stderr)
-- sys.exit(0)
--except OSError:
-- # Ignore if clang-format is not installed.
-- pass
-
- # If any failure happens, continue with unformatted files.
- sys.stdout.write(contents)
diff --git a/community/chromium/default-pthread-stacksize.patch b/community/chromium/default-pthread-stacksize.patch
index a3acffe672..5c039ceac2 100644
--- a/community/chromium/default-pthread-stacksize.patch
+++ b/community/chromium/default-pthread-stacksize.patch
@@ -1,12 +1,12 @@
---- base/threading/platform_thread_linux.cc
-+++ base/threading/platform_thread_linux.cc
+--- ./base/threading/platform_thread_linux.cc
++++ ./base/threading/platform_thread_linux.cc
@@ -186,7 +186,8 @@
size_t GetDefaultThreadStackSize(const pthread_attr_t& attributes) {
#if !defined(THREAD_SANITIZER)
- return 0;
-+ // use 8mb like glibc to avoid running out of space
-+ return (1 << 23);
++ // use 2mb to avoid running out of space. This is what android uses
++ return 2 * (1 << 20);
#else
// ThreadSanitizer bloats the stack heavily. Evidence has been that the
// default stack size isn't enough for some browser tests.
@@ -17,12 +17,12 @@
!defined(THREAD_SANITIZER)) || \
(defined(OS_ANDROID) && !defined(ADDRESS_SANITIZER))
- EXPECT_EQ(0u, stack_size);
-+ EXPECT_EQ(1u << 23, stack_size);
++ EXPECT_EQ(2u << 20, stack_size);
#else
EXPECT_GT(stack_size, 0u);
EXPECT_LT(stack_size, 20u * (1 << 20));
---- chrome/browser/shutdown_signal_handlers_posix.cc
-+++ chrome/browser/shutdown_signal_handlers_posix.cc
+--- ./chrome/browser/shutdown_signal_handlers_posix.cc
++++ ./chrome/browser/shutdown_signal_handlers_posix.cc
@@ -187,11 +187,19 @@
g_shutdown_pipe_read_fd = pipefd[0];
g_shutdown_pipe_write_fd = pipefd[1];
diff --git a/community/chromium/disable-floc-component.patch b/community/chromium/disable-floc-component.patch
deleted file mode 100644
index 335a421a8a..0000000000
--- a/community/chromium/disable-floc-component.patch
+++ /dev/null
@@ -1,15 +0,0 @@
---- chrome/browser/component_updater/floc_component_installer.cc.orig
-+++ chrome/browser/component_updater/floc_component_installer.cc
-@@ -101,10 +101,12 @@
- ComponentUpdateService* cus,
- federated_learning::FlocSortingLshClustersService*
- floc_sorting_lsh_clusters_service) {
-+ /*
- auto installer = base::MakeRefCounted<ComponentInstaller>(
- std::make_unique<FlocComponentInstallerPolicy>(
- floc_sorting_lsh_clusters_service));
- installer->Register(cus, base::OnceClosure());
-+ */
- }
-
- } // namespace component_updater
diff --git a/community/chromium/fix-bits-stdint-intn-include.patch b/community/chromium/fix-bits-stdint-intn-include.patch
new file mode 100644
index 0000000000..978cd6a493
--- /dev/null
+++ b/community/chromium/fix-bits-stdint-intn-include.patch
@@ -0,0 +1,11 @@
+--- a/ui/ozone/platform/wayland/host/wayland_window.cc.orig
++++ b/ui/ozone/platform/wayland/host/wayland_window.cc
+@@ -4,7 +4,7 @@
+
+ #include "ui/ozone/platform/wayland/host/wayland_window.h"
+
+-#include <bits/stdint-intn.h>
++#include <stdint.h>
+ #include <wayland-cursor.h>
+ #include <algorithm>
+ #include <memory>
diff --git a/community/chromium/fix-missing-includes.patch b/community/chromium/fix-missing-includes.patch
deleted file mode 100644
index f38451d850..0000000000
--- a/community/chromium/fix-missing-includes.patch
+++ /dev/null
@@ -1,60 +0,0 @@
---- third_party/pdfium/core/fxcodec/png/png_decoder.h.orig
-+++ third_party/pdfium/core/fxcodec/png/png_decoder.h
-@@ -9,6 +9,7 @@
-
- #include <memory>
-
-+#include "core/fxcodec/fx_codec_def.h"
- #include "core/fxcodec/progressive_decoder_iface.h"
-
- #ifndef PDF_ENABLE_XFA_PNG
---- ./ui/base/class_property.h.orig
-+++ ./ui/base/class_property.h
-@@ -10,6 +10,7 @@
- #include <map>
- #include <set>
- #include <type_traits>
-+#include <memory>
-
- #include "base/component_export.h"
- #include "base/time/time.h"
---- ./device/bluetooth/bluetooth_low_energy_scan_filter.h.orig
-+++ ./device/bluetooth/bluetooth_low_energy_scan_filter.h
-@@ -8,6 +8,7 @@
- #include <stddef.h>
- #include <stdint.h>
- #include <vector>
-+#include <memory>
-
- #include "base/time/time.h"
- #include "device/bluetooth/bluetooth_export.h"
---- ./components/password_manager/core/browser/hash_password_manager.h.orig
-+++ ./components/password_manager/core/browser/hash_password_manager.h
-@@ -6,6 +6,7 @@
- #define COMPONENTS_PASSWORD_MANAGER_CORE_BROWSER_HASH_PASSWORD_MANAGER_H_
-
- #include <string>
-+#include <vector>
-
- #include "base/callback.h"
- #include "base/callback_list.h"
---- ./extensions/browser/extension_dialog_auto_confirm.cc.orig
-+++ ./extensions/browser/extension_dialog_auto_confirm.cc
-@@ -5,6 +5,7 @@
- #include "extensions/browser/extension_dialog_auto_confirm.h"
-
- #include <utility>
-+#include <cstring>
-
- #include "base/check.h"
-
---- ./chrome/browser/devtools/devtools_embedder_message_dispatcher.h.orig
-+++ ./chrome/browser/devtools/devtools_embedder_message_dispatcher.h
-@@ -8,6 +8,7 @@
- #include <map>
- #include <memory>
- #include <string>
-+#include <vector>
-
- #include "base/callback.h"
- #include "ui/gfx/geometry/insets.h"
diff --git a/community/chromium/fix-narrowing-cast.patch b/community/chromium/fix-narrowing-cast.patch
index 0b14d2ff03..afd42a1489 100644
--- a/community/chromium/fix-narrowing-cast.patch
+++ b/community/chromium/fix-narrowing-cast.patch
@@ -1,11 +1,19 @@
---- ./base/files/file_util_linux.cc.orig
-+++ ./base/files/file_util_linux.cc
-@@ -30,7 +30,7 @@
+--- a/base/files/file_util_linux.cc
++++ b/base/files/file_util_linux.cc
+@@ -23,14 +23,14 @@
+
+ // Not all possible |statfs_buf.f_type| values are in linux/magic.h.
+ // Missing values are copied from the statfs man page.
+- switch (statfs_buf.f_type) {
++ switch (static_cast<uintmax_t>(statfs_buf.f_type)) {
+ case 0:
+ *type = FILE_SYSTEM_0;
+ break;
case EXT2_SUPER_MAGIC: // Also ext3 and ext4
case MSDOS_SUPER_MAGIC:
case REISERFS_SUPER_MAGIC:
- case static_cast<int>(BTRFS_SUPER_MAGIC):
-+ case static_cast<unsigned int>(BTRFS_SUPER_MAGIC):
++ case BTRFS_SUPER_MAGIC:
case 0x5346544E: // NTFS
case 0x58465342: // XFS
case 0x3153464A: // JFS
@@ -14,7 +22,7 @@
break;
case SMB_SUPER_MAGIC:
- case static_cast<int>(0xFF534D42): // CIFS
-+ case static_cast<unsigned int>(0xFF534D42): // CIFS
++ case 0xFF534D42: // CIFS
*type = FILE_SYSTEM_SMB;
break;
case CODA_SUPER_MAGIC:
@@ -22,21 +30,24 @@
break;
- case static_cast<int>(HUGETLBFS_MAGIC):
- case static_cast<int>(RAMFS_MAGIC):
-+ case static_cast<unsigned int>(HUGETLBFS_MAGIC):
-+ case static_cast<unsigned int>(RAMFS_MAGIC):
++ case HUGETLBFS_MAGIC:
++ case RAMFS_MAGIC:
case TMPFS_MAGIC:
*type = FILE_SYSTEM_MEMORY;
break;
---- ./base/system/sys_info_posix.cc.orig
-+++ ./base/system/sys_info_posix.cc
-@@ -102,8 +102,8 @@
+--- a/base/system/sys_info_posix.cc
++++ b/base/system/sys_info_posix.cc
+@@ -100,10 +100,10 @@
+ if (HANDLE_EINTR(statfs(path.value().c_str(), &stats)) != 0)
+ return false;
- switch (stats.f_type) {
+- switch (stats.f_type) {
++ switch (static_cast<uintmax_t>(stats.f_type)) {
case TMPFS_MAGIC:
- case static_cast<int>(HUGETLBFS_MAGIC):
- case static_cast<int>(RAMFS_MAGIC):
-+ case static_cast<unsigned int>(HUGETLBFS_MAGIC):
-+ case static_cast<unsigned int>(RAMFS_MAGIC):
++ case HUGETLBFS_MAGIC:
++ case RAMFS_MAGIC:
return true;
}
return false;
diff --git a/community/chromium/fix-unittests-base.patch b/community/chromium/fix-unittests-base.patch
deleted file mode 100644
index 81d3269671..0000000000
--- a/community/chromium/fix-unittests-base.patch
+++ /dev/null
@@ -1,66 +0,0 @@
---- ./base/debug/stack_trace_unittest.cc.orig
-+++ ./base/debug/stack_trace_unittest.cc
-@@ -33,7 +33,7 @@
- typedef testing::Test StackTraceTest;
- #endif
-
--#if !defined(__UCLIBC__) && !defined(_AIX)
-+#if defined(__GLIBC__) && !defined(_AIX)
- // StackTrace::OutputToStream() is not implemented under uclibc, nor AIX.
- // See https://crbug.com/706728
-
---- ./base/profiler/stack_sampler_posix.cc.orig
-+++ ./base/profiler/stack_sampler_posix.cc
-@@ -21,18 +21,7 @@
- }
-
- size_t StackSampler::GetStackBufferSize() {
-- size_t stack_size = PlatformThread::GetDefaultThreadStackSize();
--
-- pthread_attr_t attr;
-- if (stack_size == 0 && pthread_attr_init(&attr) == 0) {
-- if (pthread_attr_getstacksize(&attr, &stack_size) != 0)
-- stack_size = 0;
-- pthread_attr_destroy(&attr);
-- }
--
-- // Maximum limits under NPTL implementation.
-- constexpr size_t kDefaultStackLimit = 4 * (1 << 20);
-- return stack_size > 0 ? stack_size : kDefaultStackLimit;
-+ return 0;
- }
-
- } // namespace base
---- ./base/test/generate_fontconfig_caches.cc.orig
-+++ ./base/test/generate_fontconfig_caches.cc
-@@ -58,7 +58,7 @@
- FcFini();
-
- // Check existence of intended fontconfig cache file.
-- CHECK(base::PathExists(
-- fontconfig_caches.Append(base::StrCat({kCacheKey, "-le64.cache-7"}))));
-+ //CHECK(base::PathExists(
-+ // fontconfig_caches.Append(base::StrCat({kCacheKey, "-le64.cache-7"}))));
- return 0;
- }
---- ./base/test/gmock_move_support.h.orig
-+++ ./base/test/gmock_move_support.h
-@@ -10,7 +10,7 @@
-
- // A similar action as testing::SaveArg, but it does an assignment with
- // std::move() instead of always performing a copy.
--template <size_t I = 0, typename T>
-+template <std::size_t I = 0, typename T>
- auto MoveArg(T* out) {
- return [out](auto&&... args) {
- *out = std::move(std::get<I>(std::tie(args...)));
---- ./net/base/test_data_stream.cc.orig
-+++ ./net/base/test_data_stream.cc
-@@ -5,6 +5,7 @@
- #include "net/base/test_data_stream.h"
-
- #include <algorithm>
-+#include <cstring>
-
- namespace net {
-
diff --git a/community/chromium/fix-unittests-net-py2tests.patch b/community/chromium/fix-unittests-net-py2tests.patch
deleted file mode 100644
index 99908e9524..0000000000
--- a/community/chromium/fix-unittests-net-py2tests.patch
+++ /dev/null
@@ -1,1023 +0,0 @@
---- ./net/websockets/websocket_end_to_end_test.cc.orig
-+++ ./net/websockets/websocket_end_to_end_test.cc
-@@ -320,35 +320,35 @@
-
- // Basic test of connectivity. If this test fails, nothing else can be expected
- // to work.
--TEST_F(WebSocketEndToEndTest, BasicSmokeTest) {
-- SpawnedTestServer ws_server(SpawnedTestServer::TYPE_WS,
-- GetWebSocketTestDataDirectory());
-- ASSERT_TRUE(ws_server.Start());
-- EXPECT_TRUE(ConnectAndWait(ws_server.GetURL(kEchoServer)));
--}
-+// TEST_F(WebSocketEndToEndTest, BasicSmokeTest) {
-+// SpawnedTestServer ws_server(SpawnedTestServer::TYPE_WS,
-+// GetWebSocketTestDataDirectory());
-+// ASSERT_TRUE(ws_server.Start());
-+// EXPECT_TRUE(ConnectAndWait(ws_server.GetURL(kEchoServer)));
-+// }
-
- // Test for issue crbug.com/433695 "Unencrypted WebSocket connection via
- // authenticated proxy times out"
- // TODO(ricea): Enable this when the issue is fixed.
--TEST_F(WebSocketEndToEndTest, DISABLED_HttpsProxyUnauthedFails) {
-- SpawnedTestServer proxy_server(SpawnedTestServer::TYPE_BASIC_AUTH_PROXY,
-- base::FilePath());
-- SpawnedTestServer ws_server(SpawnedTestServer::TYPE_WS,
-- GetWebSocketTestDataDirectory());
-- ASSERT_TRUE(proxy_server.StartInBackground());
-- ASSERT_TRUE(ws_server.StartInBackground());
-- ASSERT_TRUE(proxy_server.BlockUntilStarted());
-- ASSERT_TRUE(ws_server.BlockUntilStarted());
-- std::string proxy_config =
-- "https=" + proxy_server.host_port_pair().ToString();
-- std::unique_ptr<ProxyResolutionService> proxy_resolution_service(
-- ConfiguredProxyResolutionService::CreateFixed(
-- proxy_config, TRAFFIC_ANNOTATION_FOR_TESTS));
-- ASSERT_TRUE(proxy_resolution_service);
-- context_.set_proxy_resolution_service(proxy_resolution_service.get());
-- EXPECT_FALSE(ConnectAndWait(ws_server.GetURL(kEchoServer)));
-- EXPECT_EQ("Proxy authentication failed", event_interface_->failure_message());
--}
-+// TEST_F(WebSocketEndToEndTest, DISABLED_HttpsProxyUnauthedFails) {
-+// SpawnedTestServer proxy_server(SpawnedTestServer::TYPE_BASIC_AUTH_PROXY,
-+// base::FilePath());
-+// SpawnedTestServer ws_server(SpawnedTestServer::TYPE_WS,
-+// GetWebSocketTestDataDirectory());
-+// ASSERT_TRUE(proxy_server.StartInBackground());
-+// ASSERT_TRUE(ws_server.StartInBackground());
-+// ASSERT_TRUE(proxy_server.BlockUntilStarted());
-+// ASSERT_TRUE(ws_server.BlockUntilStarted());
-+// std::string proxy_config =
-+// "https=" + proxy_server.host_port_pair().ToString();
-+// std::unique_ptr<ProxyResolutionService> proxy_resolution_service(
-+// ConfiguredProxyResolutionService::CreateFixed(
-+// proxy_config, TRAFFIC_ANNOTATION_FOR_TESTS));
-+// ASSERT_TRUE(proxy_resolution_service);
-+// context_.set_proxy_resolution_service(proxy_resolution_service.get());
-+// EXPECT_FALSE(ConnectAndWait(ws_server.GetURL(kEchoServer)));
-+// EXPECT_EQ("Proxy authentication failed", event_interface_->failure_message());
-+// }
-
- // These test are not compatible with RemoteTestServer because RemoteTestServer
- // doesn't support TYPE_BASIC_AUTH_PROXY.
-@@ -361,61 +361,61 @@
- #define MAYBE_HttpsProxyUsed HttpsProxyUsed
- #endif
-
--TEST_F(WebSocketEndToEndTest, MAYBE_HttpsWssProxyUnauthedFails) {
-- SpawnedTestServer proxy_server(SpawnedTestServer::TYPE_BASIC_AUTH_PROXY,
-- base::FilePath());
-- SpawnedTestServer wss_server(SpawnedTestServer::TYPE_WSS,
-- GetWebSocketTestDataDirectory());
-- ASSERT_TRUE(proxy_server.StartInBackground());
-- ASSERT_TRUE(wss_server.StartInBackground());
-- ASSERT_TRUE(proxy_server.BlockUntilStarted());
-- ASSERT_TRUE(wss_server.BlockUntilStarted());
-- ProxyConfig proxy_config;
-- proxy_config.proxy_rules().ParseFromString(
-- "https=" + proxy_server.host_port_pair().ToString());
-- // TODO(https://crbug.com/901896): Don't rely on proxying localhost.
-- proxy_config.proxy_rules().bypass_rules.AddRulesToSubtractImplicit();
-+// TEST_F(WebSocketEndToEndTest, MAYBE_HttpsWssProxyUnauthedFails) {
-+// SpawnedTestServer proxy_server(SpawnedTestServer::TYPE_BASIC_AUTH_PROXY,
-+// base::FilePath());
-+// SpawnedTestServer wss_server(SpawnedTestServer::TYPE_WSS,
-+// GetWebSocketTestDataDirectory());
-+// ASSERT_TRUE(proxy_server.StartInBackground());
-+// ASSERT_TRUE(wss_server.StartInBackground());
-+// ASSERT_TRUE(proxy_server.BlockUntilStarted());
-+// ASSERT_TRUE(wss_server.BlockUntilStarted());
-+// ProxyConfig proxy_config;
-+// proxy_config.proxy_rules().ParseFromString(
-+// "https=" + proxy_server.host_port_pair().ToString());
-+// // TODO(https://crbug.com/901896): Don't rely on proxying localhost.
-+// proxy_config.proxy_rules().bypass_rules.AddRulesToSubtractImplicit();
-
-- std::unique_ptr<ProxyResolutionService> proxy_resolution_service(
-- ConfiguredProxyResolutionService::CreateFixed(ProxyConfigWithAnnotation(
-- proxy_config, TRAFFIC_ANNOTATION_FOR_TESTS)));
-- ASSERT_TRUE(proxy_resolution_service);
-- context_.set_proxy_resolution_service(proxy_resolution_service.get());
-- EXPECT_FALSE(ConnectAndWait(wss_server.GetURL(kEchoServer)));
-- EXPECT_EQ("Proxy authentication failed", event_interface_->failure_message());
--}
-+// std::unique_ptr<ProxyResolutionService> proxy_resolution_service(
-+// ConfiguredProxyResolutionService::CreateFixed(ProxyConfigWithAnnotation(
-+// proxy_config, TRAFFIC_ANNOTATION_FOR_TESTS)));
-+// ASSERT_TRUE(proxy_resolution_service);
-+// context_.set_proxy_resolution_service(proxy_resolution_service.get());
-+// EXPECT_FALSE(ConnectAndWait(wss_server.GetURL(kEchoServer)));
-+// EXPECT_EQ("Proxy authentication failed", event_interface_->failure_message());
-+// }
-
- // Regression test for crbug/426736 "WebSocket connections not using configured
- // system HTTPS Proxy".
--TEST_F(WebSocketEndToEndTest, MAYBE_HttpsProxyUsed) {
-- SpawnedTestServer proxy_server(SpawnedTestServer::TYPE_PROXY,
-- base::FilePath());
-- SpawnedTestServer ws_server(SpawnedTestServer::TYPE_WS,
-- GetWebSocketTestDataDirectory());
-- ASSERT_TRUE(proxy_server.StartInBackground());
-- ASSERT_TRUE(ws_server.StartInBackground());
-- ASSERT_TRUE(proxy_server.BlockUntilStarted());
-- ASSERT_TRUE(ws_server.BlockUntilStarted());
-- ProxyConfig proxy_config;
-- proxy_config.proxy_rules().ParseFromString(
-- "https=" + proxy_server.host_port_pair().ToString() + ";" +
-- "http=" + proxy_server.host_port_pair().ToString());
-- // TODO(https://crbug.com/901896): Don't rely on proxying localhost.
-- proxy_config.proxy_rules().bypass_rules.AddRulesToSubtractImplicit();
-+// TEST_F(WebSocketEndToEndTest, MAYBE_HttpsProxyUsed) {
-+// SpawnedTestServer proxy_server(SpawnedTestServer::TYPE_PROXY,
-+// base::FilePath());
-+// SpawnedTestServer ws_server(SpawnedTestServer::TYPE_WS,
-+// GetWebSocketTestDataDirectory());
-+// ASSERT_TRUE(proxy_server.StartInBackground());
-+// ASSERT_TRUE(ws_server.StartInBackground());
-+// ASSERT_TRUE(proxy_server.BlockUntilStarted());
-+// ASSERT_TRUE(ws_server.BlockUntilStarted());
-+// ProxyConfig proxy_config;
-+// proxy_config.proxy_rules().ParseFromString(
-+// "https=" + proxy_server.host_port_pair().ToString() + ";" +
-+// "http=" + proxy_server.host_port_pair().ToString());
-+// // TODO(https://crbug.com/901896): Don't rely on proxying localhost.
-+// proxy_config.proxy_rules().bypass_rules.AddRulesToSubtractImplicit();
-
-- std::unique_ptr<ProxyResolutionService> proxy_resolution_service(
-- ConfiguredProxyResolutionService::CreateFixed(ProxyConfigWithAnnotation(
-- proxy_config, TRAFFIC_ANNOTATION_FOR_TESTS)));
-- context_.set_proxy_resolution_service(proxy_resolution_service.get());
-- InitialiseContext();
-+// std::unique_ptr<ProxyResolutionService> proxy_resolution_service(
-+// ConfiguredProxyResolutionService::CreateFixed(ProxyConfigWithAnnotation(
-+// proxy_config, TRAFFIC_ANNOTATION_FOR_TESTS)));
-+// context_.set_proxy_resolution_service(proxy_resolution_service.get());
-+// InitialiseContext();
-
-- GURL ws_url = ws_server.GetURL(kEchoServer);
-- EXPECT_TRUE(ConnectAndWait(ws_url));
-- const TestProxyDelegateWithProxyInfo::ResolvedProxyInfo& info =
-- proxy_delegate_->resolved_proxy_info();
-- EXPECT_EQ(ws_url, info.url);
-- EXPECT_TRUE(info.proxy_info.is_http());
--}
-+// GURL ws_url = ws_server.GetURL(kEchoServer);
-+// EXPECT_TRUE(ConnectAndWait(ws_url));
-+// const TestProxyDelegateWithProxyInfo::ResolvedProxyInfo& info =
-+// proxy_delegate_->resolved_proxy_info();
-+// EXPECT_EQ(ws_url, info.url);
-+// EXPECT_TRUE(info.proxy_info.is_http());
-+// }
-
- std::unique_ptr<HttpResponse> ProxyPacHandler(const HttpRequest& request) {
- GURL url = request.GetURL();
-@@ -448,91 +448,91 @@
- #define MAYBE_ProxyPacUsed DISABLED_ProxyPacUsed
- #endif
-
--TEST_F(WebSocketEndToEndTest, MAYBE_ProxyPacUsed) {
-- EmbeddedTestServer proxy_pac_server(net::EmbeddedTestServer::Type::TYPE_HTTP);
-- SpawnedTestServer proxy_server(SpawnedTestServer::TYPE_PROXY,
-- base::FilePath());
-- SpawnedTestServer ws_server(SpawnedTestServer::TYPE_WS,
-- GetWebSocketTestDataDirectory());
-- proxy_pac_server.RegisterRequestHandler(base::BindRepeating(ProxyPacHandler));
-- proxy_server.set_redirect_connect_to_localhost(true);
-+// TEST_F(WebSocketEndToEndTest, MAYBE_ProxyPacUsed) {
-+// EmbeddedTestServer proxy_pac_server(net::EmbeddedTestServer::Type::TYPE_HTTP);
-+// SpawnedTestServer proxy_server(SpawnedTestServer::TYPE_PROXY,
-+// base::FilePath());
-+// SpawnedTestServer ws_server(SpawnedTestServer::TYPE_WS,
-+// GetWebSocketTestDataDirectory());
-+// proxy_pac_server.RegisterRequestHandler(base::BindRepeating(ProxyPacHandler));
-+// proxy_server.set_redirect_connect_to_localhost(true);
-
-- ASSERT_TRUE(proxy_pac_server.Start());
-- ASSERT_TRUE(proxy_server.StartInBackground());
-- ASSERT_TRUE(ws_server.StartInBackground());
-- ASSERT_TRUE(proxy_server.BlockUntilStarted());
-- ASSERT_TRUE(ws_server.BlockUntilStarted());
-+// ASSERT_TRUE(proxy_pac_server.Start());
-+// ASSERT_TRUE(proxy_server.StartInBackground());
-+// ASSERT_TRUE(ws_server.StartInBackground());
-+// ASSERT_TRUE(proxy_server.BlockUntilStarted());
-+// ASSERT_TRUE(ws_server.BlockUntilStarted());
-
-- ProxyConfig proxy_config =
-- ProxyConfig::CreateFromCustomPacURL(proxy_pac_server.GetURL(base::StrCat(
-- {"/proxy.pac?proxy=", proxy_server.host_port_pair().ToString()})));
-- proxy_config.set_pac_mandatory(true);
-- auto proxy_config_service = std::make_unique<ProxyConfigServiceFixed>(
-- ProxyConfigWithAnnotation(proxy_config, TRAFFIC_ANNOTATION_FOR_TESTS));
-- std::unique_ptr<ProxyResolutionService> proxy_resolution_service(
-- ConfiguredProxyResolutionService::CreateUsingSystemProxyResolver(
-- std::move(proxy_config_service), NetLog::Get(),
-- /*quick_check_enabled=*/true));
-- ASSERT_EQ(ws_server.host_port_pair().host(), "127.0.0.1");
-- context_.set_proxy_resolution_service(proxy_resolution_service.get());
-- InitialiseContext();
-+// ProxyConfig proxy_config =
-+// ProxyConfig::CreateFromCustomPacURL(proxy_pac_server.GetURL(base::StrCat(
-+// {"/proxy.pac?proxy=", proxy_server.host_port_pair().ToString()})));
-+// proxy_config.set_pac_mandatory(true);
-+// auto proxy_config_service = std::make_unique<ProxyConfigServiceFixed>(
-+// ProxyConfigWithAnnotation(proxy_config, TRAFFIC_ANNOTATION_FOR_TESTS));
-+// std::unique_ptr<ProxyResolutionService> proxy_resolution_service(
-+// ConfiguredProxyResolutionService::CreateUsingSystemProxyResolver(
-+// std::move(proxy_config_service), NetLog::Get(),
-+// /*quick_check_enabled=*/true));
-+// ASSERT_EQ(ws_server.host_port_pair().host(), "127.0.0.1");
-+// context_.set_proxy_resolution_service(proxy_resolution_service.get());
-+// InitialiseContext();
-
-- // Use a name other than localhost, since localhost implicitly bypasses the
-- // use of proxy.pac.
-- HostPortPair fake_ws_host_port_pair("stealth-localhost",
-- ws_server.host_port_pair().port());
-+// // Use a name other than localhost, since localhost implicitly bypasses the
-+// // use of proxy.pac.
-+// HostPortPair fake_ws_host_port_pair("stealth-localhost",
-+// ws_server.host_port_pair().port());
-
-- GURL ws_url(base::StrCat(
-- {"ws://", fake_ws_host_port_pair.ToString(), "/", kEchoServer}));
-- EXPECT_TRUE(ConnectAndWait(ws_url));
-- const auto& info = proxy_delegate_->resolved_proxy_info();
-- EXPECT_EQ(ws_url, info.url);
-- EXPECT_TRUE(info.proxy_info.is_http());
-- EXPECT_EQ(info.proxy_info.ToPacString(),
-- base::StrCat({"PROXY ", proxy_server.host_port_pair().ToString()}));
--}
-+// GURL ws_url(base::StrCat(
-+// {"ws://", fake_ws_host_port_pair.ToString(), "/", kEchoServer}));
-+// EXPECT_TRUE(ConnectAndWait(ws_url));
-+// const auto& info = proxy_delegate_->resolved_proxy_info();
-+// EXPECT_EQ(ws_url, info.url);
-+// EXPECT_TRUE(info.proxy_info.is_http());
-+// EXPECT_EQ(info.proxy_info.ToPacString(),
-+// base::StrCat({"PROXY ", proxy_server.host_port_pair().ToString()}));
-+// }
-
- // This is a regression test for crbug.com/408061 Crash in
- // net::WebSocketBasicHandshakeStream::Upgrade.
--TEST_F(WebSocketEndToEndTest, TruncatedResponse) {
-- SpawnedTestServer ws_server(SpawnedTestServer::TYPE_WS,
-- GetWebSocketTestDataDirectory());
-- ASSERT_TRUE(ws_server.Start());
-- InitialiseContext();
-+// TEST_F(WebSocketEndToEndTest, TruncatedResponse) {
-+// SpawnedTestServer ws_server(SpawnedTestServer::TYPE_WS,
-+// GetWebSocketTestDataDirectory());
-+// ASSERT_TRUE(ws_server.Start());
-+// InitialiseContext();
-
-- GURL ws_url = ws_server.GetURL("truncated-headers");
-- EXPECT_FALSE(ConnectAndWait(ws_url));
--}
-+// GURL ws_url = ws_server.GetURL("truncated-headers");
-+// EXPECT_FALSE(ConnectAndWait(ws_url));
-+// }
-
- // Regression test for crbug.com/180504 "WebSocket handshake fails when HTTP
- // headers have trailing LWS".
--TEST_F(WebSocketEndToEndTest, TrailingWhitespace) {
-- SpawnedTestServer ws_server(SpawnedTestServer::TYPE_WS,
-- GetWebSocketTestDataDirectory());
-- ASSERT_TRUE(ws_server.Start());
-+// TEST_F(WebSocketEndToEndTest, TrailingWhitespace) {
-+// SpawnedTestServer ws_server(SpawnedTestServer::TYPE_WS,
-+// GetWebSocketTestDataDirectory());
-+// ASSERT_TRUE(ws_server.Start());
-
-- GURL ws_url = ws_server.GetURL("trailing-whitespace");
-- sub_protocols_.push_back("sip");
-- EXPECT_TRUE(ConnectAndWait(ws_url));
-- EXPECT_EQ("sip", event_interface_->selected_subprotocol());
--}
-+// GURL ws_url = ws_server.GetURL("trailing-whitespace");
-+// sub_protocols_.push_back("sip");
-+// EXPECT_TRUE(ConnectAndWait(ws_url));
-+// EXPECT_EQ("sip", event_interface_->selected_subprotocol());
-+// }
-
- // This is a regression test for crbug.com/169448 "WebSockets should support
- // header continuations"
- // TODO(ricea): HTTP continuation headers have been deprecated by RFC7230. If
- // support for continuation headers is removed from Chrome, then this test will
- // break and should be removed.
--TEST_F(WebSocketEndToEndTest, HeaderContinuations) {
-- SpawnedTestServer ws_server(SpawnedTestServer::TYPE_WS,
-- GetWebSocketTestDataDirectory());
-- ASSERT_TRUE(ws_server.Start());
-+// TEST_F(WebSocketEndToEndTest, HeaderContinuations) {
-+// SpawnedTestServer ws_server(SpawnedTestServer::TYPE_WS,
-+// GetWebSocketTestDataDirectory());
-+// ASSERT_TRUE(ws_server.Start());
-
-- GURL ws_url = ws_server.GetURL("header-continuation");
-+// GURL ws_url = ws_server.GetURL("header-continuation");
-
-- EXPECT_TRUE(ConnectAndWait(ws_url));
-- EXPECT_EQ("permessage-deflate; server_max_window_bits=10",
-- event_interface_->extensions());
--}
-+// EXPECT_TRUE(ConnectAndWait(ws_url));
-+// EXPECT_EQ("permessage-deflate; server_max_window_bits=10",
-+// event_interface_->extensions());
-+// }
-
- // These are not true end-to-end tests as the SpawnedTestServer doesn't
- // support TLS 1.2.
---- ./net/socket/ssl_client_socket_unittest.cc.orig
-+++ ./net/socket/ssl_client_socket_unittest.cc
-@@ -2270,26 +2270,26 @@
-
- // Tests that fatal alerts from the peer are processed. This is a regression
- // test for https://crbug.com/466303.
--TEST_P(SSLClientSocketReadTest, Read_WithFatalAlert) {
-- SpawnedTestServer::SSLOptions ssl_options;
-- auto tls_max_version = ProtocolVersionToSpawnedTestServer(version());
-- if (!tls_max_version) {
-- return;
-- }
-- ssl_options.tls_max_version = *tls_max_version;
-- ssl_options.alert_after_handshake = true;
-- ASSERT_TRUE(StartTestServer(ssl_options));
-+// TEST_P(SSLClientSocketReadTest, Read_WithFatalAlert) {
-+// SpawnedTestServer::SSLOptions ssl_options;
-+// auto tls_max_version = ProtocolVersionToSpawnedTestServer(version());
-+// if (!tls_max_version) {
-+// return;
-+// }
-+// ssl_options.tls_max_version = *tls_max_version;
-+// ssl_options.alert_after_handshake = true;
-+// ASSERT_TRUE(StartTestServer(ssl_options));
-
-- int rv;
-- ASSERT_TRUE(CreateAndConnectSSLClientSocket(SSLConfig(), &rv));
-- EXPECT_THAT(rv, IsOk());
-+// int rv;
-+// ASSERT_TRUE(CreateAndConnectSSLClientSocket(SSLConfig(), &rv));
-+// EXPECT_THAT(rv, IsOk());
-
-- // Receive the fatal alert.
-- TestCompletionCallback callback;
-- scoped_refptr<IOBuffer> buf = base::MakeRefCounted<IOBuffer>(4096);
-- EXPECT_EQ(ERR_SSL_PROTOCOL_ERROR,
-- ReadAndWaitForCompletion(sock_.get(), buf.get(), 4096));
--}
-+// // Receive the fatal alert.
-+// TestCompletionCallback callback;
-+// scoped_refptr<IOBuffer> buf = base::MakeRefCounted<IOBuffer>(4096);
-+// EXPECT_EQ(ERR_SSL_PROTOCOL_ERROR,
-+// ReadAndWaitForCompletion(sock_.get(), buf.get(), 4096));
-+// }
-
- TEST_P(SSLClientSocketReadTest, Read_SmallChunks) {
- ASSERT_TRUE(
-@@ -2792,59 +2792,59 @@
- EXPECT_EQ(config.cert_authorities, request_info->cert_authorities);
- }
-
--TEST_P(SSLClientSocketCertRequestInfoTest, CertKeyTypes) {
-- SpawnedTestServer::SSLOptions ssl_options;
-- auto tls_max_version = ProtocolVersionToSpawnedTestServer(version());
-- if (!tls_max_version) {
-- return;
-- }
-- ssl_options.tls_max_version = *tls_max_version;
-- ssl_options.request_client_certificate = true;
-- ssl_options.client_cert_types.push_back(CLIENT_CERT_RSA_SIGN);
-- ssl_options.client_cert_types.push_back(CLIENT_CERT_ECDSA_SIGN);
-- ASSERT_TRUE(StartTestServer(ssl_options));
-- scoped_refptr<SSLCertRequestInfo> request_info = GetCertRequest();
-- ASSERT_TRUE(request_info.get());
-- ASSERT_EQ(2u, request_info->cert_key_types.size());
-- EXPECT_EQ(CLIENT_CERT_RSA_SIGN, request_info->cert_key_types[0]);
-- EXPECT_EQ(CLIENT_CERT_ECDSA_SIGN, request_info->cert_key_types[1]);
--}
-+// TEST_P(SSLClientSocketCertRequestInfoTest, CertKeyTypes) {
-+// SpawnedTestServer::SSLOptions ssl_options;
-+// auto tls_max_version = ProtocolVersionToSpawnedTestServer(version());
-+// if (!tls_max_version) {
-+// return;
-+// }
-+// ssl_options.tls_max_version = *tls_max_version;
-+// ssl_options.request_client_certificate = true;
-+// ssl_options.client_cert_types.push_back(CLIENT_CERT_RSA_SIGN);
-+// ssl_options.client_cert_types.push_back(CLIENT_CERT_ECDSA_SIGN);
-+// ASSERT_TRUE(StartTestServer(ssl_options));
-+// scoped_refptr<SSLCertRequestInfo> request_info = GetCertRequest();
-+// ASSERT_TRUE(request_info.get());
-+// ASSERT_EQ(2u, request_info->cert_key_types.size());
-+// EXPECT_EQ(CLIENT_CERT_RSA_SIGN, request_info->cert_key_types[0]);
-+// EXPECT_EQ(CLIENT_CERT_ECDSA_SIGN, request_info->cert_key_types[1]);
-+// }
-
- // Tests that the Certificate Transparency (RFC 6962) TLS extension is
- // supported.
--TEST_F(SSLClientSocketTest, ConnectSignedCertTimestampsTLSExtension) {
-- // Encoding of SCT List containing 'test'.
-- base::StringPiece sct_ext("\x00\x06\x00\x04test", 8);
-+// TEST_F(SSLClientSocketTest, ConnectSignedCertTimestampsTLSExtension) {
-+// // Encoding of SCT List containing 'test'.
-+// base::StringPiece sct_ext("\x00\x06\x00\x04test", 8);
-
-- SpawnedTestServer::SSLOptions ssl_options;
-- ssl_options.signed_cert_timestamps_tls_ext = std::string(sct_ext);
-- ASSERT_TRUE(StartTestServer(ssl_options));
-+// SpawnedTestServer::SSLOptions ssl_options;
-+// ssl_options.signed_cert_timestamps_tls_ext = std::string(sct_ext);
-+// ASSERT_TRUE(StartTestServer(ssl_options));
-
-- auto ct_verifier = std::make_unique<MockCTVerifier>();
-+// auto ct_verifier = std::make_unique<MockCTVerifier>();
-
-- // Check that the SCT list is extracted from the TLS extension as expected,
-- // while also simulating that it was an unparsable response.
-- SignedCertificateTimestampAndStatusList sct_list;
-- EXPECT_CALL(*ct_verifier, Verify(_, _, _, sct_ext, _, _))
-- .WillOnce(testing::SetArgPointee<4>(sct_list));
-+// // Check that the SCT list is extracted from the TLS extension as expected,
-+// // while also simulating that it was an unparsable response.
-+// SignedCertificateTimestampAndStatusList sct_list;
-+// EXPECT_CALL(*ct_verifier, Verify(_, _, _, sct_ext, _, _))
-+// .WillOnce(testing::SetArgPointee<4>(sct_list));
-
-- auto cert_and_ct_verifier = std::make_unique<CertAndCTVerifier>(
-- std::move(cert_verifier_), std::move(ct_verifier));
-+// auto cert_and_ct_verifier = std::make_unique<CertAndCTVerifier>(
-+// std::move(cert_verifier_), std::move(ct_verifier));
-
-- context_ = std::make_unique<SSLClientContext>(
-- ssl_config_service_.get(), cert_and_ct_verifier.get(),
-- transport_security_state_.get(), ct_policy_enforcer_.get(),
-- ssl_client_session_cache_.get(), nullptr);
-+// context_ = std::make_unique<SSLClientContext>(
-+// ssl_config_service_.get(), cert_and_ct_verifier.get(),
-+// transport_security_state_.get(), ct_policy_enforcer_.get(),
-+// ssl_client_session_cache_.get(), nullptr);
-
-- int rv;
-- ASSERT_TRUE(CreateAndConnectSSLClientSocket(SSLConfig(), &rv));
-- EXPECT_THAT(rv, IsOk());
-+// int rv;
-+// ASSERT_TRUE(CreateAndConnectSSLClientSocket(SSLConfig(), &rv));
-+// EXPECT_THAT(rv, IsOk());
-
-- EXPECT_TRUE(sock_->signed_cert_timestamps_received_);
-+// EXPECT_TRUE(sock_->signed_cert_timestamps_received_);
-
-- sock_ = nullptr;
-- context_ = nullptr;
--}
-+// sock_ = nullptr;
-+// context_ = nullptr;
-+// }
-
- // Test that when a CT verifier and a CTPolicyEnforcer are defined, and
- // the EV certificate used conforms to the CT/EV policy, its EV status
-@@ -3419,17 +3419,17 @@
- }
-
- // Test that DHE is removed.
--TEST_F(SSLClientSocketTest, NoDHE) {
-- SpawnedTestServer::SSLOptions ssl_options;
-- ssl_options.key_exchanges =
-- SpawnedTestServer::SSLOptions::KEY_EXCHANGE_DHE_RSA;
-- ASSERT_TRUE(StartTestServer(ssl_options));
-+// TEST_F(SSLClientSocketTest, NoDHE) {
-+// SpawnedTestServer::SSLOptions ssl_options;
-+// ssl_options.key_exchanges =
-+// SpawnedTestServer::SSLOptions::KEY_EXCHANGE_DHE_RSA;
-+// ASSERT_TRUE(StartTestServer(ssl_options));
-
-- SSLConfig ssl_config;
-- int rv;
-- ASSERT_TRUE(CreateAndConnectSSLClientSocket(ssl_config, &rv));
-- EXPECT_THAT(rv, IsError(ERR_SSL_VERSION_OR_CIPHER_MISMATCH));
--}
-+// SSLConfig ssl_config;
-+// int rv;
-+// ASSERT_TRUE(CreateAndConnectSSLClientSocket(ssl_config, &rv));
-+// EXPECT_THAT(rv, IsError(ERR_SSL_VERSION_OR_CIPHER_MISMATCH));
-+// }
-
- TEST_F(SSLClientSocketTest, RequireECDHE) {
- // Run test server without ECDHE.
-@@ -5562,51 +5562,51 @@
- bool known_root() const { return std::get<2>(GetParam()); }
- };
-
--INSTANTIATE_TEST_SUITE_P(
-- All,
-- TLS13DowngradeTest,
-- Combine(Values(SpawnedTestServer::SSLOptions::TLS_MAX_VERSION_TLS1_0,
-- SpawnedTestServer::SSLOptions::TLS_MAX_VERSION_TLS1_1,
-- SpawnedTestServer::SSLOptions::TLS_MAX_VERSION_TLS1_2),
-- Bool(),
-- Bool()));
-+// INSTANTIATE_TEST_SUITE_P(
-+// All,
-+// TLS13DowngradeTest,
-+// Combine(Values(SpawnedTestServer::SSLOptions::TLS_MAX_VERSION_TLS1_0,
-+// SpawnedTestServer::SSLOptions::TLS_MAX_VERSION_TLS1_1,
-+// SpawnedTestServer::SSLOptions::TLS_MAX_VERSION_TLS1_2),
-+// Bool(),
-+// Bool()));
-
--TEST_P(TLS13DowngradeTest, DowngradeEnforced) {
-- SpawnedTestServer::SSLOptions ssl_options;
-- ssl_options.simulate_tls13_downgrade = simulate_tls13_downgrade();
-- ssl_options.tls_max_version = tls_max_version();
-- ASSERT_TRUE(StartTestServer(ssl_options));
-- scoped_refptr<X509Certificate> server_cert =
-- spawned_test_server()->GetCertificate();
-+// TEST_P(TLS13DowngradeTest, DowngradeEnforced) {
-+// SpawnedTestServer::SSLOptions ssl_options;
-+// ssl_options.simulate_tls13_downgrade = simulate_tls13_downgrade();
-+// ssl_options.tls_max_version = tls_max_version();
-+// ASSERT_TRUE(StartTestServer(ssl_options));
-+// scoped_refptr<X509Certificate> server_cert =
-+// spawned_test_server()->GetCertificate();
-
-- SSLContextConfig config;
-- config.version_max = SSL_PROTOCOL_VERSION_TLS1_3;
-- // If the test is using legacy TLS versions, explicitly disable warnings
-- // (e.g., to cover cases like post-interstitial or when legacy TLS is
-- // explicitly allowed via configuration).
-- if (tls_max_version() <
-- SpawnedTestServer::SSLOptions::TLS_MAX_VERSION_TLS1_2) {
-- config.version_min_warn = SSL_PROTOCOL_VERSION_TLS1;
-- }
-- ssl_config_service_->UpdateSSLConfigAndNotify(config);
-+// SSLContextConfig config;
-+// config.version_max = SSL_PROTOCOL_VERSION_TLS1_3;
-+// // If the test is using legacy TLS versions, explicitly disable warnings
-+// // (e.g., to cover cases like post-interstitial or when legacy TLS is
-+// // explicitly allowed via configuration).
-+// if (tls_max_version() <
-+// SpawnedTestServer::SSLOptions::TLS_MAX_VERSION_TLS1_2) {
-+// config.version_min_warn = SSL_PROTOCOL_VERSION_TLS1;
-+// }
-+// ssl_config_service_->UpdateSSLConfigAndNotify(config);
-
-- CertVerifyResult verify_result;
-- verify_result.is_issued_by_known_root = known_root();
-- verify_result.verified_cert = server_cert;
-- cert_verifier_->ClearRules();
-- cert_verifier_->AddResultForCert(server_cert.get(), verify_result, OK);
-+// CertVerifyResult verify_result;
-+// verify_result.is_issued_by_known_root = known_root();
-+// verify_result.verified_cert = server_cert;
-+// cert_verifier_->ClearRules();
-+// cert_verifier_->AddResultForCert(server_cert.get(), verify_result, OK);
-
-- ssl_client_session_cache_->Flush();
-- int rv;
-- ASSERT_TRUE(CreateAndConnectSSLClientSocket(SSLConfig(), &rv));
-- if (simulate_tls13_downgrade()) {
-- EXPECT_THAT(rv, IsError(ERR_TLS13_DOWNGRADE_DETECTED));
-- EXPECT_FALSE(sock_->IsConnected());
-- } else {
-- EXPECT_THAT(rv, IsOk());
-- EXPECT_TRUE(sock_->IsConnected());
-- }
--}
-+// ssl_client_session_cache_->Flush();
-+// int rv;
-+// ASSERT_TRUE(CreateAndConnectSSLClientSocket(SSLConfig(), &rv));
-+// if (simulate_tls13_downgrade()) {
-+// EXPECT_THAT(rv, IsError(ERR_TLS13_DOWNGRADE_DETECTED));
-+// EXPECT_FALSE(sock_->IsConnected());
-+// } else {
-+// EXPECT_THAT(rv, IsOk());
-+// EXPECT_TRUE(sock_->IsConnected());
-+// }
-+// }
-
- struct SSLHandshakeDetailsParams {
- bool alpn;
---- ./net/url_request/url_request_unittest.cc.orig
-+++ ./net/url_request/url_request_unittest.cc
-@@ -10036,147 +10036,147 @@
- }
- }
-
--TEST_F(HTTPSRequestTest, ResumeTest) {
-- // Test that we attempt a session resume when making two connections to the
-- // same host.
-- SpawnedTestServer::SSLOptions ssl_options;
-- ssl_options.record_resume = true;
-- SpawnedTestServer test_server(
-- SpawnedTestServer::TYPE_HTTPS, ssl_options,
-- base::FilePath(FILE_PATH_LITERAL("net/data/ssl")));
-- ASSERT_TRUE(test_server.Start());
-+// TEST_F(HTTPSRequestTest, ResumeTest) {
-+// // Test that we attempt a session resume when making two connections to the
-+// // same host.
-+// SpawnedTestServer::SSLOptions ssl_options;
-+// ssl_options.record_resume = true;
-+// SpawnedTestServer test_server(
-+// SpawnedTestServer::TYPE_HTTPS, ssl_options,
-+// base::FilePath(FILE_PATH_LITERAL("net/data/ssl")));
-+// ASSERT_TRUE(test_server.Start());
-
-- default_context_.http_transaction_factory()
-- ->GetSession()
-- ->ClearSSLSessionCache();
-+// default_context_.http_transaction_factory()
-+// ->GetSession()
-+// ->ClearSSLSessionCache();
-
-- {
-- TestDelegate d;
-- std::unique_ptr<URLRequest> r(default_context_.CreateRequest(
-- test_server.GetURL("ssl-session-cache"), DEFAULT_PRIORITY, &d,
-- TRAFFIC_ANNOTATION_FOR_TESTS));
-+// {
-+// TestDelegate d;
-+// std::unique_ptr<URLRequest> r(default_context_.CreateRequest(
-+// test_server.GetURL("ssl-session-cache"), DEFAULT_PRIORITY, &d,
-+// TRAFFIC_ANNOTATION_FOR_TESTS));
-
-- r->Start();
-- EXPECT_TRUE(r->is_pending());
-+// r->Start();
-+// EXPECT_TRUE(r->is_pending());
-
-- d.RunUntilComplete();
-+// d.RunUntilComplete();
-
-- EXPECT_EQ(1, d.response_started_count());
-- }
-+// EXPECT_EQ(1, d.response_started_count());
-+// }
-
-- reinterpret_cast<HttpCache*>(default_context_.http_transaction_factory())
-- ->CloseAllConnections(ERR_FAILED, "Very good reason");
-+// reinterpret_cast<HttpCache*>(default_context_.http_transaction_factory())
-+// ->CloseAllConnections(ERR_FAILED, "Very good reason");
-
-- {
-- TestDelegate d;
-- std::unique_ptr<URLRequest> r(default_context_.CreateRequest(
-- test_server.GetURL("ssl-session-cache"), DEFAULT_PRIORITY, &d,
-- TRAFFIC_ANNOTATION_FOR_TESTS));
-+// {
-+// TestDelegate d;
-+// std::unique_ptr<URLRequest> r(default_context_.CreateRequest(
-+// test_server.GetURL("ssl-session-cache"), DEFAULT_PRIORITY, &d,
-+// TRAFFIC_ANNOTATION_FOR_TESTS));
-
-- r->Start();
-- EXPECT_TRUE(r->is_pending());
-+// r->Start();
-+// EXPECT_TRUE(r->is_pending());
-
-- d.RunUntilComplete();
-+// d.RunUntilComplete();
-
-- // The response will look like;
-- // lookup uvw (TLS 1.3's compatibility session ID)
-- // insert abc
-- // lookup abc
-- // insert xyz
-- //
-- // With a newline at the end which makes the split think that there are
-- // four lines.
-+// // The response will look like;
-+// // lookup uvw (TLS 1.3's compatibility session ID)
-+// // insert abc
-+// // lookup abc
-+// // insert xyz
-+// //
-+// // With a newline at the end which makes the split think that there are
-+// // four lines.
-
-- EXPECT_EQ(1, d.response_started_count());
-- std::vector<std::string> lines = base::SplitString(
-- d.data_received(), "\n", base::TRIM_WHITESPACE, base::SPLIT_WANT_ALL);
-- ASSERT_EQ(5u, lines.size()) << d.data_received();
-+// EXPECT_EQ(1, d.response_started_count());
-+// std::vector<std::string> lines = base::SplitString(
-+// d.data_received(), "\n", base::TRIM_WHITESPACE, base::SPLIT_WANT_ALL);
-+// ASSERT_EQ(5u, lines.size()) << d.data_received();
-
-- std::string session_id;
-+// std::string session_id;
-
-- for (size_t i = 0; i < 3; i++) {
-- std::vector<std::string> parts = base::SplitString(
-- lines[i], "\t", base::TRIM_WHITESPACE, base::SPLIT_WANT_ALL);
-- ASSERT_EQ(2u, parts.size());
-- if (i % 2 == 1) {
-- EXPECT_EQ("insert", parts[0]);
-- session_id = parts[1];
-- } else {
-- EXPECT_EQ("lookup", parts[0]);
-- if (i != 0)
-- EXPECT_EQ(session_id, parts[1]);
-- }
-- }
-- }
--}
-+// for (size_t i = 0; i < 3; i++) {
-+// std::vector<std::string> parts = base::SplitString(
-+// lines[i], "\t", base::TRIM_WHITESPACE, base::SPLIT_WANT_ALL);
-+// ASSERT_EQ(2u, parts.size());
-+// if (i % 2 == 1) {
-+// EXPECT_EQ("insert", parts[0]);
-+// session_id = parts[1];
-+// } else {
-+// EXPECT_EQ("lookup", parts[0]);
-+// if (i != 0)
-+// EXPECT_EQ(session_id, parts[1]);
-+// }
-+// }
-+// }
-+// }
-
--TEST_F(HTTPSRequestTest, SSLSessionCacheShardTest) {
-- // Test that sessions aren't resumed when the value of ssl_session_cache_shard
-- // differs.
-- SpawnedTestServer::SSLOptions ssl_options;
-- ssl_options.record_resume = true;
-- SpawnedTestServer test_server(
-- SpawnedTestServer::TYPE_HTTPS, ssl_options,
-- base::FilePath(FILE_PATH_LITERAL("net/data/ssl")));
-- ASSERT_TRUE(test_server.Start());
-+// TEST_F(HTTPSRequestTest, SSLSessionCacheShardTest) {
-+// // Test that sessions aren't resumed when the value of ssl_session_cache_shard
-+// // differs.
-+// SpawnedTestServer::SSLOptions ssl_options;
-+// ssl_options.record_resume = true;
-+// SpawnedTestServer test_server(
-+// SpawnedTestServer::TYPE_HTTPS, ssl_options,
-+// base::FilePath(FILE_PATH_LITERAL("net/data/ssl")));
-+// ASSERT_TRUE(test_server.Start());
-
-- default_context_.http_transaction_factory()
-- ->GetSession()
-- ->ClearSSLSessionCache();
-+// default_context_.http_transaction_factory()
-+// ->GetSession()
-+// ->ClearSSLSessionCache();
-
-- {
-- TestDelegate d;
-- std::unique_ptr<URLRequest> r(default_context_.CreateRequest(
-- test_server.GetURL("/"), DEFAULT_PRIORITY, &d,
-- TRAFFIC_ANNOTATION_FOR_TESTS));
-+// {
-+// TestDelegate d;
-+// std::unique_ptr<URLRequest> r(default_context_.CreateRequest(
-+// test_server.GetURL("/"), DEFAULT_PRIORITY, &d,
-+// TRAFFIC_ANNOTATION_FOR_TESTS));
-
-- r->Start();
-- EXPECT_TRUE(r->is_pending());
-+// r->Start();
-+// EXPECT_TRUE(r->is_pending());
-
-- d.RunUntilComplete();
-+// d.RunUntilComplete();
-
-- EXPECT_EQ(1, d.response_started_count());
-- }
-+// EXPECT_EQ(1, d.response_started_count());
-+// }
-
-- // Now create a new HttpCache with a different ssl_session_cache_shard value.
-- HttpNetworkSession::Context session_context;
-- session_context.host_resolver = default_context_.host_resolver();
-- session_context.cert_verifier = default_context_.cert_verifier();
-- session_context.transport_security_state =
-- default_context_.transport_security_state();
-- session_context.ct_policy_enforcer = default_context_.ct_policy_enforcer();
-- session_context.proxy_resolution_service =
-- default_context_.proxy_resolution_service();
-- session_context.ssl_config_service = default_context_.ssl_config_service();
-- session_context.http_auth_handler_factory =
-- default_context_.http_auth_handler_factory();
-- session_context.http_server_properties =
-- default_context_.http_server_properties();
-- session_context.quic_context = default_context_.quic_context();
-+// // Now create a new HttpCache with a different ssl_session_cache_shard value.
-+// HttpNetworkSession::Context session_context;
-+// session_context.host_resolver = default_context_.host_resolver();
-+// session_context.cert_verifier = default_context_.cert_verifier();
-+// session_context.transport_security_state =
-+// default_context_.transport_security_state();
-+// session_context.ct_policy_enforcer = default_context_.ct_policy_enforcer();
-+// session_context.proxy_resolution_service =
-+// default_context_.proxy_resolution_service();
-+// session_context.ssl_config_service = default_context_.ssl_config_service();
-+// session_context.http_auth_handler_factory =
-+// default_context_.http_auth_handler_factory();
-+// session_context.http_server_properties =
-+// default_context_.http_server_properties();
-+// session_context.quic_context = default_context_.quic_context();
-
-- HttpNetworkSession network_session(HttpNetworkSession::Params(),
-- session_context);
-- std::unique_ptr<HttpCache> cache(
-- new HttpCache(&network_session, HttpCache::DefaultBackend::InMemory(0),
-- false /* is_main_cache */));
-+// HttpNetworkSession network_session(HttpNetworkSession::Params(),
-+// session_context);
-+// std::unique_ptr<HttpCache> cache(
-+// new HttpCache(&network_session, HttpCache::DefaultBackend::InMemory(0),
-+// false /* is_main_cache */));
-
-- default_context_.set_http_transaction_factory(cache.get());
-+// default_context_.set_http_transaction_factory(cache.get());
-
-- {
-- TestDelegate d;
-- std::unique_ptr<URLRequest> r(default_context_.CreateRequest(
-- test_server.GetURL("ssl-session-cache"), DEFAULT_PRIORITY, &d,
-- TRAFFIC_ANNOTATION_FOR_TESTS));
-+// {
-+// TestDelegate d;
-+// std::unique_ptr<URLRequest> r(default_context_.CreateRequest(
-+// test_server.GetURL("ssl-session-cache"), DEFAULT_PRIORITY, &d,
-+// TRAFFIC_ANNOTATION_FOR_TESTS));
-
-- r->Start();
-- EXPECT_TRUE(r->is_pending());
-+// r->Start();
-+// EXPECT_TRUE(r->is_pending());
-
-- d.RunUntilComplete();
-+// d.RunUntilComplete();
-
-- EXPECT_EQ(1, d.response_started_count());
-- EXPECT_EQ(SSLInfo::HANDSHAKE_FULL, r->ssl_info().handshake_type);
-- }
--}
-+// EXPECT_EQ(1, d.response_started_count());
-+// EXPECT_EQ(SSLInfo::HANDSHAKE_FULL, r->ssl_info().handshake_type);
-+// }
-+// }
-
- // Test that sessions started with privacy mode enabled cannot be resumed when
- // it is disabled, and vice versa.
-@@ -10278,37 +10278,37 @@
- };
-
- // Tests the TLS 1.0 fallback doesn't happen.
--TEST_F(HTTPSFallbackTest, TLSv1NoFallback) {
-- SpawnedTestServer::SSLOptions ssl_options(
-- SpawnedTestServer::SSLOptions::CERT_OK);
-- ssl_options.tls_intolerant =
-- SpawnedTestServer::SSLOptions::TLS_INTOLERANT_TLS1_1;
-+// TEST_F(HTTPSFallbackTest, TLSv1NoFallback) {
-+// SpawnedTestServer::SSLOptions ssl_options(
-+// SpawnedTestServer::SSLOptions::CERT_OK);
-+// ssl_options.tls_intolerant =
-+// SpawnedTestServer::SSLOptions::TLS_INTOLERANT_TLS1_1;
-
-- ASSERT_NO_FATAL_FAILURE(DoFallbackTest(ssl_options));
-- ExpectFailure(ERR_SSL_VERSION_OR_CIPHER_MISMATCH);
--}
-+// ASSERT_NO_FATAL_FAILURE(DoFallbackTest(ssl_options));
-+// ExpectFailure(ERR_SSL_VERSION_OR_CIPHER_MISMATCH);
-+// }
-
- // Tests the TLS 1.1 fallback doesn't happen.
--TEST_F(HTTPSFallbackTest, TLSv1_1NoFallback) {
-- SpawnedTestServer::SSLOptions ssl_options(
-- SpawnedTestServer::SSLOptions::CERT_OK);
-- ssl_options.tls_intolerant =
-- SpawnedTestServer::SSLOptions::TLS_INTOLERANT_TLS1_2;
-+// TEST_F(HTTPSFallbackTest, TLSv1_1NoFallback) {
-+// SpawnedTestServer::SSLOptions ssl_options(
-+// SpawnedTestServer::SSLOptions::CERT_OK);
-+// ssl_options.tls_intolerant =
-+// SpawnedTestServer::SSLOptions::TLS_INTOLERANT_TLS1_2;
-
-- ASSERT_NO_FATAL_FAILURE(DoFallbackTest(ssl_options));
-- ExpectFailure(ERR_SSL_VERSION_OR_CIPHER_MISMATCH);
--}
-+// ASSERT_NO_FATAL_FAILURE(DoFallbackTest(ssl_options));
-+// ExpectFailure(ERR_SSL_VERSION_OR_CIPHER_MISMATCH);
-+// }
-
- // Tests the TLS 1.2 fallback doesn't happen.
--TEST_F(HTTPSFallbackTest, TLSv1_2NoFallback) {
-- SpawnedTestServer::SSLOptions ssl_options(
-- SpawnedTestServer::SSLOptions::CERT_OK);
-- ssl_options.tls_intolerant =
-- SpawnedTestServer::SSLOptions::TLS_INTOLERANT_TLS1_3;
-+// TEST_F(HTTPSFallbackTest, TLSv1_2NoFallback) {
-+// SpawnedTestServer::SSLOptions ssl_options(
-+// SpawnedTestServer::SSLOptions::CERT_OK);
-+// ssl_options.tls_intolerant =
-+// SpawnedTestServer::SSLOptions::TLS_INTOLERANT_TLS1_3;
-
-- ASSERT_NO_FATAL_FAILURE(DoFallbackTest(ssl_options));
-- ExpectFailure(ERR_SSL_VERSION_OR_CIPHER_MISMATCH);
--}
-+// ASSERT_NO_FATAL_FAILURE(DoFallbackTest(ssl_options));
-+// ExpectFailure(ERR_SSL_VERSION_OR_CIPHER_MISMATCH);
-+// }
-
- class HTTPSSessionTest : public TestWithTaskEnvironment {
- public:
-@@ -10329,55 +10329,55 @@
-
- // Tests that session resumption is not attempted if an invalid certificate
- // is presented.
--TEST_F(HTTPSSessionTest, DontResumeSessionsForInvalidCertificates) {
-- SpawnedTestServer::SSLOptions ssl_options;
-- ssl_options.record_resume = true;
-- SpawnedTestServer test_server(
-- SpawnedTestServer::TYPE_HTTPS, ssl_options,
-- base::FilePath(FILE_PATH_LITERAL("net/data/ssl")));
-- ASSERT_TRUE(test_server.Start());
-+// TEST_F(HTTPSSessionTest, DontResumeSessionsForInvalidCertificates) {
-+// SpawnedTestServer::SSLOptions ssl_options;
-+// ssl_options.record_resume = true;
-+// SpawnedTestServer test_server(
-+// SpawnedTestServer::TYPE_HTTPS, ssl_options,
-+// base::FilePath(FILE_PATH_LITERAL("net/data/ssl")));
-+// ASSERT_TRUE(test_server.Start());
-
-- default_context_.http_transaction_factory()
-- ->GetSession()
-- ->ClearSSLSessionCache();
-+// default_context_.http_transaction_factory()
-+// ->GetSession()
-+// ->ClearSSLSessionCache();
-
-- // Simulate the certificate being expired and attempt a connection.
-- cert_verifier_.set_default_result(ERR_CERT_DATE_INVALID);
-- {
-- TestDelegate d;
-- std::unique_ptr<URLRequest> r(default_context_.CreateRequest(
-- test_server.GetURL("/"), DEFAULT_PRIORITY, &d,
-- TRAFFIC_ANNOTATION_FOR_TESTS));
-+// // Simulate the certificate being expired and attempt a connection.
-+// cert_verifier_.set_default_result(ERR_CERT_DATE_INVALID);
-+// {
-+// TestDelegate d;
-+// std::unique_ptr<URLRequest> r(default_context_.CreateRequest(
-+// test_server.GetURL("/"), DEFAULT_PRIORITY, &d,
-+// TRAFFIC_ANNOTATION_FOR_TESTS));
-
-- r->Start();
-- EXPECT_TRUE(r->is_pending());
-+// r->Start();
-+// EXPECT_TRUE(r->is_pending());
-
-- d.RunUntilComplete();
-+// d.RunUntilComplete();
-
-- EXPECT_EQ(1, d.response_started_count());
-- }
-+// EXPECT_EQ(1, d.response_started_count());
-+// }
-
-- reinterpret_cast<HttpCache*>(default_context_.http_transaction_factory())
-- ->CloseAllConnections(ERR_FAILED, "Very good reason");
-+// reinterpret_cast<HttpCache*>(default_context_.http_transaction_factory())
-+// ->CloseAllConnections(ERR_FAILED, "Very good reason");
-
-- // Now change the certificate to be acceptable (so that the response is
-- // loaded), and ensure that no session id is presented to the peer.
-- cert_verifier_.set_default_result(OK);
-- {
-- TestDelegate d;
-- std::unique_ptr<URLRequest> r(default_context_.CreateRequest(
-- test_server.GetURL("ssl-session-cache"), DEFAULT_PRIORITY, &d,
-- TRAFFIC_ANNOTATION_FOR_TESTS));
-+// // Now change the certificate to be acceptable (so that the response is
-+// // loaded), and ensure that no session id is presented to the peer.
-+// cert_verifier_.set_default_result(OK);
-+// {
-+// TestDelegate d;
-+// std::unique_ptr<URLRequest> r(default_context_.CreateRequest(
-+// test_server.GetURL("ssl-session-cache"), DEFAULT_PRIORITY, &d,
-+// TRAFFIC_ANNOTATION_FOR_TESTS));
-
-- r->Start();
-- EXPECT_TRUE(r->is_pending());
-+// r->Start();
-+// EXPECT_TRUE(r->is_pending());
-
-- d.RunUntilComplete();
-+// d.RunUntilComplete();
-
-- EXPECT_EQ(1, d.response_started_count());
-- EXPECT_EQ(SSLInfo::HANDSHAKE_FULL, r->ssl_info().handshake_type);
-- }
--}
-+// EXPECT_EQ(1, d.response_started_count());
-+// EXPECT_EQ(SSLInfo::HANDSHAKE_FULL, r->ssl_info().handshake_type);
-+// }
-+// }
-
- // Interceptor to check that secure DNS has been disabled. Secure DNS should be
- // disabled for any network fetch triggered during certificate verification as
diff --git a/community/chromium/fix-unittests-net.patch b/community/chromium/fix-unittests-net.patch
deleted file mode 100644
index e8d9587075..0000000000
--- a/community/chromium/fix-unittests-net.patch
+++ /dev/null
@@ -1,259 +0,0 @@
---- ./net/third_party/quiche/src/epoll_server/simple_epoll_server.cc.orig
-+++ ./net/third_party/quiche/src/epoll_server/simple_epoll_server.cc
-@@ -7,6 +7,7 @@
- #include <errno.h> // for errno and strerror_r
- #include <stdlib.h> // for abort
- #include <unistd.h> // For read, pipe, close and write.
-+#include <string.h>
-
- #include <algorithm>
- #include <utility>
---- ./net/third_party/quiche/src/common/quiche_endian.h.orig
-+++ ./net/third_party/quiche/src/common/quiche_endian.h
-@@ -8,6 +8,7 @@
- #include <algorithm>
- #include <cstdint>
- #include <type_traits>
-+#include <array>
-
- #include "common/platform/api/quiche_export.h"
-
---- ./net/third_party/quiche/src/common/quiche_circular_deque_test.cc.orig
-+++ ./net/third_party/quiche/src/common/quiche_circular_deque_test.cc
-@@ -578,130 +578,130 @@
- };
- } // namespace
-
--TEST_F(QuicheCircularDequeTest, RelocateNonTriviallyCopyable) {
-- // When relocating non-trivially-copyable objects:
-- // - Move constructor is preferred, if available.
-- // - Copy constructor is used otherwise.
-+// TEST_F(QuicheCircularDequeTest, RelocateNonTriviallyCopyable) {
-+// // When relocating non-trivially-copyable objects:
-+// // - Move constructor is preferred, if available.
-+// // - Copy constructor is used otherwise.
-
-- {
-- // Move construct in Relocate.
-- using MoveConstructible = std::unique_ptr<Foo>;
-- ASSERT_FALSE(std::is_trivially_copyable<MoveConstructible>::value);
-- ASSERT_TRUE(std::is_move_constructible<MoveConstructible>::value);
-- QuicheCircularDeque<MoveConstructible, 3,
-- CountingAllocator<MoveConstructible>>
-- dq1;
-- dq1.resize(3);
-- EXPECT_EQ(dq1.size(), dq1.capacity());
-- EXPECT_EQ(1u, dq1.get_allocator().allocate_count());
-+// {
-+// // Move construct in Relocate.
-+// using MoveConstructible = std::unique_ptr<Foo>;
-+// ASSERT_FALSE(std::is_trivially_copyable<MoveConstructible>::value);
-+// ASSERT_TRUE(std::is_move_constructible<MoveConstructible>::value);
-+// QuicheCircularDeque<MoveConstructible, 3,
-+// CountingAllocator<MoveConstructible>>
-+// dq1;
-+// dq1.resize(3);
-+// EXPECT_EQ(dq1.size(), dq1.capacity());
-+// EXPECT_EQ(1u, dq1.get_allocator().allocate_count());
-
-- dq1.emplace_back(new Foo(0xF1)); // Cause existing elements to relocate.
-- EXPECT_EQ(4u, dq1.size());
-- EXPECT_EQ(2u, dq1.get_allocator().allocate_count());
-- EXPECT_EQ(dq1[0], nullptr);
-- EXPECT_EQ(dq1[1], nullptr);
-- EXPECT_EQ(dq1[2], nullptr);
-- EXPECT_EQ(dq1[3]->i(), 0xF1);
-- }
-+// dq1.emplace_back(new Foo(0xF1)); // Cause existing elements to relocate.
-+// EXPECT_EQ(4u, dq1.size());
-+// EXPECT_EQ(2u, dq1.get_allocator().allocate_count());
-+// EXPECT_EQ(dq1[0], nullptr);
-+// EXPECT_EQ(dq1[1], nullptr);
-+// EXPECT_EQ(dq1[2], nullptr);
-+// EXPECT_EQ(dq1[3]->i(), 0xF1);
-+// }
-
-- {
-- // Copy construct in Relocate.
-- using NonMoveConstructible = Foo;
-- ASSERT_FALSE(std::is_trivially_copyable<NonMoveConstructible>::value);
-- ASSERT_FALSE(std::is_move_constructible<NonMoveConstructible>::value);
-- QuicheCircularDeque<NonMoveConstructible, 3,
-- CountingAllocator<NonMoveConstructible>>
-- dq2;
-- dq2.resize(3);
-- EXPECT_EQ(dq2.size(), dq2.capacity());
-- EXPECT_EQ(1u, dq2.get_allocator().allocate_count());
-+// {
-+// // Copy construct in Relocate.
-+// using NonMoveConstructible = Foo;
-+// ASSERT_FALSE(std::is_trivially_copyable<NonMoveConstructible>::value);
-+// ASSERT_FALSE(std::is_move_constructible<NonMoveConstructible>::value);
-+// QuicheCircularDeque<NonMoveConstructible, 3,
-+// CountingAllocator<NonMoveConstructible>>
-+// dq2;
-+// dq2.resize(3);
-+// EXPECT_EQ(dq2.size(), dq2.capacity());
-+// EXPECT_EQ(1u, dq2.get_allocator().allocate_count());
-
-- dq2.emplace_back(0xF1); // Cause existing elements to relocate.
-- EXPECT_EQ(4u, dq2.size());
-- EXPECT_EQ(2u, dq2.get_allocator().allocate_count());
-- EXPECT_EQ(dq2[0].i(), 0xF00);
-- EXPECT_EQ(dq2[1].i(), 0xF00);
-- EXPECT_EQ(dq2[2].i(), 0xF00);
-- EXPECT_EQ(dq2[3].i(), 0xF1);
-- }
--}
-+// dq2.emplace_back(0xF1); // Cause existing elements to relocate.
-+// EXPECT_EQ(4u, dq2.size());
-+// EXPECT_EQ(2u, dq2.get_allocator().allocate_count());
-+// EXPECT_EQ(dq2[0].i(), 0xF00);
-+// EXPECT_EQ(dq2[1].i(), 0xF00);
-+// EXPECT_EQ(dq2[2].i(), 0xF00);
-+// EXPECT_EQ(dq2[3].i(), 0xF1);
-+// }
-+// }
-
--TEST_F(QuicheCircularDequeTest, PushPop) {
-- // (push|pop|emplace)_(back|front)
-+// TEST_F(QuicheCircularDequeTest, PushPop) {
-+// // (push|pop|emplace)_(back|front)
-
-- {
-- QuicheCircularDeque<Foo, 4, CountingAllocator<Foo>> dq(4);
-- for (size_t i = 0; i < dq.size(); ++i) {
-- dq[i].Set(i + 1);
-- }
-- QUICHE_LOG(INFO) << "dq initialized to " << dq;
-- EXPECT_THAT(dq, ElementsAre(Foo(1), Foo(2), Foo(3), Foo(4)));
-+// {
-+// QuicheCircularDeque<Foo, 4, CountingAllocator<Foo>> dq(4);
-+// for (size_t i = 0; i < dq.size(); ++i) {
-+// dq[i].Set(i + 1);
-+// }
-+// QUICHE_LOG(INFO) << "dq initialized to " << dq;
-+// EXPECT_THAT(dq, ElementsAre(Foo(1), Foo(2), Foo(3), Foo(4)));
-
-- ShiftLeft(&dq, false);
-- QUICHE_LOG(INFO) << "shift left once : " << dq;
-- EXPECT_THAT(dq, ElementsAre(Foo(2), Foo(3), Foo(4), Foo(1)));
-+// ShiftLeft(&dq, false);
-+// QUICHE_LOG(INFO) << "shift left once : " << dq;
-+// EXPECT_THAT(dq, ElementsAre(Foo(2), Foo(3), Foo(4), Foo(1)));
-
-- ShiftLeft(&dq, true);
-- QUICHE_LOG(INFO) << "shift left twice: " << dq;
-- EXPECT_THAT(dq, ElementsAre(Foo(3), Foo(4), Foo(1), Foo(2)));
-- ASSERT_GT(&dq.front(), &dq.back());
-- // dq destructs with wrapped data.
-- }
-+// ShiftLeft(&dq, true);
-+// QUICHE_LOG(INFO) << "shift left twice: " << dq;
-+// EXPECT_THAT(dq, ElementsAre(Foo(3), Foo(4), Foo(1), Foo(2)));
-+// ASSERT_GT(&dq.front(), &dq.back());
-+// // dq destructs with wrapped data.
-+// }
-
-- {
-- QuicheCircularDeque<Foo, 4, CountingAllocator<Foo>> dq1(4);
-- for (size_t i = 0; i < dq1.size(); ++i) {
-- dq1[i].Set(i + 1);
-- }
-- QUICHE_LOG(INFO) << "dq1 initialized to " << dq1;
-- EXPECT_THAT(dq1, ElementsAre(Foo(1), Foo(2), Foo(3), Foo(4)));
-+// {
-+// QuicheCircularDeque<Foo, 4, CountingAllocator<Foo>> dq1(4);
-+// for (size_t i = 0; i < dq1.size(); ++i) {
-+// dq1[i].Set(i + 1);
-+// }
-+// QUICHE_LOG(INFO) << "dq1 initialized to " << dq1;
-+// EXPECT_THAT(dq1, ElementsAre(Foo(1), Foo(2), Foo(3), Foo(4)));
-
-- ShiftRight(&dq1, false);
-- QUICHE_LOG(INFO) << "shift right once : " << dq1;
-- EXPECT_THAT(dq1, ElementsAre(Foo(4), Foo(1), Foo(2), Foo(3)));
-+// ShiftRight(&dq1, false);
-+// QUICHE_LOG(INFO) << "shift right once : " << dq1;
-+// EXPECT_THAT(dq1, ElementsAre(Foo(4), Foo(1), Foo(2), Foo(3)));
-
-- ShiftRight(&dq1, true);
-- QUICHE_LOG(INFO) << "shift right twice: " << dq1;
-- EXPECT_THAT(dq1, ElementsAre(Foo(3), Foo(4), Foo(1), Foo(2)));
-- ASSERT_GT(&dq1.front(), &dq1.back());
-- // dq1 destructs with wrapped data.
-- }
-+// ShiftRight(&dq1, true);
-+// QUICHE_LOG(INFO) << "shift right twice: " << dq1;
-+// EXPECT_THAT(dq1, ElementsAre(Foo(3), Foo(4), Foo(1), Foo(2)));
-+// ASSERT_GT(&dq1.front(), &dq1.back());
-+// // dq1 destructs with wrapped data.
-+// }
-
-- { // Pop n elements from front.
-- QuicheCircularDeque<Foo, 4, CountingAllocator<Foo>> dq2(5);
-- for (size_t i = 0; i < dq2.size(); ++i) {
-- dq2[i].Set(i + 1);
-- }
-- EXPECT_THAT(dq2, ElementsAre(Foo(1), Foo(2), Foo(3), Foo(4), Foo(5)));
-+// { // Pop n elements from front.
-+// QuicheCircularDeque<Foo, 4, CountingAllocator<Foo>> dq2(5);
-+// for (size_t i = 0; i < dq2.size(); ++i) {
-+// dq2[i].Set(i + 1);
-+// }
-+// EXPECT_THAT(dq2, ElementsAre(Foo(1), Foo(2), Foo(3), Foo(4), Foo(5)));
-
-- EXPECT_EQ(2u, dq2.pop_front_n(2));
-- EXPECT_THAT(dq2, ElementsAre(Foo(3), Foo(4), Foo(5)));
-+// EXPECT_EQ(2u, dq2.pop_front_n(2));
-+// EXPECT_THAT(dq2, ElementsAre(Foo(3), Foo(4), Foo(5)));
-
-- EXPECT_EQ(3u, dq2.pop_front_n(100));
-- EXPECT_TRUE(dq2.empty());
-- }
-+// EXPECT_EQ(3u, dq2.pop_front_n(100));
-+// EXPECT_TRUE(dq2.empty());
-+// }
-
-- { // Pop n elements from back.
-- QuicheCircularDeque<Foo, 4, CountingAllocator<Foo>> dq3(6);
-- for (size_t i = 0; i < dq3.size(); ++i) {
-- dq3[i].Set(i + 1);
-- }
-- EXPECT_THAT(dq3,
-- ElementsAre(Foo(1), Foo(2), Foo(3), Foo(4), Foo(5), Foo(6)));
-+// { // Pop n elements from back.
-+// QuicheCircularDeque<Foo, 4, CountingAllocator<Foo>> dq3(6);
-+// for (size_t i = 0; i < dq3.size(); ++i) {
-+// dq3[i].Set(i + 1);
-+// }
-+// EXPECT_THAT(dq3,
-+// ElementsAre(Foo(1), Foo(2), Foo(3), Foo(4), Foo(5), Foo(6)));
-
-- ShiftRight(&dq3, true);
-- ShiftRight(&dq3, true);
-- ShiftRight(&dq3, true);
-- EXPECT_THAT(dq3,
-- ElementsAre(Foo(4), Foo(5), Foo(6), Foo(1), Foo(2), Foo(3)));
-+// ShiftRight(&dq3, true);
-+// ShiftRight(&dq3, true);
-+// ShiftRight(&dq3, true);
-+// EXPECT_THAT(dq3,
-+// ElementsAre(Foo(4), Foo(5), Foo(6), Foo(1), Foo(2), Foo(3)));
-
-- EXPECT_EQ(2u, dq3.pop_back_n(2));
-- EXPECT_THAT(dq3, ElementsAre(Foo(4), Foo(5), Foo(6), Foo(1)));
-+// EXPECT_EQ(2u, dq3.pop_back_n(2));
-+// EXPECT_THAT(dq3, ElementsAre(Foo(4), Foo(5), Foo(6), Foo(1)));
-
-- EXPECT_EQ(2u, dq3.pop_back_n(2));
-- EXPECT_THAT(dq3, ElementsAre(Foo(4), Foo(5)));
-- }
--}
-+// EXPECT_EQ(2u, dq3.pop_back_n(2));
-+// EXPECT_THAT(dq3, ElementsAre(Foo(4), Foo(5)));
-+// }
-+// }
-
- TEST_F(QuicheCircularDequeTest, Allocation) {
- CountingAllocator<int> alloc;
diff --git a/community/chromium/gcc-fno-delete-null-pointer-checks.patch b/community/chromium/gcc-fno-delete-null-pointer-checks.patch
deleted file mode 100644
index 55118fef27..0000000000
--- a/community/chromium/gcc-fno-delete-null-pointer-checks.patch
+++ /dev/null
@@ -1,17 +0,0 @@
---- ./v8/BUILD.gn
-+++ ./v8/BUILD.gn
-@@ -675,6 +675,14 @@
- defines += [ "V8_TARGET_OS_WIN" ]
- }
-
-+ if (!is_win && !is_clang) {
-+ # GCC 6 can optimize away pointer comparisons to null. This is
-+ # problematic as V8 encodes Values through tagged pointers and comparisons
-+ # with 0 are actually necessary in many cases. As a temporary Workaround
-+ # we disable this optimization. See: https://crbug.com/v8/3782
-+ cflags = [ "-fno-delete-null-pointer-checks" ]
-+ }
-+
- # TODO(jochen): Support v8_enable_prof on Windows.
- # TODO(jochen): Add support for compiling with simulators.
-
diff --git a/community/chromium/gdbinit.patch b/community/chromium/gdbinit.patch
index 97992795d8..39d34644f3 100644
--- a/community/chromium/gdbinit.patch
+++ b/community/chromium/gdbinit.patch
@@ -1,5 +1,5 @@
---- tools/gdb/gdbinit.orig
-+++ tools/gdb/gdbinit
+--- ./tools/gdb/gdbinit.orig
++++ ./tools/gdb/gdbinit
@@ -50,17 +50,7 @@
def set_src_dir(compile_dir):
diff --git a/community/chromium/musl-fixes.patch b/community/chromium/musl-fixes.patch
index ef975a4180..6710d0c4a7 100644
--- a/community/chromium/musl-fixes.patch
+++ b/community/chromium/musl-fixes.patch
@@ -1,23 +1,8 @@
--- ./third_party/lss/linux_syscall_support.h.orig
+++ ./third_party/lss/linux_syscall_support.h
-@@ -139,12 +139,14 @@
- */
- #pragma push_macro("stat64")
- #pragma push_macro("fstat64")
-+#pragma push_macro("fstatat64")
- #pragma push_macro("lstat64")
- #pragma push_macro("pread64")
- #pragma push_macro("pwrite64")
- #pragma push_macro("getdents64")
- #undef stat64
- #undef fstat64
-+#undef fstatat64
- #undef lstat64
- #undef pread64
- #undef pwrite64
-@@ -1258,6 +1260,12 @@
- #ifndef __NR_getrandom
- #define __NR_getrandom 318
+@@ -1127,6 +1127,12 @@
+ #ifndef __NR_fallocate
+ #define __NR_fallocate 285
#endif
+
+#undef __NR_pread
@@ -28,15 +13,29 @@
/* End of x86-64 definitions */
#elif defined(__mips__)
#if _MIPS_SIM == _MIPS_SIM_ABI32
-@@ -4545,6 +4553,7 @@
- * corresponding #pragma push_macro near the top of this file. */
- #pragma pop_macro("stat64")
- #pragma pop_macro("fstat64")
-+#pragma pop_macro("fstatat64")
- #pragma pop_macro("lstat64")
- #pragma pop_macro("pread64")
- #pragma pop_macro("pwrite64")
-
+--- ./third_party/breakpad/breakpad/src/client/linux/dump_writer_common/ucontext_reader.h.orig
++++ ./third_party/breakpad/breakpad/src/client/linux/dump_writer_common/ucontext_reader.h
+@@ -37,6 +37,10 @@
+ #include "common/memory.h"
+ #include "google_breakpad/common/minidump_format.h"
+
++#if !defined(__GLIBC__)
++ #define _libc_fpstate _fpstate
++#endif
++
+ namespace google_breakpad {
+
+ // Wraps platform-dependent implementations of accessors to ucontext_t structs.
+--- ./third_party/breakpad/breakpad/src/common/linux/elf_core_dump.h.orig
++++ ./third_party/breakpad/breakpad/src/common/linux/elf_core_dump.h
+@@ -36,6 +36,7 @@
+ #include <elf.h>
+ #include <link.h>
+ #include <stddef.h>
++#include <limits.h>
+
+ #include "common/memory_range.h"
+
--- ./sandbox/linux/suid/process_util.h.orig
+++ ./sandbox/linux/suid/process_util.h
@@ -11,6 +11,14 @@
@@ -65,18 +64,9 @@
#endif
#if defined(__mips__)
---- ./third_party/ffmpeg/libavutil/cpu.c.orig
-+++ ./third_party/ffmpeg/libavutil/cpu.c
-@@ -38,7 +38,6 @@
- #include <sys/param.h>
- #endif
- #include <sys/types.h>
--#include <sys/sysctl.h>
- #endif
- #if HAVE_UNISTD_H
- #include <unistd.h>
---- chrome/browser/metrics/chrome_browser_main_extra_parts_metrics.cc.orig
-+++ chrome/browser/metrics/chrome_browser_main_extra_parts_metrics.cc
+diff --git a/chrome/browser/metrics/chrome_browser_main_extra_parts_metrics.cc b/chrome/browser/metrics/chrome_browser_main_extra_parts_metrics.cc
+--- ./chrome/browser/metrics/chrome_browser_main_extra_parts_metrics.cc.orig 2021-03-10 07:23:00.145810088 -0500
++++ ./chrome/browser/metrics/chrome_browser_main_extra_parts_metrics.cc 2021-03-10 10:57:19.405962671 -0500
@@ -55,7 +55,9 @@
// TODO(crbug.com/1052397): Revisit the macro expression once build flag switch
// of lacros-chrome is complete.
@@ -84,31 +74,31 @@
+#if defined(__GLIBC__)
#include <gnu/libc-version.h>
+#endif
-
+
#include "base/linux_util.h"
#include "base/strings/string_split.h"
-@@ -318,7 +318,7 @@
+@@ -316,7 +318,7 @@
void RecordLinuxGlibcVersion() {
// TODO(crbug.com/1052397): Revisit the macro expression once build flag switch
// of lacros-chrome is complete.
-#if defined(OS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)
-+#if (defined(OS_LINUX) && defined(__GLIBC__)) || BUILDFLAG(IS_CHROMEOS_LACROS)
++#if defined(__GLIBC__) || BUILDFLAG(IS_CHROMEOS_LACROS)
base::Version version(gnu_get_libc_version());
-
+
UMALinuxGlibcVersion glibc_version_result = UMA_LINUX_GLIBC_NOT_PARSEABLE;
-@@ -615,7 +617,9 @@
-
- void ChromeBrowserMainExtraPartsMetrics::PostBrowserStart() {
- RecordMemoryMetricsAfterDelay();
-+#if defined(__GLIBC__)
- RecordLinuxGlibcVersion();
-+#endif
- #if defined(USE_X11)
- if (!features::IsUsingOzonePlatform()) {
- // Ozone writes this histogram upon platform initialisation.
+--- ./services/device/serial/serial_io_handler_posix.cc.orig 2019-07-03 10:57:32.568171835 -0400
++++ ./services/device/serial/serial_io_handler_posix.cc 2019-07-03 10:57:16.867983031 -0400
+@@ -6,6 +6,7 @@
+
+ #include <sys/ioctl.h>
+ #include <termios.h>
++#include <asm-generic/ioctls.h>
+
+ #include <algorithm>
+ #include <utility>
diff --git a/third_party/ots/include/opentype-sanitiser.h b/third_party/ots/include/opentype-sanitiser.h
---- third_party/ots/src/include/opentype-sanitiser.h
-+++ third_party/ots/src/include/opentype-sanitiser.h
+--- ./third_party/ots/src/include/opentype-sanitiser.h
++++ ./third_party/ots/src/include/opentype-sanitiser.h
@@ -20,6 +20,7 @@ typedef unsigned __int64 uint64_t;
#define htonl(x) _byteswap_ulong (x)
#define htons(x) _byteswap_ushort (x)
@@ -117,17 +107,18 @@ diff --git a/third_party/ots/include/opentype-sanitiser.h b/third_party/ots/incl
#include <arpa/inet.h>
#include <stdint.h>
#endif
---- base/logging.cc.orig
-+++ base/logging.cc
-@@ -557,7 +557,7 @@
-
+--- ./base/logging.cc.orig 2021-01-20 12:09:54.227038757 -0500
++++ ./base/logging.cc 2021-01-20 12:24:32.600301351 -0500
+@@ -557,8 +557,7 @@
+
LogMessage::~LogMessage() {
size_t stack_start = stream_.tellp();
-#if !defined(OFFICIAL_BUILD) && !defined(OS_NACL) && !defined(__UCLIBC__) && \
-+#if !defined(OFFICIAL_BUILD) && !defined(OS_NACL) && (defined(OS_LINUX) && defined(__GLIBC__)) && \
- !defined(OS_AIX)
+- !defined(OS_AIX)
++#if !defined(OFFICIAL_BUILD) && !defined(OS_NACL) && defined(__GLIBC__)
if (severity_ == LOGGING_FATAL && !base::debug::BeingDebugged()) {
// Include a stack trace on a fatal, unless a debugger is attached.
+ base::debug::StackTrace stack_trace;
--- ./third_party/blink/renderer/platform/wtf/stack_util.cc.orig
+++ ./third_party/blink/renderer/platform/wtf/stack_util.cc
@@ -28,7 +28,7 @@
@@ -138,7 +129,7 @@ diff --git a/third_party/ots/include/opentype-sanitiser.h b/third_party/ots/incl
+#elif defined(OS_LINUX) || defined(OS_ANDROID) || defined(OS_FREEBSD) || \
defined(OS_FUCHSIA)
// pthread_getattr_np() can fail if the thread is not invoked by
- // pthread_create() (e.g., the main thread of webkit_unit_tests).
+ // pthread_create() (e.g., the main thread of blink_unittests).
@@ -96,7 +96,7 @@
}
@@ -159,8 +150,8 @@ diff --git a/third_party/ots/include/opentype-sanitiser.h b/third_party/ots/incl
// Note: res_ninit in glibc always returns 0 and sets RES_INIT.
// res_init behaves the same way.
memset(&_res, 0, sizeof(_res));
---- third_party/swiftshader/third_party/llvm-subzero/lib/Support/Unix/Signals.inc.orig 2019-06-18 11:51:17.000000000 -0400
-+++ third_party/swiftshader/third_party/llvm-subzero/lib/Support/Unix/Signals.inc 2019-07-03 12:32:50.938758186 -0400
+--- ./third_party/swiftshader/third_party/llvm-subzero/lib/Support/Unix/Signals.inc.orig 2019-06-18 11:51:17.000000000 -0400
++++ ./third_party/swiftshader/third_party/llvm-subzero/lib/Support/Unix/Signals.inc 2019-07-03 12:32:50.938758186 -0400
@@ -25,7 +25,7 @@
#include "llvm/Support/raw_ostream.h"
#include <algorithm>
@@ -178,8 +169,8 @@ diff --git a/third_party/ots/include/opentype-sanitiser.h b/third_party/ots/incl
#endif
#endif
---- third_party/nasm/nasmlib/realpath.c.orig 2019-07-03 12:23:05.021949895 -0400
-+++ third_party/nasm/nasmlib/realpath.c 2019-07-03 12:24:24.246862665 -0400
+--- ./third_party/nasm/nasmlib/realpath.c.orig 2019-07-03 12:23:05.021949895 -0400
++++ ./third_party/nasm/nasmlib/realpath.c 2019-07-03 12:24:24.246862665 -0400
@@ -49,7 +49,7 @@
#include "nasmlib.h"
@@ -189,30 +180,23 @@ diff --git a/third_party/ots/include/opentype-sanitiser.h b/third_party/ots/incl
/*
* GNU-specific, but avoids the realpath(..., NULL)
---- ./third_party/perfetto/include/perfetto/ext/base/thread_utils.h.orig
+--- ./third_party/perfetto/include/perfetto/ext/base/thread_utils.h
+++ ./third_party/perfetto/include/perfetto/ext/base/thread_utils.h
-@@ -61,9 +61,11 @@
- #if PERFETTO_BUILDFLAG(PERFETTO_OS_ANDROID)
+@@ -29,7 +29,7 @@
+ #include <algorithm>
+ #endif
+
+-#if PERFETTO_BUILDFLAG(PERFETTO_OS_ANDROID)
++#if 1
+ #include <sys/prctl.h>
+ #endif
+
+@@ -58,7 +58,7 @@ inline bool MaybeSetThreadName(const std::string& name) {
+
+ inline bool GetThreadName(std::string& out_result) {
+ char buf[16] = {};
+-#if PERFETTO_BUILDFLAG(PERFETTO_OS_ANDROID)
++#if 1
if (prctl(PR_GET_NAME, buf) != 0)
return false;
--#else
-+#elif defined(__GLIBC__)
- if (pthread_getname_np(pthread_self(), buf, sizeof(buf)) != 0)
- return false;
-+#else
-+ return false;
- #endif
- out_result = std::string(buf);
- return true;
---- ./base/files/file_util_posix.cc.orig
-+++ ./base/files/file_util_posix.cc
-@@ -845,6 +845,9 @@
- // NaCl doesn't implement system calls to open files directly.
- #if !defined(OS_NACL)
- FILE* FileToFILE(File file, const char* mode) {
-+ if (!file.IsValid() || !(fcntl(file.GetPlatformFile(), F_GETFD) != -1 || errno != EBADF))
-+ return nullptr;
-+
- FILE* stream = fdopen(file.GetPlatformFile(), mode);
- if (stream)
- file.TakePlatformFile(); \ No newline at end of file
+ #else
diff --git a/community/chromium/musl-libc++.patch b/community/chromium/musl-libc++.patch
index 1e26f65b69..4316a7bda8 100644
--- a/community/chromium/musl-libc++.patch
+++ b/community/chromium/musl-libc++.patch
@@ -1,5 +1,5 @@
---- buildtools/third_party/libc++/trunk/include/locale
-+++ buildtools/third_party/libc++/trunk/include/locale
+--- ./buildtools/third_party/libc++/trunk/include/locale
++++ ./buildtools/third_party/libc++/trunk/include/locale
@@ -10,6 +10,15 @@
#ifndef _LIBCPP_LOCALE
#define _LIBCPP_LOCALE
@@ -16,8 +16,8 @@
/*
locale synopsis
---- buildtools/third_party/libc++/trunk/src/locale.cpp
-+++ buildtools/third_party/libc++/trunk/src/locale.cpp
+--- ./buildtools/third_party/libc++/trunk/src/locale.cpp
++++ ./buildtools/third_party/libc++/trunk/src/locale.cpp
@@ -1019,11 +1019,11 @@
return low;
}
diff --git a/community/chromium/musl-stat.patch b/community/chromium/musl-stat.patch
new file mode 100644
index 0000000000..427be1a3f4
--- /dev/null
+++ b/community/chromium/musl-stat.patch
@@ -0,0 +1,12 @@
+--- a/base/files/file.h.orig
++++ b/base/files/file.h
+@@ -19,7 +19,8 @@
+ #include "build/build_config.h"
+
+ #if defined(OS_BSD) || defined(OS_APPLE) || defined(OS_NACL) || \
+- defined(OS_FUCHSIA) || (defined(OS_ANDROID) && __ANDROID_API__ < 21)
++ defined(OS_FUCHSIA) || (defined(OS_ANDROID) && __ANDROID_API__ < 21) || \
++ (defined(OS_LINUX) && !defined(__GLIBC__))
+ struct stat;
+ namespace base {
+ typedef struct stat stat_wrapper_t;
diff --git a/community/chromium/no-execinfo.patch b/community/chromium/no-execinfo.patch
index dd7ed5c16b..8cb2f796c4 100644
--- a/community/chromium/no-execinfo.patch
+++ b/community/chromium/no-execinfo.patch
@@ -1,5 +1,5 @@
---- base/debug/stack_trace_posix.cc
-+++ base/debug/stack_trace_posix.cc
+--- ./base/debug/stack_trace_posix.cc
++++ ./base/debug/stack_trace_posix.cc
@@ -27,7 +27,7 @@
#if !defined(USE_SYMBOLIZE)
#include <cxxabi.h>
@@ -52,8 +52,8 @@
void StackTrace::OutputToStreamWithPrefix(std::ostream* os,
const char* prefix_string) const {
StreamBacktraceOutputHandler handler(os);
---- v8/src/codegen/external-reference-table.cc.orig
-+++ v8/src/codegen/external-reference-table.cc
+--- ./v8/src/codegen/external-reference-table.cc.orig
++++ ./v8/src/codegen/external-reference-table.cc
@@ -11,7 +11,9 @@
#if defined(DEBUG) && defined(V8_OS_LINUX) && !defined(V8_OS_ANDROID)
diff --git a/community/chromium/musl-fixes-breakpad.patch b/community/chromium/no-getcontext.patch
index 71c1e9122e..71c1e9122e 100644
--- a/community/chromium/musl-fixes-breakpad.patch
+++ b/community/chromium/no-getcontext.patch
diff --git a/community/chromium/no-mallinfo.patch b/community/chromium/no-mallinfo.patch
index 22572b1eb5..8e6069f0da 100644
--- a/community/chromium/no-mallinfo.patch
+++ b/community/chromium/no-mallinfo.patch
@@ -1,31 +1,14 @@
---- .base/trace_event/malloc_dump_provider.cc.orig
+--- ./base/trace_event/malloc_dump_provider.cc.orig
+++ ./base/trace_event/malloc_dump_provider.cc
-@@ -213,24 +213,7 @@
+@@ -212,7 +212,7 @@
+ &allocated_objects_count);
#elif defined(OS_FUCHSIA)
// TODO(fuchsia): Port, see https://crbug.com/706592.
- #else
--#if defined(__GLIBC__) && defined(__GLIBC_PREREQ)
--#if __GLIBC_PREREQ(2, 33)
--#define MALLINFO2_FOUND_IN_LIBC
-- struct mallinfo2 info = mallinfo2();
--#endif
--#endif // defined(__GLIBC__) && defined(__GLIBC_PREREQ)
--#if !defined(MALLINFO2_FOUND_IN_LIBC)
-- struct mallinfo info = mallinfo();
--#endif
--#undef MALLINFO2_FOUND_IN_LIBC
-- // In case of Android's jemalloc |arena| is 0 and the outer pages size is
-- // reported by |hblkhd|. In case of dlmalloc the total is given by
-- // |arena| + |hblkhd|. For more details see link: http://goo.gl/fMR8lF.
-- total_virtual_size = info.arena + info.hblkhd;
-- resident_size = info.uordblks;
--
-- // Total allocated space is given by |uordblks|.
-- allocated_objects_size = info.uordblks;
-+// NOOP
- #endif
-
- MemoryAllocatorDump* outer_dump = pmd->CreateAllocatorDump("malloc");
+-#else
++#elif defined(__GLIBC__)
+ #if defined(__GLIBC__) && defined(__GLIBC_PREREQ)
+ #if __GLIBC_PREREQ(2, 33)
+ #define MALLINFO2_FOUND_IN_LIBC
--- ./base/process/process_metrics_posix.cc
+++ ./base/process/process_metrics_posix.cc
@@ -105,7 +105,7 @@
@@ -57,8 +40,8 @@
// TODO(fuchsia): Not currently exposed. https://crbug.com/735087.
return 0;
#endif
---- third_party/tflite/src/tensorflow/lite/profiling/memory_info.cc.orig
-+++ third_party/tflite/src/tensorflow/lite/profiling/memory_info.cc
+--- ./third_party/tflite/src/tensorflow/lite/profiling/memory_info.cc.orig
++++ ./third_party/tflite/src/tensorflow/lite/profiling/memory_info.cc
@@ -35,7 +35,7 @@
MemoryUsage GetMemoryUsage() {
@@ -68,3 +51,32 @@
rusage res;
if (getrusage(RUSAGE_SELF, &res) == 0) {
result.max_rss_kb = res.ru_maxrss;
+--- ./third_party/swiftshader/third_party/llvm-subzero/lib/Support/Unix/Process.inc
++++ ./third_party/swiftshader/third_party/llvm-subzero/lib/Support/Unix/Process.inc.orig
+@@ -86,11 +86,11 @@
+ }
+
+ size_t Process::GetMallocUsage() {
+-#if defined(HAVE_MALLINFO2)
++#if defined(HAVE_MALLINFO2) && defined(__GLIBC__)
+ struct mallinfo2 mi;
+ mi = ::mallinfo2();
+ return mi.uordblks;
+-#elif defined(HAVE_MALLINFO)
++#elif defined(HAVE_MALLINFO) && defined(__GLIBC__)
+ struct mallinfo mi;
+ mi = ::mallinfo();
+ return mi.uordblks;
+
+--- ./third_party/swiftshader/third_party/llvm-10.0/configs/linux/include/llvm/Config/config.h.orig 2019-09-30 13:03:42.556880537 -0400
++++ ./third_party/swiftshader/third_party/llvm-10.0/configs/linux/include/llvm/Config/config.h 2019-09-30 13:07:27.989821227 -0400
+@@ -122,7 +122,9 @@
+ /* #undef HAVE_MALLCTL */
+
+ /* Define to 1 if you have the `mallinfo' function. */
++#if defined(__GLIBC__)
+ #define HAVE_MALLINFO 1
++#endif
+
+ /* Define to 1 if you have the <malloc.h> header file. */
+ #define HAVE_MALLOC_H 1
diff --git a/community/chromium/quiche-arena-size.patch b/community/chromium/quiche-arena-size.patch
index 1770502bef..50abcaebed 100644
--- a/community/chromium/quiche-arena-size.patch
+++ b/community/chromium/quiche-arena-size.patch
@@ -1,13 +1,11 @@
--- ./net/third_party/quiche/src/quic/core/quic_one_block_arena.h
+++ ./net/third_party/quiche/src/quic/core/quic_one_block_arena.h
-@@ -69,7 +69,9 @@
+@@ -69,7 +69,7 @@
// QuicConnections currently use around 1KB of polymorphic types which would
// ordinarily be on the heap. Instead, store them inline in an arena.
--using QuicConnectionArena = QuicOneBlockArena<1056>;
-+// On musl-based systems the QuicAlarm is larger than expected. Increase the
-+// allocated memory to prevent the arena run out of space. (!23366)
-+using QuicConnectionArena = QuicOneBlockArena<1408>;
+-using QuicConnectionArena = QuicOneBlockArena<1152>;
++using QuicConnectionArena = QuicOneBlockArena<1504>;
} // namespace quic
diff --git a/community/chromium/remove-strip_binary.patch b/community/chromium/remove-strip_binary.patch
new file mode 100644
index 0000000000..8b13c6a056
--- /dev/null
+++ b/community/chromium/remove-strip_binary.patch
@@ -0,0 +1,32 @@
+--- a/chrome/test/chromedriver/BUILD.gn.orig
++++ b/chrome/test/chromedriver/BUILD.gn
+@@ -308,11 +308,7 @@
+ }
+ }
+
+-if (is_linux) {
+- chromedriver_output = "chromedriver.unstripped"
+-} else {
+- chromedriver_output = "chromedriver"
+-}
++chromedriver_output = "chromedriver"
+
+ executable("$chromedriver_output") {
+ testonly = true
+@@ -336,16 +332,6 @@
+ }
+ }
+
+-if (is_linux) {
+- strip_binary("chromedriver") {
+- testonly = true
+- binary_input = "$root_out_dir/$chromedriver_output"
+- symbol_output = "$root_out_dir/chromedriver.debug"
+- stripped_binary_output = "$root_out_dir/chromedriver"
+- deps = [ ":$chromedriver_output" ]
+- }
+-}
+-
+ python_library("chromedriver_py_tests") {
+ testonly = true
+ deps = [
diff --git a/community/chromium/remove-unsupported-attribute.patch b/community/chromium/remove-unsupported-attribute.patch
deleted file mode 100644
index f27ade4478..0000000000
--- a/community/chromium/remove-unsupported-attribute.patch
+++ /dev/null
@@ -1,27 +0,0 @@
---- ./base/check.h.orig
-+++ ./base/check.h
-@@ -85,7 +85,7 @@ class BASE_EXPORT CheckError {
- // Stream for adding optional details to the error message.
- std::ostream& stream();
-
-- NOMERGE ~CheckError();
-+ ~CheckError();
-
- CheckError(const CheckError& other) = delete;
- CheckError& operator=(const CheckError& other) = delete;
-diff --git a/base/compiler_specific.h b/base/compiler_specific.h
-index 14a5d6870df43..fa961b0cee1af 100644
---- ./base/compiler_specific.h.orig
-+++ ./base/compiler_specific.h
-@@ -340,11 +340,4 @@ inline constexpr bool AnalyzerAssumeTrue(bool arg) {
-
- #endif // defined(__clang_analyzer__)
-
--// Use nomerge attribute to disable optimization of merging multiple same calls.
--#if defined(__clang__) && __has_attribute(nomerge)
--#define NOMERGE [[clang::nomerge]]
--#else
--#define NOMERGE
--#endif
--
- // Marks a type as being eligible for the "trivial" ABI despite having a
diff --git a/community/chromium/resolver.patch b/community/chromium/resolver.patch
index e98e0e5e8e..d981c8c007 100644
--- a/community/chromium/resolver.patch
+++ b/community/chromium/resolver.patch
@@ -1,17 +1,5 @@
---- ./net/dns/dns_reloader.cc
-+++ ./net/dns/dns_reloader.cc
-@@ -4,8 +4,7 @@
-
- #include "net/dns/dns_reloader.h"
-
--#if defined(OS_POSIX) && !defined(OS_APPLE) && !defined(OS_OPENBSD) && \
-- !defined(OS_ANDROID) && !defined(OS_FUCHSIA)
-+#if defined(__GLIBC__)
-
- #include <resolv.h>
-
---- ./net/dns/host_resolver_manager.cc
-+++ ./net/dns/host_resolver_manager.cc
+--- ./net/dns/host_resolver_manager.cc.orig 2020-10-09 16:39:12.064069835 -0400
++++ ./net/dns/host_resolver_manager.cc 2020-10-09 16:42:49.738302772 -0400
@@ -2779,8 +2779,7 @@
NetworkChangeNotifier::AddConnectionTypeObserver(this);
if (system_dns_config_notifier_)
@@ -22,8 +10,22 @@
EnsureDnsReloaderInit();
#endif
---- ./net/dns/host_resolver_proc.cc
-+++ ./net/dns/host_resolver_proc.cc
+--- ./net/dns/dns_reloader.cc.orig 2020-10-09 16:39:12.064069835 -0400
++++ ./net/dns/dns_reloader.cc 2020-10-09 16:44:30.442419823 -0400
+@@ -4,9 +4,8 @@
+
+ #include "net/dns/dns_reloader.h"
+
+-#if defined(OS_POSIX) && !defined(OS_APPLE) && !defined(OS_OPENBSD) && \
+- !defined(OS_ANDROID) && !defined(OS_FUCHSIA)
+-
++#if defined(__GLIBC__)
++
+ #include <resolv.h>
+
+ #include "base/lazy_instance.h"
+--- ./net/dns/host_resolver_proc.cc.orig 2020-10-09 16:39:12.065069836 -0400
++++ ./net/dns/host_resolver_proc.cc 2020-10-09 16:45:09.641466644 -0400
@@ -159,8 +159,7 @@
base::ScopedBlockingCall scoped_blocking_call(FROM_HERE,
base::BlockingType::WILL_BLOCK);
@@ -36,10 +38,25 @@
base::Optional<AddressInfo> ai;
--- ./net/dns/dns_config_service_linux.cc.orig
+++ ./net/dns/dns_config_service_linux.cc
-@@ -486,20 +480,11 @@
+@@ -432,12 +432,6 @@
+ base::ScopedBlockingCall scoped_blocking_call(
+ FROM_HERE, base::BlockingType::MAY_BLOCK);
+
+- std::unique_ptr<struct __res_state> res = resolv_reader_->GetResState();
+- if (res) {
+- dns_config_ = ConvertResStateToDnsConfig(*res.get());
+- resolv_reader_->CloseResState(res.get());
+- }
+-
+ UMA_HISTOGRAM_BOOLEAN("Net.DNS.DnsConfig.Resolv.Read",
+ dns_config_.has_value());
+ if (!dns_config_.has_value())
+--- ./net/dns/public/resolv_reader.cc.orig
++++ ./net/dns/public/resolv_reader.cc
+@@ -20,19 +20,10 @@
+ namespace net {
- std::unique_ptr<struct __res_state>
- DnsConfigServiceLinux::ResolvReader::GetResState() {
+ std::unique_ptr<struct __res_state> ResolvReader::GetResState() {
- auto res = std::make_unique<struct __res_state>();
- memset(res.get(), 0, sizeof(struct __res_state));
-
@@ -52,9 +69,8 @@
+ return nullptr;
}
- void DnsConfigServiceLinux::ResolvReader::CloseResState(
- struct __res_state* res) {
+ void ResolvReader::CloseResState(struct __res_state* res) {
- res_nclose(res);
}
- DnsConfigServiceLinux::DnsConfigServiceLinux()
+ absl::optional<std::vector<IPEndPoint>> GetNameservers(
diff --git a/community/chromium/revert-use-ffile-compilation-dir.patch b/community/chromium/revert-use-ffile-compilation-dir.patch
new file mode 100644
index 0000000000..f0c110fe73
--- /dev/null
+++ b/community/chromium/revert-use-ffile-compilation-dir.patch
@@ -0,0 +1,48 @@
+diff --git a/build/config/compiler/BUILD.gn b/build/config/compiler/BUILD.gn
+index f442166..c325f72 100644
+--- a/build/config/compiler/BUILD.gn
++++ b/build/config/compiler/BUILD.gn
+@@ -1248,19 +1248,12 @@ config("compiler_deterministic") {
+ # different build directory like "out/feature_a" and "out/feature_b" if
+ # we build same files with same compile flag.
+ # Other paths are already given in relative, no need to normalize them.
+- if (is_nacl) {
+- # TODO(https://crbug.com/1231236): Use -ffile-compilation-dir= here.
+- cflags += [
+- "-Xclang",
+- "-fdebug-compilation-dir",
+- "-Xclang",
+- ".",
+- ]
+- } else {
+- # -ffile-compilation-dir is an alias for both -fdebug-compilation-dir=
+- # and -fcoverage-compilation-dir=.
+- cflags += [ "-ffile-compilation-dir=." ]
+- }
++ cflags += [
++ "-Xclang",
++ "-fdebug-compilation-dir",
++ "-Xclang",
++ ".",
++ ]
+ if (!is_win) {
+ # We don't use clang -cc1as on Windows (yet? https://crbug.com/762167)
+ asmflags = [ "-Wa,-fdebug-compilation-dir,." ]
+diff --git a/build/config/compiler/compiler.gni b/build/config/compiler/compiler.gni
+index 008a386..89e7fdf 100644
+--- a/build/config/compiler/compiler.gni
++++ b/build/config/compiler/compiler.gni
+@@ -238,8 +238,11 @@ declare_args() {
+ # deterministic builds to reduce compile times, so this is less relevant for
+ # official builders.
+ strip_absolute_paths_from_debug_symbols_default =
+- is_android || is_fuchsia || is_nacl || (is_win && use_lld) || is_linux ||
+- is_chromeos || (is_apple && !enable_dsyms)
++ # TODO(crbug.com/1010267): remove '!use_clang_coverage', coverage build has
++ # dependency to absolute path of source files.
++ !use_clang_coverage &&
++ (is_android || is_fuchsia || is_nacl || (is_win && use_lld) || is_linux ||
++ is_chromeos || (is_apple && !enable_dsyms))
+
+ # If the platform uses stripped absolute paths by default, then we don't expose
+ # it as a configuration option. If this is causing problems, please file a bug.
diff --git a/community/chromium/skia-harfbuzz-3.0.0.patch b/community/chromium/skia-harfbuzz-3.0.0.patch
deleted file mode 100644
index f74306a81a..0000000000
--- a/community/chromium/skia-harfbuzz-3.0.0.patch
+++ /dev/null
@@ -1,100 +0,0 @@
-# Minimal diff for harfbuzz 3.0.0 support; based on:
-# https://github.com/google/skia/commit/66684b17b382
-# https://github.com/google/skia/commit/51d83abcd24a
-
-diff --git a/gn/skia.gni b/gn/skia.gni
-index d98fdc19ee..199335d5c4 100644
---- ./gn/skia.gni
-+++ ./third_party/skia/gn/skia.gni
-@@ -34,8 +34,6 @@ declare_args() {
- skia_include_multiframe_procs = false
- skia_lex = false
- skia_libgifcodec_path = "third_party/externals/libgifcodec"
-- skia_pdf_subset_harfbuzz =
-- false # TODO: set skia_pdf_subset_harfbuzz to skia_use_harfbuzz.
- skia_qt_path = getenv("QT_PATH")
- skia_skqp_global_error_tolerance = 0
- skia_tools_require_resources = false
-@@ -99,6 +97,10 @@ declare_args() {
- skia_use_libfuzzer_defaults = true
- }
-
-+declare_args() {
-+ skia_pdf_subset_harfbuzz = skia_use_harfbuzz
-+}
-+
- declare_args() {
- skia_compile_sksl_tests = skia_compile_processors
- skia_enable_fontmgr_android = skia_use_expat && skia_use_freetype
-diff --git a/src/pdf/SkPDFSubsetFont.cpp b/src/pdf/SkPDFSubsetFont.cpp
-index 81c37eef3a..2340a7937b 100644
---- a/src/pdf/SkPDFSubsetFont.cpp
-+++ ./third_party/skia/src/pdf/SkPDFSubsetFont.cpp
-@@ -49,6 +49,37 @@ static sk_sp<SkData> to_data(HBBlob blob) {
- blob.release());
- }
-
-+template<typename...> using void_t = void;
-+template<typename T, typename = void>
-+struct SkPDFHarfBuzzSubset {
-+ // This is the HarfBuzz 3.0 interface.
-+ // hb_subset_flags_t does not exist in 2.0. It isn't dependent on T, so inline the value of
-+ // HB_SUBSET_FLAGS_RETAIN_GIDS until 2.0 is no longer supported.
-+ static HBFace Make(T input, hb_face_t* face) {
-+ // TODO: When possible, check if a font is 'tricky' with FT_IS_TRICKY.
-+ // If it isn't known if a font is 'tricky', retain the hints.
-+ hb_subset_input_set_flags(input, 2/*HB_SUBSET_FLAGS_RETAIN_GIDS*/);
-+ return HBFace(hb_subset_or_fail(face, input));
-+ }
-+};
-+template<typename T>
-+struct SkPDFHarfBuzzSubset<T, void_t<
-+ decltype(hb_subset_input_set_retain_gids(std::declval<T>(), std::declval<bool>())),
-+ decltype(hb_subset_input_set_drop_hints(std::declval<T>(), std::declval<bool>())),
-+ decltype(hb_subset(std::declval<hb_face_t*>(), std::declval<T>()))
-+ >>
-+{
-+ // This is the HarfBuzz 2.0 (non-public) interface, used if it exists.
-+ // This code should be removed as soon as all users are migrated to the newer API.
-+ static HBFace Make(T input, hb_face_t* face) {
-+ hb_subset_input_set_retain_gids(input, true);
-+ // TODO: When possible, check if a font is 'tricky' with FT_IS_TRICKY.
-+ // If it isn't known if a font is 'tricky', retain the hints.
-+ hb_subset_input_set_drop_hints(input, false);
-+ return HBFace(hb_subset(face, input));
-+ }
-+};
-+
- static sk_sp<SkData> subset_harfbuzz(sk_sp<SkData> fontData,
- const SkPDFGlyphUse& glyphUsage,
- int ttcIndex) {
-@@ -71,11 +102,10 @@ static sk_sp<SkData> subset_harfbuzz(sk_sp<SkData> fontData,
- hb_set_t* glyphs = hb_subset_input_glyph_set(input.get());
- glyphUsage.getSetValues([&glyphs](unsigned gid) { hb_set_add(glyphs, gid);});
-
-- hb_subset_input_set_retain_gids(input.get(), true);
-- // TODO: When possible, check if a font is 'tricky' with FT_IS_TRICKY.
-- // If it isn't known if a font is 'tricky', retain the hints.
-- hb_subset_input_set_drop_hints(input.get(), false);
-- HBFace subset(hb_subset(face.get(), input.get()));
-+ HBFace subset = SkPDFHarfBuzzSubset<hb_subset_input_t*>::Make(input.get(), face.get());
-+ if (!subset) {
-+ return nullptr;
-+ }
- HBBlob result(hb_face_reference_blob(subset.get()));
- return to_data(std::move(result));
- }
-diff --git a/third_party/harfbuzz/BUILD.gn b/third_party/harfbuzz/BUILD.gn
-index 173830de62..4156607ef9 100644
---- a/third_party/harfbuzz/BUILD.gn
-+++ ./third_party/skia/third_party/harfbuzz/BUILD.gn
-@@ -14,6 +14,9 @@ if (skia_use_system_harfbuzz) {
- system("harfbuzz") {
- include_dirs = [ "/usr/include/harfbuzz" ]
- libs = [ "harfbuzz" ]
-+ if (skia_pdf_subset_harfbuzz) {
-+ libs += [ "harfbuzz-subset" ]
-+ }
- }
- } else {
- third_party("harfbuzz") {
diff --git a/community/chromium/strip-binary.patch b/community/chromium/strip-binary.patch
deleted file mode 100644
index de87bd4d55..0000000000
--- a/community/chromium/strip-binary.patch
+++ /dev/null
@@ -1,20 +0,0 @@
---- build/linux/strip_binary.gni.orig
-+++ build/linux/strip_binary.gni
-@@ -20,7 +20,7 @@
- "testonly",
- ])
- action("${target_name}") {
-- eu_strip_binary = "//buildtools/third_party/eu-strip/bin/eu-strip"
-+ eu_strip_binary = "/usr/bin/eu-strip"
- script = "//build/linux/strip_binary.py"
- inputs = [
- invoker.binary_input,
-@@ -32,7 +32,7 @@
- ]
- args = [
- "--eu-strip-binary-path",
-- rebase_path(eu_strip_binary, root_build_dir),
-+ eu_strip_binary,
- "--symbol-output",
- rebase_path(invoker.symbol_output, root_build_dir),
- "--stripped-binary-output",
diff --git a/community/chromium/swiftshader.patch b/community/chromium/swiftshader.patch
deleted file mode 100644
index 989b83e555..0000000000
--- a/community/chromium/swiftshader.patch
+++ /dev/null
@@ -1,33 +0,0 @@
---- ./third_party/swiftshader/third_party/llvm-subzero/build/Linux/include/llvm/Config/config.h
-+++ ./third_party/swiftshader/third_party/llvm-subzero/build/Linux/include/llvm/Config/config.h
-@@ -14,7 +14,7 @@
- #define ENABLE_CRASH_OVERRIDES 1
-
- /* Define to 1 if you have the `backtrace' function. */
--#define HAVE_BACKTRACE 1
-+/* #define HAVE_BACKTRACE 1 */
-
- /* Define to 1 if you have the <CrashReporterClient.h> header file. */
- /* #undef HAVE_CRASHREPORTERCLIENT_H */
-@@ -55,7 +55,7 @@
- #define HAVE_ERRNO_H 1
-
- /* Define to 1 if you have the <execinfo.h> header file. */
--#define HAVE_EXECINFO_H 1
-+/*#undef HAVE_EXECINFO_H 1 */
-
- /* Define to 1 if you have the <fcntl.h> header file. */
- #define HAVE_FCNTL_H 1
-@@ -130,10 +130,10 @@
- /* #undef HAVE_MALLCTL */
-
- /* Define to 1 if you have the `mallinfo' function. */
--#define HAVE_MALLINFO 1
-+/* #undef HAVE_MALLINFO 1*/
-
- /* Define to 1 if you have the <malloc.h> header file. */
--#define HAVE_MALLOC_H 1
-+/* #undef HAVE_MALLOC_H 1 */
-
- /* Define to 1 if you have the <malloc/malloc.h> header file. */
- /* #undef HAVE_MALLOC_MALLOC_H */
diff --git a/community/chromium/unbundle-fix-visibility-of-build-config-freetype.patch b/community/chromium/unbundle-fix-visibility-of-build-config-freetype.patch
new file mode 100644
index 0000000000..d10023bc02
--- /dev/null
+++ b/community/chromium/unbundle-fix-visibility-of-build-config-freetype.patch
@@ -0,0 +1,31 @@
+From 271e45339b7b969e98ccef7837cb1b15480b07fc Mon Sep 17 00:00:00 2001
+From: Stephan Hartmann <stha09@googlemail.com>
+Date: Thu, 4 Nov 2021 18:58:34 +0000
+Subject: [PATCH] unbundle: fix visibility of //build/config/freetype
+
+For system freetype //build/linux:freetype_from_pkgconfig is restricted
+to //third_party:freetype_harfbuzz and //third_party/harfbuzz-ng:harfbuzz_source.
+However //build/config/freetype:freetype is accessing it too.
+
+Bug: None
+Change-Id: Ic4a37b01e4ae221372a9220cbad04c598b844c21
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3259304
+Commit-Queue: Thomas Anderson <thomasanderson@chromium.org>
+Reviewed-by: Thomas Anderson <thomasanderson@chromium.org>
+Cr-Commit-Position: refs/heads/main@{#938388}
+---
+ build/linux/BUILD.gn | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/build/linux/BUILD.gn b/build/linux/BUILD.gn
+index 54314c7687..cd49e3d524 100644
+--- a/build/linux/BUILD.gn
++++ b/build/linux/BUILD.gn
+@@ -23,6 +23,7 @@ if (use_system_freetype) {
+ # the system, use with caution,for details see build/config/freetype/BUILD.gn.
+ pkg_config("freetype_from_pkgconfig") {
+ visibility = [
++ "//build/config/freetype:freetype",
+ "//third_party:freetype_harfbuzz",
+ "//third_party/harfbuzz-ng:harfbuzz_source",
+ ]
diff --git a/community/chromium/use-deprecated-ffmpeg-api.patch b/community/chromium/use-deprecated-ffmpeg-api.patch
index d0bf8a029f..f0ec736f98 100644
--- a/community/chromium/use-deprecated-ffmpeg-api.patch
+++ b/community/chromium/use-deprecated-ffmpeg-api.patch
@@ -1,6 +1,8 @@
---- ./media/filters/ffmpeg_demuxer.cc.orig
-+++ ./media/filters/ffmpeg_demuxer.cc
-@@ -427,11 +427,11 @@
+diff --git a/media/filters/ffmpeg_demuxer.cc b/media/filters/ffmpeg_demuxer.cc
+index ac4713b07268..492a9a37d096 100644
+--- a/media/filters/ffmpeg_demuxer.cc
++++ b/media/filters/ffmpeg_demuxer.cc
+@@ -427,11 +427,11 @@ void FFmpegDemuxerStream::EnqueuePacket(ScopedAVPacket packet) {
scoped_refptr<DecoderBuffer> buffer;
if (type() == DemuxerStream::TEXT) {
@@ -14,7 +16,7 @@
uint8_t* settings_data = av_packet_get_side_data(
packet.get(), AV_PKT_DATA_WEBVTT_SETTINGS, &settings_size);
-@@ -443,7 +443,7 @@
+@@ -443,7 +443,7 @@ void FFmpegDemuxerStream::EnqueuePacket(ScopedAVPacket packet) {
buffer = DecoderBuffer::CopyFrom(packet->data, packet->size,
side_data.data(), side_data.size());
} else {
@@ -23,7 +25,7 @@
uint8_t* side_data = av_packet_get_side_data(
packet.get(), AV_PKT_DATA_MATROSKA_BLOCKADDITIONAL, &side_data_size);
-@@ -504,7 +504,7 @@
+@@ -504,7 +504,7 @@ void FFmpegDemuxerStream::EnqueuePacket(ScopedAVPacket packet) {
packet->size - data_offset);
}