www-client/chromium: sync with upstream

This commit is contained in:
github-actions[bot] 2024-10-13 00:03:38 +00:00 committed by GitHub
parent 0bb8216073
commit 86326f64ae
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
7 changed files with 218 additions and 1509 deletions

View file

@ -4,14 +4,16 @@ DIST chromium-128.0.6613.137.tar.xz 6724182764 BLAKE2B 9f4d77b058af1619a4a13beac
DIST chromium-129-clang.tar.xz 52250752 BLAKE2B c7223a1f4a9f52eb631b968ecaea528d19aa14ded23e03e530ad6c46e7e1579a7a010cb347489f1b963013b4f26358be94aeff0f98b5eceb7b1f1e49e8acdfd3 SHA512 43681d64d4480e3f69afd3021037af6910e9c64052edefdb72e99b0a85cd94c4a8eb4095188784d7fa7f52fae10a9bd9db53f2bb80e89f709f92af7ce6403976
DIST chromium-129-rust.tar.xz 152042272 BLAKE2B acde4dc9c0fe232d16f07f3e4b719ea762627e234970866e0de56ec3959c4cd0a7b1b09cf5ccecd50efd1cc35dcf224be3b398c1ea19a79731d6db13c94fa7a9 SHA512 bef8e56cf73de5cefd5fe0bb9836ef65012406ff3d364d36624d30e7b5cdb2634d17ac9e49a60ccb0ac5dd57cf4311b587c5ff0cec26b2fc6e15274abe0dc85b
DIST chromium-129.0.6668.100.tar.xz 6677334468 BLAKE2B b68896322673762ce49ac18dcd731011516f3eff3e98561bcfc2404fea7e5bf8c39fa8c5b19e0dc26f188ec8787ba2b729580024a0ca205c891eaf48a4a0e134 SHA512 366be6dbde59e979186174525431d4823449e0c031bb4dc290f747c7525de44f3e2c821a0c4cd1bbb47ae3bee9fa24efdaa465d8d883791f6c63f20760a4fb48
DIST chromium-129.0.6668.70.tar.xz 6668765016 BLAKE2B a5abb239390d63aa234f4fc046fe7aea38dffd0ef61ae7b3ab61e82e804c1421e0668a7e76faad4461f04a97f00998eea077a552a9a729556ca70d41625f769c SHA512 b0014f9d0021238bc76d9dff92e9f10f04ba0521805ce82291ee2fb1680e4cdbbcfd74df56411b57f0efd46e0fba397a92c9ea95e2b60ec3450c495184743268
DIST chromium-129.0.6668.89.tar.xz 6673929928 BLAKE2B eea776a58c8fa4a9cd43f308e710055a925acaa55a76a6d89af6673cbac07113544f1affe219767f53be1f23a8d88b864fde1885e42ac9e8b4751439aef0ce47 SHA512 d49a00e2d76236e591af5db6ad4f0e1a8e13bc6f5001f5837b1c2f158f9c7f5814ca713ed3ad8fdc1edc10f9e156593b0974aa14002964a5ab337b0791d0ef3c
DIST chromium-130-clang.tar.xz 52892060 BLAKE2B 7d2619ab3762569fb77bce8ff19056caa07b430e3ed830fdc4a6445611771ee30fd5e7c8bf90c994d5cacc57f516974b0c1c6d973cba52aae0d7fc6de0bde26c SHA512 3c1c4c771e6aa3a15395c16e899729b751cb9cecb27b77a11ccaf079b6a913ac2d5176a3c628d2270653f3d6c66f3d136304d9957dbf18b6632b787c6102e784
DIST chromium-130-rust.tar.xz 115068636 BLAKE2B 7d2ed89372fce24de7432e62100767e3559c53733446bab003c80cc97d5a38168df0ff662f7e896548fecc9bc919b85b63001eb40e4fa1fbb63fb34545513d67 SHA512 9a310a65f61ea455cbcabf58fc4104b8c2a89f1c40f6b45b2105b701255d7f786ec950d76c99f3b8b77d3dd07262cc22cd30a78497a460aad689971129b9970d
DIST chromium-130.0.6723.31.tar.xz 6603542588 BLAKE2B 1ae06108070a8aa389260903f864eaba19825ab8a7ba13c74e9a3e3dbbc634b81996b1f8253900fa59e666d5c2dc93496ce82d73a95471518afdf2c5f8020c66 SHA512 dead20ba072de356e0f838920e85f4f22fc7d3b872d748c865d11f6a43ce9b4c9650cda5535232c63ffbe27716adcb971447ff55d1d4d39e8cd01589b4e4ac53
DIST chromium-130.0.6723.44.tar.xz 6606219548 BLAKE2B 26abfc352c11519f70537ddc1a395dfe0e51e6838e3f6c078fcffe8e6cdb638bea588a3eaf7666c115507c59d59d176704afaa4a3ea9d64f5116308e3c4b3bfc SHA512 a32575aa4166a8b5750724b60180f1b0a96ca0a0963766db7268d34516d4919438d5302f36d9d8221685579df8df7c989f94821d714fb9a6596c61c3c264db77
DIST chromium-131-clang.tar.xz 52892060 BLAKE2B 7d2619ab3762569fb77bce8ff19056caa07b430e3ed830fdc4a6445611771ee30fd5e7c8bf90c994d5cacc57f516974b0c1c6d973cba52aae0d7fc6de0bde26c SHA512 3c1c4c771e6aa3a15395c16e899729b751cb9cecb27b77a11ccaf079b6a913ac2d5176a3c628d2270653f3d6c66f3d136304d9957dbf18b6632b787c6102e784
DIST chromium-131-rust.tar.xz 115068636 BLAKE2B 7d2ed89372fce24de7432e62100767e3559c53733446bab003c80cc97d5a38168df0ff662f7e896548fecc9bc919b85b63001eb40e4fa1fbb63fb34545513d67 SHA512 9a310a65f61ea455cbcabf58fc4104b8c2a89f1c40f6b45b2105b701255d7f786ec950d76c99f3b8b77d3dd07262cc22cd30a78497a460aad689971129b9970d
DIST chromium-131.0.6753.0.tar.xz 6639635464 BLAKE2B a87035be45d530e8b84eb19fc90d0f6aab95920a95b8e5bac88fa6558a2e1b8cc15691ba868b5345168ea0480f2b4f1a08ae1dd9c8b88ab3035d721897f21e2e SHA512 20fcdaa63e57b59575c858e51fad87ef21a0d76fcb7261e46c506329e4847e9fdb935e9b9d93d3d1d67f784a894f2bc817465a730a8483dfba02f142787018f3
DIST chromium-patches-128.tar.bz2 5087 BLAKE2B b0321fb45390a282afeeeb8fb4d6014d6e6b708e6851235e0897ac77d524160b4d33476aa70532df45d0ccf233fee3b4028cd4d845667dc6a2a46ecebfeb6752 SHA512 978908d27dc6fc620209486a9ad7f73babde8710728960f44f2680445276516e59a85c08656af2663d9e197df45874f24a1f19f14a21798fbcf7c5a10bb19371
DIST chromium-patches-129.tar.bz2 5071 BLAKE2B 080e1af8b0560a3c5365674e7c8d592310bbd2e273311b775b8112e410d91ccd48f170adbcf77cff566ad32de196217410663ac7b9e7e65544b6730fb1890aca SHA512 0a5bbc07dc9085b07332d5c6dd74940a9d55c4d0677f5603e75763ba54156f43664839d438f350bc86f3efc85aae452476e7f7040e06e60727847b156d1f0ab9
DIST chromium-patches-130.tar.bz2 5658 BLAKE2B a940ee50634beee965bea45f6604b59e8d20a6c99b8e374be3debbd35ae08b34e035649367d171d56ca951a54102648c91d2189ca88a4495b16b1c96534fea46 SHA512 9f77eefdc7a65ce5e20a322cd5b17d6bb5ffc2d66fd83d73d5191f8c932f723cb905df8f3d04ed3d5fbab726b7bca38c7b5645cac37f7454eb9a3a2f4ef9a53b
DIST chromium-patches-131-1.tar.bz2 4932 BLAKE2B 72006a6d751ae1207352547cdeef87f8cc9f9639283238da201d879c6fcd0f8bc499669cb030d8b4c2216fcd2730de46b0a071007b3d69a2bbdd22ba38bcd279 SHA512 11d7f861c007e9e28e5192fb354940180aea0e01e6e8ae77547e2dffd7b541b11f1acfe0fd0c8b6b4cbfc6c39ddfa79c8c08db42c1292ad329d49027d1406fc3
DIST chromium-ppc64le-gentoo-patches-1.tar.xz 5636 BLAKE2B 1d898939df023c59285b27bee552470483ea06375d1ee8d6947b89c5927c23cc7bfec6b49f3b376ece931d11a56f8e2a45791e0f92ad61974fc8c34c1082d89c SHA512 8a71cb007e47cda8e5fe5d185729389e65c48bd322c8ee8b3986bee8571427b959628f2666bda646a3f89ae64197c0957d3626845ff03461dbd5dee4c964d07c
DIST chromium-profiler-0.2.tar 259952640 BLAKE2B 5e82389fce00b267280d633b26551231c558b80f0c92cd7d60271095a3503365ab673e7a46dc5f74f8a82db1f21262cb24dcc0531d954bab5fb3b175dab3394d SHA512 9fa89a5ab728419683e7495ae676567480987d68a2d589f2aa97bfcbcf123f3c8f97f8bca5f65e5e3f6e41475535add473ded83b9c7a33bb4746a9d05b298a6c
DIST chromium_128.0.6613.119-1raptor0~deb12u1.debian.tar.xz 8673272 BLAKE2B 0ae1ead2b8d0ce196d5d16e132194da12d3dde3b43c270f794630c3427d38aaac6c6a289ac64b4748354e9d4d20ae8597076b64a4b7a7e1225c66a9f86e9f7ff SHA512 c896f8f07aa44cd6950375b36fe89fc2780ff9867e01feab71100c8551b22d3c89c5ba9e80cffbad22ff8575d20fc782b70969a51c68384fd8de62a09c4ffdcf

File diff suppressed because it is too large Load diff

View file

@ -70,7 +70,13 @@ SRC_URI="https://commondatastorage.googleapis.com/chromium-browser-official/${P}
LICENSE="BSD"
SLOT="0/beta"
# Dev exists mostly to give devs some breathing room for beta/stable releases; it shouldn't be keyworded but adventurous users can select it.
if [[ ${SLOT} == "0/dev" ]]; then
KEYWORDS="~arm64"
else
KEYWORDS="~arm64"
fi
IUSE_SYSTEM_LIBS="+system-harfbuzz +system-icu +system-png +system-zstd"
IUSE="+X ${IUSE_SYSTEM_LIBS} bindist cups debug ffmpeg-chromium gtk4 +hangouts headless kerberos +official pax-kernel pgo +proprietary-codecs pulseaudio"
IUSE+=" qt5 qt6 +screencast selinux +system-toolchain +vaapi +wayland +widevine"
@ -827,8 +833,34 @@ src_prepare() {
popd >/dev/null || die
fi
einfo "Unbundling third-party libraries ..."
# Sanity check keeplibs, on major version bumps it is often necessary to update this list
# and this enables us to hit them all at once.
# there are some entries that need to be whitelisted (TODO: Why? The file is understandable, the rest seem odd)
whitelist_libs=(
net/third_party/quic
third_party/devtools-frontend/src/front_end/third_party/additional_readme_paths.json
third_party/libjingle
third_party/mesa
third_party/skia/third_party/vulkan
third_party/vulkan
)
local not_found_libs=()
for lib in "${keeplibs[@]}"; do
if [[ ! -d "${lib}" ]] && ! has "${lib}" "${whitelist_libs[@]}"; then
not_found_libs+=( "${lib}" )
fi
done
if [[ ${#not_found_libs[@]} -gt 0 ]]; then
eerror "The following \`keeplibs\` directories were not found in the source tree:"
for lib in "${not_found_libs[@]}"; do
eerror " ${lib}"
done
die "Please update the ebuild."
fi
# Remove most bundled libraries. Some are still needed.
einfo "Unbundling third-party libraries ..."
build/linux/unbundle/remove_bundled_libraries.py "${keeplibs[@]}" --do-remove || die
# bundled eu-strip is for amd64 only and we don't want to pre-stripped binaries

View file

@ -24,11 +24,12 @@ EAPI=8
# For non-binhost builds, we build the bundled ffmpeg and enable proprietary codecs because there's
# no reason not to. Todo: Re-enable USE=system-ffmpeg.
GN_MIN_VER=0.2165
GN_MIN_VER=0.2200
RUST_MIN_VER=1.78.0
# chromium-tools/get-chromium-toolchain-strings.sh
GOOGLE_CLANG_VER=llvmorg-20-init-1009-g7088a5ed-10
GOOGLE_RUST_VER=595316b4006932405a63862d8fe65f71a6356293-5
GOOGLE_CLANG_VER=llvmorg-20-init-3847-g69c43468-28
# Upstream this is -3 but google haven't published the chromium-dev rust toolchain.
GOOGLE_RUST_VER=009e73825af0e59ad4fc603562e038b3dbd6593a-2
: ${CHROMIUM_FORCE_GOOGLE_TOOLCHAIN=no}
@ -41,7 +42,7 @@ CHROMIUM_LANGS="af am ar bg bn ca cs da de el en-GB es es-419 et fa fi fil fr gu
# While prerelease llvm is actually used in the google build, until we have a
# sane way to select 'rust built with this llvm slot' that isn't stable and testing
# subslots we will have to restrict LLVM_COMPAT to stable and testing keywords.
LLVM_COMPAT=( {17..18} )
LLVM_COMPAT=( 17 18 )
PYTHON_COMPAT=( python3_{11..13} )
PYTHON_REQ_USE="xml(+)"
@ -51,7 +52,7 @@ inherit python-any-r1 qmake-utils readme.gentoo-r1 systemd toolchain-funcs virtu
DESCRIPTION="Open-source version of Google Chrome web browser"
HOMEPAGE="https://www.chromium.org/"
PATCHSET_PPC64="128.0.6613.84-1raptor0~deb12u1"
PATCH_V="${PV%%\.*}"
PATCH_V="${PV%%\.*}-1"
SRC_URI="https://commondatastorage.googleapis.com/chromium-browser-official/${P}.tar.xz
system-toolchain? (
https://gitlab.com/Matt.Jolly/chromium-patches/-/archive/${PATCH_V}/chromium-patches-${PATCH_V}.tar.bz2
@ -69,8 +70,14 @@ SRC_URI="https://commondatastorage.googleapis.com/chromium-browser-official/${P}
pgo? ( https://github.com/elkablo/chromium-profiler/releases/download/v0.2/chromium-profiler-0.2.tar )"
LICENSE="BSD"
SLOT="0/stable"
KEYWORDS="arm64"
SLOT="0/dev"
# Dev exists mostly to give devs some breathing room for beta/stable releases; it shouldn't be keyworded but adventurous users can select it.
if [[ ${SLOT} == "0/dev" ]]; then
KEYWORDS="~arm64"
else
KEYWORDS="~arm64"
fi
IUSE_SYSTEM_LIBS="+system-harfbuzz +system-icu +system-png +system-zstd"
IUSE="+X ${IUSE_SYSTEM_LIBS} bindist cups debug ffmpeg-chromium gtk4 +hangouts headless kerberos +official pax-kernel pgo +proprietary-codecs pulseaudio"
IUSE+=" qt5 qt6 +screencast selinux +system-toolchain +vaapi +wayland +widevine"
@ -367,10 +374,21 @@ pkg_setup() {
# TODO: check if the user has already selected a specific impl via make.conf and respect that.
if ! tc-is-lto && use official; then
einfo "USE=official selected and LTO not detected."
einfo "It is _highly_ recommended that LTO be enabled for performance reasons"
einfo "It is _highly_ recommended that LTO be enabled for performance and security reasons,"
einfo "and to be consistent with the upstream \"official\" build optimisations."
fi
use_lto="false"
if tc-is-lto; then
use_lto="true"
# We can rely on GN to do this for us; anecdotally without this builds
# take significantly longer with LTO enabled and it doesn't hurt anything.
# TODO: compare build time, memory and disk usage on several builds.
filter-lto
fi
export use_lto
# 936858
if tc-ld-is-mold; then
eerror "Your toolchain is using the mold linker."
@ -409,19 +427,24 @@ pkg_setup() {
local rustc_ver=$(chromium_extract_rust_version)
if ver_test "${rustc_ver}" -lt "${RUST_MIN_VER}"; then
eerror "Rust >=${RUST_MIN_VER} is required"
eerror "Please run 'eselect rust' and select the correct rust version"
die "Selected rust version is too old"
eerror "Rust >=${RUST_MIN_VER} is required to build Chromium"
eerror "The currently selected version is ${rustc_ver}"
eerror "Please run \`eselect rust\` and select an appropriate Rust."
die "Selected Rust version is too old"
else
einfo "Using rust ${rustc_ver} to build"
einfo "Using Rust ${rustc_ver} to build"
fi
# I hate doing this but upstream Rust have yet to come up with a better solution for
# us poor packagers. Required for Split LTO units, which are required for CFI.
export RUSTC_BOOTSTRAP=1
# Chromium requires the Rust profiler library while setting up its build environment.
# Since a standard Rust comes with the profiler, instead of patching it out (build/rust/std/BUILD.gn#L103)
# we'll just do a sanity check on the selected slot.
# The -bin always contains profiler support, so we only need to check for the non-bin version.
if [[ "$(eselect --brief rust show 2>/dev/null)" != *"bin"* ]]; then
local arch=$(uname -m)
local rust_lib_path="${EPREFIX}/usr/lib/rust/${rustc_ver}/lib/rustlib/${arch}-unknown-linux-gnu/lib"
local rust_lib_path="${EPREFIX}$(rustc --print target-libdir)"
local profiler_lib=$(find "${rust_lib_path}" -name "libprofiler_builtins-*.rlib" -print -quit)
if [[ -z "${profiler_lib}" ]]; then
eerror "Rust ${rustc_ver} is missing the profiler library."
@ -477,8 +500,10 @@ src_prepare() {
"${FILESDIR}/chromium-cross-compile.patch"
"${FILESDIR}/chromium-109-system-zlib.patch"
"${FILESDIR}/chromium-111-InkDropHost-crash.patch"
"${FILESDIR}/chromium-126-oauth2-client-switches.patch"
"${FILESDIR}/chromium-127-bindgen-custom-toolchain.patch"
"${FILESDIR}/chromium-131-unbundle-icu-target.patch"
"${FILESDIR}/chromium-131-oauth2-client-switches.patch"
"${FILESDIR}/chromium-131-const-atomicstring-conversion.patch"
)
if use widevine; then
@ -535,7 +560,6 @@ src_prepare() {
buildtools/third_party/libc++
buildtools/third_party/libc++abi
chrome/third_party/mozilla_security_manager
courgette/third_party
net/third_party/mozilla_security_manager
net/third_party/nss
net/third_party/quic
@ -600,12 +624,12 @@ src_prepare() {
third_party/devtools-frontend/src/front_end/third_party/intl-messageformat
third_party/devtools-frontend/src/front_end/third_party/lighthouse
third_party/devtools-frontend/src/front_end/third_party/lit
third_party/devtools-frontend/src/front_end/third_party/lodash-isequal
third_party/devtools-frontend/src/front_end/third_party/marked
third_party/devtools-frontend/src/front_end/third_party/puppeteer
third_party/devtools-frontend/src/front_end/third_party/puppeteer/package/lib/esm/third_party/mitt
third_party/devtools-frontend/src/front_end/third_party/puppeteer/package/lib/esm/third_party/parsel-js
third_party/devtools-frontend/src/front_end/third_party/puppeteer/package/lib/esm/third_party/rxjs
third_party/devtools-frontend/src/front_end/third_party/third-party-web
third_party/devtools-frontend/src/front_end/third_party/vscode.web-custom-data
third_party/devtools-frontend/src/front_end/third_party/wasmparser
third_party/devtools-frontend/src/front_end/third_party/web-vitals
@ -615,6 +639,7 @@ src_prepare() {
third_party/eigen3
third_party/emoji-segmenter
third_party/farmhash
third_party/fast_float
third_party/fdlibm
third_party/ffmpeg
third_party/fft2d
@ -631,6 +656,16 @@ src_prepare() {
third_party/highway
third_party/hunspell
third_party/iccjpeg
third_party/ink_stroke_modeler/src/ink_stroke_modeler
third_party/ink_stroke_modeler/src/ink_stroke_modeler/internal
third_party/ink/src/ink/brush
third_party/ink/src/ink/color
third_party/ink/src/ink/geometry
third_party/ink/src/ink/rendering/skia/common_internal
third_party/ink/src/ink/rendering/skia/native
third_party/ink/src/ink/rendering/skia/native/internal
third_party/ink/src/ink/strokes
third_party/ink/src/ink/types
third_party/inspector_protocol
third_party/ipcz
third_party/jinja2
@ -741,8 +776,8 @@ src_prepare() {
third_party/tflite/src/third_party/eigen3
third_party/tflite/src/third_party/fft2d
third_party/tflite/src/third_party/xla/third_party/tsl
third_party/tflite/src/third_party/xla/xla/tsl/util
third_party/tflite/src/third_party/xla/xla/tsl/framework
third_party/tflite/src/third_party/xla/xla/tsl/util
third_party/ukey2
third_party/unrar
third_party/utf
@ -825,8 +860,34 @@ src_prepare() {
popd >/dev/null || die
fi
einfo "Unbundling third-party libraries ..."
# Sanity check keeplibs, on major version bumps it is often necessary to update this list
# and this enables us to hit them all at once.
# There are some entries that need to be whitelisted (TODO: Why? The file is understandable, the rest seem odd)
whitelist_libs=(
net/third_party/quic
third_party/devtools-frontend/src/front_end/third_party/additional_readme_paths.json
third_party/libjingle
third_party/mesa
third_party/skia/third_party/vulkan
third_party/vulkan
)
local not_found_libs=()
for lib in "${keeplibs[@]}"; do
if [[ ! -d "${lib}" ]] && ! has "${lib}" "${whitelist_libs[@]}"; then
not_found_libs+=( "${lib}" )
fi
done
if [[ ${#not_found_libs[@]} -gt 0 ]]; then
eerror "The following \`keeplibs\` directories were not found in the source tree:"
for lib in "${not_found_libs[@]}"; do
eerror " ${lib}"
done
die "Please update the ebuild."
fi
# Remove most bundled libraries. Some are still needed.
einfo "Unbundling third-party libraries ..."
build/linux/unbundle/remove_bundled_libraries.py "${keeplibs[@]}" --do-remove || die
# bundled eu-strip is for amd64 only and we don't want to pre-stripped binaries
@ -1141,20 +1202,6 @@ chromium_configure() {
use wayland && myconf_gn+=" use_system_libffi=true"
fi
# Results in undefined references in chrome linking, may require CFI to work
if use arm64; then
myconf_gn+=" arm_control_flow_integrity=\"none\""
fi
# 936673: Updater (which we don't use) depends on libsystemd
# This _should_ always be disabled if we're not building a
# "Chrome" branded browser, but obviously this is not always sufficient.
myconf_gn+=" enable_updater=false"
local use_lto="false"
if tc-is-lto; then
use_lto="true"
fi
myconf_gn+=" use_thin_lto=${use_lto}"
myconf_gn+=" thin_lto_enable_optimizations=${use_lto}"
@ -1164,10 +1211,10 @@ chromium_configure() {
# Allow building against system libraries in official builds
sed -i 's/OFFICIAL_BUILD/GOOGLE_CHROME_BUILD/' \
tools/generate_shim_headers/generate_shim_headers.py || die
# Req's LTO; TODO: not compatible with -fno-split-lto-unit
# split-lto-unit can be enabled with RUSTC_BOOTSTRAP=1 (and an updated compiler patch),
# however I still got weird linking errors with CFI _and_ the split unit LTO OOMed after using 100G.
myconf_gn+=" is_cfi=false"
# This may need to be filtered on non-amd64 arches
# Also these options are listed in upstream docs: use_cfi_icall=true use_cfi_cast=true (This may be for testing only?)
# https://www.chromium.org/developers/testing/control-flow-integrity/
myconf_gn+=" is_cfi=${use_lto}"
# Don't add symbols to build
myconf_gn+=" symbol_level=0"
fi

View file

@ -0,0 +1,35 @@
From 403ee5b14df12c8ee3b3583177bbd30d930e9aaf Mon Sep 17 00:00:00 2001
From: Matt Jolly <kangie@gentoo.org>
Date: Sat, 12 Oct 2024 13:45:37 +1000
Subject: [PATCH] Convert 'Const AtomicString' to 'const char *'.
I don't know why this is suddenly required?
--- a/third_party/blink/renderer/platform/wtf/text/text_codec_icu.cc
+++ b/third_party/blink/renderer/platform/wtf/text/text_codec_icu.cc
@@ -323,7 +323,10 @@ void TextCodecICU::CreateICUConverter() const {
DCHECK(!converter_icu_);
#if defined(USING_SYSTEM_ICU)
- const char* name = encoding_.GetName();
+ //convert to WTF::String to use existing `const char *` dependent functions
+ WTF::String nameString = encoding_.GetName();
+ std::string nameUtf8 = nameString.Utf8();
+ const char* name = nameUtf8.c_str();
needs_gbk_fallbacks_ =
name[0] == 'G' && name[1] == 'B' && name[2] == 'K' && !name[3];
#endif
@@ -448,7 +451,10 @@ String TextCodecICU::Decode(base::span<const uint8_t> data,
// <http://bugs.webkit.org/show_bug.cgi?id=17014>
// Simplified Chinese pages use the code A3A0 to mean "full-width space", but
// ICU decodes it as U+E5E5.
- if (!strcmp(encoding_.GetName(), "GBK")) {
+ // Convert AtomicString to String
+ WTF::String nameString = encoding_.GetName();
+ std::string nameUtf8 = nameString.Utf8();
+ if (!strcmp(nameUtf8.c_str(), "GBK")) {
if (EqualIgnoringASCIICase(encoding_.GetName(), "gb18030"))
resultString.Replace(0xE5E5, kIdeographicSpaceCharacter);
// Make GBK compliant to the encoding spec and align with GB18030
--
2.46.2

View file

@ -0,0 +1,39 @@
From 54951636d20fa798e148228118863b89a4580479 Mon Sep 17 00:00:00 2001
From: Matt Jolly <kangie@gentoo.org>
Date: Sat, 12 Oct 2024 12:40:16 +1000
Subject: [PATCH] www-client/chromium: work around dead oauth2 credentials -
131 update
131 moved a ton of things around; this is now in api_key_cache.cc
Google doesn't let us bake in OAuth2 credentials, and for some time,
Google sign-in has been broken. Arch dealt with this in March, and so
did we to some degree, but in the last few months, our sign-in
credentials have been broken. It appears that we actually did remove API
credentials in March around Chrome 89, but they got added back, perhaps
when rotating newer versions to replace older versions. Work around this
by following Arch's lead: we remove the predefined credentials, as
before, but also we patch Chromium so that people can use their own
easily, using Arch's patch for that.
--- a/google_apis/api_key_cache.cc
+++ b/google_apis/api_key_cache.cc
@@ -214,14 +214,14 @@ ApiKeyCache::ApiKeyCache(const DefaultApiKeys& default_api_keys) {
std::string default_client_id = CalculateKeyValue(
default_api_keys.google_default_client_id,
- STRINGIZE_NO_EXPANSION(GOOGLE_DEFAULT_CLIENT_ID), std::string(), nullptr,
+ STRINGIZE_NO_EXPANSION(GOOGLE_DEFAULT_CLIENT_ID), std::string(), ::switches::kOAuth2ClientID,
std::string(), environment.get(), command_line, gaia_config,
default_api_keys.allow_override_via_environment,
default_api_keys.allow_unset_values);
std::string default_client_secret = CalculateKeyValue(
default_api_keys.google_default_client_secret,
STRINGIZE_NO_EXPANSION(GOOGLE_DEFAULT_CLIENT_SECRET), std::string(),
- nullptr, std::string(), environment.get(), command_line, gaia_config,
+ ::switches::kOAuth2ClientSecret, std::string(), environment.get(), command_line, gaia_config,
default_api_keys.allow_override_via_environment,
default_api_keys.allow_unset_values);
--
2.46.2

View file

@ -0,0 +1,21 @@
From a665875b4013eed997bd042326a038e24f3296e7 Mon Sep 17 00:00:00 2001
From: Matt Jolly <kangie@gentoo.org>
Date: Thu, 10 Oct 2024 14:36:51 +1000
Subject: [PATCH] unbundle: add missing icu target
--- a/build/linux/unbundle/icu.gn
+++ b/build/linux/unbundle/icu.gn
@@ -65,6 +65,10 @@ group("icuuc_public") {
public_deps = [ ":icuuc" ]
}
+group("icui18n_hidden_visibility") {
+ public_deps = [ ":icuuc" ]
+}
+
shim_headers("icui18n_shim") {
root_path = "source/i18n"
headers = [
--
2.46.2