Date: Thursday, September 8, 2022 @ 07:08:04 Author: foutrelis Revision: 455256
archrelease: copy trunk to extra-x86_64 Added: chromium/repos/extra-x86_64/PKGBUILD (from rev 455255, chromium/trunk/PKGBUILD) chromium/repos/extra-x86_64/angle-wayland-include-protocol.patch (from rev 455255, chromium/trunk/angle-wayland-include-protocol.patch) chromium/repos/extra-x86_64/enable-GlobalMediaControlsCastStartStop.patch (from rev 455255, chromium/trunk/enable-GlobalMediaControlsCastStartStop.patch) chromium/repos/extra-x86_64/fix-TFLite-build-on-linux-with-system-zlib.patch (from rev 455255, chromium/trunk/fix-TFLite-build-on-linux-with-system-zlib.patch) chromium/repos/extra-x86_64/fix-debug-crash-and-log-spam-with-GTK3-Wayland.patch (from rev 455255, chromium/trunk/fix-debug-crash-and-log-spam-with-GTK3-Wayland.patch) chromium/repos/extra-x86_64/roll-src-third_party-ffmpeg.patch (from rev 455255, chromium/trunk/roll-src-third_party-ffmpeg.patch) chromium/repos/extra-x86_64/use-oauth2-client-switches-as-default.patch (from rev 455255, chromium/trunk/use-oauth2-client-switches-as-default.patch) Deleted: chromium/repos/extra-x86_64/PKGBUILD chromium/repos/extra-x86_64/angle-wayland-include-protocol.patch chromium/repos/extra-x86_64/enable-GlobalMediaControlsCastStartStop.patch chromium/repos/extra-x86_64/fix-TFLite-build-on-linux-with-system-zlib.patch chromium/repos/extra-x86_64/roll-src-third_party-ffmpeg.patch chromium/repos/extra-x86_64/use-oauth2-client-switches-as-default.patch ------------------------------------------------------+ PKGBUILD | 561 +++++++------- angle-wayland-include-protocol.patch | 76 - enable-GlobalMediaControlsCastStartStop.patch | 64 - fix-TFLite-build-on-linux-with-system-zlib.patch | 582 +++++++------- fix-debug-crash-and-log-spam-with-GTK3-Wayland.patch | 181 ++++ roll-src-third_party-ffmpeg.patch | 666 ++++++++--------- use-oauth2-client-switches-as-default.patch | 34 7 files changed, 1174 insertions(+), 990 deletions(-) Deleted: PKGBUILD =================================================================== --- PKGBUILD 2022-09-08 07:07:55 UTC (rev 455255) +++ PKGBUILD 2022-09-08 07:08:04 UTC (rev 455256) @@ -1,279 +0,0 @@ -# Maintainer: Evangelos Foutras <evange...@foutrelis.com> -# Contributor: Pierre Schmitz <pie...@archlinux.de> -# Contributor: Jan "heftig" Steffens <jan.steff...@gmail.com> -# Contributor: Daniel J Griffiths <ghost1...@archlinux.us> - -pkgname=chromium -pkgver=105.0.5195.102 -pkgrel=1 -_launcher_ver=8 -_gcc_patchset=1 -pkgdesc="A web browser built for speed, simplicity, and security" -arch=('x86_64') -url="https://www.chromium.org/Home" -license=('BSD') -depends=('gtk3' 'nss' 'alsa-lib' 'xdg-utils' 'libxss' 'libcups' 'libgcrypt' - 'ttf-liberation' 'systemd' 'dbus' 'libpulse' 'pciutils' 'libva' - 'desktop-file-utils' 'hicolor-icon-theme') -makedepends=('python' 'gn' 'ninja' 'clang' 'lld' 'gperf' 'nodejs' 'pipewire' - 'java-runtime-headless' 'git') -optdepends=('pipewire: WebRTC desktop sharing under Wayland' - 'kdialog: support for native dialogs in Plasma' - 'org.freedesktop.secrets: password storage backend on GNOME / Xfce' - 'kwallet: support for storing passwords in KWallet on Plasma') -options=('debug' '!lto') # Chromium adds its own flags for ThinLTO -source=(https://commondatastorage.googleapis.com/chromium-browser-official/chromium-$pkgver.tar.xz - https://github.com/foutrelis/chromium-launcher/archive/v$_launcher_ver/chromium-launcher-$_launcher_ver.tar.gz - https://github.com/stha09/chromium-patches/releases/download/chromium-${pkgver%%.*}-patchset-$_gcc_patchset/chromium-${pkgver%%.*}-patchset-$_gcc_patchset.tar.xz - fix-TFLite-build-on-linux-with-system-zlib.patch - enable-GlobalMediaControlsCastStartStop.patch - roll-src-third_party-ffmpeg.patch - angle-wayland-include-protocol.patch - use-oauth2-client-switches-as-default.patch) -sha256sums=('1cba0527c951e3c506ade96cf6ec2507ee9d43661764731ed896348182369262' - '213e50f48b67feb4441078d50b0fd431df34323be15be97c55302d3fdac4483a' - 'f0c437c02cab7a6efc958f82fbb4ea35d5440f73d65731bad7c0dcaecb932121' - '5db1fae8a452774b5b177e493a2d1a435b980137b16ed74616d1fb86fe342ec7' - '779fb13f2494209d3a7f1f23a823e59b9dded601866d3ab095937a1a04e19ac6' - '30df59a9e2d95dcb720357ec4a83d9be51e59cc5551365da4c0073e68ccdec44' - 'cd0d9d2a1d6a522d47c3c0891dabe4ad72eabbebc0fe5642b9e22efa3d5ee572' - 'e393174d7695d0bafed69e868c5fbfecf07aa6969f3b64596d0bae8b067e1711') - -# Possible replacements are listed in build/linux/unbundle/replace_gn_files.py -# Keys are the names in the above script; values are the dependencies in Arch -declare -gA _system_libs=( - [brotli]=brotli - [dav1d]=dav1d - [ffmpeg]=ffmpeg - [flac]=flac - [fontconfig]=fontconfig - [freetype]=freetype2 - [harfbuzz-ng]=harfbuzz - [icu]=icu - [jsoncpp]=jsoncpp - [libaom]=aom - [libavif]=libavif - [libdrm]= - [libjpeg]=libjpeg - [libpng]=libpng - #[libvpx]=libvpx - [libwebp]=libwebp - [libxml]=libxml2 - [libxslt]=libxslt - [opus]=opus - [re2]=re2 - [snappy]=snappy - [woff2]=woff2 - [zlib]=minizip -) -_unwanted_bundled_libs=( - $(printf "%s\n" ${!_system_libs[@]} | sed 's/^libjpeg$/&_turbo/') -) -depends+=(${_system_libs[@]}) - -# Google API keys (see https://www.chromium.org/developers/how-tos/api-keys) -# Note: These are for Arch Linux use ONLY. For your own distribution, please -# get your own set of keys. -# -# Starting with Chromium 89 (2021-03-02) the OAuth2 credentials have been left -# out: https://archlinux.org/news/chromium-losing-sync-support-in-early-march/ -_google_api_key=AIzaSyDwr302FpOSkGRpLlUpPThNTDPbXcIn_FM - -prepare() { - cd chromium-$pkgver - - # Allow building against system libraries in official builds - sed -i 's/OFFICIAL_BUILD/GOOGLE_CHROME_BUILD/' \ - tools/generate_shim_headers/generate_shim_headers.py - - # https://crbug.com/893950 - sed -i -e 's/\<xmlMalloc\>/malloc/' -e 's/\<xmlFree\>/free/' \ - third_party/blink/renderer/core/xml/*.cc \ - third_party/blink/renderer/core/xml/parser/xml_document_parser.cc \ - third_party/libxml/chromium/*.cc \ - third_party/maldoca/src/maldoca/ole/oss_utils.h - - # Use the --oauth2-client-id= and --oauth2-client-secret= switches for - # setting GOOGLE_DEFAULT_CLIENT_ID and GOOGLE_DEFAULT_CLIENT_SECRET at - # runtime -- this allows signing into Chromium without baked-in values - patch -Np1 -i ../use-oauth2-client-switches-as-default.patch - - # Upstream fixes - patch -Np1 -i ../fix-TFLite-build-on-linux-with-system-zlib.patch - - # Revert kGlobalMediaControlsCastStartStop enabled by default - # https://crbug.com/1314342 - patch -Rp1 -F3 -i ../enable-GlobalMediaControlsCastStartStop.patch - - # Revert ffmpeg roll requiring new channel layout API support - # https://crbug.com/1325301 - patch -Rp1 -i ../roll-src-third_party-ffmpeg.patch - - # https://crbug.com/angleproject/7582 - patch -Np0 -i ../angle-wayland-include-protocol.patch - - # Fixes for building with libstdc++ instead of libc++ - patch -Np1 -i ../patches/chromium-103-VirtualCursor-std-layout.patch - patch -Np1 -i ../patches/chromium-105-Bitmap-include.patch - patch -Np1 -i ../patches/chromium-105-browser_finder-include.patch - patch -Np1 -i ../patches/chromium-105-AdjustMaskLayerGeometry-ceilf.patch - - # Link to system tools required by the build - mkdir -p third_party/node/linux/node-linux-x64/bin - ln -s /usr/bin/node third_party/node/linux/node-linux-x64/bin/ - ln -s /usr/bin/java third_party/jdk/current/bin/ - - # Remove bundled libraries for which we will use the system copies; this - # *should* do what the remove_bundled_libraries.py script does, with the - # added benefit of not having to list all the remaining libraries - local _lib - for _lib in ${_unwanted_bundled_libs[@]}; do - find "third_party/$_lib" -type f \ - \! -path "third_party/$_lib/chromium/*" \ - \! -path "third_party/$_lib/google/*" \ - \! -path "third_party/harfbuzz-ng/utils/hb_scoped.h" \ - \! -regex '.*\.\(gn\|gni\|isolate\)' \ - -delete - done - - ./build/linux/unbundle/replace_gn_files.py \ - --system-libraries "${!_system_libs[@]}" -} - -build() { - make -C chromium-launcher-$_launcher_ver - - cd chromium-$pkgver - - export CC=clang - export CXX=clang++ - export AR=ar - export NM=nm - - local _flags=( - 'custom_toolchain="//build/toolchain/linux/unbundle:default"' - 'host_toolchain="//build/toolchain/linux/unbundle:default"' - 'clang_use_chrome_plugins=false' - 'is_official_build=true' # implies is_cfi=true on x86_64 - 'symbol_level=0' # sufficient for backtraces on x86(_64) - 'chrome_pgo_phase=0' # needs newer clang to read the bundled PGO profile - 'treat_warnings_as_errors=false' - 'disable_fieldtrial_testing_config=true' - 'blink_enable_generated_code_formatting=false' - 'ffmpeg_branding="Chrome"' - 'proprietary_codecs=true' - 'rtc_use_pipewire=true' - 'link_pulseaudio=true' - 'use_gnome_keyring=false' - 'use_sysroot=false' - 'use_custom_libcxx=false' - 'enable_hangout_services_extension=true' - 'enable_widevine=true' - 'enable_nacl=false' - "google_api_key=\"$_google_api_key\"" - ) - - if [[ -n ${_system_libs[icu]+set} ]]; then - _flags+=('icu_use_data_file=false') - fi - - # Facilitate deterministic builds (taken from build/config/compiler/BUILD.gn) - CFLAGS+=' -Wno-builtin-macro-redefined' - CXXFLAGS+=' -Wno-builtin-macro-redefined' - CPPFLAGS+=' -D__DATE__= -D__TIME__= -D__TIMESTAMP__=' - - # Do not warn about unknown warning options - CFLAGS+=' -Wno-unknown-warning-option' - CXXFLAGS+=' -Wno-unknown-warning-option' - - # Let Chromium set its own symbol level - CFLAGS=${CFLAGS/-g } - CXXFLAGS=${CXXFLAGS/-g } - - # https://github.com/ungoogled-software/ungoogled-chromium-archlinux/issues/123 - CFLAGS=${CFLAGS/-fexceptions} - CFLAGS=${CFLAGS/-fcf-protection} - CXXFLAGS=${CXXFLAGS/-fexceptions} - CXXFLAGS=${CXXFLAGS/-fcf-protection} - - # This appears to cause random segfaults when combined with ThinLTO - # https://bugs.archlinux.org/task/73518 - CFLAGS=${CFLAGS/-fstack-clash-protection} - CXXFLAGS=${CXXFLAGS/-fstack-clash-protection} - - # https://crbug.com/957519#c122 - CXXFLAGS=${CXXFLAGS/-Wp,-D_GLIBCXX_ASSERTIONS} - - gn gen out/Release --args="${_flags[*]}" - ninja -C out/Release chrome chrome_sandbox chromedriver.unstripped -} - -package() { - cd chromium-launcher-$_launcher_ver - make PREFIX=/usr DESTDIR="$pkgdir" install - install -Dm644 LICENSE \ - "$pkgdir/usr/share/licenses/chromium/LICENSE.launcher" - - cd ../chromium-$pkgver - - install -D out/Release/chrome "$pkgdir/usr/lib/chromium/chromium" - install -D out/Release/chromedriver.unstripped "$pkgdir/usr/bin/chromedriver" - install -Dm4755 out/Release/chrome_sandbox "$pkgdir/usr/lib/chromium/chrome-sandbox" - - install -Dm644 chrome/installer/linux/common/desktop.template \ - "$pkgdir/usr/share/applications/chromium.desktop" - install -Dm644 chrome/app/resources/manpage.1.in \ - "$pkgdir/usr/share/man/man1/chromium.1" - sed -i \ - -e 's/@@MENUNAME@@/Chromium/g' \ - -e 's/@@PACKAGE@@/chromium/g' \ - -e 's/@@USR_BIN_SYMLINK_NAME@@/chromium/g' \ - "$pkgdir/usr/share/applications/chromium.desktop" \ - "$pkgdir/usr/share/man/man1/chromium.1" - - install -Dm644 chrome/installer/linux/common/chromium-browser/chromium-browser.appdata.xml \ - "$pkgdir/usr/share/metainfo/chromium.appdata.xml" - sed -ni \ - -e 's/chromium-browser\.desktop/chromium.desktop/' \ - -e '/<update_contact>/d' \ - -e '/<p>/N;/<p>\n.*\(We invite\|Chromium supports Vorbis\)/,/<\/p>/d' \ - -e '/^<?xml/,$p' \ - "$pkgdir/usr/share/metainfo/chromium.appdata.xml" - - local toplevel_files=( - chrome_100_percent.pak - chrome_200_percent.pak - chrome_crashpad_handler - resources.pak - v8_context_snapshot.bin - - # ANGLE - libEGL.so - libGLESv2.so - - # SwiftShader ICD - libvk_swiftshader.so - vk_swiftshader_icd.json - ) - - if [[ -z ${_system_libs[icu]+set} ]]; then - toplevel_files+=(icudtl.dat) - fi - - cp "${toplevel_files[@]/#/out/Release/}" "$pkgdir/usr/lib/chromium/" - install -Dm644 -t "$pkgdir/usr/lib/chromium/locales" out/Release/locales/*.pak - - for size in 24 48 64 128 256; do - install -Dm644 "chrome/app/theme/chromium/product_logo_$size.png" \ - "$pkgdir/usr/share/icons/hicolor/${size}x${size}/apps/chromium.png" - done - - for size in 16 32; do - install -Dm644 "chrome/app/theme/default_100_percent/chromium/product_logo_$size.png" \ - "$pkgdir/usr/share/icons/hicolor/${size}x${size}/apps/chromium.png" - done - - install -Dm644 LICENSE "$pkgdir/usr/share/licenses/chromium/LICENSE" -} - -# vim:set ts=2 sw=2 et: Copied: chromium/repos/extra-x86_64/PKGBUILD (from rev 455255, chromium/trunk/PKGBUILD) =================================================================== --- PKGBUILD (rev 0) +++ PKGBUILD 2022-09-08 07:08:04 UTC (rev 455256) @@ -0,0 +1,282 @@ +# Maintainer: Evangelos Foutras <evange...@foutrelis.com> +# Contributor: Pierre Schmitz <pie...@archlinux.de> +# Contributor: Jan "heftig" Steffens <jan.steff...@gmail.com> +# Contributor: Daniel J Griffiths <ghost1...@archlinux.us> + +pkgname=chromium +pkgver=105.0.5195.102 +pkgrel=2 +_launcher_ver=8 +_gcc_patchset=1 +pkgdesc="A web browser built for speed, simplicity, and security" +arch=('x86_64') +url="https://www.chromium.org/Home" +license=('BSD') +depends=('gtk3' 'nss' 'alsa-lib' 'xdg-utils' 'libxss' 'libcups' 'libgcrypt' + 'ttf-liberation' 'systemd' 'dbus' 'libpulse' 'pciutils' 'libva' + 'desktop-file-utils' 'hicolor-icon-theme') +makedepends=('python' 'gn' 'ninja' 'clang' 'lld' 'gperf' 'nodejs' 'pipewire' + 'java-runtime-headless' 'git') +optdepends=('pipewire: WebRTC desktop sharing under Wayland' + 'kdialog: support for native dialogs in Plasma' + 'org.freedesktop.secrets: password storage backend on GNOME / Xfce' + 'kwallet: support for storing passwords in KWallet on Plasma') +options=('debug' '!lto') # Chromium adds its own flags for ThinLTO +source=(https://commondatastorage.googleapis.com/chromium-browser-official/chromium-$pkgver.tar.xz + https://github.com/foutrelis/chromium-launcher/archive/v$_launcher_ver/chromium-launcher-$_launcher_ver.tar.gz + https://github.com/stha09/chromium-patches/releases/download/chromium-${pkgver%%.*}-patchset-$_gcc_patchset/chromium-${pkgver%%.*}-patchset-$_gcc_patchset.tar.xz + fix-TFLite-build-on-linux-with-system-zlib.patch + fix-debug-crash-and-log-spam-with-GTK3-Wayland.patch + enable-GlobalMediaControlsCastStartStop.patch + roll-src-third_party-ffmpeg.patch + angle-wayland-include-protocol.patch + use-oauth2-client-switches-as-default.patch) +sha256sums=('1cba0527c951e3c506ade96cf6ec2507ee9d43661764731ed896348182369262' + '213e50f48b67feb4441078d50b0fd431df34323be15be97c55302d3fdac4483a' + 'f0c437c02cab7a6efc958f82fbb4ea35d5440f73d65731bad7c0dcaecb932121' + '5db1fae8a452774b5b177e493a2d1a435b980137b16ed74616d1fb86fe342ec7' + 'a9a30d16ad6b0689c2c4a85a3c508f49254fc8e69e791a45302673812461eb58' + '779fb13f2494209d3a7f1f23a823e59b9dded601866d3ab095937a1a04e19ac6' + '30df59a9e2d95dcb720357ec4a83d9be51e59cc5551365da4c0073e68ccdec44' + 'cd0d9d2a1d6a522d47c3c0891dabe4ad72eabbebc0fe5642b9e22efa3d5ee572' + 'e393174d7695d0bafed69e868c5fbfecf07aa6969f3b64596d0bae8b067e1711') + +# Possible replacements are listed in build/linux/unbundle/replace_gn_files.py +# Keys are the names in the above script; values are the dependencies in Arch +declare -gA _system_libs=( + [brotli]=brotli + [dav1d]=dav1d + [ffmpeg]=ffmpeg + [flac]=flac + [fontconfig]=fontconfig + [freetype]=freetype2 + [harfbuzz-ng]=harfbuzz + [icu]=icu + [jsoncpp]=jsoncpp + [libaom]=aom + [libavif]=libavif + [libdrm]= + [libjpeg]=libjpeg + [libpng]=libpng + #[libvpx]=libvpx + [libwebp]=libwebp + [libxml]=libxml2 + [libxslt]=libxslt + [opus]=opus + [re2]=re2 + [snappy]=snappy + [woff2]=woff2 + [zlib]=minizip +) +_unwanted_bundled_libs=( + $(printf "%s\n" ${!_system_libs[@]} | sed 's/^libjpeg$/&_turbo/') +) +depends+=(${_system_libs[@]}) + +# Google API keys (see https://www.chromium.org/developers/how-tos/api-keys) +# Note: These are for Arch Linux use ONLY. For your own distribution, please +# get your own set of keys. +# +# Starting with Chromium 89 (2021-03-02) the OAuth2 credentials have been left +# out: https://archlinux.org/news/chromium-losing-sync-support-in-early-march/ +_google_api_key=AIzaSyDwr302FpOSkGRpLlUpPThNTDPbXcIn_FM + +prepare() { + cd chromium-$pkgver + + # Allow building against system libraries in official builds + sed -i 's/OFFICIAL_BUILD/GOOGLE_CHROME_BUILD/' \ + tools/generate_shim_headers/generate_shim_headers.py + + # https://crbug.com/893950 + sed -i -e 's/\<xmlMalloc\>/malloc/' -e 's/\<xmlFree\>/free/' \ + third_party/blink/renderer/core/xml/*.cc \ + third_party/blink/renderer/core/xml/parser/xml_document_parser.cc \ + third_party/libxml/chromium/*.cc \ + third_party/maldoca/src/maldoca/ole/oss_utils.h + + # Use the --oauth2-client-id= and --oauth2-client-secret= switches for + # setting GOOGLE_DEFAULT_CLIENT_ID and GOOGLE_DEFAULT_CLIENT_SECRET at + # runtime -- this allows signing into Chromium without baked-in values + patch -Np1 -i ../use-oauth2-client-switches-as-default.patch + + # Upstream fixes + patch -Np1 -i ../fix-TFLite-build-on-linux-with-system-zlib.patch + patch -Np1 -i ../fix-debug-crash-and-log-spam-with-GTK3-Wayland.patch + + # Revert kGlobalMediaControlsCastStartStop enabled by default + # https://crbug.com/1314342 + patch -Rp1 -F3 -i ../enable-GlobalMediaControlsCastStartStop.patch + + # Revert ffmpeg roll requiring new channel layout API support + # https://crbug.com/1325301 + patch -Rp1 -i ../roll-src-third_party-ffmpeg.patch + + # https://crbug.com/angleproject/7582 + patch -Np0 -i ../angle-wayland-include-protocol.patch + + # Fixes for building with libstdc++ instead of libc++ + patch -Np1 -i ../patches/chromium-103-VirtualCursor-std-layout.patch + patch -Np1 -i ../patches/chromium-105-Bitmap-include.patch + patch -Np1 -i ../patches/chromium-105-browser_finder-include.patch + patch -Np1 -i ../patches/chromium-105-AdjustMaskLayerGeometry-ceilf.patch + + # Link to system tools required by the build + mkdir -p third_party/node/linux/node-linux-x64/bin + ln -s /usr/bin/node third_party/node/linux/node-linux-x64/bin/ + ln -s /usr/bin/java third_party/jdk/current/bin/ + + # Remove bundled libraries for which we will use the system copies; this + # *should* do what the remove_bundled_libraries.py script does, with the + # added benefit of not having to list all the remaining libraries + local _lib + for _lib in ${_unwanted_bundled_libs[@]}; do + find "third_party/$_lib" -type f \ + \! -path "third_party/$_lib/chromium/*" \ + \! -path "third_party/$_lib/google/*" \ + \! -path "third_party/harfbuzz-ng/utils/hb_scoped.h" \ + \! -regex '.*\.\(gn\|gni\|isolate\)' \ + -delete + done + + ./build/linux/unbundle/replace_gn_files.py \ + --system-libraries "${!_system_libs[@]}" +} + +build() { + make -C chromium-launcher-$_launcher_ver + + cd chromium-$pkgver + + export CC=clang + export CXX=clang++ + export AR=ar + export NM=nm + + local _flags=( + 'custom_toolchain="//build/toolchain/linux/unbundle:default"' + 'host_toolchain="//build/toolchain/linux/unbundle:default"' + 'clang_use_chrome_plugins=false' + 'is_official_build=true' # implies is_cfi=true on x86_64 + 'symbol_level=0' # sufficient for backtraces on x86(_64) + 'chrome_pgo_phase=0' # needs newer clang to read the bundled PGO profile + 'treat_warnings_as_errors=false' + 'disable_fieldtrial_testing_config=true' + 'blink_enable_generated_code_formatting=false' + 'ffmpeg_branding="Chrome"' + 'proprietary_codecs=true' + 'rtc_use_pipewire=true' + 'link_pulseaudio=true' + 'use_gnome_keyring=false' + 'use_sysroot=false' + 'use_custom_libcxx=false' + 'enable_hangout_services_extension=true' + 'enable_widevine=true' + 'enable_nacl=false' + "google_api_key=\"$_google_api_key\"" + ) + + if [[ -n ${_system_libs[icu]+set} ]]; then + _flags+=('icu_use_data_file=false') + fi + + # Facilitate deterministic builds (taken from build/config/compiler/BUILD.gn) + CFLAGS+=' -Wno-builtin-macro-redefined' + CXXFLAGS+=' -Wno-builtin-macro-redefined' + CPPFLAGS+=' -D__DATE__= -D__TIME__= -D__TIMESTAMP__=' + + # Do not warn about unknown warning options + CFLAGS+=' -Wno-unknown-warning-option' + CXXFLAGS+=' -Wno-unknown-warning-option' + + # Let Chromium set its own symbol level + CFLAGS=${CFLAGS/-g } + CXXFLAGS=${CXXFLAGS/-g } + + # https://github.com/ungoogled-software/ungoogled-chromium-archlinux/issues/123 + CFLAGS=${CFLAGS/-fexceptions} + CFLAGS=${CFLAGS/-fcf-protection} + CXXFLAGS=${CXXFLAGS/-fexceptions} + CXXFLAGS=${CXXFLAGS/-fcf-protection} + + # This appears to cause random segfaults when combined with ThinLTO + # https://bugs.archlinux.org/task/73518 + CFLAGS=${CFLAGS/-fstack-clash-protection} + CXXFLAGS=${CXXFLAGS/-fstack-clash-protection} + + # https://crbug.com/957519#c122 + CXXFLAGS=${CXXFLAGS/-Wp,-D_GLIBCXX_ASSERTIONS} + + gn gen out/Release --args="${_flags[*]}" + ninja -C out/Release chrome chrome_sandbox chromedriver.unstripped +} + +package() { + cd chromium-launcher-$_launcher_ver + make PREFIX=/usr DESTDIR="$pkgdir" install + install -Dm644 LICENSE \ + "$pkgdir/usr/share/licenses/chromium/LICENSE.launcher" + + cd ../chromium-$pkgver + + install -D out/Release/chrome "$pkgdir/usr/lib/chromium/chromium" + install -D out/Release/chromedriver.unstripped "$pkgdir/usr/bin/chromedriver" + install -Dm4755 out/Release/chrome_sandbox "$pkgdir/usr/lib/chromium/chrome-sandbox" + + install -Dm644 chrome/installer/linux/common/desktop.template \ + "$pkgdir/usr/share/applications/chromium.desktop" + install -Dm644 chrome/app/resources/manpage.1.in \ + "$pkgdir/usr/share/man/man1/chromium.1" + sed -i \ + -e 's/@@MENUNAME@@/Chromium/g' \ + -e 's/@@PACKAGE@@/chromium/g' \ + -e 's/@@USR_BIN_SYMLINK_NAME@@/chromium/g' \ + "$pkgdir/usr/share/applications/chromium.desktop" \ + "$pkgdir/usr/share/man/man1/chromium.1" + + install -Dm644 chrome/installer/linux/common/chromium-browser/chromium-browser.appdata.xml \ + "$pkgdir/usr/share/metainfo/chromium.appdata.xml" + sed -ni \ + -e 's/chromium-browser\.desktop/chromium.desktop/' \ + -e '/<update_contact>/d' \ + -e '/<p>/N;/<p>\n.*\(We invite\|Chromium supports Vorbis\)/,/<\/p>/d' \ + -e '/^<?xml/,$p' \ + "$pkgdir/usr/share/metainfo/chromium.appdata.xml" + + local toplevel_files=( + chrome_100_percent.pak + chrome_200_percent.pak + chrome_crashpad_handler + resources.pak + v8_context_snapshot.bin + + # ANGLE + libEGL.so + libGLESv2.so + + # SwiftShader ICD + libvk_swiftshader.so + vk_swiftshader_icd.json + ) + + if [[ -z ${_system_libs[icu]+set} ]]; then + toplevel_files+=(icudtl.dat) + fi + + cp "${toplevel_files[@]/#/out/Release/}" "$pkgdir/usr/lib/chromium/" + install -Dm644 -t "$pkgdir/usr/lib/chromium/locales" out/Release/locales/*.pak + + for size in 24 48 64 128 256; do + install -Dm644 "chrome/app/theme/chromium/product_logo_$size.png" \ + "$pkgdir/usr/share/icons/hicolor/${size}x${size}/apps/chromium.png" + done + + for size in 16 32; do + install -Dm644 "chrome/app/theme/default_100_percent/chromium/product_logo_$size.png" \ + "$pkgdir/usr/share/icons/hicolor/${size}x${size}/apps/chromium.png" + done + + install -Dm644 LICENSE "$pkgdir/usr/share/licenses/chromium/LICENSE" +} + +# vim:set ts=2 sw=2 et: Deleted: angle-wayland-include-protocol.patch =================================================================== --- angle-wayland-include-protocol.patch 2022-09-08 07:07:55 UTC (rev 455255) +++ angle-wayland-include-protocol.patch 2022-09-08 07:08:04 UTC (rev 455256) @@ -1,38 +0,0 @@ -diff -upr third_party/angle.orig/BUILD.gn third_party/angle/BUILD.gn ---- third_party/angle.orig/BUILD.gn 2022-08-17 19:38:11.000000000 +0000 -+++ third_party/angle/BUILD.gn 2022-08-18 11:04:09.061751111 +0000 -@@ -489,6 +489,12 @@ config("angle_vulkan_wayland_config") { - if (angle_enable_vulkan && angle_use_wayland && - defined(vulkan_wayland_include_dirs)) { - include_dirs = vulkan_wayland_include_dirs -+ } else if (angle_enable_vulkan && angle_use_wayland) { -+ include_dirs = [ -+ "$wayland_gn_dir/src/src", -+ "$wayland_gn_dir/include/src", -+ "$wayland_gn_dir/include/protocol", -+ ] - } - } - -@@ -1073,6 +1079,7 @@ if (angle_use_wayland) { - include_dirs = [ - "$wayland_dir/egl", - "$wayland_dir/src", -+ "$wayland_gn_dir/include/protocol", - ] - } - -diff -upr third_party/angle.orig/src/third_party/volk/BUILD.gn third_party/angle/src/third_party/volk/BUILD.gn ---- third_party/angle.orig/src/third_party/volk/BUILD.gn 2022-08-17 19:38:12.000000000 +0000 -+++ third_party/angle/src/third_party/volk/BUILD.gn 2022-08-18 11:04:36.499828006 +0000 -@@ -21,6 +21,9 @@ source_set("volk") { - configs += [ "$angle_root:angle_no_cfi_icall" ] - public_deps = [ "$angle_vulkan_headers_dir:vulkan_headers" ] - if (angle_use_wayland) { -- include_dirs = [ "$wayland_dir/src" ] -+ include_dirs = [ -+ "$wayland_dir/src", -+ "$wayland_gn_dir/include/protocol", -+ ] - } - } Copied: chromium/repos/extra-x86_64/angle-wayland-include-protocol.patch (from rev 455255, chromium/trunk/angle-wayland-include-protocol.patch) =================================================================== --- angle-wayland-include-protocol.patch (rev 0) +++ angle-wayland-include-protocol.patch 2022-09-08 07:08:04 UTC (rev 455256) @@ -0,0 +1,38 @@ +diff -upr third_party/angle.orig/BUILD.gn third_party/angle/BUILD.gn +--- third_party/angle.orig/BUILD.gn 2022-08-17 19:38:11.000000000 +0000 ++++ third_party/angle/BUILD.gn 2022-08-18 11:04:09.061751111 +0000 +@@ -489,6 +489,12 @@ config("angle_vulkan_wayland_config") { + if (angle_enable_vulkan && angle_use_wayland && + defined(vulkan_wayland_include_dirs)) { + include_dirs = vulkan_wayland_include_dirs ++ } else if (angle_enable_vulkan && angle_use_wayland) { ++ include_dirs = [ ++ "$wayland_gn_dir/src/src", ++ "$wayland_gn_dir/include/src", ++ "$wayland_gn_dir/include/protocol", ++ ] + } + } + +@@ -1073,6 +1079,7 @@ if (angle_use_wayland) { + include_dirs = [ + "$wayland_dir/egl", + "$wayland_dir/src", ++ "$wayland_gn_dir/include/protocol", + ] + } + +diff -upr third_party/angle.orig/src/third_party/volk/BUILD.gn third_party/angle/src/third_party/volk/BUILD.gn +--- third_party/angle.orig/src/third_party/volk/BUILD.gn 2022-08-17 19:38:12.000000000 +0000 ++++ third_party/angle/src/third_party/volk/BUILD.gn 2022-08-18 11:04:36.499828006 +0000 +@@ -21,6 +21,9 @@ source_set("volk") { + configs += [ "$angle_root:angle_no_cfi_icall" ] + public_deps = [ "$angle_vulkan_headers_dir:vulkan_headers" ] + if (angle_use_wayland) { +- include_dirs = [ "$wayland_dir/src" ] ++ include_dirs = [ ++ "$wayland_dir/src", ++ "$wayland_gn_dir/include/protocol", ++ ] + } + } Deleted: enable-GlobalMediaControlsCastStartStop.patch =================================================================== --- enable-GlobalMediaControlsCastStartStop.patch 2022-09-08 07:07:55 UTC (rev 455255) +++ enable-GlobalMediaControlsCastStartStop.patch 2022-09-08 07:08:04 UTC (rev 455256) @@ -1,32 +0,0 @@ -From b58f0f2725a8c1a8a131f9984b5fd53b54119dba Mon Sep 17 00:00:00 2001 -From: Muyao Xu <muya...@google.com> -Date: Thu, 20 Jan 2022 23:46:21 +0000 -Subject: [PATCH] [Zenith] Enable GlobalMediaControlsCastStartStop flag by - default - -The feature is rolled out to 100% stable through finch for M96+. -This CL enables it by default and fixes some unit tests failures. - -Bug: 1287242, 1287305 -Change-Id: I7e5c9625b77379fef253c41ef292a0dd6fc366fb -Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3388416 -Reviewed-by: Takumi Fujimoto <taku...@chromium.org> -Commit-Queue: Muyao Xu <muya...@google.com> -Cr-Commit-Position: refs/heads/main@{#961658} ---- - chrome/browser/media/router/media_router_feature.cc | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/chrome/browser/media/router/media_router_feature.cc b/chrome/browser/media/router/media_router_feature.cc -index f28f9b0b802..a8d544f7d6d 100644 ---- a/chrome/browser/media/router/media_router_feature.cc -+++ b/chrome/browser/media/router/media_router_feature.cc -@@ -33,7 +33,7 @@ const base::Feature kMediaRouter{"MediaRouter", - const base::Feature kCastAllowAllIPsFeature{"CastAllowAllIPs", - base::FEATURE_DISABLED_BY_DEFAULT}; - const base::Feature kGlobalMediaControlsCastStartStop{ -- "GlobalMediaControlsCastStartStop", base::FEATURE_DISABLED_BY_DEFAULT}; -+ "GlobalMediaControlsCastStartStop", base::FEATURE_ENABLED_BY_DEFAULT}; - const base::Feature kAllowAllSitesToInitiateMirroring{ - "AllowAllSitesToInitiateMirroring", base::FEATURE_DISABLED_BY_DEFAULT}; - const base::Feature kDialMediaRouteProvider{"DialMediaRouteProvider", Copied: chromium/repos/extra-x86_64/enable-GlobalMediaControlsCastStartStop.patch (from rev 455255, chromium/trunk/enable-GlobalMediaControlsCastStartStop.patch) =================================================================== --- enable-GlobalMediaControlsCastStartStop.patch (rev 0) +++ enable-GlobalMediaControlsCastStartStop.patch 2022-09-08 07:08:04 UTC (rev 455256) @@ -0,0 +1,32 @@ +From b58f0f2725a8c1a8a131f9984b5fd53b54119dba Mon Sep 17 00:00:00 2001 +From: Muyao Xu <muya...@google.com> +Date: Thu, 20 Jan 2022 23:46:21 +0000 +Subject: [PATCH] [Zenith] Enable GlobalMediaControlsCastStartStop flag by + default + +The feature is rolled out to 100% stable through finch for M96+. +This CL enables it by default and fixes some unit tests failures. + +Bug: 1287242, 1287305 +Change-Id: I7e5c9625b77379fef253c41ef292a0dd6fc366fb +Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3388416 +Reviewed-by: Takumi Fujimoto <taku...@chromium.org> +Commit-Queue: Muyao Xu <muya...@google.com> +Cr-Commit-Position: refs/heads/main@{#961658} +--- + chrome/browser/media/router/media_router_feature.cc | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/chrome/browser/media/router/media_router_feature.cc b/chrome/browser/media/router/media_router_feature.cc +index f28f9b0b802..a8d544f7d6d 100644 +--- a/chrome/browser/media/router/media_router_feature.cc ++++ b/chrome/browser/media/router/media_router_feature.cc +@@ -33,7 +33,7 @@ const base::Feature kMediaRouter{"MediaRouter", + const base::Feature kCastAllowAllIPsFeature{"CastAllowAllIPs", + base::FEATURE_DISABLED_BY_DEFAULT}; + const base::Feature kGlobalMediaControlsCastStartStop{ +- "GlobalMediaControlsCastStartStop", base::FEATURE_DISABLED_BY_DEFAULT}; ++ "GlobalMediaControlsCastStartStop", base::FEATURE_ENABLED_BY_DEFAULT}; + const base::Feature kAllowAllSitesToInitiateMirroring{ + "AllowAllSitesToInitiateMirroring", base::FEATURE_DISABLED_BY_DEFAULT}; + const base::Feature kDialMediaRouteProvider{"DialMediaRouteProvider", Deleted: fix-TFLite-build-on-linux-with-system-zlib.patch =================================================================== --- fix-TFLite-build-on-linux-with-system-zlib.patch 2022-09-08 07:07:55 UTC (rev 455255) +++ fix-TFLite-build-on-linux-with-system-zlib.patch 2022-09-08 07:08:04 UTC (rev 455256) @@ -1,291 +0,0 @@ -From ae0f9adb7e14c0d19ca695ef6ad40b321a8cb64c Mon Sep 17 00:00:00 2001 -From: Andres Salomon <dilin...@queued.net> -Date: Mon, 8 Aug 2022 23:01:53 +0000 -Subject: [PATCH] Fix TFLite build errors on linux when using the system zlib - -The commit a3be9805c1601d3fabe1e5adb6b9199c033aa2c5 updated TFLite, -which included the new zip_*_mem_file.* files that include minizip's -ioapi.h. To support that, it also declared that tflite_support depends -on minizip (in third_party/tflite_support/BUILD.gn). However, that's not -enough, and results in a build error when building using the stub linux -zlib build scripts. - -Other places that depend on minizip use a longer path to its header -files. For example, chrome/chrome_cleaner/zip_archiver/'s test_support -depends on minizip, and -chrome/chrome_cleaner/zip_archiver/target/zip_archiver_impl.cc -includes "third_party/zlib/contrib/minizip/ioapi.h". - -The new tensorflow stuff should do the same, instead of just including -"contrib/minizip/ioapi.h". This patch fixes that, as well as other -places where ioapi.h or zip.h/unzip.h are included without a fuller -path. - -Note: if you prefer to not modify the tflite code, let me know and I -can instead do a change that adds third_party/zlib as an include path -for minizip. - -R=mcro...@chromium.org, robertog...@chromium.org, se...@chromium.org, thes...@chromium.org - -Bug: 1348787 -Change-Id: I922d18b3d1c0e459437624fd248c21afc1be6bb8 -Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3797828 -Commit-Queue: Andres Salomon <dilin...@queued.net> -Auto-Submit: Andres Salomon <dilin...@queued.net> -Reviewed-by: Michael Crouse <mcro...@chromium.org> -Cr-Commit-Position: refs/heads/main@{#1032774} ---- - third_party/tflite_support/README.chromium | 2 + - ...-errors-on-linux-when-using-the-syst.patch | 129 ++++++++++++++++++ - .../metadata/cc/metadata_extractor.cc | 4 +- - .../metadata/cc/metadata_populator.cc | 4 +- - .../cc/utils/zip_readonly_mem_file.cc | 2 +- - .../metadata/cc/utils/zip_readonly_mem_file.h | 2 +- - .../cc/utils/zip_writable_mem_file.cc | 2 +- - .../metadata/cc/utils/zip_writable_mem_file.h | 2 +- - 8 files changed, 139 insertions(+), 8 deletions(-) - create mode 100644 third_party/tflite_support/patches/0010-Fix-TFLite-build-errors-on-linux-when-using-the-syst.patch - -diff --git a/third_party/tflite_support/README.chromium b/third_party/tflite_support/README.chromium -index cfaf220adb..91f4baf82b 100644 ---- a/third_party/tflite_support/README.chromium -+++ b/third_party/tflite_support/README.chromium -@@ -36,6 +36,8 @@ is a no-op in chromium builds and upsets clang. - * This patch intentionally does not apply because it was made with - `--irreversible-delete` because it is deleting a large .tflite file causing - the chromium-presubmit bot to fail. -+10) Fix minizip path inclusion. Upstream uses contrib/minizip/, but chromium -+uses third_party/zlib/contrib/minizip/. - - Update Process (internal: http://shortn/_nwz8liqimy): - 1) Run these commands: -diff --git a/third_party/tflite_support/patches/0010-Fix-TFLite-build-errors-on-linux-when-using-the-syst.patch b/third_party/tflite_support/patches/0010-Fix-TFLite-build-errors-on-linux-when-using-the-syst.patch -new file mode 100644 -index 0000000000..34acf277fc ---- /dev/null -+++ b/third_party/tflite_support/patches/0010-Fix-TFLite-build-errors-on-linux-when-using-the-syst.patch -@@ -0,0 +1,129 @@ -+From 12da2fa8f2d779e2fc14f48de73af79e9040c141 Mon Sep 17 00:00:00 2001 -+From: Andres Salomon <dilin...@queued.net> -+Date: Sun, 31 Jul 2022 19:07:24 -0400 -+Subject: [PATCH] Fix TFLite build errors on linux when using the system zlib -+ -+The commit a3be9805c1601d3fabe1e5adb6b9199c033aa2c5 updated TFLite, -+which included the new zip_*_mem_file.* files that include minizip's -+ioapi.h. To support that, it also declared that tflite_support depends -+on minizip (in third_party/tflite_support/BUILD.gn). However, that's not -+enough, and results in a build error when building using the stub linux -+zlib build scripts. -+ -+Other places that depend on minizip use a longer path to its header -+files. For example, chrome/chrome_cleaner/zip_archiver/'s test_support -+depends on minizip, and -+chrome/chrome_cleaner/zip_archiver/target/zip_archiver_impl.cc -+includes "third_party/zlib/contrib/minizip/ioapi.h". -+ -+The new tensorflow stuff should do the same, instead of just including -+"contrib/minizip/ioapi.h". This patch fixes that, as well as other -+places where ioapi.h or zip.h/unzip.h are included without a fuller -+path. -+--- -+ .../tensorflow_lite_support/metadata/cc/metadata_extractor.cc | 4 ++-- -+ .../tensorflow_lite_support/metadata/cc/metadata_populator.cc | 4 ++-- -+ .../metadata/cc/utils/zip_readonly_mem_file.cc | 2 +- -+ .../metadata/cc/utils/zip_readonly_mem_file.h | 2 +- -+ .../metadata/cc/utils/zip_writable_mem_file.cc | 2 +- -+ .../metadata/cc/utils/zip_writable_mem_file.h | 2 +- -+ 6 files changed, 8 insertions(+), 8 deletions(-) -+ -+diff --git a/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/metadata_extractor.cc b/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/metadata_extractor.cc -+index 2a72338741626..62d0910182877 100644 -+--- a/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/metadata_extractor.cc -++++ b/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/metadata_extractor.cc -+@@ -21,14 +21,14 @@ limitations under the License. -+ #include "absl/status/status.h" // from @com_google_absl -+ #include "absl/strings/str_format.h" // from @com_google_absl -+ #include "absl/strings/string_view.h" // from @com_google_absl -+-#include "contrib/minizip/ioapi.h" -+-#include "contrib/minizip/unzip.h" -+ #include "flatbuffers/flatbuffers.h" // from @flatbuffers -+ #include "tensorflow/lite/schema/schema_generated.h" -+ #include "tensorflow_lite_support/cc/common.h" -+ #include "tensorflow_lite_support/cc/port/status_macros.h" -+ #include "tensorflow_lite_support/metadata/cc/utils/zip_readonly_mem_file.h" -+ #include "tensorflow_lite_support/metadata/metadata_schema_generated.h" -++#include "third_party/zlib/contrib/minizip/ioapi.h" -++#include "third_party/zlib/contrib/minizip/unzip.h" -+ -+ namespace tflite { -+ namespace metadata { -+diff --git a/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/metadata_populator.cc b/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/metadata_populator.cc -+index 299ade3e95d54..8e13fa63dafbc 100644 -+--- a/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/metadata_populator.cc -++++ b/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/metadata_populator.cc -+@@ -19,8 +19,6 @@ limitations under the License. -+ #include <cstring> -+ #include <functional> -+ -+-#include "contrib/minizip/ioapi.h" -+-#include "contrib/minizip/zip.h" -+ #include "flatbuffers/flatbuffers.h" // from @flatbuffers -+ #include "tensorflow/lite/schema/schema_generated.h" -+ #include "tensorflow_lite_support/cc/common.h" -+@@ -28,6 +26,8 @@ limitations under the License. -+ #include "tensorflow_lite_support/cc/port/statusor.h" -+ #include "tensorflow_lite_support/metadata/cc/utils/zip_writable_mem_file.h" -+ #include "tensorflow_lite_support/metadata/metadata_schema_generated.h" -++#include "third_party/zlib/contrib/minizip/ioapi.h" -++#include "third_party/zlib/contrib/minizip/zip.h" -+ -+ namespace tflite { -+ namespace metadata { -+diff --git a/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/utils/zip_readonly_mem_file.cc b/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/utils/zip_readonly_mem_file.cc -+index 392b6b411fe03..525ae4a2b45bd 100644 -+--- a/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/utils/zip_readonly_mem_file.cc -++++ b/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/utils/zip_readonly_mem_file.cc -+@@ -19,7 +19,7 @@ limitations under the License. -+ #include <cstdio> -+ -+ #include "absl/strings/string_view.h" // from @com_google_absl -+-#include "contrib/minizip/ioapi.h" -++#include "third_party/zlib/contrib/minizip/ioapi.h" -+ -+ namespace tflite { -+ namespace metadata { -+diff --git a/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/utils/zip_readonly_mem_file.h b/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/utils/zip_readonly_mem_file.h -+index a1799ff509de5..72413a0a56252 100644 -+--- a/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/utils/zip_readonly_mem_file.h -++++ b/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/utils/zip_readonly_mem_file.h -+@@ -19,7 +19,7 @@ limitations under the License. -+ #include <cstdlib> -+ -+ #include "absl/strings/string_view.h" // from @com_google_absl -+-#include "contrib/minizip/ioapi.h" -++#include "third_party/zlib/contrib/minizip/ioapi.h" -+ -+ namespace tflite { -+ namespace metadata { -+diff --git a/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/utils/zip_writable_mem_file.cc b/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/utils/zip_writable_mem_file.cc -+index 38ad17ad8935c..3ba91b5e22890 100644 -+--- a/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/utils/zip_writable_mem_file.cc -++++ b/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/utils/zip_writable_mem_file.cc -+@@ -19,7 +19,7 @@ limitations under the License. -+ #include <cstdio> -+ -+ #include "absl/strings/string_view.h" // from @com_google_absl -+-#include "contrib/minizip/ioapi.h" -++#include "third_party/zlib/contrib/minizip/ioapi.h" -+ -+ namespace tflite { -+ namespace metadata { -+diff --git a/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/utils/zip_writable_mem_file.h b/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/utils/zip_writable_mem_file.h -+index 30e42fdb72a31..3d329925df756 100644 -+--- a/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/utils/zip_writable_mem_file.h -++++ b/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/utils/zip_writable_mem_file.h -+@@ -19,7 +19,7 @@ limitations under the License. -+ #include <cstdlib> -+ -+ #include "absl/strings/string_view.h" // from @com_google_absl -+-#include "contrib/minizip/ioapi.h" -++#include "third_party/zlib/contrib/minizip/ioapi.h" -+ -+ namespace tflite { -+ namespace metadata { -+-- -+2.30.2 -+ -diff --git a/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/metadata_extractor.cc b/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/metadata_extractor.cc -index 2a72338741..62d0910182 100644 ---- a/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/metadata_extractor.cc -+++ b/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/metadata_extractor.cc -@@ -21,14 +21,14 @@ limitations under the License. - #include "absl/status/status.h" // from @com_google_absl - #include "absl/strings/str_format.h" // from @com_google_absl - #include "absl/strings/string_view.h" // from @com_google_absl --#include "contrib/minizip/ioapi.h" --#include "contrib/minizip/unzip.h" - #include "flatbuffers/flatbuffers.h" // from @flatbuffers - #include "tensorflow/lite/schema/schema_generated.h" - #include "tensorflow_lite_support/cc/common.h" - #include "tensorflow_lite_support/cc/port/status_macros.h" - #include "tensorflow_lite_support/metadata/cc/utils/zip_readonly_mem_file.h" - #include "tensorflow_lite_support/metadata/metadata_schema_generated.h" -+#include "third_party/zlib/contrib/minizip/ioapi.h" -+#include "third_party/zlib/contrib/minizip/unzip.h" - - namespace tflite { - namespace metadata { -diff --git a/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/metadata_populator.cc b/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/metadata_populator.cc -index 299ade3e95..8e13fa63da 100644 ---- a/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/metadata_populator.cc -+++ b/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/metadata_populator.cc -@@ -19,8 +19,6 @@ limitations under the License. - #include <cstring> - #include <functional> - --#include "contrib/minizip/ioapi.h" --#include "contrib/minizip/zip.h" - #include "flatbuffers/flatbuffers.h" // from @flatbuffers - #include "tensorflow/lite/schema/schema_generated.h" - #include "tensorflow_lite_support/cc/common.h" -@@ -28,6 +26,8 @@ limitations under the License. - #include "tensorflow_lite_support/cc/port/statusor.h" - #include "tensorflow_lite_support/metadata/cc/utils/zip_writable_mem_file.h" - #include "tensorflow_lite_support/metadata/metadata_schema_generated.h" -+#include "third_party/zlib/contrib/minizip/ioapi.h" -+#include "third_party/zlib/contrib/minizip/zip.h" - - namespace tflite { - namespace metadata { -diff --git a/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/utils/zip_readonly_mem_file.cc b/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/utils/zip_readonly_mem_file.cc -index 392b6b411f..525ae4a2b4 100644 ---- a/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/utils/zip_readonly_mem_file.cc -+++ b/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/utils/zip_readonly_mem_file.cc -@@ -19,7 +19,7 @@ limitations under the License. - #include <cstdio> - - #include "absl/strings/string_view.h" // from @com_google_absl --#include "contrib/minizip/ioapi.h" -+#include "third_party/zlib/contrib/minizip/ioapi.h" - - namespace tflite { - namespace metadata { -diff --git a/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/utils/zip_readonly_mem_file.h b/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/utils/zip_readonly_mem_file.h -index a1799ff509..72413a0a56 100644 ---- a/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/utils/zip_readonly_mem_file.h -+++ b/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/utils/zip_readonly_mem_file.h -@@ -19,7 +19,7 @@ limitations under the License. - #include <cstdlib> - - #include "absl/strings/string_view.h" // from @com_google_absl --#include "contrib/minizip/ioapi.h" -+#include "third_party/zlib/contrib/minizip/ioapi.h" - - namespace tflite { - namespace metadata { -diff --git a/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/utils/zip_writable_mem_file.cc b/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/utils/zip_writable_mem_file.cc -index 38ad17ad89..3ba91b5e22 100644 ---- a/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/utils/zip_writable_mem_file.cc -+++ b/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/utils/zip_writable_mem_file.cc -@@ -19,7 +19,7 @@ limitations under the License. - #include <cstdio> - - #include "absl/strings/string_view.h" // from @com_google_absl --#include "contrib/minizip/ioapi.h" -+#include "third_party/zlib/contrib/minizip/ioapi.h" - - namespace tflite { - namespace metadata { -diff --git a/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/utils/zip_writable_mem_file.h b/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/utils/zip_writable_mem_file.h -index 30e42fdb72..3d329925df 100644 ---- a/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/utils/zip_writable_mem_file.h -+++ b/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/utils/zip_writable_mem_file.h -@@ -19,7 +19,7 @@ limitations under the License. - #include <cstdlib> - - #include "absl/strings/string_view.h" // from @com_google_absl --#include "contrib/minizip/ioapi.h" -+#include "third_party/zlib/contrib/minizip/ioapi.h" - - namespace tflite { - namespace metadata { Copied: chromium/repos/extra-x86_64/fix-TFLite-build-on-linux-with-system-zlib.patch (from rev 455255, chromium/trunk/fix-TFLite-build-on-linux-with-system-zlib.patch) =================================================================== --- fix-TFLite-build-on-linux-with-system-zlib.patch (rev 0) +++ fix-TFLite-build-on-linux-with-system-zlib.patch 2022-09-08 07:08:04 UTC (rev 455256) @@ -0,0 +1,291 @@ +From ae0f9adb7e14c0d19ca695ef6ad40b321a8cb64c Mon Sep 17 00:00:00 2001 +From: Andres Salomon <dilin...@queued.net> +Date: Mon, 8 Aug 2022 23:01:53 +0000 +Subject: [PATCH] Fix TFLite build errors on linux when using the system zlib + +The commit a3be9805c1601d3fabe1e5adb6b9199c033aa2c5 updated TFLite, +which included the new zip_*_mem_file.* files that include minizip's +ioapi.h. To support that, it also declared that tflite_support depends +on minizip (in third_party/tflite_support/BUILD.gn). However, that's not +enough, and results in a build error when building using the stub linux +zlib build scripts. + +Other places that depend on minizip use a longer path to its header +files. For example, chrome/chrome_cleaner/zip_archiver/'s test_support +depends on minizip, and +chrome/chrome_cleaner/zip_archiver/target/zip_archiver_impl.cc +includes "third_party/zlib/contrib/minizip/ioapi.h". + +The new tensorflow stuff should do the same, instead of just including +"contrib/minizip/ioapi.h". This patch fixes that, as well as other +places where ioapi.h or zip.h/unzip.h are included without a fuller +path. + +Note: if you prefer to not modify the tflite code, let me know and I +can instead do a change that adds third_party/zlib as an include path +for minizip. + +R=mcro...@chromium.org, robertog...@chromium.org, se...@chromium.org, thes...@chromium.org + +Bug: 1348787 +Change-Id: I922d18b3d1c0e459437624fd248c21afc1be6bb8 +Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3797828 +Commit-Queue: Andres Salomon <dilin...@queued.net> +Auto-Submit: Andres Salomon <dilin...@queued.net> +Reviewed-by: Michael Crouse <mcro...@chromium.org> +Cr-Commit-Position: refs/heads/main@{#1032774} +--- + third_party/tflite_support/README.chromium | 2 + + ...-errors-on-linux-when-using-the-syst.patch | 129 ++++++++++++++++++ + .../metadata/cc/metadata_extractor.cc | 4 +- + .../metadata/cc/metadata_populator.cc | 4 +- + .../cc/utils/zip_readonly_mem_file.cc | 2 +- + .../metadata/cc/utils/zip_readonly_mem_file.h | 2 +- + .../cc/utils/zip_writable_mem_file.cc | 2 +- + .../metadata/cc/utils/zip_writable_mem_file.h | 2 +- + 8 files changed, 139 insertions(+), 8 deletions(-) + create mode 100644 third_party/tflite_support/patches/0010-Fix-TFLite-build-errors-on-linux-when-using-the-syst.patch + +diff --git a/third_party/tflite_support/README.chromium b/third_party/tflite_support/README.chromium +index cfaf220adb..91f4baf82b 100644 +--- a/third_party/tflite_support/README.chromium ++++ b/third_party/tflite_support/README.chromium +@@ -36,6 +36,8 @@ is a no-op in chromium builds and upsets clang. + * This patch intentionally does not apply because it was made with + `--irreversible-delete` because it is deleting a large .tflite file causing + the chromium-presubmit bot to fail. ++10) Fix minizip path inclusion. Upstream uses contrib/minizip/, but chromium ++uses third_party/zlib/contrib/minizip/. + + Update Process (internal: http://shortn/_nwz8liqimy): + 1) Run these commands: +diff --git a/third_party/tflite_support/patches/0010-Fix-TFLite-build-errors-on-linux-when-using-the-syst.patch b/third_party/tflite_support/patches/0010-Fix-TFLite-build-errors-on-linux-when-using-the-syst.patch +new file mode 100644 +index 0000000000..34acf277fc +--- /dev/null ++++ b/third_party/tflite_support/patches/0010-Fix-TFLite-build-errors-on-linux-when-using-the-syst.patch +@@ -0,0 +1,129 @@ ++From 12da2fa8f2d779e2fc14f48de73af79e9040c141 Mon Sep 17 00:00:00 2001 ++From: Andres Salomon <dilin...@queued.net> ++Date: Sun, 31 Jul 2022 19:07:24 -0400 ++Subject: [PATCH] Fix TFLite build errors on linux when using the system zlib ++ ++The commit a3be9805c1601d3fabe1e5adb6b9199c033aa2c5 updated TFLite, ++which included the new zip_*_mem_file.* files that include minizip's ++ioapi.h. To support that, it also declared that tflite_support depends ++on minizip (in third_party/tflite_support/BUILD.gn). However, that's not ++enough, and results in a build error when building using the stub linux ++zlib build scripts. ++ ++Other places that depend on minizip use a longer path to its header ++files. For example, chrome/chrome_cleaner/zip_archiver/'s test_support ++depends on minizip, and ++chrome/chrome_cleaner/zip_archiver/target/zip_archiver_impl.cc ++includes "third_party/zlib/contrib/minizip/ioapi.h". ++ ++The new tensorflow stuff should do the same, instead of just including ++"contrib/minizip/ioapi.h". This patch fixes that, as well as other ++places where ioapi.h or zip.h/unzip.h are included without a fuller ++path. ++--- ++ .../tensorflow_lite_support/metadata/cc/metadata_extractor.cc | 4 ++-- ++ .../tensorflow_lite_support/metadata/cc/metadata_populator.cc | 4 ++-- ++ .../metadata/cc/utils/zip_readonly_mem_file.cc | 2 +- ++ .../metadata/cc/utils/zip_readonly_mem_file.h | 2 +- ++ .../metadata/cc/utils/zip_writable_mem_file.cc | 2 +- ++ .../metadata/cc/utils/zip_writable_mem_file.h | 2 +- ++ 6 files changed, 8 insertions(+), 8 deletions(-) ++ ++diff --git a/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/metadata_extractor.cc b/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/metadata_extractor.cc ++index 2a72338741626..62d0910182877 100644 ++--- a/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/metadata_extractor.cc +++++ b/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/metadata_extractor.cc ++@@ -21,14 +21,14 @@ limitations under the License. ++ #include "absl/status/status.h" // from @com_google_absl ++ #include "absl/strings/str_format.h" // from @com_google_absl ++ #include "absl/strings/string_view.h" // from @com_google_absl ++-#include "contrib/minizip/ioapi.h" ++-#include "contrib/minizip/unzip.h" ++ #include "flatbuffers/flatbuffers.h" // from @flatbuffers ++ #include "tensorflow/lite/schema/schema_generated.h" ++ #include "tensorflow_lite_support/cc/common.h" ++ #include "tensorflow_lite_support/cc/port/status_macros.h" ++ #include "tensorflow_lite_support/metadata/cc/utils/zip_readonly_mem_file.h" ++ #include "tensorflow_lite_support/metadata/metadata_schema_generated.h" +++#include "third_party/zlib/contrib/minizip/ioapi.h" +++#include "third_party/zlib/contrib/minizip/unzip.h" ++ ++ namespace tflite { ++ namespace metadata { ++diff --git a/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/metadata_populator.cc b/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/metadata_populator.cc ++index 299ade3e95d54..8e13fa63dafbc 100644 ++--- a/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/metadata_populator.cc +++++ b/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/metadata_populator.cc ++@@ -19,8 +19,6 @@ limitations under the License. ++ #include <cstring> ++ #include <functional> ++ ++-#include "contrib/minizip/ioapi.h" ++-#include "contrib/minizip/zip.h" ++ #include "flatbuffers/flatbuffers.h" // from @flatbuffers ++ #include "tensorflow/lite/schema/schema_generated.h" ++ #include "tensorflow_lite_support/cc/common.h" ++@@ -28,6 +26,8 @@ limitations under the License. ++ #include "tensorflow_lite_support/cc/port/statusor.h" ++ #include "tensorflow_lite_support/metadata/cc/utils/zip_writable_mem_file.h" ++ #include "tensorflow_lite_support/metadata/metadata_schema_generated.h" +++#include "third_party/zlib/contrib/minizip/ioapi.h" +++#include "third_party/zlib/contrib/minizip/zip.h" ++ ++ namespace tflite { ++ namespace metadata { ++diff --git a/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/utils/zip_readonly_mem_file.cc b/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/utils/zip_readonly_mem_file.cc ++index 392b6b411fe03..525ae4a2b45bd 100644 ++--- a/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/utils/zip_readonly_mem_file.cc +++++ b/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/utils/zip_readonly_mem_file.cc ++@@ -19,7 +19,7 @@ limitations under the License. ++ #include <cstdio> ++ ++ #include "absl/strings/string_view.h" // from @com_google_absl ++-#include "contrib/minizip/ioapi.h" +++#include "third_party/zlib/contrib/minizip/ioapi.h" ++ ++ namespace tflite { ++ namespace metadata { ++diff --git a/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/utils/zip_readonly_mem_file.h b/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/utils/zip_readonly_mem_file.h ++index a1799ff509de5..72413a0a56252 100644 ++--- a/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/utils/zip_readonly_mem_file.h +++++ b/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/utils/zip_readonly_mem_file.h ++@@ -19,7 +19,7 @@ limitations under the License. ++ #include <cstdlib> ++ ++ #include "absl/strings/string_view.h" // from @com_google_absl ++-#include "contrib/minizip/ioapi.h" +++#include "third_party/zlib/contrib/minizip/ioapi.h" ++ ++ namespace tflite { ++ namespace metadata { ++diff --git a/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/utils/zip_writable_mem_file.cc b/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/utils/zip_writable_mem_file.cc ++index 38ad17ad8935c..3ba91b5e22890 100644 ++--- a/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/utils/zip_writable_mem_file.cc +++++ b/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/utils/zip_writable_mem_file.cc ++@@ -19,7 +19,7 @@ limitations under the License. ++ #include <cstdio> ++ ++ #include "absl/strings/string_view.h" // from @com_google_absl ++-#include "contrib/minizip/ioapi.h" +++#include "third_party/zlib/contrib/minizip/ioapi.h" ++ ++ namespace tflite { ++ namespace metadata { ++diff --git a/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/utils/zip_writable_mem_file.h b/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/utils/zip_writable_mem_file.h ++index 30e42fdb72a31..3d329925df756 100644 ++--- a/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/utils/zip_writable_mem_file.h +++++ b/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/utils/zip_writable_mem_file.h ++@@ -19,7 +19,7 @@ limitations under the License. ++ #include <cstdlib> ++ ++ #include "absl/strings/string_view.h" // from @com_google_absl ++-#include "contrib/minizip/ioapi.h" +++#include "third_party/zlib/contrib/minizip/ioapi.h" ++ ++ namespace tflite { ++ namespace metadata { ++-- ++2.30.2 ++ +diff --git a/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/metadata_extractor.cc b/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/metadata_extractor.cc +index 2a72338741..62d0910182 100644 +--- a/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/metadata_extractor.cc ++++ b/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/metadata_extractor.cc +@@ -21,14 +21,14 @@ limitations under the License. + #include "absl/status/status.h" // from @com_google_absl + #include "absl/strings/str_format.h" // from @com_google_absl + #include "absl/strings/string_view.h" // from @com_google_absl +-#include "contrib/minizip/ioapi.h" +-#include "contrib/minizip/unzip.h" + #include "flatbuffers/flatbuffers.h" // from @flatbuffers + #include "tensorflow/lite/schema/schema_generated.h" + #include "tensorflow_lite_support/cc/common.h" + #include "tensorflow_lite_support/cc/port/status_macros.h" + #include "tensorflow_lite_support/metadata/cc/utils/zip_readonly_mem_file.h" + #include "tensorflow_lite_support/metadata/metadata_schema_generated.h" ++#include "third_party/zlib/contrib/minizip/ioapi.h" ++#include "third_party/zlib/contrib/minizip/unzip.h" + + namespace tflite { + namespace metadata { +diff --git a/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/metadata_populator.cc b/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/metadata_populator.cc +index 299ade3e95..8e13fa63da 100644 +--- a/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/metadata_populator.cc ++++ b/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/metadata_populator.cc +@@ -19,8 +19,6 @@ limitations under the License. + #include <cstring> + #include <functional> + +-#include "contrib/minizip/ioapi.h" +-#include "contrib/minizip/zip.h" + #include "flatbuffers/flatbuffers.h" // from @flatbuffers + #include "tensorflow/lite/schema/schema_generated.h" + #include "tensorflow_lite_support/cc/common.h" +@@ -28,6 +26,8 @@ limitations under the License. + #include "tensorflow_lite_support/cc/port/statusor.h" + #include "tensorflow_lite_support/metadata/cc/utils/zip_writable_mem_file.h" + #include "tensorflow_lite_support/metadata/metadata_schema_generated.h" ++#include "third_party/zlib/contrib/minizip/ioapi.h" ++#include "third_party/zlib/contrib/minizip/zip.h" + + namespace tflite { + namespace metadata { +diff --git a/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/utils/zip_readonly_mem_file.cc b/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/utils/zip_readonly_mem_file.cc +index 392b6b411f..525ae4a2b4 100644 +--- a/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/utils/zip_readonly_mem_file.cc ++++ b/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/utils/zip_readonly_mem_file.cc +@@ -19,7 +19,7 @@ limitations under the License. + #include <cstdio> + + #include "absl/strings/string_view.h" // from @com_google_absl +-#include "contrib/minizip/ioapi.h" ++#include "third_party/zlib/contrib/minizip/ioapi.h" + + namespace tflite { + namespace metadata { +diff --git a/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/utils/zip_readonly_mem_file.h b/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/utils/zip_readonly_mem_file.h +index a1799ff509..72413a0a56 100644 +--- a/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/utils/zip_readonly_mem_file.h ++++ b/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/utils/zip_readonly_mem_file.h +@@ -19,7 +19,7 @@ limitations under the License. + #include <cstdlib> + + #include "absl/strings/string_view.h" // from @com_google_absl +-#include "contrib/minizip/ioapi.h" ++#include "third_party/zlib/contrib/minizip/ioapi.h" + + namespace tflite { + namespace metadata { +diff --git a/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/utils/zip_writable_mem_file.cc b/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/utils/zip_writable_mem_file.cc +index 38ad17ad89..3ba91b5e22 100644 +--- a/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/utils/zip_writable_mem_file.cc ++++ b/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/utils/zip_writable_mem_file.cc +@@ -19,7 +19,7 @@ limitations under the License. + #include <cstdio> + + #include "absl/strings/string_view.h" // from @com_google_absl +-#include "contrib/minizip/ioapi.h" ++#include "third_party/zlib/contrib/minizip/ioapi.h" + + namespace tflite { + namespace metadata { +diff --git a/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/utils/zip_writable_mem_file.h b/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/utils/zip_writable_mem_file.h +index 30e42fdb72..3d329925df 100644 +--- a/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/utils/zip_writable_mem_file.h ++++ b/third_party/tflite_support/src/tensorflow_lite_support/metadata/cc/utils/zip_writable_mem_file.h +@@ -19,7 +19,7 @@ limitations under the License. + #include <cstdlib> + + #include "absl/strings/string_view.h" // from @com_google_absl +-#include "contrib/minizip/ioapi.h" ++#include "third_party/zlib/contrib/minizip/ioapi.h" + + namespace tflite { + namespace metadata { Copied: chromium/repos/extra-x86_64/fix-debug-crash-and-log-spam-with-GTK3-Wayland.patch (from rev 455255, chromium/trunk/fix-debug-crash-and-log-spam-with-GTK3-Wayland.patch) =================================================================== --- fix-debug-crash-and-log-spam-with-GTK3-Wayland.patch (rev 0) +++ fix-debug-crash-and-log-spam-with-GTK3-Wayland.patch 2022-09-08 07:08:04 UTC (rev 455256) @@ -0,0 +1,181 @@ +From f40f0f994d6fbabf75f6acf796fa4b62809851c0 Mon Sep 17 00:00:00 2001 +From: Tom Anderson <thomasander...@chromium.org> +Date: Thu, 18 Aug 2022 23:00:41 +0000 +Subject: [PATCH] Fix debug crash and log spam with + GTK3+Wayland+text-input-unstable-v3 + +This fixes a regression after [1]. The GTK IME doesn't work on +Wayland+GTK3, so this change skips GTK IME creation for that case. +This effectively restores the behavior to before [1]. + +[1] https://chromium-review.googlesource.com/c/chromium/src/+/3759236 + +Change-Id: I4019e8da6929489e302ba7f8699ad62ca604b4aa +Fixed: 1347979 +Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3836775 +Auto-Submit: Thomas Anderson <thomasander...@chromium.org> +Reviewed-by: Nick Yamane <nickdi...@igalia.com> +Commit-Queue: Nick Yamane <nickdi...@igalia.com> +Cr-Commit-Position: refs/heads/main@{#1036838} +--- + ui/gtk/gtk_ui.cc | 2 +- + ui/gtk/gtk_ui_platform.h | 10 +++++++++- + ui/gtk/gtk_ui_platform_stub.cc | 6 ++++++ + ui/gtk/gtk_ui_platform_stub.h | 2 ++ + ui/gtk/wayland/gtk_ui_platform_wayland.cc | 12 ++++++++++++ + ui/gtk/wayland/gtk_ui_platform_wayland.h | 2 ++ + ui/gtk/x/gtk_ui_platform_x11.cc | 7 +++++++ + ui/gtk/x/gtk_ui_platform_x11.h | 2 ++ + 8 files changed, 41 insertions(+), 2 deletions(-) + +diff --git a/ui/gtk/gtk_ui.cc b/ui/gtk/gtk_ui.cc +index 1fbb58152c..dd42b1e87c 100644 +--- a/ui/gtk/gtk_ui.cc ++++ b/ui/gtk/gtk_ui.cc +@@ -447,7 +447,7 @@ void GtkUi::SetWindowFrameAction(WindowFrameActionSource source, + + std::unique_ptr<ui::LinuxInputMethodContext> GtkUi::CreateInputMethodContext( + ui::LinuxInputMethodContextDelegate* delegate) const { +- return std::make_unique<InputMethodContextImplGtk>(delegate); ++ return GetPlatform()->CreateInputMethodContext(delegate); + } + + gfx::FontRenderParams GtkUi::GetDefaultFontRenderParams() const { +diff --git a/ui/gtk/gtk_ui_platform.h b/ui/gtk/gtk_ui_platform.h +index 390d90af83..633efbcf16 100644 +--- a/ui/gtk/gtk_ui_platform.h ++++ b/ui/gtk/gtk_ui_platform.h +@@ -10,11 +10,15 @@ + #include "ui/gfx/native_widget_types.h" + #include "ui/gtk/gtk_compat.h" + +-using GdkKeymap = struct _GdkKeymap; + using GtkWindow = struct _GtkWindow; + using GtkWidget = struct _GtkWidget; + using GdkWindow = struct _GdkWindow; + ++namespace ui { ++class LinuxInputMethodContext; ++class LinuxInputMethodContextDelegate; ++} // namespace ui ++ + namespace gtk { + + // GtkUiPlatform encapsulates platform-specific functionalities required by +@@ -52,6 +56,10 @@ class GtkUiPlatform { + // Presents |window|, doing all the necessary platform-specific operations + // needed, if any. + virtual void ShowGtkWindow(GtkWindow* window) = 0; ++ ++ // Creates a new IME context or may return nullptr. ++ virtual std::unique_ptr<ui::LinuxInputMethodContext> CreateInputMethodContext( ++ ui::LinuxInputMethodContextDelegate* delegate) const = 0; + }; + + } // namespace gtk +diff --git a/ui/gtk/gtk_ui_platform_stub.cc b/ui/gtk/gtk_ui_platform_stub.cc +index 76746254ef..5f01c8bd8f 100644 +--- a/ui/gtk/gtk_ui_platform_stub.cc ++++ b/ui/gtk/gtk_ui_platform_stub.cc +@@ -43,4 +43,10 @@ void GtkUiPlatformStub::ShowGtkWindow(GtkWindow* window) { + gtk_window_present(window); + } + ++std::unique_ptr<ui::LinuxInputMethodContext> ++GtkUiPlatformStub::CreateInputMethodContext( ++ ui::LinuxInputMethodContextDelegate* delegate) const { ++ return nullptr; ++} ++ + } // namespace gtk +diff --git a/ui/gtk/gtk_ui_platform_stub.h b/ui/gtk/gtk_ui_platform_stub.h +index ae186455bd..708e05ab04 100644 +--- a/ui/gtk/gtk_ui_platform_stub.h ++++ b/ui/gtk/gtk_ui_platform_stub.h +@@ -26,6 +26,8 @@ class GtkUiPlatformStub : public GtkUiPlatform { + gfx::AcceleratedWidget parent) override; + void ClearTransientFor(gfx::AcceleratedWidget parent) override; + void ShowGtkWindow(GtkWindow* window) override; ++ std::unique_ptr<ui::LinuxInputMethodContext> CreateInputMethodContext( ++ ui::LinuxInputMethodContextDelegate* delegate) const override; + }; + + } // namespace gtk +diff --git a/ui/gtk/wayland/gtk_ui_platform_wayland.cc b/ui/gtk/wayland/gtk_ui_platform_wayland.cc +index 13fb58a84a..cae3475b14 100644 +--- a/ui/gtk/wayland/gtk_ui_platform_wayland.cc ++++ b/ui/gtk/wayland/gtk_ui_platform_wayland.cc +@@ -11,7 +11,9 @@ + #include "base/logging.h" + #include "ui/base/glib/glib_cast.h" + #include "ui/events/event_utils.h" ++#include "ui/gtk/gtk_compat.h" + #include "ui/gtk/gtk_util.h" ++#include "ui/gtk/input_method_context_impl_gtk.h" + #include "ui/linux/linux_ui_delegate.h" + + namespace gtk { +@@ -145,4 +147,14 @@ void GtkUiPlatformWayland::OnHandleSetTransient(GtkWidget* widget, + } + } + ++std::unique_ptr<ui::LinuxInputMethodContext> ++GtkUiPlatformWayland::CreateInputMethodContext( ++ ui::LinuxInputMethodContextDelegate* delegate) const { ++ // GDK3 doesn't have a way to create foreign wayland windows, so we can't ++ // translate from ui::KeyEvent to GdkEventKey for InputMethodContextImplGtk. ++ if (!GtkCheckVersion(4)) ++ return nullptr; ++ return std::make_unique<InputMethodContextImplGtk>(delegate); ++} ++ + } // namespace gtk +diff --git a/ui/gtk/wayland/gtk_ui_platform_wayland.h b/ui/gtk/wayland/gtk_ui_platform_wayland.h +index 2c444793db..315d6ced31 100644 +--- a/ui/gtk/wayland/gtk_ui_platform_wayland.h ++++ b/ui/gtk/wayland/gtk_ui_platform_wayland.h +@@ -31,6 +31,8 @@ class GtkUiPlatformWayland : public GtkUiPlatform { + gfx::AcceleratedWidget parent) override; + void ClearTransientFor(gfx::AcceleratedWidget parent) override; + void ShowGtkWindow(GtkWindow* window) override; ++ std::unique_ptr<ui::LinuxInputMethodContext> CreateInputMethodContext( ++ ui::LinuxInputMethodContextDelegate* delegate) const override; + + private: + GdkDisplay* GetDefaultGdkDisplay(); +diff --git a/ui/gtk/x/gtk_ui_platform_x11.cc b/ui/gtk/x/gtk_ui_platform_x11.cc +index 5fa9d040c6..f7ba25c30c 100644 +--- a/ui/gtk/x/gtk_ui_platform_x11.cc ++++ b/ui/gtk/x/gtk_ui_platform_x11.cc +@@ -19,6 +19,7 @@ + #include "ui/gfx/x/xproto_util.h" + #include "ui/gtk/gtk_compat.h" + #include "ui/gtk/gtk_util.h" ++#include "ui/gtk/input_method_context_impl_gtk.h" + #include "ui/gtk/x/gtk_event_loop_x11.h" + #include "ui/linux/linux_ui_delegate.h" + +@@ -114,4 +115,10 @@ void GtkUiPlatformX11::ShowGtkWindow(GtkWindow* window) { + static_cast<uint32_t>(ui::X11EventSource::GetInstance()->GetTimestamp())); + } + ++std::unique_ptr<ui::LinuxInputMethodContext> ++GtkUiPlatformX11::CreateInputMethodContext( ++ ui::LinuxInputMethodContextDelegate* delegate) const { ++ return std::make_unique<InputMethodContextImplGtk>(delegate); ++} ++ + } // namespace gtk +diff --git a/ui/gtk/x/gtk_ui_platform_x11.h b/ui/gtk/x/gtk_ui_platform_x11.h +index 3055b7d7ff..74011a8a1c 100644 +--- a/ui/gtk/x/gtk_ui_platform_x11.h ++++ b/ui/gtk/x/gtk_ui_platform_x11.h +@@ -34,6 +34,8 @@ class GtkUiPlatformX11 : public GtkUiPlatform { + gfx::AcceleratedWidget parent) override; + void ClearTransientFor(gfx::AcceleratedWidget parent) override; + void ShowGtkWindow(GtkWindow* window) override; ++ std::unique_ptr<ui::LinuxInputMethodContext> CreateInputMethodContext( ++ ui::LinuxInputMethodContextDelegate* delegate) const override; + + private: + GdkDisplay* GetGdkDisplay(); Deleted: roll-src-third_party-ffmpeg.patch =================================================================== --- roll-src-third_party-ffmpeg.patch 2022-09-08 07:07:55 UTC (rev 455255) +++ roll-src-third_party-ffmpeg.patch 2022-09-08 07:08:04 UTC (rev 455256) @@ -1,333 +0,0 @@ -From 6e554a30893150793c2638e3689cf208ffc8e375 Mon Sep 17 00:00:00 2001 -From: Dale Curtis <dalecur...@chromium.org> -Date: Sat, 2 Apr 2022 05:13:53 +0000 -Subject: [PATCH] Roll src/third_party/ffmpeg/ 574c39cce..32b2d1d526 (1125 - commits) - -https://chromium.googlesource.com/chromium/third_party/ffmpeg.git/+log/574c39cce323..32b2d1d526 - -Created with: - roll-dep src/third_party/ffmpeg - -Fixed: 1293918 -Cq-Include-Trybots: luci.chromium.try:mac_chromium_asan_rel_ng,linux_chromium_asan_rel_ng,linux_chromium_chromeos_asan_rel_ng -Change-Id: I41945d0f963e3d1f65940067bac22f63b68e37d2 -Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3565647 -Auto-Submit: Dale Curtis <dalecur...@chromium.org> -Reviewed-by: Dan Sanders <sande...@chromium.org> -Commit-Queue: Dale Curtis <dalecur...@chromium.org> -Cr-Commit-Position: refs/heads/main@{#988253} ---- - .../clear_key_cdm/ffmpeg_cdm_audio_decoder.cc | 29 ++++++++++--------- - media/ffmpeg/ffmpeg_common.cc | 11 +++---- - media/filters/audio_file_reader.cc | 9 +++--- - media/filters/audio_file_reader_unittest.cc | 6 ++-- - .../filters/audio_video_metadata_extractor.cc | 11 +++++-- - .../filters/ffmpeg_aac_bitstream_converter.cc | 7 +++-- - ...ffmpeg_aac_bitstream_converter_unittest.cc | 2 +- - media/filters/ffmpeg_audio_decoder.cc | 13 +++++---- - 8 files changed, 51 insertions(+), 37 deletions(-) - -diff --git a/media/cdm/library_cdm/clear_key_cdm/ffmpeg_cdm_audio_decoder.cc b/media/cdm/library_cdm/clear_key_cdm/ffmpeg_cdm_audio_decoder.cc -index e4fc3f460e2..9b1ad9f7675 100644 ---- a/media/cdm/library_cdm/clear_key_cdm/ffmpeg_cdm_audio_decoder.cc -+++ b/media/cdm/library_cdm/clear_key_cdm/ffmpeg_cdm_audio_decoder.cc -@@ -74,7 +74,7 @@ void CdmAudioDecoderConfigToAVCodecContext( - codec_context->sample_fmt = AV_SAMPLE_FMT_NONE; - } - -- codec_context->channels = config.channel_count; -+ codec_context->ch_layout.nb_channels = config.channel_count; - codec_context->sample_rate = config.samples_per_second; - - if (config.extra_data) { -@@ -124,8 +124,8 @@ void CopySamples(cdm::AudioFormat cdm_format, - case cdm::kAudioFormatPlanarS16: - case cdm::kAudioFormatPlanarF32: { - const int decoded_size_per_channel = -- decoded_audio_size / av_frame.channels; -- for (int i = 0; i < av_frame.channels; ++i) { -+ decoded_audio_size / av_frame.ch_layout.nb_channels; -+ for (int i = 0; i < av_frame.ch_layout.nb_channels; ++i) { - memcpy(output_buffer, av_frame.extended_data[i], - decoded_size_per_channel); - output_buffer += decoded_size_per_channel; -@@ -185,13 +185,14 @@ bool FFmpegCdmAudioDecoder::Initialize( - // Success! - decoding_loop_ = std::make_unique<FFmpegDecodingLoop>(codec_context_.get()); - samples_per_second_ = config.samples_per_second; -- bytes_per_frame_ = codec_context_->channels * config.bits_per_channel / 8; -+ bytes_per_frame_ = -+ codec_context_->ch_layout.nb_channels * config.bits_per_channel / 8; - output_timestamp_helper_ = - std::make_unique<AudioTimestampHelper>(config.samples_per_second); - is_initialized_ = true; - - // Store initial values to guard against midstream configuration changes. -- channels_ = codec_context_->channels; -+ channels_ = codec_context_->ch_layout.nb_channels; - av_sample_format_ = codec_context_->sample_fmt; - - return true; -@@ -291,17 +292,19 @@ cdm::Status FFmpegCdmAudioDecoder::DecodeBuffer( - for (auto& frame : audio_frames) { - int decoded_audio_size = 0; - if (frame->sample_rate != samples_per_second_ || -- frame->channels != channels_ || frame->format != av_sample_format_) { -+ frame->ch_layout.nb_channels != channels_ || -+ frame->format != av_sample_format_) { - DLOG(ERROR) << "Unsupported midstream configuration change!" - << " Sample Rate: " << frame->sample_rate << " vs " -- << samples_per_second_ << ", Channels: " << frame->channels -- << " vs " << channels_ << ", Sample Format: " << frame->format -- << " vs " << av_sample_format_; -+ << samples_per_second_ -+ << ", Channels: " << frame->ch_layout.nb_channels << " vs " -+ << channels_ << ", Sample Format: " << frame->format << " vs " -+ << av_sample_format_; - return cdm::kDecodeError; - } - - decoded_audio_size = av_samples_get_buffer_size( -- nullptr, codec_context_->channels, frame->nb_samples, -+ nullptr, codec_context_->ch_layout.nb_channels, frame->nb_samples, - codec_context_->sample_fmt, 1); - if (!decoded_audio_size) - continue; -@@ -320,9 +323,9 @@ bool FFmpegCdmAudioDecoder::OnNewFrame( - size_t* total_size, - std::vector<std::unique_ptr<AVFrame, ScopedPtrAVFreeFrame>>* audio_frames, - AVFrame* frame) { -- *total_size += av_samples_get_buffer_size(nullptr, codec_context_->channels, -- frame->nb_samples, -- codec_context_->sample_fmt, 1); -+ *total_size += av_samples_get_buffer_size( -+ nullptr, codec_context_->ch_layout.nb_channels, frame->nb_samples, -+ codec_context_->sample_fmt, 1); - audio_frames->emplace_back(av_frame_clone(frame)); - return true; - } -diff --git a/media/ffmpeg/ffmpeg_common.cc b/media/ffmpeg/ffmpeg_common.cc -index 87ca8969626..76f03d6608e 100644 ---- a/media/ffmpeg/ffmpeg_common.cc -+++ b/media/ffmpeg/ffmpeg_common.cc -@@ -345,10 +345,11 @@ bool AVCodecContextToAudioDecoderConfig(const AVCodecContext* codec_context, - codec_context->sample_fmt, codec_context->codec_id); - - ChannelLayout channel_layout = -- codec_context->channels > 8 -+ codec_context->ch_layout.nb_channels > 8 - ? CHANNEL_LAYOUT_DISCRETE -- : ChannelLayoutToChromeChannelLayout(codec_context->channel_layout, -- codec_context->channels); -+ : ChannelLayoutToChromeChannelLayout( -+ codec_context->ch_layout.u.mask, -+ codec_context->ch_layout.nb_channels); - - int sample_rate = codec_context->sample_rate; - switch (codec) { -@@ -401,7 +402,7 @@ bool AVCodecContextToAudioDecoderConfig(const AVCodecContext* codec_context, - extra_data, encryption_scheme, seek_preroll, - codec_context->delay); - if (channel_layout == CHANNEL_LAYOUT_DISCRETE) -- config->SetChannelsForDiscrete(codec_context->channels); -+ config->SetChannelsForDiscrete(codec_context->ch_layout.nb_channels); - - #if BUILDFLAG(ENABLE_PLATFORM_AC3_EAC3_AUDIO) - // These are bitstream formats unknown to ffmpeg, so they don't have -@@ -470,7 +471,7 @@ void AudioDecoderConfigToAVCodecContext(const AudioDecoderConfig& config, - - // TODO(scherkus): should we set |channel_layout|? I'm not sure if FFmpeg uses - // said information to decode. -- codec_context->channels = config.channels(); -+ codec_context->ch_layout.nb_channels = config.channels(); - codec_context->sample_rate = config.samples_per_second(); - - if (config.extra_data().empty()) { -diff --git a/media/filters/audio_file_reader.cc b/media/filters/audio_file_reader.cc -index 5f257bdfaa6..e1be5aa9a5b 100644 ---- a/media/filters/audio_file_reader.cc -+++ b/media/filters/audio_file_reader.cc -@@ -113,14 +113,15 @@ bool AudioFileReader::OpenDecoder() { - - // Verify the channel layout is supported by Chrome. Acts as a sanity check - // against invalid files. See http://crbug.com/171962 -- if (ChannelLayoutToChromeChannelLayout(codec_context_->channel_layout, -- codec_context_->channels) == -+ if (ChannelLayoutToChromeChannelLayout( -+ codec_context_->ch_layout.u.mask, -+ codec_context_->ch_layout.nb_channels) == - CHANNEL_LAYOUT_UNSUPPORTED) { - return false; - } - - // Store initial values to guard against midstream configuration changes. -- channels_ = codec_context_->channels; -+ channels_ = codec_context_->ch_layout.nb_channels; - audio_codec_ = CodecIDToAudioCodec(codec_context_->codec_id); - sample_rate_ = codec_context_->sample_rate; - av_sample_format_ = codec_context_->sample_fmt; -@@ -223,7 +224,7 @@ bool AudioFileReader::OnNewFrame( - if (frames_read < 0) - return false; - -- const int channels = frame->channels; -+ const int channels = frame->ch_layout.nb_channels; - if (frame->sample_rate != sample_rate_ || channels != channels_ || - frame->format != av_sample_format_) { - DLOG(ERROR) << "Unsupported midstream configuration change!" -diff --git a/media/filters/audio_file_reader_unittest.cc b/media/filters/audio_file_reader_unittest.cc -index 2aba7927a31..1f45a50cace 100644 ---- a/media/filters/audio_file_reader_unittest.cc -+++ b/media/filters/audio_file_reader_unittest.cc -@@ -121,11 +121,11 @@ class AudioFileReaderTest : public testing::Test { - EXPECT_FALSE(reader_->Open()); - } - -- void RunTestFailingDecode(const char* fn) { -+ void RunTestFailingDecode(const char* fn, int expect_read = 0) { - Initialize(fn); - EXPECT_TRUE(reader_->Open()); - std::vector<std::unique_ptr<AudioBus>> decoded_audio_packets; -- EXPECT_EQ(reader_->Read(&decoded_audio_packets), 0); -+ EXPECT_EQ(reader_->Read(&decoded_audio_packets), expect_read); - } - - void RunTestPartialDecode(const char* fn) { -@@ -219,7 +219,7 @@ TEST_F(AudioFileReaderTest, AAC_ADTS) { - } - - TEST_F(AudioFileReaderTest, MidStreamConfigChangesFail) { -- RunTestFailingDecode("midstream_config_change.mp3"); -+ RunTestFailingDecode("midstream_config_change.mp3", 42624); - } - #endif - -diff --git a/media/filters/audio_video_metadata_extractor.cc b/media/filters/audio_video_metadata_extractor.cc -index 185819eb936..69ff508c221 100644 ---- a/media/filters/audio_video_metadata_extractor.cc -+++ b/media/filters/audio_video_metadata_extractor.cc -@@ -113,6 +113,15 @@ bool AudioVideoMetadataExtractor::Extract(DataSource* source, - if (!stream) - continue; - -+ void* display_matrix = -+ av_stream_get_side_data(stream, AV_PKT_DATA_DISPLAYMATRIX, nullptr); -+ if (display_matrix) { -+ rotation_ = VideoTransformation::FromFFmpegDisplayMatrix( -+ static_cast<int32_t*>(display_matrix)) -+ .rotation; -+ info.tags["rotate"] = base::NumberToString(rotation_); -+ } -+ - // Extract dictionary from streams also. Needed for containers that attach - // metadata to contained streams instead the container itself, like OGG. - ExtractDictionary(stream->metadata, &info.tags); -@@ -255,8 +264,6 @@ void AudioVideoMetadataExtractor::ExtractDictionary(AVDictionary* metadata, - if (raw_tags->find(tag->key) == raw_tags->end()) - (*raw_tags)[tag->key] = tag->value; - -- if (ExtractInt(tag, "rotate", &rotation_)) -- continue; - if (ExtractString(tag, "album", &album_)) - continue; - if (ExtractString(tag, "artist", &artist_)) -diff --git a/media/filters/ffmpeg_aac_bitstream_converter.cc b/media/filters/ffmpeg_aac_bitstream_converter.cc -index 6f231c85729..ca5e5fb927d 100644 ---- a/media/filters/ffmpeg_aac_bitstream_converter.cc -+++ b/media/filters/ffmpeg_aac_bitstream_converter.cc -@@ -195,14 +195,15 @@ bool FFmpegAACBitstreamConverter::ConvertPacket(AVPacket* packet) { - if (!header_generated_ || codec_ != stream_codec_parameters_->codec_id || - audio_profile_ != stream_codec_parameters_->profile || - sample_rate_index_ != sample_rate_index || -- channel_configuration_ != stream_codec_parameters_->channels || -+ channel_configuration_ != -+ stream_codec_parameters_->ch_layout.nb_channels || - frame_length_ != header_plus_packet_size) { - header_generated_ = - GenerateAdtsHeader(stream_codec_parameters_->codec_id, - 0, // layer - stream_codec_parameters_->profile, sample_rate_index, - 0, // private stream -- stream_codec_parameters_->channels, -+ stream_codec_parameters_->ch_layout.nb_channels, - 0, // originality - 0, // home - 0, // copyrighted_stream -@@ -214,7 +215,7 @@ bool FFmpegAACBitstreamConverter::ConvertPacket(AVPacket* packet) { - codec_ = stream_codec_parameters_->codec_id; - audio_profile_ = stream_codec_parameters_->profile; - sample_rate_index_ = sample_rate_index; -- channel_configuration_ = stream_codec_parameters_->channels; -+ channel_configuration_ = stream_codec_parameters_->ch_layout.nb_channels; - frame_length_ = header_plus_packet_size; - } - -diff --git a/media/filters/ffmpeg_aac_bitstream_converter_unittest.cc b/media/filters/ffmpeg_aac_bitstream_converter_unittest.cc -index 1fd4c5ccd7d..f59bcd8fdaf 100644 ---- a/media/filters/ffmpeg_aac_bitstream_converter_unittest.cc -+++ b/media/filters/ffmpeg_aac_bitstream_converter_unittest.cc -@@ -34,7 +34,7 @@ class FFmpegAACBitstreamConverterTest : public testing::Test { - memset(&test_parameters_, 0, sizeof(AVCodecParameters)); - test_parameters_.codec_id = AV_CODEC_ID_AAC; - test_parameters_.profile = FF_PROFILE_AAC_MAIN; -- test_parameters_.channels = 2; -+ test_parameters_.ch_layout.nb_channels = 2; - test_parameters_.extradata = extradata_header_; - test_parameters_.extradata_size = sizeof(extradata_header_); - } -diff --git a/media/filters/ffmpeg_audio_decoder.cc b/media/filters/ffmpeg_audio_decoder.cc -index 6a56c675f7d..4615fdeb3fb 100644 ---- a/media/filters/ffmpeg_audio_decoder.cc -+++ b/media/filters/ffmpeg_audio_decoder.cc -@@ -28,7 +28,7 @@ namespace media { - - // Return the number of channels from the data in |frame|. - static inline int DetermineChannels(AVFrame* frame) { -- return frame->channels; -+ return frame->ch_layout.nb_channels; - } - - // Called by FFmpeg's allocation routine to allocate a buffer. Uses -@@ -231,7 +231,7 @@ bool FFmpegAudioDecoder::OnNewFrame(const DecoderBuffer& buffer, - // Translate unsupported into discrete layouts for discrete configurations; - // ffmpeg does not have a labeled discrete configuration internally. - ChannelLayout channel_layout = ChannelLayoutToChromeChannelLayout( -- codec_context_->channel_layout, codec_context_->channels); -+ codec_context_->ch_layout.u.mask, codec_context_->ch_layout.nb_channels); - if (channel_layout == CHANNEL_LAYOUT_UNSUPPORTED && - config_.channel_layout() == CHANNEL_LAYOUT_DISCRETE) { - channel_layout = CHANNEL_LAYOUT_DISCRETE; -@@ -348,11 +348,11 @@ bool FFmpegAudioDecoder::ConfigureDecoder(const AudioDecoderConfig& config) { - // Success! - av_sample_format_ = codec_context_->sample_fmt; - -- if (codec_context_->channels != config.channels()) { -+ if (codec_context_->ch_layout.nb_channels != config.channels()) { - MEDIA_LOG(ERROR, media_log_) - << "Audio configuration specified " << config.channels() - << " channels, but FFmpeg thinks the file contains " -- << codec_context_->channels << " channels"; -+ << codec_context_->ch_layout.nb_channels << " channels"; - ReleaseFFmpegResources(); - state_ = DecoderState::kUninitialized; - return false; -@@ -403,7 +403,7 @@ int FFmpegAudioDecoder::GetAudioBuffer(struct AVCodecContext* s, - if (frame->nb_samples <= 0) - return AVERROR(EINVAL); - -- if (s->channels != channels) { -+ if (s->ch_layout.nb_channels != channels) { - DLOG(ERROR) << "AVCodecContext and AVFrame disagree on channel count."; - return AVERROR(EINVAL); - } -@@ -436,7 +436,8 @@ int FFmpegAudioDecoder::GetAudioBuffer(struct AVCodecContext* s, - ChannelLayout channel_layout = - config_.channel_layout() == CHANNEL_LAYOUT_DISCRETE - ? CHANNEL_LAYOUT_DISCRETE -- : ChannelLayoutToChromeChannelLayout(s->channel_layout, s->channels); -+ : ChannelLayoutToChromeChannelLayout(s->ch_layout.u.mask, -+ s->ch_layout.nb_channels); - - if (channel_layout == CHANNEL_LAYOUT_UNSUPPORTED) { - DLOG(ERROR) << "Unsupported channel layout."; Copied: chromium/repos/extra-x86_64/roll-src-third_party-ffmpeg.patch (from rev 455255, chromium/trunk/roll-src-third_party-ffmpeg.patch) =================================================================== --- roll-src-third_party-ffmpeg.patch (rev 0) +++ roll-src-third_party-ffmpeg.patch 2022-09-08 07:08:04 UTC (rev 455256) @@ -0,0 +1,333 @@ +From 6e554a30893150793c2638e3689cf208ffc8e375 Mon Sep 17 00:00:00 2001 +From: Dale Curtis <dalecur...@chromium.org> +Date: Sat, 2 Apr 2022 05:13:53 +0000 +Subject: [PATCH] Roll src/third_party/ffmpeg/ 574c39cce..32b2d1d526 (1125 + commits) + +https://chromium.googlesource.com/chromium/third_party/ffmpeg.git/+log/574c39cce323..32b2d1d526 + +Created with: + roll-dep src/third_party/ffmpeg + +Fixed: 1293918 +Cq-Include-Trybots: luci.chromium.try:mac_chromium_asan_rel_ng,linux_chromium_asan_rel_ng,linux_chromium_chromeos_asan_rel_ng +Change-Id: I41945d0f963e3d1f65940067bac22f63b68e37d2 +Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3565647 +Auto-Submit: Dale Curtis <dalecur...@chromium.org> +Reviewed-by: Dan Sanders <sande...@chromium.org> +Commit-Queue: Dale Curtis <dalecur...@chromium.org> +Cr-Commit-Position: refs/heads/main@{#988253} +--- + .../clear_key_cdm/ffmpeg_cdm_audio_decoder.cc | 29 ++++++++++--------- + media/ffmpeg/ffmpeg_common.cc | 11 +++---- + media/filters/audio_file_reader.cc | 9 +++--- + media/filters/audio_file_reader_unittest.cc | 6 ++-- + .../filters/audio_video_metadata_extractor.cc | 11 +++++-- + .../filters/ffmpeg_aac_bitstream_converter.cc | 7 +++-- + ...ffmpeg_aac_bitstream_converter_unittest.cc | 2 +- + media/filters/ffmpeg_audio_decoder.cc | 13 +++++---- + 8 files changed, 51 insertions(+), 37 deletions(-) + +diff --git a/media/cdm/library_cdm/clear_key_cdm/ffmpeg_cdm_audio_decoder.cc b/media/cdm/library_cdm/clear_key_cdm/ffmpeg_cdm_audio_decoder.cc +index e4fc3f460e2..9b1ad9f7675 100644 +--- a/media/cdm/library_cdm/clear_key_cdm/ffmpeg_cdm_audio_decoder.cc ++++ b/media/cdm/library_cdm/clear_key_cdm/ffmpeg_cdm_audio_decoder.cc +@@ -74,7 +74,7 @@ void CdmAudioDecoderConfigToAVCodecContext( + codec_context->sample_fmt = AV_SAMPLE_FMT_NONE; + } + +- codec_context->channels = config.channel_count; ++ codec_context->ch_layout.nb_channels = config.channel_count; + codec_context->sample_rate = config.samples_per_second; + + if (config.extra_data) { +@@ -124,8 +124,8 @@ void CopySamples(cdm::AudioFormat cdm_format, + case cdm::kAudioFormatPlanarS16: + case cdm::kAudioFormatPlanarF32: { + const int decoded_size_per_channel = +- decoded_audio_size / av_frame.channels; +- for (int i = 0; i < av_frame.channels; ++i) { ++ decoded_audio_size / av_frame.ch_layout.nb_channels; ++ for (int i = 0; i < av_frame.ch_layout.nb_channels; ++i) { + memcpy(output_buffer, av_frame.extended_data[i], + decoded_size_per_channel); + output_buffer += decoded_size_per_channel; +@@ -185,13 +185,14 @@ bool FFmpegCdmAudioDecoder::Initialize( + // Success! + decoding_loop_ = std::make_unique<FFmpegDecodingLoop>(codec_context_.get()); + samples_per_second_ = config.samples_per_second; +- bytes_per_frame_ = codec_context_->channels * config.bits_per_channel / 8; ++ bytes_per_frame_ = ++ codec_context_->ch_layout.nb_channels * config.bits_per_channel / 8; + output_timestamp_helper_ = + std::make_unique<AudioTimestampHelper>(config.samples_per_second); + is_initialized_ = true; + + // Store initial values to guard against midstream configuration changes. +- channels_ = codec_context_->channels; ++ channels_ = codec_context_->ch_layout.nb_channels; + av_sample_format_ = codec_context_->sample_fmt; + + return true; +@@ -291,17 +292,19 @@ cdm::Status FFmpegCdmAudioDecoder::DecodeBuffer( + for (auto& frame : audio_frames) { + int decoded_audio_size = 0; + if (frame->sample_rate != samples_per_second_ || +- frame->channels != channels_ || frame->format != av_sample_format_) { ++ frame->ch_layout.nb_channels != channels_ || ++ frame->format != av_sample_format_) { + DLOG(ERROR) << "Unsupported midstream configuration change!" + << " Sample Rate: " << frame->sample_rate << " vs " +- << samples_per_second_ << ", Channels: " << frame->channels +- << " vs " << channels_ << ", Sample Format: " << frame->format +- << " vs " << av_sample_format_; ++ << samples_per_second_ ++ << ", Channels: " << frame->ch_layout.nb_channels << " vs " ++ << channels_ << ", Sample Format: " << frame->format << " vs " ++ << av_sample_format_; + return cdm::kDecodeError; + } + + decoded_audio_size = av_samples_get_buffer_size( +- nullptr, codec_context_->channels, frame->nb_samples, ++ nullptr, codec_context_->ch_layout.nb_channels, frame->nb_samples, + codec_context_->sample_fmt, 1); + if (!decoded_audio_size) + continue; +@@ -320,9 +323,9 @@ bool FFmpegCdmAudioDecoder::OnNewFrame( + size_t* total_size, + std::vector<std::unique_ptr<AVFrame, ScopedPtrAVFreeFrame>>* audio_frames, + AVFrame* frame) { +- *total_size += av_samples_get_buffer_size(nullptr, codec_context_->channels, +- frame->nb_samples, +- codec_context_->sample_fmt, 1); ++ *total_size += av_samples_get_buffer_size( ++ nullptr, codec_context_->ch_layout.nb_channels, frame->nb_samples, ++ codec_context_->sample_fmt, 1); + audio_frames->emplace_back(av_frame_clone(frame)); + return true; + } +diff --git a/media/ffmpeg/ffmpeg_common.cc b/media/ffmpeg/ffmpeg_common.cc +index 87ca8969626..76f03d6608e 100644 +--- a/media/ffmpeg/ffmpeg_common.cc ++++ b/media/ffmpeg/ffmpeg_common.cc +@@ -345,10 +345,11 @@ bool AVCodecContextToAudioDecoderConfig(const AVCodecContext* codec_context, + codec_context->sample_fmt, codec_context->codec_id); + + ChannelLayout channel_layout = +- codec_context->channels > 8 ++ codec_context->ch_layout.nb_channels > 8 + ? CHANNEL_LAYOUT_DISCRETE +- : ChannelLayoutToChromeChannelLayout(codec_context->channel_layout, +- codec_context->channels); ++ : ChannelLayoutToChromeChannelLayout( ++ codec_context->ch_layout.u.mask, ++ codec_context->ch_layout.nb_channels); + + int sample_rate = codec_context->sample_rate; + switch (codec) { +@@ -401,7 +402,7 @@ bool AVCodecContextToAudioDecoderConfig(const AVCodecContext* codec_context, + extra_data, encryption_scheme, seek_preroll, + codec_context->delay); + if (channel_layout == CHANNEL_LAYOUT_DISCRETE) +- config->SetChannelsForDiscrete(codec_context->channels); ++ config->SetChannelsForDiscrete(codec_context->ch_layout.nb_channels); + + #if BUILDFLAG(ENABLE_PLATFORM_AC3_EAC3_AUDIO) + // These are bitstream formats unknown to ffmpeg, so they don't have +@@ -470,7 +471,7 @@ void AudioDecoderConfigToAVCodecContext(const AudioDecoderConfig& config, + + // TODO(scherkus): should we set |channel_layout|? I'm not sure if FFmpeg uses + // said information to decode. +- codec_context->channels = config.channels(); ++ codec_context->ch_layout.nb_channels = config.channels(); + codec_context->sample_rate = config.samples_per_second(); + + if (config.extra_data().empty()) { +diff --git a/media/filters/audio_file_reader.cc b/media/filters/audio_file_reader.cc +index 5f257bdfaa6..e1be5aa9a5b 100644 +--- a/media/filters/audio_file_reader.cc ++++ b/media/filters/audio_file_reader.cc +@@ -113,14 +113,15 @@ bool AudioFileReader::OpenDecoder() { + + // Verify the channel layout is supported by Chrome. Acts as a sanity check + // against invalid files. See http://crbug.com/171962 +- if (ChannelLayoutToChromeChannelLayout(codec_context_->channel_layout, +- codec_context_->channels) == ++ if (ChannelLayoutToChromeChannelLayout( ++ codec_context_->ch_layout.u.mask, ++ codec_context_->ch_layout.nb_channels) == + CHANNEL_LAYOUT_UNSUPPORTED) { + return false; + } + + // Store initial values to guard against midstream configuration changes. +- channels_ = codec_context_->channels; ++ channels_ = codec_context_->ch_layout.nb_channels; + audio_codec_ = CodecIDToAudioCodec(codec_context_->codec_id); + sample_rate_ = codec_context_->sample_rate; + av_sample_format_ = codec_context_->sample_fmt; +@@ -223,7 +224,7 @@ bool AudioFileReader::OnNewFrame( + if (frames_read < 0) + return false; + +- const int channels = frame->channels; ++ const int channels = frame->ch_layout.nb_channels; + if (frame->sample_rate != sample_rate_ || channels != channels_ || + frame->format != av_sample_format_) { + DLOG(ERROR) << "Unsupported midstream configuration change!" +diff --git a/media/filters/audio_file_reader_unittest.cc b/media/filters/audio_file_reader_unittest.cc +index 2aba7927a31..1f45a50cace 100644 +--- a/media/filters/audio_file_reader_unittest.cc ++++ b/media/filters/audio_file_reader_unittest.cc +@@ -121,11 +121,11 @@ class AudioFileReaderTest : public testing::Test { + EXPECT_FALSE(reader_->Open()); + } + +- void RunTestFailingDecode(const char* fn) { ++ void RunTestFailingDecode(const char* fn, int expect_read = 0) { + Initialize(fn); + EXPECT_TRUE(reader_->Open()); + std::vector<std::unique_ptr<AudioBus>> decoded_audio_packets; +- EXPECT_EQ(reader_->Read(&decoded_audio_packets), 0); ++ EXPECT_EQ(reader_->Read(&decoded_audio_packets), expect_read); + } + + void RunTestPartialDecode(const char* fn) { +@@ -219,7 +219,7 @@ TEST_F(AudioFileReaderTest, AAC_ADTS) { + } + + TEST_F(AudioFileReaderTest, MidStreamConfigChangesFail) { +- RunTestFailingDecode("midstream_config_change.mp3"); ++ RunTestFailingDecode("midstream_config_change.mp3", 42624); + } + #endif + +diff --git a/media/filters/audio_video_metadata_extractor.cc b/media/filters/audio_video_metadata_extractor.cc +index 185819eb936..69ff508c221 100644 +--- a/media/filters/audio_video_metadata_extractor.cc ++++ b/media/filters/audio_video_metadata_extractor.cc +@@ -113,6 +113,15 @@ bool AudioVideoMetadataExtractor::Extract(DataSource* source, + if (!stream) + continue; + ++ void* display_matrix = ++ av_stream_get_side_data(stream, AV_PKT_DATA_DISPLAYMATRIX, nullptr); ++ if (display_matrix) { ++ rotation_ = VideoTransformation::FromFFmpegDisplayMatrix( ++ static_cast<int32_t*>(display_matrix)) ++ .rotation; ++ info.tags["rotate"] = base::NumberToString(rotation_); ++ } ++ + // Extract dictionary from streams also. Needed for containers that attach + // metadata to contained streams instead the container itself, like OGG. + ExtractDictionary(stream->metadata, &info.tags); +@@ -255,8 +264,6 @@ void AudioVideoMetadataExtractor::ExtractDictionary(AVDictionary* metadata, + if (raw_tags->find(tag->key) == raw_tags->end()) + (*raw_tags)[tag->key] = tag->value; + +- if (ExtractInt(tag, "rotate", &rotation_)) +- continue; + if (ExtractString(tag, "album", &album_)) + continue; + if (ExtractString(tag, "artist", &artist_)) +diff --git a/media/filters/ffmpeg_aac_bitstream_converter.cc b/media/filters/ffmpeg_aac_bitstream_converter.cc +index 6f231c85729..ca5e5fb927d 100644 +--- a/media/filters/ffmpeg_aac_bitstream_converter.cc ++++ b/media/filters/ffmpeg_aac_bitstream_converter.cc +@@ -195,14 +195,15 @@ bool FFmpegAACBitstreamConverter::ConvertPacket(AVPacket* packet) { + if (!header_generated_ || codec_ != stream_codec_parameters_->codec_id || + audio_profile_ != stream_codec_parameters_->profile || + sample_rate_index_ != sample_rate_index || +- channel_configuration_ != stream_codec_parameters_->channels || ++ channel_configuration_ != ++ stream_codec_parameters_->ch_layout.nb_channels || + frame_length_ != header_plus_packet_size) { + header_generated_ = + GenerateAdtsHeader(stream_codec_parameters_->codec_id, + 0, // layer + stream_codec_parameters_->profile, sample_rate_index, + 0, // private stream +- stream_codec_parameters_->channels, ++ stream_codec_parameters_->ch_layout.nb_channels, + 0, // originality + 0, // home + 0, // copyrighted_stream +@@ -214,7 +215,7 @@ bool FFmpegAACBitstreamConverter::ConvertPacket(AVPacket* packet) { + codec_ = stream_codec_parameters_->codec_id; + audio_profile_ = stream_codec_parameters_->profile; + sample_rate_index_ = sample_rate_index; +- channel_configuration_ = stream_codec_parameters_->channels; ++ channel_configuration_ = stream_codec_parameters_->ch_layout.nb_channels; + frame_length_ = header_plus_packet_size; + } + +diff --git a/media/filters/ffmpeg_aac_bitstream_converter_unittest.cc b/media/filters/ffmpeg_aac_bitstream_converter_unittest.cc +index 1fd4c5ccd7d..f59bcd8fdaf 100644 +--- a/media/filters/ffmpeg_aac_bitstream_converter_unittest.cc ++++ b/media/filters/ffmpeg_aac_bitstream_converter_unittest.cc +@@ -34,7 +34,7 @@ class FFmpegAACBitstreamConverterTest : public testing::Test { + memset(&test_parameters_, 0, sizeof(AVCodecParameters)); + test_parameters_.codec_id = AV_CODEC_ID_AAC; + test_parameters_.profile = FF_PROFILE_AAC_MAIN; +- test_parameters_.channels = 2; ++ test_parameters_.ch_layout.nb_channels = 2; + test_parameters_.extradata = extradata_header_; + test_parameters_.extradata_size = sizeof(extradata_header_); + } +diff --git a/media/filters/ffmpeg_audio_decoder.cc b/media/filters/ffmpeg_audio_decoder.cc +index 6a56c675f7d..4615fdeb3fb 100644 +--- a/media/filters/ffmpeg_audio_decoder.cc ++++ b/media/filters/ffmpeg_audio_decoder.cc +@@ -28,7 +28,7 @@ namespace media { + + // Return the number of channels from the data in |frame|. + static inline int DetermineChannels(AVFrame* frame) { +- return frame->channels; ++ return frame->ch_layout.nb_channels; + } + + // Called by FFmpeg's allocation routine to allocate a buffer. Uses +@@ -231,7 +231,7 @@ bool FFmpegAudioDecoder::OnNewFrame(const DecoderBuffer& buffer, + // Translate unsupported into discrete layouts for discrete configurations; + // ffmpeg does not have a labeled discrete configuration internally. + ChannelLayout channel_layout = ChannelLayoutToChromeChannelLayout( +- codec_context_->channel_layout, codec_context_->channels); ++ codec_context_->ch_layout.u.mask, codec_context_->ch_layout.nb_channels); + if (channel_layout == CHANNEL_LAYOUT_UNSUPPORTED && + config_.channel_layout() == CHANNEL_LAYOUT_DISCRETE) { + channel_layout = CHANNEL_LAYOUT_DISCRETE; +@@ -348,11 +348,11 @@ bool FFmpegAudioDecoder::ConfigureDecoder(const AudioDecoderConfig& config) { + // Success! + av_sample_format_ = codec_context_->sample_fmt; + +- if (codec_context_->channels != config.channels()) { ++ if (codec_context_->ch_layout.nb_channels != config.channels()) { + MEDIA_LOG(ERROR, media_log_) + << "Audio configuration specified " << config.channels() + << " channels, but FFmpeg thinks the file contains " +- << codec_context_->channels << " channels"; ++ << codec_context_->ch_layout.nb_channels << " channels"; + ReleaseFFmpegResources(); + state_ = DecoderState::kUninitialized; + return false; +@@ -403,7 +403,7 @@ int FFmpegAudioDecoder::GetAudioBuffer(struct AVCodecContext* s, + if (frame->nb_samples <= 0) + return AVERROR(EINVAL); + +- if (s->channels != channels) { ++ if (s->ch_layout.nb_channels != channels) { + DLOG(ERROR) << "AVCodecContext and AVFrame disagree on channel count."; + return AVERROR(EINVAL); + } +@@ -436,7 +436,8 @@ int FFmpegAudioDecoder::GetAudioBuffer(struct AVCodecContext* s, + ChannelLayout channel_layout = + config_.channel_layout() == CHANNEL_LAYOUT_DISCRETE + ? CHANNEL_LAYOUT_DISCRETE +- : ChannelLayoutToChromeChannelLayout(s->channel_layout, s->channels); ++ : ChannelLayoutToChromeChannelLayout(s->ch_layout.u.mask, ++ s->ch_layout.nb_channels); + + if (channel_layout == CHANNEL_LAYOUT_UNSUPPORTED) { + DLOG(ERROR) << "Unsupported channel layout."; Deleted: use-oauth2-client-switches-as-default.patch =================================================================== --- use-oauth2-client-switches-as-default.patch 2022-09-08 07:07:55 UTC (rev 455255) +++ use-oauth2-client-switches-as-default.patch 2022-09-08 07:08:04 UTC (rev 455256) @@ -1,17 +0,0 @@ -diff -upr chromium-89.0.4389.58.orig/google_apis/google_api_keys.cc chromium-89.0.4389.58/google_apis/google_api_keys.cc ---- chromium-89.0.4389.58.orig/google_apis/google_api_keys.cc 2021-02-24 22:37:18.494007649 +0000 -+++ chromium-89.0.4389.58/google_apis/google_api_keys.cc 2021-02-24 22:35:00.865777600 +0000 -@@ -154,11 +154,11 @@ class APIKeyCache { - - std::string default_client_id = CalculateKeyValue( - GOOGLE_DEFAULT_CLIENT_ID, -- STRINGIZE_NO_EXPANSION(GOOGLE_DEFAULT_CLIENT_ID), nullptr, -+ STRINGIZE_NO_EXPANSION(GOOGLE_DEFAULT_CLIENT_ID), ::switches::kOAuth2ClientID, - std::string(), environment.get(), command_line, gaia_config); - std::string default_client_secret = CalculateKeyValue( - GOOGLE_DEFAULT_CLIENT_SECRET, -- STRINGIZE_NO_EXPANSION(GOOGLE_DEFAULT_CLIENT_SECRET), nullptr, -+ STRINGIZE_NO_EXPANSION(GOOGLE_DEFAULT_CLIENT_SECRET), ::switches::kOAuth2ClientSecret, - std::string(), environment.get(), command_line, gaia_config); - - // We currently only allow overriding the baked-in values for the Copied: chromium/repos/extra-x86_64/use-oauth2-client-switches-as-default.patch (from rev 455255, chromium/trunk/use-oauth2-client-switches-as-default.patch) =================================================================== --- use-oauth2-client-switches-as-default.patch (rev 0) +++ use-oauth2-client-switches-as-default.patch 2022-09-08 07:08:04 UTC (rev 455256) @@ -0,0 +1,17 @@ +diff -upr chromium-89.0.4389.58.orig/google_apis/google_api_keys.cc chromium-89.0.4389.58/google_apis/google_api_keys.cc +--- chromium-89.0.4389.58.orig/google_apis/google_api_keys.cc 2021-02-24 22:37:18.494007649 +0000 ++++ chromium-89.0.4389.58/google_apis/google_api_keys.cc 2021-02-24 22:35:00.865777600 +0000 +@@ -154,11 +154,11 @@ class APIKeyCache { + + std::string default_client_id = CalculateKeyValue( + GOOGLE_DEFAULT_CLIENT_ID, +- STRINGIZE_NO_EXPANSION(GOOGLE_DEFAULT_CLIENT_ID), nullptr, ++ STRINGIZE_NO_EXPANSION(GOOGLE_DEFAULT_CLIENT_ID), ::switches::kOAuth2ClientID, + std::string(), environment.get(), command_line, gaia_config); + std::string default_client_secret = CalculateKeyValue( + GOOGLE_DEFAULT_CLIENT_SECRET, +- STRINGIZE_NO_EXPANSION(GOOGLE_DEFAULT_CLIENT_SECRET), nullptr, ++ STRINGIZE_NO_EXPANSION(GOOGLE_DEFAULT_CLIENT_SECRET), ::switches::kOAuth2ClientSecret, + std::string(), environment.get(), command_line, gaia_config); + + // We currently only allow overriding the baked-in values for the