Date: Wednesday, March 18, 2020 @ 06:51:12 Author: foutrelis Revision: 377834
archrelease: copy trunk to extra-x86_64 Added: chromium/repos/extra-x86_64/PKGBUILD (from rev 377833, chromium/trunk/PKGBUILD) chromium/repos/extra-x86_64/chromium-skia-harmony.patch (from rev 377833, chromium/trunk/chromium-skia-harmony.patch) chromium/repos/extra-x86_64/chromium-widevine.patch (from rev 377833, chromium/trunk/chromium-widevine.patch) chromium/repos/extra-x86_64/chromium.install (from rev 377833, chromium/trunk/chromium.install) chromium/repos/extra-x86_64/cros-search-service-Include-cmath-for-std-pow.patch (from rev 377833, chromium/trunk/cros-search-service-Include-cmath-for-std-pow.patch) chromium/repos/extra-x86_64/fix-building-with-system-zlib.patch (from rev 377833, chromium/trunk/fix-building-with-system-zlib.patch) chromium/repos/extra-x86_64/fix-building-with-unbundled-libxml.patch (from rev 377833, chromium/trunk/fix-building-with-unbundled-libxml.patch) chromium/repos/extra-x86_64/fix-shim-header-generation-when-unbundling-ICU.patch (from rev 377833, chromium/trunk/fix-shim-header-generation-when-unbundling-ICU.patch) chromium/repos/extra-x86_64/move-RemoteTreeNode-declaration.patch (from rev 377833, chromium/trunk/move-RemoteTreeNode-declaration.patch) chromium/repos/extra-x86_64/rebuild-Linux-frame-button-cache-when-activation.patch (from rev 377833, chromium/trunk/rebuild-Linux-frame-button-cache-when-activation.patch) chromium/repos/extra-x86_64/remove-verbose-logging-in-local-unique-font-matching.patch (from rev 377833, chromium/trunk/remove-verbose-logging-in-local-unique-font-matching.patch) chromium/repos/extra-x86_64/rename-Relayout-in-DesktopWindowTreeHostPlatform.patch (from rev 377833, chromium/trunk/rename-Relayout-in-DesktopWindowTreeHostPlatform.patch) chromium/repos/extra-x86_64/sync-enable-USSPasswords-by-default.patch (from rev 377833, chromium/trunk/sync-enable-USSPasswords-by-default.patch) Deleted: chromium/repos/extra-x86_64/PKGBUILD chromium/repos/extra-x86_64/chromium-skia-harmony.patch chromium/repos/extra-x86_64/chromium-widevine.patch chromium/repos/extra-x86_64/chromium.install chromium/repos/extra-x86_64/cros-search-service-Include-cmath-for-std-pow.patch chromium/repos/extra-x86_64/fix-building-with-system-zlib.patch chromium/repos/extra-x86_64/fix-building-with-unbundled-libxml.patch chromium/repos/extra-x86_64/fix-shim-header-generation-when-unbundling-ICU.patch chromium/repos/extra-x86_64/move-RemoteTreeNode-declaration.patch chromium/repos/extra-x86_64/rebuild-Linux-frame-button-cache-when-activation.patch chromium/repos/extra-x86_64/remove-verbose-logging-in-local-unique-font-matching.patch chromium/repos/extra-x86_64/rename-Relayout-in-DesktopWindowTreeHostPlatform.patch chromium/repos/extra-x86_64/sync-enable-USSPasswords-by-default.patch ------------------------------------------------------------+ PKGBUILD | 518 +++++------ chromium-skia-harmony.patch | 28 chromium-widevine.patch | 26 chromium.install | 32 cros-search-service-Include-cmath-for-std-pow.patch | 70 - fix-building-with-system-zlib.patch | 64 - fix-building-with-unbundled-libxml.patch | 254 ++--- fix-shim-header-generation-when-unbundling-ICU.patch | 100 +- move-RemoteTreeNode-declaration.patch | 474 +++++----- rebuild-Linux-frame-button-cache-when-activation.patch | 124 +- remove-verbose-logging-in-local-unique-font-matching.patch | 66 - rename-Relayout-in-DesktopWindowTreeHostPlatform.patch | 128 +- sync-enable-USSPasswords-by-default.patch | 56 - 13 files changed, 970 insertions(+), 970 deletions(-) Deleted: PKGBUILD =================================================================== --- PKGBUILD 2020-03-18 06:50:59 UTC (rev 377833) +++ PKGBUILD 2020-03-18 06:51:12 UTC (rev 377834) @@ -1,259 +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=80.0.3987.132 -pkgrel=2 -_launcher_ver=6 -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' 'json-glib' - 'desktop-file-utils' 'hicolor-icon-theme') -makedepends=('python' 'python2' 'gperf' 'yasm' 'mesa' 'ninja' 'nodejs' 'git' - 'pipewire' 'clang' 'lld' 'gn' 'java-runtime-headless') -optdepends=('pepper-flash: support for Flash content' - 'pipewire: WebRTC desktop sharing under Wayland' - 'kdialog: needed for file dialogs in KDE' - 'org.freedesktop.secrets: password storage backend on GNOME / Xfce' - 'kwallet: for storing passwords in KWallet on KDE desktops') -install=chromium.install -source=(https://commondatastorage.googleapis.com/chromium-browser-official/$pkgname-$pkgver.tar.xz - chromium-launcher-$_launcher_ver.tar.gz::https://github.com/foutrelis/chromium-launcher/archive/v$_launcher_ver.tar.gz - cros-search-service-Include-cmath-for-std-pow.patch - move-RemoteTreeNode-declaration.patch - sync-enable-USSPasswords-by-default.patch - fix-shim-header-generation-when-unbundling-ICU.patch - fix-building-with-system-zlib.patch - remove-verbose-logging-in-local-unique-font-matching.patch - fix-building-with-unbundled-libxml.patch - rename-Relayout-in-DesktopWindowTreeHostPlatform.patch - rebuild-Linux-frame-button-cache-when-activation.patch - chromium-widevine.patch - chromium-skia-harmony.patch) -sha256sums=('2c0012059046a5a7e2bf6e9502f1898f1953226d63b724b82fc18226e285c201' - '04917e3cd4307d8e31bfb0027a5dce6d086edb10ff8a716024fbb8bb0c7dccf1' - '0a8d1af2a3734b5f99ea8462940e332db4acee7130fe436ad3e4b7ad133e5ae5' - '21f631851cdcb347f40793485b168cb5d0da65ae26ae39ba58d624c66197d0a5' - '08ef82476780e0864b5bf7f20eb19db320e73b9a5d4f595351e12e97dda8746f' - 'e477aa48a11ca4d53927f66a9593567fcd053325fb38af30ac3508465f1dd1f6' - '18276e65c68a0c328601b12fefb7e8bfc632346f34b87e64944c9de8c95c5cfa' - '5bc775c0ece84d67855f51b30eadcf96fa8163b416d2036e9f9ba19072f54dfe' - 'e530d1b39504c2ab247e16f1602359c484e9e8be4ef6d4824d68b14d29a7f60b' - 'ae3bf107834bd8eda9a3ec7899fe35fde62e6111062e5def7d24bf49b53db3db' - '46f7fc9768730c460b27681ccf3dc2685c7e1fd22d70d3a82d9e57e3389bb014' - '709e2fddba3c1f2ed4deb3a239fc0479bfa50c46e054e7f32db4fb1365fed070' - '771292942c0901092a402cc60ee883877a99fb804cb54d568c8c6c94565a48e1') - -# 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=( - [ffmpeg]=ffmpeg - [flac]=flac - [fontconfig]=fontconfig - [freetype]=freetype2 - [harfbuzz-ng]=harfbuzz - [icu]=icu - [libdrm]= - [libjpeg]=libjpeg - #[libpng]=libpng # https://crbug.com/752403#c10 - [libvpx]=libvpx - [libwebp]=libwebp - [libxml]=libxml2 - [libxslt]=libxslt - [opus]=opus - [re2]=re2 - [snappy]=snappy - [yasm]= - [zlib]=minizip -) -_unwanted_bundled_libs=( - ${!_system_libs[@]} - ${_system_libs[libjpeg]+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. -_google_api_key=AIzaSyDwr302FpOSkGRpLlUpPThNTDPbXcIn_FM -_google_default_client_id=413772536636.apps.googleusercontent.com -_google_default_client_secret=0ZChLK6AxeA3Isu96MkwqDR4 - -prepare() { - cd "$srcdir/$pkgname-$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 - - # https://crbug.com/957519 - patch -Np1 -i ../cros-search-service-Include-cmath-for-std-pow.patch - patch -Np1 -i ../move-RemoteTreeNode-declaration.patch - - # https://crbug.com/1027929 - patch -Np1 -i ../sync-enable-USSPasswords-by-default.patch - - # https://crbug.com/989153 - patch -Np1 -i ../fix-shim-header-generation-when-unbundling-ICU.patch - - # https://crbug.com/977964 - patch -Np1 -i ../fix-building-with-system-zlib.patch - - # https://crbug.com/1005508 - patch -Np1 -i ../remove-verbose-logging-in-local-unique-font-matching.patch - - # https://crbug.com/1043042 - patch -Np1 -i ../fix-building-with-unbundled-libxml.patch - - # https://crbug.com/1049258 - patch -Np1 -i ../rename-Relayout-in-DesktopWindowTreeHostPlatform.patch - patch -Np1 -i ../rebuild-Linux-frame-button-cache-when-activation.patch - - # Load bundled Widevine CDM if available (see chromium-widevine in the AUR) - # M79 is supposed to download it as a component but it doesn't seem to work - patch -Np1 -i ../chromium-widevine.patch - - # https://crbug.com/skia/6663#c10 - patch -Np0 -i ../chromium-skia-harmony.patch - - # Force script incompatible with Python 3 to use /usr/bin/python2 - sed -i '1s|python$|&2|' third_party/dom_distiller_js/protoc_plugins/*.py - - mkdir -p third_party/node/linux/node-linux-x64/bin - ln -s /usr/bin/node third_party/node/linux/node-linux-x64/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/yasm/run_yasm.py' \ - \! -regex '.*\.\(gn\|gni\|isolate\)' \ - -delete - done - - python2 build/linux/unbundle/replace_gn_files.py \ - --system-libraries "${!_system_libs[@]}" -} - -build() { - make -C chromium-launcher-$_launcher_ver - - cd "$srcdir/$pkgname-$pkgver" - - if check_buildoption ccache y; then - # Avoid falling back to preprocessor mode when sources contain time macros - export CCACHE_SLOPPINESS=time_macros - fi - - 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 - 'treat_warnings_as_errors=false' - 'fieldtrial_testing_like_official_build=true' - 'ffmpeg_branding="Chrome"' - 'proprietary_codecs=true' - 'rtc_use_pipewire=true' - 'link_pulseaudio=true' - 'use_gnome_keyring=false' - 'use_sysroot=false' - 'linux_use_bundled_binutils=false' - 'use_custom_libcxx=false' - 'enable_hangout_services_extension=true' - 'enable_widevine=true' - 'enable_nacl=false' - 'enable_swiftshader=false' - "google_api_key=\"${_google_api_key}\"" - "google_default_client_id=\"${_google_default_client_id}\"" - "google_default_client_secret=\"${_google_default_client_secret}\"" - ) - - if [[ -n ${_system_libs[icu]+set} ]]; then - _flags+=('icu_use_data_file=false') - fi - - if check_option strip y; then - _flags+=('symbol_level=0') - 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' - - gn gen out/Release --args="${_flags[*]}" --script-executable=/usr/bin/python2 - ninja -C out/Release chrome chrome_sandbox chromedriver -} - -package() { - cd chromium-launcher-$_launcher_ver - make PREFIX=/usr DESTDIR="$pkgdir" install - install -Dm644 LICENSE \ - "$pkgdir/usr/share/licenses/chromium/LICENSE.launcher" - - cd "$srcdir/$pkgname-$pkgver" - - install -D out/Release/chrome "$pkgdir/usr/lib/chromium/chromium" - install -Dm4755 out/Release/chrome_sandbox "$pkgdir/usr/lib/chromium/chrome-sandbox" - ln -s /usr/lib/chromium/chromedriver "$pkgdir/usr/bin/chromedriver" - - 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" - - cp \ - out/Release/{chrome_{100,200}_percent,resources}.pak \ - out/Release/{*.bin,chromedriver} \ - "$pkgdir/usr/lib/chromium/" - install -Dm644 -t "$pkgdir/usr/lib/chromium/locales" out/Release/locales/*.pak - - if [[ -z ${_system_libs[icu]+set} ]]; then - cp out/Release/icudtl.dat "$pkgdir/usr/lib/chromium/" - fi - - 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 377833, chromium/trunk/PKGBUILD) =================================================================== --- PKGBUILD (rev 0) +++ PKGBUILD 2020-03-18 06:51:12 UTC (rev 377834) @@ -0,0 +1,259 @@ +# 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=80.0.3987.149 +pkgrel=1 +_launcher_ver=6 +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' 'json-glib' + 'desktop-file-utils' 'hicolor-icon-theme') +makedepends=('python' 'python2' 'gperf' 'yasm' 'mesa' 'ninja' 'nodejs' 'git' + 'libpipewire02' 'clang' 'lld' 'gn' 'java-runtime-headless') +optdepends=('pepper-flash: support for Flash content' + 'libpipewire02: WebRTC desktop sharing under Wayland' + 'kdialog: needed for file dialogs in KDE' + 'org.freedesktop.secrets: password storage backend on GNOME / Xfce' + 'kwallet: for storing passwords in KWallet on KDE desktops') +install=chromium.install +source=(https://commondatastorage.googleapis.com/chromium-browser-official/$pkgname-$pkgver.tar.xz + chromium-launcher-$_launcher_ver.tar.gz::https://github.com/foutrelis/chromium-launcher/archive/v$_launcher_ver.tar.gz + cros-search-service-Include-cmath-for-std-pow.patch + move-RemoteTreeNode-declaration.patch + sync-enable-USSPasswords-by-default.patch + fix-shim-header-generation-when-unbundling-ICU.patch + fix-building-with-system-zlib.patch + remove-verbose-logging-in-local-unique-font-matching.patch + fix-building-with-unbundled-libxml.patch + rename-Relayout-in-DesktopWindowTreeHostPlatform.patch + rebuild-Linux-frame-button-cache-when-activation.patch + chromium-widevine.patch + chromium-skia-harmony.patch) +sha256sums=('50bedde7932921e375b521ceab8989be134a8d937751847e9d9287f7e0a02c1e' + '04917e3cd4307d8e31bfb0027a5dce6d086edb10ff8a716024fbb8bb0c7dccf1' + '0a8d1af2a3734b5f99ea8462940e332db4acee7130fe436ad3e4b7ad133e5ae5' + '21f631851cdcb347f40793485b168cb5d0da65ae26ae39ba58d624c66197d0a5' + '08ef82476780e0864b5bf7f20eb19db320e73b9a5d4f595351e12e97dda8746f' + 'e477aa48a11ca4d53927f66a9593567fcd053325fb38af30ac3508465f1dd1f6' + '18276e65c68a0c328601b12fefb7e8bfc632346f34b87e64944c9de8c95c5cfa' + '5bc775c0ece84d67855f51b30eadcf96fa8163b416d2036e9f9ba19072f54dfe' + 'e530d1b39504c2ab247e16f1602359c484e9e8be4ef6d4824d68b14d29a7f60b' + 'ae3bf107834bd8eda9a3ec7899fe35fde62e6111062e5def7d24bf49b53db3db' + '46f7fc9768730c460b27681ccf3dc2685c7e1fd22d70d3a82d9e57e3389bb014' + '709e2fddba3c1f2ed4deb3a239fc0479bfa50c46e054e7f32db4fb1365fed070' + '771292942c0901092a402cc60ee883877a99fb804cb54d568c8c6c94565a48e1') + +# 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=( + [ffmpeg]=ffmpeg + [flac]=flac + [fontconfig]=fontconfig + [freetype]=freetype2 + [harfbuzz-ng]=harfbuzz + [icu]=icu + [libdrm]= + [libjpeg]=libjpeg + #[libpng]=libpng # https://crbug.com/752403#c10 + [libvpx]=libvpx + [libwebp]=libwebp + [libxml]=libxml2 + [libxslt]=libxslt + [opus]=opus + [re2]=re2 + [snappy]=snappy + [yasm]= + [zlib]=minizip +) +_unwanted_bundled_libs=( + ${!_system_libs[@]} + ${_system_libs[libjpeg]+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. +_google_api_key=AIzaSyDwr302FpOSkGRpLlUpPThNTDPbXcIn_FM +_google_default_client_id=413772536636.apps.googleusercontent.com +_google_default_client_secret=0ZChLK6AxeA3Isu96MkwqDR4 + +prepare() { + cd "$srcdir/$pkgname-$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 + + # https://crbug.com/957519 + patch -Np1 -i ../cros-search-service-Include-cmath-for-std-pow.patch + patch -Np1 -i ../move-RemoteTreeNode-declaration.patch + + # https://crbug.com/1027929 + patch -Np1 -i ../sync-enable-USSPasswords-by-default.patch + + # https://crbug.com/989153 + patch -Np1 -i ../fix-shim-header-generation-when-unbundling-ICU.patch + + # https://crbug.com/977964 + patch -Np1 -i ../fix-building-with-system-zlib.patch + + # https://crbug.com/1005508 + patch -Np1 -i ../remove-verbose-logging-in-local-unique-font-matching.patch + + # https://crbug.com/1043042 + patch -Np1 -i ../fix-building-with-unbundled-libxml.patch + + # https://crbug.com/1049258 + patch -Np1 -i ../rename-Relayout-in-DesktopWindowTreeHostPlatform.patch + patch -Np1 -i ../rebuild-Linux-frame-button-cache-when-activation.patch + + # Load bundled Widevine CDM if available (see chromium-widevine in the AUR) + # M79 is supposed to download it as a component but it doesn't seem to work + patch -Np1 -i ../chromium-widevine.patch + + # https://crbug.com/skia/6663#c10 + patch -Np0 -i ../chromium-skia-harmony.patch + + # Force script incompatible with Python 3 to use /usr/bin/python2 + sed -i '1s|python$|&2|' third_party/dom_distiller_js/protoc_plugins/*.py + + mkdir -p third_party/node/linux/node-linux-x64/bin + ln -s /usr/bin/node third_party/node/linux/node-linux-x64/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/yasm/run_yasm.py' \ + \! -regex '.*\.\(gn\|gni\|isolate\)' \ + -delete + done + + python2 build/linux/unbundle/replace_gn_files.py \ + --system-libraries "${!_system_libs[@]}" +} + +build() { + make -C chromium-launcher-$_launcher_ver + + cd "$srcdir/$pkgname-$pkgver" + + if check_buildoption ccache y; then + # Avoid falling back to preprocessor mode when sources contain time macros + export CCACHE_SLOPPINESS=time_macros + fi + + 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 + 'treat_warnings_as_errors=false' + 'fieldtrial_testing_like_official_build=true' + 'ffmpeg_branding="Chrome"' + 'proprietary_codecs=true' + 'rtc_use_pipewire=true' + 'link_pulseaudio=true' + 'use_gnome_keyring=false' + 'use_sysroot=false' + 'linux_use_bundled_binutils=false' + 'use_custom_libcxx=false' + 'enable_hangout_services_extension=true' + 'enable_widevine=true' + 'enable_nacl=false' + 'enable_swiftshader=false' + "google_api_key=\"${_google_api_key}\"" + "google_default_client_id=\"${_google_default_client_id}\"" + "google_default_client_secret=\"${_google_default_client_secret}\"" + ) + + if [[ -n ${_system_libs[icu]+set} ]]; then + _flags+=('icu_use_data_file=false') + fi + + if check_option strip y; then + _flags+=('symbol_level=0') + 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' + + gn gen out/Release --args="${_flags[*]}" --script-executable=/usr/bin/python2 + ninja -C out/Release chrome chrome_sandbox chromedriver +} + +package() { + cd chromium-launcher-$_launcher_ver + make PREFIX=/usr DESTDIR="$pkgdir" install + install -Dm644 LICENSE \ + "$pkgdir/usr/share/licenses/chromium/LICENSE.launcher" + + cd "$srcdir/$pkgname-$pkgver" + + install -D out/Release/chrome "$pkgdir/usr/lib/chromium/chromium" + install -Dm4755 out/Release/chrome_sandbox "$pkgdir/usr/lib/chromium/chrome-sandbox" + ln -s /usr/lib/chromium/chromedriver "$pkgdir/usr/bin/chromedriver" + + 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" + + cp \ + out/Release/{chrome_{100,200}_percent,resources}.pak \ + out/Release/{*.bin,chromedriver} \ + "$pkgdir/usr/lib/chromium/" + install -Dm644 -t "$pkgdir/usr/lib/chromium/locales" out/Release/locales/*.pak + + if [[ -z ${_system_libs[icu]+set} ]]; then + cp out/Release/icudtl.dat "$pkgdir/usr/lib/chromium/" + fi + + 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: chromium-skia-harmony.patch =================================================================== --- chromium-skia-harmony.patch 2020-03-18 06:50:59 UTC (rev 377833) +++ chromium-skia-harmony.patch 2020-03-18 06:51:12 UTC (rev 377834) @@ -1,14 +0,0 @@ ---- third_party/skia/src/ports/SkFontHost_FreeType.cpp.orig 2019-07-19 11:08:34.770972665 +0000 -+++ third_party/skia/src/ports/SkFontHost_FreeType.cpp 2019-07-19 11:08:44.274442065 +0000 -@@ -128,9 +128,9 @@ public: - : fGetVarDesignCoordinates(nullptr) - , fGetVarAxisFlags(nullptr) - , fLibrary(nullptr) -- , fIsLCDSupported(false) -+ , fIsLCDSupported(true) - , fLightHintingIsYOnly(false) -- , fLCDExtra(0) -+ , fLCDExtra(2) - { - if (FT_New_Library(&gFTMemory, &fLibrary)) { - return; Copied: chromium/repos/extra-x86_64/chromium-skia-harmony.patch (from rev 377833, chromium/trunk/chromium-skia-harmony.patch) =================================================================== --- chromium-skia-harmony.patch (rev 0) +++ chromium-skia-harmony.patch 2020-03-18 06:51:12 UTC (rev 377834) @@ -0,0 +1,14 @@ +--- third_party/skia/src/ports/SkFontHost_FreeType.cpp.orig 2019-07-19 11:08:34.770972665 +0000 ++++ third_party/skia/src/ports/SkFontHost_FreeType.cpp 2019-07-19 11:08:44.274442065 +0000 +@@ -128,9 +128,9 @@ public: + : fGetVarDesignCoordinates(nullptr) + , fGetVarAxisFlags(nullptr) + , fLibrary(nullptr) +- , fIsLCDSupported(false) ++ , fIsLCDSupported(true) + , fLightHintingIsYOnly(false) +- , fLCDExtra(0) ++ , fLCDExtra(2) + { + if (FT_New_Library(&gFTMemory, &fLibrary)) { + return; Deleted: chromium-widevine.patch =================================================================== --- chromium-widevine.patch 2020-03-18 06:50:59 UTC (rev 377833) +++ chromium-widevine.patch 2020-03-18 06:51:12 UTC (rev 377834) @@ -1,13 +0,0 @@ -diff --git a/third_party/widevine/cdm/BUILD.gn b/third_party/widevine/cdm/BUILD.gn -index ed0e2f5208b..5b431a030d5 100644 ---- a/third_party/widevine/cdm/BUILD.gn -+++ b/third_party/widevine/cdm/BUILD.gn -@@ -14,7 +14,7 @@ buildflag_header("buildflags") { - - flags = [ - "ENABLE_WIDEVINE=$enable_widevine", -- "BUNDLE_WIDEVINE_CDM=$bundle_widevine_cdm", -+ "BUNDLE_WIDEVINE_CDM=true", - "ENABLE_WIDEVINE_CDM_COMPONENT=$enable_widevine_cdm_component", - ] - } Copied: chromium/repos/extra-x86_64/chromium-widevine.patch (from rev 377833, chromium/trunk/chromium-widevine.patch) =================================================================== --- chromium-widevine.patch (rev 0) +++ chromium-widevine.patch 2020-03-18 06:51:12 UTC (rev 377834) @@ -0,0 +1,13 @@ +diff --git a/third_party/widevine/cdm/BUILD.gn b/third_party/widevine/cdm/BUILD.gn +index ed0e2f5208b..5b431a030d5 100644 +--- a/third_party/widevine/cdm/BUILD.gn ++++ b/third_party/widevine/cdm/BUILD.gn +@@ -14,7 +14,7 @@ buildflag_header("buildflags") { + + flags = [ + "ENABLE_WIDEVINE=$enable_widevine", +- "BUNDLE_WIDEVINE_CDM=$bundle_widevine_cdm", ++ "BUNDLE_WIDEVINE_CDM=true", + "ENABLE_WIDEVINE_CDM_COMPONENT=$enable_widevine_cdm_component", + ] + } Deleted: chromium.install =================================================================== --- chromium.install 2020-03-18 06:50:59 UTC (rev 377833) +++ chromium.install 2020-03-18 06:51:12 UTC (rev 377834) @@ -1,16 +0,0 @@ -post_upgrade() { - if (($(vercmp $2 42.0.2311.90-1) < 0)); then - echo ':: This Chromium package no longer supports custom flags passed via the' - echo ' /etc/chromium/default file (or any other files under /etc/chromium/).' - echo - echo ' The new /usr/bin/chromium launcher script will automatically detect' - echo ' Pepper Flash (if installed) and pass the correct flags to Chromium.' - echo - echo ' If you need to pass extra command-line arguments to Chromium, you' - echo ' can put them in a "chromium-flags.conf" file under $HOME/.config/' - echo ' (or $XDG_CONFIG_HOME). Arguments are split on whitespace and shell' - echo ' quoting rules apply but no further parsing is performed.' - fi -} - -# vim:set ts=2 sw=2 et: Copied: chromium/repos/extra-x86_64/chromium.install (from rev 377833, chromium/trunk/chromium.install) =================================================================== --- chromium.install (rev 0) +++ chromium.install 2020-03-18 06:51:12 UTC (rev 377834) @@ -0,0 +1,16 @@ +post_upgrade() { + if (($(vercmp $2 42.0.2311.90-1) < 0)); then + echo ':: This Chromium package no longer supports custom flags passed via the' + echo ' /etc/chromium/default file (or any other files under /etc/chromium/).' + echo + echo ' The new /usr/bin/chromium launcher script will automatically detect' + echo ' Pepper Flash (if installed) and pass the correct flags to Chromium.' + echo + echo ' If you need to pass extra command-line arguments to Chromium, you' + echo ' can put them in a "chromium-flags.conf" file under $HOME/.config/' + echo ' (or $XDG_CONFIG_HOME). Arguments are split on whitespace and shell' + echo ' quoting rules apply but no further parsing is performed.' + fi +} + +# vim:set ts=2 sw=2 et: Deleted: cros-search-service-Include-cmath-for-std-pow.patch =================================================================== --- cros-search-service-Include-cmath-for-std-pow.patch 2020-03-18 06:50:59 UTC (rev 377833) +++ cros-search-service-Include-cmath-for-std-pow.patch 2020-03-18 06:51:12 UTC (rev 377834) @@ -1,35 +0,0 @@ -From 8273f4d3130e06fd8b6bef87b07c936304b971d9 Mon Sep 17 00:00:00 2001 -From: Raphael Kubo da Costa <raphael.kubo.da.co...@intel.com> -Date: Tue, 10 Dec 2019 20:59:57 +0000 -Subject: [PATCH] [cros search service]: Include <cmath> for std::pow() - -IWYU. Follow up to commit 2b2ea3c09b ("[cros search service] Move shared -string matching functions to //chrome"), which broke the libstdc++ build: - - ../../chrome/common/string_matching/fuzzy_tokenized_string_match.cc:199:14: error: no member named 'pow' in namespace 'std' - std::pow(partial_match_penalty_rate, long_start - current - 1); - ~~~~~^ - -Bug: 957519 -Change-Id: I66f61cb4f93cfa0bfa3d1b00ba391ddd8f31a7fb -Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1960310 -Auto-Submit: Raphael Kubo da Costa <raphael.kubo.da.co...@intel.com> -Reviewed-by: Jia Meng <jiam...@chromium.org> -Commit-Queue: Raphael Kubo da Costa <raphael.kubo.da.co...@intel.com> -Cr-Commit-Position: refs/heads/master@{#723499} ---- - chrome/common/string_matching/fuzzy_tokenized_string_match.cc | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/chrome/common/string_matching/fuzzy_tokenized_string_match.cc b/chrome/common/string_matching/fuzzy_tokenized_string_match.cc -index 8351fa701e4..884ef638c61 100644 ---- a/chrome/common/string_matching/fuzzy_tokenized_string_match.cc -+++ b/chrome/common/string_matching/fuzzy_tokenized_string_match.cc -@@ -5,6 +5,7 @@ - #include "chrome/common/string_matching/fuzzy_tokenized_string_match.h" - - #include <algorithm> -+#include <cmath> - #include <iterator> - - #include "base/i18n/case_conversion.h" Copied: chromium/repos/extra-x86_64/cros-search-service-Include-cmath-for-std-pow.patch (from rev 377833, chromium/trunk/cros-search-service-Include-cmath-for-std-pow.patch) =================================================================== --- cros-search-service-Include-cmath-for-std-pow.patch (rev 0) +++ cros-search-service-Include-cmath-for-std-pow.patch 2020-03-18 06:51:12 UTC (rev 377834) @@ -0,0 +1,35 @@ +From 8273f4d3130e06fd8b6bef87b07c936304b971d9 Mon Sep 17 00:00:00 2001 +From: Raphael Kubo da Costa <raphael.kubo.da.co...@intel.com> +Date: Tue, 10 Dec 2019 20:59:57 +0000 +Subject: [PATCH] [cros search service]: Include <cmath> for std::pow() + +IWYU. Follow up to commit 2b2ea3c09b ("[cros search service] Move shared +string matching functions to //chrome"), which broke the libstdc++ build: + + ../../chrome/common/string_matching/fuzzy_tokenized_string_match.cc:199:14: error: no member named 'pow' in namespace 'std' + std::pow(partial_match_penalty_rate, long_start - current - 1); + ~~~~~^ + +Bug: 957519 +Change-Id: I66f61cb4f93cfa0bfa3d1b00ba391ddd8f31a7fb +Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1960310 +Auto-Submit: Raphael Kubo da Costa <raphael.kubo.da.co...@intel.com> +Reviewed-by: Jia Meng <jiam...@chromium.org> +Commit-Queue: Raphael Kubo da Costa <raphael.kubo.da.co...@intel.com> +Cr-Commit-Position: refs/heads/master@{#723499} +--- + chrome/common/string_matching/fuzzy_tokenized_string_match.cc | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/chrome/common/string_matching/fuzzy_tokenized_string_match.cc b/chrome/common/string_matching/fuzzy_tokenized_string_match.cc +index 8351fa701e4..884ef638c61 100644 +--- a/chrome/common/string_matching/fuzzy_tokenized_string_match.cc ++++ b/chrome/common/string_matching/fuzzy_tokenized_string_match.cc +@@ -5,6 +5,7 @@ + #include "chrome/common/string_matching/fuzzy_tokenized_string_match.h" + + #include <algorithm> ++#include <cmath> + #include <iterator> + + #include "base/i18n/case_conversion.h" Deleted: fix-building-with-system-zlib.patch =================================================================== --- fix-building-with-system-zlib.patch 2020-03-18 06:50:59 UTC (rev 377833) +++ fix-building-with-system-zlib.patch 2020-03-18 06:51:12 UTC (rev 377834) @@ -1,32 +0,0 @@ -From cda86e34ddadba5f08dea764881bbb6c8ec01e8a Mon Sep 17 00:00:00 2001 -From: Stephan Hartmann <sth...@googlemail.com> -Date: Sat, 25 Jan 2020 02:00:43 +0000 -Subject: [PATCH] Fix building with system zlib - -Add zlib_config target because perfetto depends on it. - -Bug: 977964 -Change-Id: I2aac5c3704f1274f932a61264d1c26a05f2db55e -Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2019035 -Reviewed-by: Thomas Anderson <thomasander...@chromium.org> -Commit-Queue: Thomas Anderson <thomasander...@chromium.org> -Cr-Commit-Position: refs/heads/master@{#735201} ---- - build/linux/unbundle/zlib.gn | 4 ++++ - 1 file changed, 4 insertions(+) - -diff --git a/build/linux/unbundle/zlib.gn b/build/linux/unbundle/zlib.gn -index 1fdd472f35e..97d6aebe6d5 100644 ---- a/build/linux/unbundle/zlib.gn -+++ b/build/linux/unbundle/zlib.gn -@@ -13,6 +13,10 @@ config("system_zlib") { - defines = [ "USE_SYSTEM_ZLIB=1" ] - } - -+config("zlib_config") { -+ configs = [ ":system_zlib" ] -+} -+ - source_set("zlib") { - deps = [ ":zlib_shim" ] - libs = [ "z" ] Copied: chromium/repos/extra-x86_64/fix-building-with-system-zlib.patch (from rev 377833, chromium/trunk/fix-building-with-system-zlib.patch) =================================================================== --- fix-building-with-system-zlib.patch (rev 0) +++ fix-building-with-system-zlib.patch 2020-03-18 06:51:12 UTC (rev 377834) @@ -0,0 +1,32 @@ +From cda86e34ddadba5f08dea764881bbb6c8ec01e8a Mon Sep 17 00:00:00 2001 +From: Stephan Hartmann <sth...@googlemail.com> +Date: Sat, 25 Jan 2020 02:00:43 +0000 +Subject: [PATCH] Fix building with system zlib + +Add zlib_config target because perfetto depends on it. + +Bug: 977964 +Change-Id: I2aac5c3704f1274f932a61264d1c26a05f2db55e +Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2019035 +Reviewed-by: Thomas Anderson <thomasander...@chromium.org> +Commit-Queue: Thomas Anderson <thomasander...@chromium.org> +Cr-Commit-Position: refs/heads/master@{#735201} +--- + build/linux/unbundle/zlib.gn | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/build/linux/unbundle/zlib.gn b/build/linux/unbundle/zlib.gn +index 1fdd472f35e..97d6aebe6d5 100644 +--- a/build/linux/unbundle/zlib.gn ++++ b/build/linux/unbundle/zlib.gn +@@ -13,6 +13,10 @@ config("system_zlib") { + defines = [ "USE_SYSTEM_ZLIB=1" ] + } + ++config("zlib_config") { ++ configs = [ ":system_zlib" ] ++} ++ + source_set("zlib") { + deps = [ ":zlib_shim" ] + libs = [ "z" ] Deleted: fix-building-with-unbundled-libxml.patch =================================================================== --- fix-building-with-unbundled-libxml.patch 2020-03-18 06:50:59 UTC (rev 377833) +++ fix-building-with-unbundled-libxml.patch 2020-03-18 06:51:12 UTC (rev 377834) @@ -1,127 +0,0 @@ -From d3afade220ddb307e16a6dd4f2b0ec88b2af91e7 Mon Sep 17 00:00:00 2001 -From: Stephan Hartmann <sth...@googlemail.com> -Date: Tue, 28 Jan 2020 18:16:54 +0000 -Subject: [PATCH] Fix building with unbundled libxml - -Add new targets to libxml.gn that were added in - https://chromium-review.googlesource.com/c/chromium/src/+/1894877 -Adjust includes to use system libxml headers too - -Bug: 1043042 -Change-Id: I948c063e212e49b9e7f42fed2b8bf7f4af042ca7 -Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2007110 -Reviewed-by: Robert Sesek <rse...@chromium.org> -Reviewed-by: Daniel Cheng <dch...@chromium.org> -Reviewed-by: Nico Weber <tha...@chromium.org> -Commit-Queue: Robert Sesek <rse...@chromium.org> -Cr-Commit-Position: refs/heads/master@{#735957} ---- - build/linux/unbundle/libxml.gn | 41 ++++++++++++++++++++-- - third_party/libxml/chromium/libxml_utils.h | 4 +-- - third_party/libxml/chromium/xml_reader.cc | 3 +- - third_party/libxml/chromium/xml_writer.cc | 3 +- - 4 files changed, 45 insertions(+), 6 deletions(-) - -diff --git a/build/linux/unbundle/libxml.gn b/build/linux/unbundle/libxml.gn -index c481bd3547b..3587881eea8 100644 ---- a/build/linux/unbundle/libxml.gn -+++ b/build/linux/unbundle/libxml.gn -@@ -8,11 +8,48 @@ pkg_config("system_libxml") { - packages = [ "libxml-2.0" ] - } - --static_library("libxml") { -+source_set("libxml") { -+ public_configs = [ ":system_libxml" ] -+} -+ -+static_library("libxml_utils") { -+ # Do not expand this visibility list without first consulting with the -+ # Security Team. -+ visibility = [ -+ ":xml_reader", -+ ":xml_writer", -+ "//base/test:test_support", -+ "//services/data_decoder:xml_parser_fuzzer", -+ ] - sources = [ - "chromium/libxml_utils.cc", - "chromium/libxml_utils.h", - ] -- - public_configs = [ ":system_libxml" ] - } -+ -+static_library("xml_reader") { -+ # Do not expand this visibility list without first consulting with the -+ # Security Team. -+ visibility = [ -+ "//base/test:test_support", -+ "//components/policy/core/common:unit_tests", -+ "//services/data_decoder:*", -+ "//tools/traffic_annotation/auditor:auditor_sources", -+ ] -+ sources = [ -+ "chromium/xml_reader.cc", -+ "chromium/xml_reader.h", -+ ] -+ deps = [ ":libxml_utils" ] -+} -+ -+static_library("xml_writer") { -+ # The XmlWriter is considered safe to use from any target. -+ visibility = [ "*" ] -+ sources = [ -+ "chromium/xml_writer.cc", -+ "chromium/xml_writer.h", -+ ] -+ deps = [ ":libxml_utils" ] -+} -diff --git a/third_party/libxml/chromium/libxml_utils.h b/third_party/libxml/chromium/libxml_utils.h -index ff969fab540..8b2383f9c8b 100644 ---- a/third_party/libxml/chromium/libxml_utils.h -+++ b/third_party/libxml/chromium/libxml_utils.h -@@ -5,9 +5,9 @@ - #ifndef THIRD_PARTY_LIBXML_CHROMIUM_LIBXML_UTILS_H_ - #define THIRD_PARTY_LIBXML_CHROMIUM_LIBXML_UTILS_H_ - --#include <string> -+#include <libxml/xmlreader.h> - --#include "third_party/libxml/src/include/libxml/xmlreader.h" -+#include <string> - - // libxml uses a global error function pointer for reporting errors. - // A ScopedXmlErrorFunc object lets you change the global error pointer -diff --git a/third_party/libxml/chromium/xml_reader.cc b/third_party/libxml/chromium/xml_reader.cc -index 92464f4cbcc..899ccefb7c8 100644 ---- a/third_party/libxml/chromium/xml_reader.cc -+++ b/third_party/libxml/chromium/xml_reader.cc -@@ -4,10 +4,11 @@ - - #include "third_party/libxml/chromium/xml_reader.h" - -+#include <libxml/xmlreader.h> -+ - #include <vector> - - #include "third_party/libxml/chromium/libxml_utils.h" --#include "third_party/libxml/src/include/libxml/xmlreader.h" - - using internal::XmlStringToStdString; - -diff --git a/third_party/libxml/chromium/xml_writer.cc b/third_party/libxml/chromium/xml_writer.cc -index 51fce8ebeb1..7c58031fe2d 100644 ---- a/third_party/libxml/chromium/xml_writer.cc -+++ b/third_party/libxml/chromium/xml_writer.cc -@@ -4,8 +4,9 @@ - - #include "third_party/libxml/chromium/xml_writer.h" - -+#include <libxml/xmlwriter.h> -+ - #include "third_party/libxml/chromium/libxml_utils.h" --#include "third_party/libxml/src/include/libxml/xmlwriter.h" - - XmlWriter::XmlWriter() : writer_(nullptr), buffer_(nullptr) {} - Copied: chromium/repos/extra-x86_64/fix-building-with-unbundled-libxml.patch (from rev 377833, chromium/trunk/fix-building-with-unbundled-libxml.patch) =================================================================== --- fix-building-with-unbundled-libxml.patch (rev 0) +++ fix-building-with-unbundled-libxml.patch 2020-03-18 06:51:12 UTC (rev 377834) @@ -0,0 +1,127 @@ +From d3afade220ddb307e16a6dd4f2b0ec88b2af91e7 Mon Sep 17 00:00:00 2001 +From: Stephan Hartmann <sth...@googlemail.com> +Date: Tue, 28 Jan 2020 18:16:54 +0000 +Subject: [PATCH] Fix building with unbundled libxml + +Add new targets to libxml.gn that were added in + https://chromium-review.googlesource.com/c/chromium/src/+/1894877 +Adjust includes to use system libxml headers too + +Bug: 1043042 +Change-Id: I948c063e212e49b9e7f42fed2b8bf7f4af042ca7 +Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2007110 +Reviewed-by: Robert Sesek <rse...@chromium.org> +Reviewed-by: Daniel Cheng <dch...@chromium.org> +Reviewed-by: Nico Weber <tha...@chromium.org> +Commit-Queue: Robert Sesek <rse...@chromium.org> +Cr-Commit-Position: refs/heads/master@{#735957} +--- + build/linux/unbundle/libxml.gn | 41 ++++++++++++++++++++-- + third_party/libxml/chromium/libxml_utils.h | 4 +-- + third_party/libxml/chromium/xml_reader.cc | 3 +- + third_party/libxml/chromium/xml_writer.cc | 3 +- + 4 files changed, 45 insertions(+), 6 deletions(-) + +diff --git a/build/linux/unbundle/libxml.gn b/build/linux/unbundle/libxml.gn +index c481bd3547b..3587881eea8 100644 +--- a/build/linux/unbundle/libxml.gn ++++ b/build/linux/unbundle/libxml.gn +@@ -8,11 +8,48 @@ pkg_config("system_libxml") { + packages = [ "libxml-2.0" ] + } + +-static_library("libxml") { ++source_set("libxml") { ++ public_configs = [ ":system_libxml" ] ++} ++ ++static_library("libxml_utils") { ++ # Do not expand this visibility list without first consulting with the ++ # Security Team. ++ visibility = [ ++ ":xml_reader", ++ ":xml_writer", ++ "//base/test:test_support", ++ "//services/data_decoder:xml_parser_fuzzer", ++ ] + sources = [ + "chromium/libxml_utils.cc", + "chromium/libxml_utils.h", + ] +- + public_configs = [ ":system_libxml" ] + } ++ ++static_library("xml_reader") { ++ # Do not expand this visibility list without first consulting with the ++ # Security Team. ++ visibility = [ ++ "//base/test:test_support", ++ "//components/policy/core/common:unit_tests", ++ "//services/data_decoder:*", ++ "//tools/traffic_annotation/auditor:auditor_sources", ++ ] ++ sources = [ ++ "chromium/xml_reader.cc", ++ "chromium/xml_reader.h", ++ ] ++ deps = [ ":libxml_utils" ] ++} ++ ++static_library("xml_writer") { ++ # The XmlWriter is considered safe to use from any target. ++ visibility = [ "*" ] ++ sources = [ ++ "chromium/xml_writer.cc", ++ "chromium/xml_writer.h", ++ ] ++ deps = [ ":libxml_utils" ] ++} +diff --git a/third_party/libxml/chromium/libxml_utils.h b/third_party/libxml/chromium/libxml_utils.h +index ff969fab540..8b2383f9c8b 100644 +--- a/third_party/libxml/chromium/libxml_utils.h ++++ b/third_party/libxml/chromium/libxml_utils.h +@@ -5,9 +5,9 @@ + #ifndef THIRD_PARTY_LIBXML_CHROMIUM_LIBXML_UTILS_H_ + #define THIRD_PARTY_LIBXML_CHROMIUM_LIBXML_UTILS_H_ + +-#include <string> ++#include <libxml/xmlreader.h> + +-#include "third_party/libxml/src/include/libxml/xmlreader.h" ++#include <string> + + // libxml uses a global error function pointer for reporting errors. + // A ScopedXmlErrorFunc object lets you change the global error pointer +diff --git a/third_party/libxml/chromium/xml_reader.cc b/third_party/libxml/chromium/xml_reader.cc +index 92464f4cbcc..899ccefb7c8 100644 +--- a/third_party/libxml/chromium/xml_reader.cc ++++ b/third_party/libxml/chromium/xml_reader.cc +@@ -4,10 +4,11 @@ + + #include "third_party/libxml/chromium/xml_reader.h" + ++#include <libxml/xmlreader.h> ++ + #include <vector> + + #include "third_party/libxml/chromium/libxml_utils.h" +-#include "third_party/libxml/src/include/libxml/xmlreader.h" + + using internal::XmlStringToStdString; + +diff --git a/third_party/libxml/chromium/xml_writer.cc b/third_party/libxml/chromium/xml_writer.cc +index 51fce8ebeb1..7c58031fe2d 100644 +--- a/third_party/libxml/chromium/xml_writer.cc ++++ b/third_party/libxml/chromium/xml_writer.cc +@@ -4,8 +4,9 @@ + + #include "third_party/libxml/chromium/xml_writer.h" + ++#include <libxml/xmlwriter.h> ++ + #include "third_party/libxml/chromium/libxml_utils.h" +-#include "third_party/libxml/src/include/libxml/xmlwriter.h" + + XmlWriter::XmlWriter() : writer_(nullptr), buffer_(nullptr) {} + Deleted: fix-shim-header-generation-when-unbundling-ICU.patch =================================================================== --- fix-shim-header-generation-when-unbundling-ICU.patch 2020-03-18 06:50:59 UTC (rev 377833) +++ fix-shim-header-generation-when-unbundling-ICU.patch 2020-03-18 06:51:12 UTC (rev 377834) @@ -1,50 +0,0 @@ -From dcad5af090528018599277dc5d7e160fb6b2d68e Mon Sep 17 00:00:00 2001 -From: Stephan Hartmann <sth...@googlemail.com> -Date: Wed, 15 Jan 2020 20:26:40 +0000 -Subject: [PATCH] Fix shim header generation when unbundling ICU - -listformatter.h was moved from icuuc to icui18n - -Bug: 989153 -Change-Id: I9fcb56f6d5af7787f34ea99b737e2ed8fe741c84 -Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2000142 -Reviewed-by: Lei Zhang <thes...@chromium.org> -Commit-Queue: Lei Zhang <thes...@chromium.org> -Cr-Commit-Position: refs/heads/master@{#732114} ---- - AUTHORS | 1 + - build/linux/unbundle/icu.gn | 2 +- - 2 files changed, 2 insertions(+), 1 deletion(-) - -diff --git a/AUTHORS b/AUTHORS -index 7523e483aae..1618fddc633 100644 ---- a/AUTHORS -+++ b/AUTHORS -@@ -891,6 +891,7 @@ Soren Dreijer <dreijer...@gmail.com> - Sreerenj Balachandran <sreerenj.balachand...@intel.com> - Srirama Chandra Sekhar Mogali <sriram...@samsung.com> - Staphany Park <stapark...@gmail.com> -+Stephan Hartmann <sth...@googlemail.com> - Stephen Searles <stephen.sear...@gmail.com> - Steve Sanders <st...@zanderz.com> - Steven Pennington <sp...@engr.uvic.ca> -diff --git a/build/linux/unbundle/icu.gn b/build/linux/unbundle/icu.gn -index 923bd7f5ac3..e77bc43db87 100644 ---- a/build/linux/unbundle/icu.gn -+++ b/build/linux/unbundle/icu.gn -@@ -92,6 +92,7 @@ shim_headers("icui18n_shim") { - "unicode/fpositer.h", - "unicode/gender.h", - "unicode/gregocal.h", -+ "unicode/listformatter.h", - "unicode/measfmt.h", - "unicode/measunit.h", - "unicode/measure.h", -@@ -174,7 +175,6 @@ shim_headers("icuuc_shim") { - "unicode/icudataver.h", - "unicode/icuplug.h", - "unicode/idna.h", -- "unicode/listformatter.h", - "unicode/localpointer.h", - "unicode/locdspnm.h", - "unicode/locid.h", Copied: chromium/repos/extra-x86_64/fix-shim-header-generation-when-unbundling-ICU.patch (from rev 377833, chromium/trunk/fix-shim-header-generation-when-unbundling-ICU.patch) =================================================================== --- fix-shim-header-generation-when-unbundling-ICU.patch (rev 0) +++ fix-shim-header-generation-when-unbundling-ICU.patch 2020-03-18 06:51:12 UTC (rev 377834) @@ -0,0 +1,50 @@ +From dcad5af090528018599277dc5d7e160fb6b2d68e Mon Sep 17 00:00:00 2001 +From: Stephan Hartmann <sth...@googlemail.com> +Date: Wed, 15 Jan 2020 20:26:40 +0000 +Subject: [PATCH] Fix shim header generation when unbundling ICU + +listformatter.h was moved from icuuc to icui18n + +Bug: 989153 +Change-Id: I9fcb56f6d5af7787f34ea99b737e2ed8fe741c84 +Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2000142 +Reviewed-by: Lei Zhang <thes...@chromium.org> +Commit-Queue: Lei Zhang <thes...@chromium.org> +Cr-Commit-Position: refs/heads/master@{#732114} +--- + AUTHORS | 1 + + build/linux/unbundle/icu.gn | 2 +- + 2 files changed, 2 insertions(+), 1 deletion(-) + +diff --git a/AUTHORS b/AUTHORS +index 7523e483aae..1618fddc633 100644 +--- a/AUTHORS ++++ b/AUTHORS +@@ -891,6 +891,7 @@ Soren Dreijer <dreijer...@gmail.com> + Sreerenj Balachandran <sreerenj.balachand...@intel.com> + Srirama Chandra Sekhar Mogali <sriram...@samsung.com> + Staphany Park <stapark...@gmail.com> ++Stephan Hartmann <sth...@googlemail.com> + Stephen Searles <stephen.sear...@gmail.com> + Steve Sanders <st...@zanderz.com> + Steven Pennington <sp...@engr.uvic.ca> +diff --git a/build/linux/unbundle/icu.gn b/build/linux/unbundle/icu.gn +index 923bd7f5ac3..e77bc43db87 100644 +--- a/build/linux/unbundle/icu.gn ++++ b/build/linux/unbundle/icu.gn +@@ -92,6 +92,7 @@ shim_headers("icui18n_shim") { + "unicode/fpositer.h", + "unicode/gender.h", + "unicode/gregocal.h", ++ "unicode/listformatter.h", + "unicode/measfmt.h", + "unicode/measunit.h", + "unicode/measure.h", +@@ -174,7 +175,6 @@ shim_headers("icuuc_shim") { + "unicode/icudataver.h", + "unicode/icuplug.h", + "unicode/idna.h", +- "unicode/listformatter.h", + "unicode/localpointer.h", + "unicode/locdspnm.h", + "unicode/locid.h", Deleted: move-RemoteTreeNode-declaration.patch =================================================================== --- move-RemoteTreeNode-declaration.patch 2020-03-18 06:50:59 UTC (rev 377833) +++ move-RemoteTreeNode-declaration.patch 2020-03-18 06:51:12 UTC (rev 377834) @@ -1,237 +0,0 @@ -From cdf3e81ff49b200213d67d65558f2919222b60ab Mon Sep 17 00:00:00 2001 -From: Raphael Kubo da Costa <raphael.kubo.da.co...@intel.com> -Date: Mon, 16 Dec 2019 11:39:11 +0000 -Subject: [PATCH] BookmarkModelMerger: Move RemoteTreeNode declaration to - header. - -This fixes the build with libstdc++ after commit 8f5dad93e58 ("Fix CHECK -failure due to untracked local nodes"): - -/usr/lib/gcc/x86_64-redhat-linux/9/../../../../include/c++/9/bits/stl_pair.h:215:11: error: field has incomplete type 'sync_bookmarks::BookmarkModelMerger::RemoteTreeNode' - _T2 second; /// @c second is a copy of the second object - ^ -/usr/lib/gcc/x86_64-redhat-linux/9/../../../../include/c++/9/ext/aligned_buffer.h:91:28: note: in instantiation of template class 'std::pair<const std::__cxx11::basic_string<char>, sync_bookmarks::BookmarkModelMerger::RemoteTreeNode>' requested here - : std::aligned_storage<sizeof(_Tp), __alignof__(_Tp)> - ^ -/usr/lib/gcc/x86_64-redhat-linux/9/../../../../include/c++/9/bits/hashtable_policy.h:233:43: note: in instantiation of template class '__gnu_cxx::__aligned_buffer<std::pair<const std::__cxx11::basic_string<char>, sync_bookmarks::BookmarkModelMerger::RemoteTreeNode> >' requested here - __gnu_cxx::__aligned_buffer<_Value> _M_storage; - ^ -/usr/lib/gcc/x86_64-redhat-linux/9/../../../../include/c++/9/bits/hashtable_policy.h:264:39: note: in instantiation of template class 'std::__detail::_Hash_node_value_base<std::pair<const std::__cxx11::basic_string<char>, sync_bookmarks::BookmarkModelMerger::RemoteTreeNode> >' requested here - struct _Hash_node<_Value, true> : _Hash_node_value_base<_Value> - ^ -/usr/lib/gcc/x86_64-redhat-linux/9/../../../../include/c++/9/bits/hashtable_policy.h:2028:25: note: in instantiation of template class 'std::__detail::_Hash_node<std::pair<const std::__cxx11::basic_string<char>, sync_bookmarks::BookmarkModelMerger::RemoteTreeNode>, true>' requested here - rebind_traits<typename __node_type::value_type>; - ^ -/usr/lib/gcc/x86_64-redhat-linux/9/../../../../include/c++/9/bits/hashtable.h:184:15: note: in instantiation of template class 'std::__detail::_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::pair<const std::__cxx11::basic_string<char>, sync_bookmarks::BookmarkModelMerger::RemoteTreeNode>, true> > > -' requested here - private __detail::_Hashtable_alloc< - ^ -/usr/lib/gcc/x86_64-redhat-linux/9/../../../../include/c++/9/bits/unordered_map.h:105:18: note: in instantiation of template class 'std::_Hashtable<std::__cxx11::basic_string<char>, std::pair<const std::__cxx11::basic_string<char>, sync_bookmarks::BookmarkModelMerger::RemoteTreeNode>, std::allocator<std::pair<con -st std::__cxx11::basic_string<char>, sync_bookmarks::BookmarkModelMerger::RemoteTreeNode> >, std::__detail::_Select1st, std::equal_to<std::__cxx11::basic_string<char> >, std::hash<std::string>, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__deta -il::_Hashtable_traits<true, false, true> >' requested here - _Hashtable _M_h; - ^ -../../components/sync_bookmarks/bookmark_model_merger.h:146:22: note: in instantiation of template class 'std::unordered_map<std::__cxx11::basic_string<char>, sync_bookmarks::BookmarkModelMerger::RemoteTreeNode, std::hash<std::string>, std::equal_to<std::__cxx11::basic_string<char> >, std::allocator<std::pair<con -st std::__cxx11::basic_string<char>, sync_bookmarks::BookmarkModelMerger::RemoteTreeNode> > >' requested here - const RemoteForest remote_forest_; - ^ -../../components/sync_bookmarks/bookmark_model_merger.h:53:9: note: forward declaration of 'sync_bookmarks::BookmarkModelMerger::RemoteTreeNode' - class RemoteTreeNode; - ^ - -Essentially, the problem is that libstdc++'s std::unordered_map<T, U> -implementation requires both T and U to be fully declared. I raised the -problem in https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92770, and GCC's -position is that we are relying on undefined behavior according to the C++ -standard (https://eel.is/c++draft/requirements#res.on.functions-2.5). - -Bug: 957519 -Change-Id: Ife7e435e516932a795bfbe05b2c910c3272878f0 -Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1960156 -Commit-Queue: Raphael Kubo da Costa <raphael.kubo.da.co...@intel.com> -Reviewed-by: Mikel Astiz <mas...@chromium.org> -Auto-Submit: Raphael Kubo da Costa <raphael.kubo.da.co...@intel.com> -Cr-Commit-Position: refs/heads/master@{#725070} ---- - .../sync_bookmarks/bookmark_model_merger.cc | 89 +++++++------------ - .../sync_bookmarks/bookmark_model_merger.h | 48 +++++++++- - 2 files changed, 80 insertions(+), 57 deletions(-) - -diff --git a/components/sync_bookmarks/bookmark_model_merger.cc b/components/sync_bookmarks/bookmark_model_merger.cc -index eae153eff95..579848ee664 100644 ---- a/components/sync_bookmarks/bookmark_model_merger.cc -+++ b/components/sync_bookmarks/bookmark_model_merger.cc -@@ -5,7 +5,6 @@ - #include "components/sync_bookmarks/bookmark_model_merger.h" - - #include <algorithm> --#include <memory> - #include <set> - #include <string> - #include <utility> -@@ -205,66 +204,44 @@ UpdatesPerParentId GroupValidUpdatesByParentId( - - } // namespace - --class BookmarkModelMerger::RemoteTreeNode final { -- public: -- // Constructs a tree given |update| as root and recursively all descendants by -- // traversing |*updates_per_parent_id|. |update| and |updates_per_parent_id| -- // must not be null. All updates |*updates_per_parent_id| must represent valid -- // updates. Updates corresponding from descendant nodes are moved away from -- // |*updates_per_parent_id|. -- static RemoteTreeNode BuildTree( -- std::unique_ptr<syncer::UpdateResponseData> update, -- UpdatesPerParentId* updates_per_parent_id); -- -- ~RemoteTreeNode() = default; -- -- // Allow moves, useful during construction. -- RemoteTreeNode(RemoteTreeNode&&) = default; -- RemoteTreeNode& operator=(RemoteTreeNode&&) = default; -- -- const syncer::EntityData& entity() const { return *update_->entity; } -- int64_t response_version() const { return update_->response_version; } -- -- // Direct children nodes, sorted by ascending unique position. These are -- // guaranteed to be valid updates (e.g. IsValidBookmarkSpecifics()). -- const std::vector<RemoteTreeNode>& children() const { return children_; } -- -- // Recursively emplaces all GUIDs (this node and descendants) into -- // |*guid_to_remote_node_map|, which must not be null. -- void EmplaceSelfAndDescendantsByGUID( -- std::unordered_map<std::string, const RemoteTreeNode*>* -- guid_to_remote_node_map) const { -- DCHECK(guid_to_remote_node_map); -- -- const std::string& guid = entity().specifics.bookmark().guid(); -- if (!guid.empty()) { -- DCHECK(base::IsValidGUID(guid)); -- -- // Duplicate GUIDs have been sorted out before. -- bool success = guid_to_remote_node_map->emplace(guid, this).second; -- DCHECK(success); -- } -+BookmarkModelMerger::RemoteTreeNode::RemoteTreeNode() = default; - -- for (const RemoteTreeNode& child : children_) { -- child.EmplaceSelfAndDescendantsByGUID(guid_to_remote_node_map); -- } -- } -+BookmarkModelMerger::RemoteTreeNode::~RemoteTreeNode() = default; -+ -+BookmarkModelMerger::RemoteTreeNode::RemoteTreeNode( -+ BookmarkModelMerger::RemoteTreeNode&&) = default; -+BookmarkModelMerger::RemoteTreeNode& BookmarkModelMerger::RemoteTreeNode:: -+operator=(BookmarkModelMerger::RemoteTreeNode&&) = default; -+ -+void BookmarkModelMerger::RemoteTreeNode::EmplaceSelfAndDescendantsByGUID( -+ std::unordered_map<std::string, const RemoteTreeNode*>* -+ guid_to_remote_node_map) const { -+ DCHECK(guid_to_remote_node_map); -+ -+ const std::string& guid = entity().specifics.bookmark().guid(); -+ if (!guid.empty()) { -+ DCHECK(base::IsValidGUID(guid)); - -- private: -- static bool UniquePositionLessThan(const RemoteTreeNode& lhs, -- const RemoteTreeNode& rhs) { -- const syncer::UniquePosition a_pos = -- syncer::UniquePosition::FromProto(lhs.entity().unique_position); -- const syncer::UniquePosition b_pos = -- syncer::UniquePosition::FromProto(rhs.entity().unique_position); -- return a_pos.LessThan(b_pos); -+ // Duplicate GUIDs have been sorted out before. -+ bool success = guid_to_remote_node_map->emplace(guid, this).second; -+ DCHECK(success); - } - -- RemoteTreeNode() = default; -+ for (const RemoteTreeNode& child : children_) { -+ child.EmplaceSelfAndDescendantsByGUID(guid_to_remote_node_map); -+ } -+} - -- std::unique_ptr<syncer::UpdateResponseData> update_; -- std::vector<RemoteTreeNode> children_; --}; -+// static -+bool BookmarkModelMerger::RemoteTreeNode::UniquePositionLessThan( -+ const RemoteTreeNode& lhs, -+ const RemoteTreeNode& rhs) { -+ const syncer::UniquePosition a_pos = -+ syncer::UniquePosition::FromProto(lhs.entity().unique_position); -+ const syncer::UniquePosition b_pos = -+ syncer::UniquePosition::FromProto(rhs.entity().unique_position); -+ return a_pos.LessThan(b_pos); -+} - - // static - BookmarkModelMerger::RemoteTreeNode -diff --git a/components/sync_bookmarks/bookmark_model_merger.h b/components/sync_bookmarks/bookmark_model_merger.h -index 9b592000dc5..bf0783ecf8e 100644 ---- a/components/sync_bookmarks/bookmark_model_merger.h -+++ b/components/sync_bookmarks/bookmark_model_merger.h -@@ -5,6 +5,7 @@ - #ifndef COMPONENTS_SYNC_BOOKMARKS_BOOKMARK_MODEL_MERGER_H_ - #define COMPONENTS_SYNC_BOOKMARKS_BOOKMARK_MODEL_MERGER_H_ - -+#include <memory> - #include <string> - #include <unordered_map> - #include <vector> -@@ -50,7 +51,52 @@ class BookmarkModelMerger { - - private: - // Internal representation of a remote tree, composed of nodes. -- class RemoteTreeNode; -+ class RemoteTreeNode final { -+ private: -+ using UpdatesPerParentId = -+ std::unordered_map<base::StringPiece, -+ syncer::UpdateResponseDataList, -+ base::StringPieceHash>; -+ -+ public: -+ // Constructs a tree given |update| as root and recursively all descendants -+ // by traversing |*updates_per_parent_id|. |update| and -+ // |updates_per_parent_id| must not be null. All updates -+ // |*updates_per_parent_id| must represent valid updates. Updates -+ // corresponding from descendant nodes are moved away from -+ // |*updates_per_parent_id|. -+ static RemoteTreeNode BuildTree( -+ std::unique_ptr<syncer::UpdateResponseData> update, -+ UpdatesPerParentId* updates_per_parent_id); -+ -+ ~RemoteTreeNode(); -+ -+ // Allow moves, useful during construction. -+ RemoteTreeNode(RemoteTreeNode&&); -+ RemoteTreeNode& operator=(RemoteTreeNode&&); -+ -+ const syncer::EntityData& entity() const { return *update_->entity; } -+ int64_t response_version() const { return update_->response_version; } -+ -+ // Direct children nodes, sorted by ascending unique position. These are -+ // guaranteed to be valid updates (e.g. IsValidBookmarkSpecifics()). -+ const std::vector<RemoteTreeNode>& children() const { return children_; } -+ -+ // Recursively emplaces all GUIDs (this node and descendants) into -+ // |*guid_to_remote_node_map|, which must not be null. -+ void EmplaceSelfAndDescendantsByGUID( -+ std::unordered_map<std::string, const RemoteTreeNode*>* -+ guid_to_remote_node_map) const; -+ -+ private: -+ static bool UniquePositionLessThan(const RemoteTreeNode& lhs, -+ const RemoteTreeNode& rhs); -+ -+ RemoteTreeNode(); -+ -+ std::unique_ptr<syncer::UpdateResponseData> update_; -+ std::vector<RemoteTreeNode> children_; -+ }; - - // A forest composed of multiple trees where the root of each tree represents - // a permanent node, keyed by server-defined unique tag of the root. Copied: chromium/repos/extra-x86_64/move-RemoteTreeNode-declaration.patch (from rev 377833, chromium/trunk/move-RemoteTreeNode-declaration.patch) =================================================================== --- move-RemoteTreeNode-declaration.patch (rev 0) +++ move-RemoteTreeNode-declaration.patch 2020-03-18 06:51:12 UTC (rev 377834) @@ -0,0 +1,237 @@ +From cdf3e81ff49b200213d67d65558f2919222b60ab Mon Sep 17 00:00:00 2001 +From: Raphael Kubo da Costa <raphael.kubo.da.co...@intel.com> +Date: Mon, 16 Dec 2019 11:39:11 +0000 +Subject: [PATCH] BookmarkModelMerger: Move RemoteTreeNode declaration to + header. + +This fixes the build with libstdc++ after commit 8f5dad93e58 ("Fix CHECK +failure due to untracked local nodes"): + +/usr/lib/gcc/x86_64-redhat-linux/9/../../../../include/c++/9/bits/stl_pair.h:215:11: error: field has incomplete type 'sync_bookmarks::BookmarkModelMerger::RemoteTreeNode' + _T2 second; /// @c second is a copy of the second object + ^ +/usr/lib/gcc/x86_64-redhat-linux/9/../../../../include/c++/9/ext/aligned_buffer.h:91:28: note: in instantiation of template class 'std::pair<const std::__cxx11::basic_string<char>, sync_bookmarks::BookmarkModelMerger::RemoteTreeNode>' requested here + : std::aligned_storage<sizeof(_Tp), __alignof__(_Tp)> + ^ +/usr/lib/gcc/x86_64-redhat-linux/9/../../../../include/c++/9/bits/hashtable_policy.h:233:43: note: in instantiation of template class '__gnu_cxx::__aligned_buffer<std::pair<const std::__cxx11::basic_string<char>, sync_bookmarks::BookmarkModelMerger::RemoteTreeNode> >' requested here + __gnu_cxx::__aligned_buffer<_Value> _M_storage; + ^ +/usr/lib/gcc/x86_64-redhat-linux/9/../../../../include/c++/9/bits/hashtable_policy.h:264:39: note: in instantiation of template class 'std::__detail::_Hash_node_value_base<std::pair<const std::__cxx11::basic_string<char>, sync_bookmarks::BookmarkModelMerger::RemoteTreeNode> >' requested here + struct _Hash_node<_Value, true> : _Hash_node_value_base<_Value> + ^ +/usr/lib/gcc/x86_64-redhat-linux/9/../../../../include/c++/9/bits/hashtable_policy.h:2028:25: note: in instantiation of template class 'std::__detail::_Hash_node<std::pair<const std::__cxx11::basic_string<char>, sync_bookmarks::BookmarkModelMerger::RemoteTreeNode>, true>' requested here + rebind_traits<typename __node_type::value_type>; + ^ +/usr/lib/gcc/x86_64-redhat-linux/9/../../../../include/c++/9/bits/hashtable.h:184:15: note: in instantiation of template class 'std::__detail::_Hashtable_alloc<std::allocator<std::__detail::_Hash_node<std::pair<const std::__cxx11::basic_string<char>, sync_bookmarks::BookmarkModelMerger::RemoteTreeNode>, true> > > +' requested here + private __detail::_Hashtable_alloc< + ^ +/usr/lib/gcc/x86_64-redhat-linux/9/../../../../include/c++/9/bits/unordered_map.h:105:18: note: in instantiation of template class 'std::_Hashtable<std::__cxx11::basic_string<char>, std::pair<const std::__cxx11::basic_string<char>, sync_bookmarks::BookmarkModelMerger::RemoteTreeNode>, std::allocator<std::pair<con +st std::__cxx11::basic_string<char>, sync_bookmarks::BookmarkModelMerger::RemoteTreeNode> >, std::__detail::_Select1st, std::equal_to<std::__cxx11::basic_string<char> >, std::hash<std::string>, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__deta +il::_Hashtable_traits<true, false, true> >' requested here + _Hashtable _M_h; + ^ +../../components/sync_bookmarks/bookmark_model_merger.h:146:22: note: in instantiation of template class 'std::unordered_map<std::__cxx11::basic_string<char>, sync_bookmarks::BookmarkModelMerger::RemoteTreeNode, std::hash<std::string>, std::equal_to<std::__cxx11::basic_string<char> >, std::allocator<std::pair<con +st std::__cxx11::basic_string<char>, sync_bookmarks::BookmarkModelMerger::RemoteTreeNode> > >' requested here + const RemoteForest remote_forest_; + ^ +../../components/sync_bookmarks/bookmark_model_merger.h:53:9: note: forward declaration of 'sync_bookmarks::BookmarkModelMerger::RemoteTreeNode' + class RemoteTreeNode; + ^ + +Essentially, the problem is that libstdc++'s std::unordered_map<T, U> +implementation requires both T and U to be fully declared. I raised the +problem in https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92770, and GCC's +position is that we are relying on undefined behavior according to the C++ +standard (https://eel.is/c++draft/requirements#res.on.functions-2.5). + +Bug: 957519 +Change-Id: Ife7e435e516932a795bfbe05b2c910c3272878f0 +Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1960156 +Commit-Queue: Raphael Kubo da Costa <raphael.kubo.da.co...@intel.com> +Reviewed-by: Mikel Astiz <mas...@chromium.org> +Auto-Submit: Raphael Kubo da Costa <raphael.kubo.da.co...@intel.com> +Cr-Commit-Position: refs/heads/master@{#725070} +--- + .../sync_bookmarks/bookmark_model_merger.cc | 89 +++++++------------ + .../sync_bookmarks/bookmark_model_merger.h | 48 +++++++++- + 2 files changed, 80 insertions(+), 57 deletions(-) + +diff --git a/components/sync_bookmarks/bookmark_model_merger.cc b/components/sync_bookmarks/bookmark_model_merger.cc +index eae153eff95..579848ee664 100644 +--- a/components/sync_bookmarks/bookmark_model_merger.cc ++++ b/components/sync_bookmarks/bookmark_model_merger.cc +@@ -5,7 +5,6 @@ + #include "components/sync_bookmarks/bookmark_model_merger.h" + + #include <algorithm> +-#include <memory> + #include <set> + #include <string> + #include <utility> +@@ -205,66 +204,44 @@ UpdatesPerParentId GroupValidUpdatesByParentId( + + } // namespace + +-class BookmarkModelMerger::RemoteTreeNode final { +- public: +- // Constructs a tree given |update| as root and recursively all descendants by +- // traversing |*updates_per_parent_id|. |update| and |updates_per_parent_id| +- // must not be null. All updates |*updates_per_parent_id| must represent valid +- // updates. Updates corresponding from descendant nodes are moved away from +- // |*updates_per_parent_id|. +- static RemoteTreeNode BuildTree( +- std::unique_ptr<syncer::UpdateResponseData> update, +- UpdatesPerParentId* updates_per_parent_id); +- +- ~RemoteTreeNode() = default; +- +- // Allow moves, useful during construction. +- RemoteTreeNode(RemoteTreeNode&&) = default; +- RemoteTreeNode& operator=(RemoteTreeNode&&) = default; +- +- const syncer::EntityData& entity() const { return *update_->entity; } +- int64_t response_version() const { return update_->response_version; } +- +- // Direct children nodes, sorted by ascending unique position. These are +- // guaranteed to be valid updates (e.g. IsValidBookmarkSpecifics()). +- const std::vector<RemoteTreeNode>& children() const { return children_; } +- +- // Recursively emplaces all GUIDs (this node and descendants) into +- // |*guid_to_remote_node_map|, which must not be null. +- void EmplaceSelfAndDescendantsByGUID( +- std::unordered_map<std::string, const RemoteTreeNode*>* +- guid_to_remote_node_map) const { +- DCHECK(guid_to_remote_node_map); +- +- const std::string& guid = entity().specifics.bookmark().guid(); +- if (!guid.empty()) { +- DCHECK(base::IsValidGUID(guid)); +- +- // Duplicate GUIDs have been sorted out before. +- bool success = guid_to_remote_node_map->emplace(guid, this).second; +- DCHECK(success); +- } ++BookmarkModelMerger::RemoteTreeNode::RemoteTreeNode() = default; + +- for (const RemoteTreeNode& child : children_) { +- child.EmplaceSelfAndDescendantsByGUID(guid_to_remote_node_map); +- } +- } ++BookmarkModelMerger::RemoteTreeNode::~RemoteTreeNode() = default; ++ ++BookmarkModelMerger::RemoteTreeNode::RemoteTreeNode( ++ BookmarkModelMerger::RemoteTreeNode&&) = default; ++BookmarkModelMerger::RemoteTreeNode& BookmarkModelMerger::RemoteTreeNode:: ++operator=(BookmarkModelMerger::RemoteTreeNode&&) = default; ++ ++void BookmarkModelMerger::RemoteTreeNode::EmplaceSelfAndDescendantsByGUID( ++ std::unordered_map<std::string, const RemoteTreeNode*>* ++ guid_to_remote_node_map) const { ++ DCHECK(guid_to_remote_node_map); ++ ++ const std::string& guid = entity().specifics.bookmark().guid(); ++ if (!guid.empty()) { ++ DCHECK(base::IsValidGUID(guid)); + +- private: +- static bool UniquePositionLessThan(const RemoteTreeNode& lhs, +- const RemoteTreeNode& rhs) { +- const syncer::UniquePosition a_pos = +- syncer::UniquePosition::FromProto(lhs.entity().unique_position); +- const syncer::UniquePosition b_pos = +- syncer::UniquePosition::FromProto(rhs.entity().unique_position); +- return a_pos.LessThan(b_pos); ++ // Duplicate GUIDs have been sorted out before. ++ bool success = guid_to_remote_node_map->emplace(guid, this).second; ++ DCHECK(success); + } + +- RemoteTreeNode() = default; ++ for (const RemoteTreeNode& child : children_) { ++ child.EmplaceSelfAndDescendantsByGUID(guid_to_remote_node_map); ++ } ++} + +- std::unique_ptr<syncer::UpdateResponseData> update_; +- std::vector<RemoteTreeNode> children_; +-}; ++// static ++bool BookmarkModelMerger::RemoteTreeNode::UniquePositionLessThan( ++ const RemoteTreeNode& lhs, ++ const RemoteTreeNode& rhs) { ++ const syncer::UniquePosition a_pos = ++ syncer::UniquePosition::FromProto(lhs.entity().unique_position); ++ const syncer::UniquePosition b_pos = ++ syncer::UniquePosition::FromProto(rhs.entity().unique_position); ++ return a_pos.LessThan(b_pos); ++} + + // static + BookmarkModelMerger::RemoteTreeNode +diff --git a/components/sync_bookmarks/bookmark_model_merger.h b/components/sync_bookmarks/bookmark_model_merger.h +index 9b592000dc5..bf0783ecf8e 100644 +--- a/components/sync_bookmarks/bookmark_model_merger.h ++++ b/components/sync_bookmarks/bookmark_model_merger.h +@@ -5,6 +5,7 @@ + #ifndef COMPONENTS_SYNC_BOOKMARKS_BOOKMARK_MODEL_MERGER_H_ + #define COMPONENTS_SYNC_BOOKMARKS_BOOKMARK_MODEL_MERGER_H_ + ++#include <memory> + #include <string> + #include <unordered_map> + #include <vector> +@@ -50,7 +51,52 @@ class BookmarkModelMerger { + + private: + // Internal representation of a remote tree, composed of nodes. +- class RemoteTreeNode; ++ class RemoteTreeNode final { ++ private: ++ using UpdatesPerParentId = ++ std::unordered_map<base::StringPiece, ++ syncer::UpdateResponseDataList, ++ base::StringPieceHash>; ++ ++ public: ++ // Constructs a tree given |update| as root and recursively all descendants ++ // by traversing |*updates_per_parent_id|. |update| and ++ // |updates_per_parent_id| must not be null. All updates ++ // |*updates_per_parent_id| must represent valid updates. Updates ++ // corresponding from descendant nodes are moved away from ++ // |*updates_per_parent_id|. ++ static RemoteTreeNode BuildTree( ++ std::unique_ptr<syncer::UpdateResponseData> update, ++ UpdatesPerParentId* updates_per_parent_id); ++ ++ ~RemoteTreeNode(); ++ ++ // Allow moves, useful during construction. ++ RemoteTreeNode(RemoteTreeNode&&); ++ RemoteTreeNode& operator=(RemoteTreeNode&&); ++ ++ const syncer::EntityData& entity() const { return *update_->entity; } ++ int64_t response_version() const { return update_->response_version; } ++ ++ // Direct children nodes, sorted by ascending unique position. These are ++ // guaranteed to be valid updates (e.g. IsValidBookmarkSpecifics()). ++ const std::vector<RemoteTreeNode>& children() const { return children_; } ++ ++ // Recursively emplaces all GUIDs (this node and descendants) into ++ // |*guid_to_remote_node_map|, which must not be null. ++ void EmplaceSelfAndDescendantsByGUID( ++ std::unordered_map<std::string, const RemoteTreeNode*>* ++ guid_to_remote_node_map) const; ++ ++ private: ++ static bool UniquePositionLessThan(const RemoteTreeNode& lhs, ++ const RemoteTreeNode& rhs); ++ ++ RemoteTreeNode(); ++ ++ std::unique_ptr<syncer::UpdateResponseData> update_; ++ std::vector<RemoteTreeNode> children_; ++ }; + + // A forest composed of multiple trees where the root of each tree represents + // a permanent node, keyed by server-defined unique tag of the root. Deleted: rebuild-Linux-frame-button-cache-when-activation.patch =================================================================== --- rebuild-Linux-frame-button-cache-when-activation.patch 2020-03-18 06:50:59 UTC (rev 377833) +++ rebuild-Linux-frame-button-cache-when-activation.patch 2020-03-18 06:51:12 UTC (rev 377834) @@ -1,62 +0,0 @@ -From d10f885b9327399be9348b780967ebd6b7f2c4bc Mon Sep 17 00:00:00 2001 -From: Tom Anderson <thomasander...@chromium.org> -Date: Fri, 7 Feb 2020 22:44:54 +0000 -Subject: [PATCH] Rebuild Linux frame button cache when activation state - changes - -This fixes an issue where the frame buttons would always render in an -inactive state on Linux (see repro steps in bug 1049258). - -Bug: 1049258 -R=sky -CC=pkasting - -Change-Id: Ic5af33199003e1d1cdf6cedf506e32388ea11fa9 -Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2044538 -Auto-Submit: Thomas Anderson <thomasander...@chromium.org> -Commit-Queue: Scott Violet <s...@chromium.org> -Reviewed-by: Scott Violet <s...@chromium.org> -Cr-Commit-Position: refs/heads/master@{#739585} ---- - .../ui/views/frame/desktop_linux_browser_frame_view.cc | 6 +++--- - .../desktop_aura/desktop_window_tree_host_platform.cc | 3 +++ - 2 files changed, 6 insertions(+), 3 deletions(-) - -diff --git a/chrome/browser/ui/views/frame/desktop_linux_browser_frame_view.cc b/chrome/browser/ui/views/frame/desktop_linux_browser_frame_view.cc -index 954e776057f..4f579955675 100644 ---- a/chrome/browser/ui/views/frame/desktop_linux_browser_frame_view.cc -+++ b/chrome/browser/ui/views/frame/desktop_linux_browser_frame_view.cc -@@ -22,13 +22,13 @@ DesktopLinuxBrowserFrameView::DesktopLinuxBrowserFrameView( - : OpaqueBrowserFrameView(frame, browser_view, layout), - nav_button_provider_(std::move(nav_button_provider)) {} - --DesktopLinuxBrowserFrameView::~DesktopLinuxBrowserFrameView() {} -+DesktopLinuxBrowserFrameView::~DesktopLinuxBrowserFrameView() = default; - - void DesktopLinuxBrowserFrameView::Layout() { - // Calling MaybeUpdateCachedFrameButtonImages() from Layout() is sufficient to - // catch all cases that could update the appearance, since -- // DesktopWindowTreeHostPlatform::OnWindowStateChanged() does a layout any -- // time any properties change. -+ // DesktopWindowTreeHostPlatform::On{Window,Activation}StateChanged() does a -+ // layout any time the maximized and activation state changes, respectively. - MaybeUpdateCachedFrameButtonImages(); - OpaqueBrowserFrameView::Layout(); - } -diff --git a/ui/views/widget/desktop_aura/desktop_window_tree_host_platform.cc b/ui/views/widget/desktop_aura/desktop_window_tree_host_platform.cc -index 9c695d8e5b1..9662f19aa90 100644 ---- a/ui/views/widget/desktop_aura/desktop_window_tree_host_platform.cc -+++ b/ui/views/widget/desktop_aura/desktop_window_tree_host_platform.cc -@@ -677,9 +677,12 @@ void DesktopWindowTreeHostPlatform::OnCloseRequest() { - } - - void DesktopWindowTreeHostPlatform::OnActivationChanged(bool active) { -+ if (is_active_ == active) -+ return; - is_active_ = active; - aura::WindowTreeHostPlatform::OnActivationChanged(active); - desktop_native_widget_aura_->HandleActivationChanged(active); -+ ScheduleRelayout(); - } - - base::Optional<gfx::Size> Copied: chromium/repos/extra-x86_64/rebuild-Linux-frame-button-cache-when-activation.patch (from rev 377833, chromium/trunk/rebuild-Linux-frame-button-cache-when-activation.patch) =================================================================== --- rebuild-Linux-frame-button-cache-when-activation.patch (rev 0) +++ rebuild-Linux-frame-button-cache-when-activation.patch 2020-03-18 06:51:12 UTC (rev 377834) @@ -0,0 +1,62 @@ +From d10f885b9327399be9348b780967ebd6b7f2c4bc Mon Sep 17 00:00:00 2001 +From: Tom Anderson <thomasander...@chromium.org> +Date: Fri, 7 Feb 2020 22:44:54 +0000 +Subject: [PATCH] Rebuild Linux frame button cache when activation state + changes + +This fixes an issue where the frame buttons would always render in an +inactive state on Linux (see repro steps in bug 1049258). + +Bug: 1049258 +R=sky +CC=pkasting + +Change-Id: Ic5af33199003e1d1cdf6cedf506e32388ea11fa9 +Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2044538 +Auto-Submit: Thomas Anderson <thomasander...@chromium.org> +Commit-Queue: Scott Violet <s...@chromium.org> +Reviewed-by: Scott Violet <s...@chromium.org> +Cr-Commit-Position: refs/heads/master@{#739585} +--- + .../ui/views/frame/desktop_linux_browser_frame_view.cc | 6 +++--- + .../desktop_aura/desktop_window_tree_host_platform.cc | 3 +++ + 2 files changed, 6 insertions(+), 3 deletions(-) + +diff --git a/chrome/browser/ui/views/frame/desktop_linux_browser_frame_view.cc b/chrome/browser/ui/views/frame/desktop_linux_browser_frame_view.cc +index 954e776057f..4f579955675 100644 +--- a/chrome/browser/ui/views/frame/desktop_linux_browser_frame_view.cc ++++ b/chrome/browser/ui/views/frame/desktop_linux_browser_frame_view.cc +@@ -22,13 +22,13 @@ DesktopLinuxBrowserFrameView::DesktopLinuxBrowserFrameView( + : OpaqueBrowserFrameView(frame, browser_view, layout), + nav_button_provider_(std::move(nav_button_provider)) {} + +-DesktopLinuxBrowserFrameView::~DesktopLinuxBrowserFrameView() {} ++DesktopLinuxBrowserFrameView::~DesktopLinuxBrowserFrameView() = default; + + void DesktopLinuxBrowserFrameView::Layout() { + // Calling MaybeUpdateCachedFrameButtonImages() from Layout() is sufficient to + // catch all cases that could update the appearance, since +- // DesktopWindowTreeHostPlatform::OnWindowStateChanged() does a layout any +- // time any properties change. ++ // DesktopWindowTreeHostPlatform::On{Window,Activation}StateChanged() does a ++ // layout any time the maximized and activation state changes, respectively. + MaybeUpdateCachedFrameButtonImages(); + OpaqueBrowserFrameView::Layout(); + } +diff --git a/ui/views/widget/desktop_aura/desktop_window_tree_host_platform.cc b/ui/views/widget/desktop_aura/desktop_window_tree_host_platform.cc +index 9c695d8e5b1..9662f19aa90 100644 +--- a/ui/views/widget/desktop_aura/desktop_window_tree_host_platform.cc ++++ b/ui/views/widget/desktop_aura/desktop_window_tree_host_platform.cc +@@ -677,9 +677,12 @@ void DesktopWindowTreeHostPlatform::OnCloseRequest() { + } + + void DesktopWindowTreeHostPlatform::OnActivationChanged(bool active) { ++ if (is_active_ == active) ++ return; + is_active_ = active; + aura::WindowTreeHostPlatform::OnActivationChanged(active); + desktop_native_widget_aura_->HandleActivationChanged(active); ++ ScheduleRelayout(); + } + + base::Optional<gfx::Size> Deleted: remove-verbose-logging-in-local-unique-font-matching.patch =================================================================== --- remove-verbose-logging-in-local-unique-font-matching.patch 2020-03-18 06:50:59 UTC (rev 377833) +++ remove-verbose-logging-in-local-unique-font-matching.patch 2020-03-18 06:51:12 UTC (rev 377834) @@ -1,33 +0,0 @@ -From 8500a125e9fba8bb84d185542155747ee7157ff8 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Dominik=20R=C3=B6ttsches?= <dr...@chromium.org> -Date: Tue, 28 Jan 2020 13:48:07 +0000 -Subject: [PATCH] Remove verbose logging in local unique font matching on Linux -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Fixed: 1005508 -Change-Id: I97f5340c6d1881798ba51effc4a9e5c07de12e52 -Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2023552 -Commit-Queue: Dominik Röttsches <dr...@chromium.org> -Commit-Queue: Kentaro Hara <hara...@chromium.org> -Auto-Submit: Dominik Röttsches <dr...@chromium.org> -Reviewed-by: Kentaro Hara <hara...@chromium.org> -Cr-Commit-Position: refs/heads/master@{#735854} ---- - content/child/child_process_sandbox_support_impl_linux.cc | 2 -- - 1 file changed, 2 deletions(-) - -diff --git a/content/child/child_process_sandbox_support_impl_linux.cc b/content/child/child_process_sandbox_support_impl_linux.cc -index 693ead7f7a5..c97c8fa197b 100644 ---- a/content/child/child_process_sandbox_support_impl_linux.cc -+++ b/content/child/child_process_sandbox_support_impl_linux.cc -@@ -76,8 +76,6 @@ bool WebSandboxSupportLinux::MatchFontByPostscriptNameOrFullFontName( - std::string family_name; - if (!font_loader_->MatchFontByPostscriptNameOrFullFontName(font_unique_name, - &font_identity)) { -- LOG(ERROR) << "FontService unique font name matching request did not " -- "receive a response."; - return false; - } - Copied: chromium/repos/extra-x86_64/remove-verbose-logging-in-local-unique-font-matching.patch (from rev 377833, chromium/trunk/remove-verbose-logging-in-local-unique-font-matching.patch) =================================================================== --- remove-verbose-logging-in-local-unique-font-matching.patch (rev 0) +++ remove-verbose-logging-in-local-unique-font-matching.patch 2020-03-18 06:51:12 UTC (rev 377834) @@ -0,0 +1,33 @@ +From 8500a125e9fba8bb84d185542155747ee7157ff8 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Dominik=20R=C3=B6ttsches?= <dr...@chromium.org> +Date: Tue, 28 Jan 2020 13:48:07 +0000 +Subject: [PATCH] Remove verbose logging in local unique font matching on Linux +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Fixed: 1005508 +Change-Id: I97f5340c6d1881798ba51effc4a9e5c07de12e52 +Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2023552 +Commit-Queue: Dominik Röttsches <dr...@chromium.org> +Commit-Queue: Kentaro Hara <hara...@chromium.org> +Auto-Submit: Dominik Röttsches <dr...@chromium.org> +Reviewed-by: Kentaro Hara <hara...@chromium.org> +Cr-Commit-Position: refs/heads/master@{#735854} +--- + content/child/child_process_sandbox_support_impl_linux.cc | 2 -- + 1 file changed, 2 deletions(-) + +diff --git a/content/child/child_process_sandbox_support_impl_linux.cc b/content/child/child_process_sandbox_support_impl_linux.cc +index 693ead7f7a5..c97c8fa197b 100644 +--- a/content/child/child_process_sandbox_support_impl_linux.cc ++++ b/content/child/child_process_sandbox_support_impl_linux.cc +@@ -76,8 +76,6 @@ bool WebSandboxSupportLinux::MatchFontByPostscriptNameOrFullFontName( + std::string family_name; + if (!font_loader_->MatchFontByPostscriptNameOrFullFontName(font_unique_name, + &font_identity)) { +- LOG(ERROR) << "FontService unique font name matching request did not " +- "receive a response."; + return false; + } + Deleted: rename-Relayout-in-DesktopWindowTreeHostPlatform.patch =================================================================== --- rename-Relayout-in-DesktopWindowTreeHostPlatform.patch 2020-03-18 06:50:59 UTC (rev 377833) +++ rename-Relayout-in-DesktopWindowTreeHostPlatform.patch 2020-03-18 06:51:12 UTC (rev 377834) @@ -1,64 +0,0 @@ -From 5a2cd2409c7d65c019ad9f4595a4e85315857ac4 Mon Sep 17 00:00:00 2001 -From: Tom Anderson <thomasander...@chromium.org> -Date: Mon, 3 Feb 2020 23:18:46 +0000 -Subject: [PATCH] Rename Relayout() in DesktopWindowTreeHostPlatform to - ScheduleRelayout() - -R=sky - -Bug: None -Change-Id: I680cafd25935e59a280e3b2baac754d3d5f13a35 -Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2036553 -Auto-Submit: Thomas Anderson <thomasander...@chromium.org> -Reviewed-by: Scott Violet <s...@chromium.org> -Commit-Queue: Thomas Anderson <thomasander...@chromium.org> -Cr-Commit-Position: refs/heads/master@{#737974} ---- - .../desktop_aura/desktop_window_tree_host_platform.cc | 6 +++--- - .../widget/desktop_aura/desktop_window_tree_host_platform.h | 2 +- - 2 files changed, 4 insertions(+), 4 deletions(-) - -diff --git a/ui/views/widget/desktop_aura/desktop_window_tree_host_platform.cc b/ui/views/widget/desktop_aura/desktop_window_tree_host_platform.cc -index 6c00d49eb3f..9c695d8e5b1 100644 ---- a/ui/views/widget/desktop_aura/desktop_window_tree_host_platform.cc -+++ b/ui/views/widget/desktop_aura/desktop_window_tree_host_platform.cc -@@ -556,7 +556,7 @@ void DesktopWindowTreeHostPlatform::SetFullscreen(bool fullscreen) { - DCHECK_EQ(fullscreen, IsFullscreen()); - - if (IsFullscreen() == fullscreen) -- Relayout(); -+ ScheduleRelayout(); - // Else: the widget will be relaid out either when the window bounds change - // or when |platform_window|'s fullscreen state changes. - } -@@ -669,7 +669,7 @@ void DesktopWindowTreeHostPlatform::OnWindowStateChanged( - // Now that we have different window properties, we may need to relayout the - // window. (The windows code doesn't need this because their window change is - // synchronous.) -- Relayout(); -+ ScheduleRelayout(); - } - - void DesktopWindowTreeHostPlatform::OnCloseRequest() { -@@ -712,7 +712,7 @@ gfx::Rect DesktopWindowTreeHostPlatform::ToPixelRect( - return gfx::ToEnclosingRect(rect_in_pixels); - } - --void DesktopWindowTreeHostPlatform::Relayout() { -+void DesktopWindowTreeHostPlatform::ScheduleRelayout() { - Widget* widget = native_widget_delegate_->AsWidget(); - NonClientView* non_client_view = widget->non_client_view(); - // non_client_view may be NULL, especially during creation. -diff --git a/ui/views/widget/desktop_aura/desktop_window_tree_host_platform.h b/ui/views/widget/desktop_aura/desktop_window_tree_host_platform.h -index 89beb8d2245..75a401e02a7 100644 ---- a/ui/views/widget/desktop_aura/desktop_window_tree_host_platform.h -+++ b/ui/views/widget/desktop_aura/desktop_window_tree_host_platform.h -@@ -129,7 +129,7 @@ class VIEWS_EXPORT DesktopWindowTreeHostPlatform - gfx::Rect ToPixelRect(const gfx::Rect& rect_in_dip) const; - - private: -- void Relayout(); -+ void ScheduleRelayout(); - - Widget* GetWidget(); - const Widget* GetWidget() const; Copied: chromium/repos/extra-x86_64/rename-Relayout-in-DesktopWindowTreeHostPlatform.patch (from rev 377833, chromium/trunk/rename-Relayout-in-DesktopWindowTreeHostPlatform.patch) =================================================================== --- rename-Relayout-in-DesktopWindowTreeHostPlatform.patch (rev 0) +++ rename-Relayout-in-DesktopWindowTreeHostPlatform.patch 2020-03-18 06:51:12 UTC (rev 377834) @@ -0,0 +1,64 @@ +From 5a2cd2409c7d65c019ad9f4595a4e85315857ac4 Mon Sep 17 00:00:00 2001 +From: Tom Anderson <thomasander...@chromium.org> +Date: Mon, 3 Feb 2020 23:18:46 +0000 +Subject: [PATCH] Rename Relayout() in DesktopWindowTreeHostPlatform to + ScheduleRelayout() + +R=sky + +Bug: None +Change-Id: I680cafd25935e59a280e3b2baac754d3d5f13a35 +Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2036553 +Auto-Submit: Thomas Anderson <thomasander...@chromium.org> +Reviewed-by: Scott Violet <s...@chromium.org> +Commit-Queue: Thomas Anderson <thomasander...@chromium.org> +Cr-Commit-Position: refs/heads/master@{#737974} +--- + .../desktop_aura/desktop_window_tree_host_platform.cc | 6 +++--- + .../widget/desktop_aura/desktop_window_tree_host_platform.h | 2 +- + 2 files changed, 4 insertions(+), 4 deletions(-) + +diff --git a/ui/views/widget/desktop_aura/desktop_window_tree_host_platform.cc b/ui/views/widget/desktop_aura/desktop_window_tree_host_platform.cc +index 6c00d49eb3f..9c695d8e5b1 100644 +--- a/ui/views/widget/desktop_aura/desktop_window_tree_host_platform.cc ++++ b/ui/views/widget/desktop_aura/desktop_window_tree_host_platform.cc +@@ -556,7 +556,7 @@ void DesktopWindowTreeHostPlatform::SetFullscreen(bool fullscreen) { + DCHECK_EQ(fullscreen, IsFullscreen()); + + if (IsFullscreen() == fullscreen) +- Relayout(); ++ ScheduleRelayout(); + // Else: the widget will be relaid out either when the window bounds change + // or when |platform_window|'s fullscreen state changes. + } +@@ -669,7 +669,7 @@ void DesktopWindowTreeHostPlatform::OnWindowStateChanged( + // Now that we have different window properties, we may need to relayout the + // window. (The windows code doesn't need this because their window change is + // synchronous.) +- Relayout(); ++ ScheduleRelayout(); + } + + void DesktopWindowTreeHostPlatform::OnCloseRequest() { +@@ -712,7 +712,7 @@ gfx::Rect DesktopWindowTreeHostPlatform::ToPixelRect( + return gfx::ToEnclosingRect(rect_in_pixels); + } + +-void DesktopWindowTreeHostPlatform::Relayout() { ++void DesktopWindowTreeHostPlatform::ScheduleRelayout() { + Widget* widget = native_widget_delegate_->AsWidget(); + NonClientView* non_client_view = widget->non_client_view(); + // non_client_view may be NULL, especially during creation. +diff --git a/ui/views/widget/desktop_aura/desktop_window_tree_host_platform.h b/ui/views/widget/desktop_aura/desktop_window_tree_host_platform.h +index 89beb8d2245..75a401e02a7 100644 +--- a/ui/views/widget/desktop_aura/desktop_window_tree_host_platform.h ++++ b/ui/views/widget/desktop_aura/desktop_window_tree_host_platform.h +@@ -129,7 +129,7 @@ class VIEWS_EXPORT DesktopWindowTreeHostPlatform + gfx::Rect ToPixelRect(const gfx::Rect& rect_in_dip) const; + + private: +- void Relayout(); ++ void ScheduleRelayout(); + + Widget* GetWidget(); + const Widget* GetWidget() const; Deleted: sync-enable-USSPasswords-by-default.patch =================================================================== --- sync-enable-USSPasswords-by-default.patch 2020-03-18 06:50:59 UTC (rev 377833) +++ sync-enable-USSPasswords-by-default.patch 2020-03-18 06:51:12 UTC (rev 377834) @@ -1,28 +0,0 @@ -From eb997db5527c01fd12c321a6abc52b7cff882e50 Mon Sep 17 00:00:00 2001 -From: Mohamed Amir Yosef <ma...@chromium.org> -Date: Thu, 9 Jan 2020 21:22:19 +0000 -Subject: [PATCH] [Sync] Enable USSPasswords by default - -Change-Id: I021cd952d7a2917a8fb7203cabdac612251193df -Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1963804 -Auto-Submit: Mohamed Amir Yosef <ma...@chromium.org> -Reviewed-by: Mikel Astiz <mas...@chromium.org> -Commit-Queue: Mohamed Amir Yosef <ma...@chromium.org> -Cr-Commit-Position: refs/heads/master@{#729902} ---- - components/sync/driver/sync_driver_switches.cc | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/components/sync/driver/sync_driver_switches.cc b/components/sync/driver/sync_driver_switches.cc -index ddff8b91419..999384aa68a 100644 ---- a/components/sync/driver/sync_driver_switches.cc -+++ b/components/sync/driver/sync_driver_switches.cc -@@ -55,7 +55,7 @@ const base::Feature kStopSyncInPausedState{"StopSyncInPausedState", - - // Enable USS implementation of Passwords datatype. - const base::Feature kSyncUSSPasswords{"SyncUSSPasswords", -- base::FEATURE_DISABLED_BY_DEFAULT}; -+ base::FEATURE_ENABLED_BY_DEFAULT}; - - // Enable USS implementation of Nigori datatype. - const base::Feature kSyncUSSNigori{"SyncUSSNigori", Copied: chromium/repos/extra-x86_64/sync-enable-USSPasswords-by-default.patch (from rev 377833, chromium/trunk/sync-enable-USSPasswords-by-default.patch) =================================================================== --- sync-enable-USSPasswords-by-default.patch (rev 0) +++ sync-enable-USSPasswords-by-default.patch 2020-03-18 06:51:12 UTC (rev 377834) @@ -0,0 +1,28 @@ +From eb997db5527c01fd12c321a6abc52b7cff882e50 Mon Sep 17 00:00:00 2001 +From: Mohamed Amir Yosef <ma...@chromium.org> +Date: Thu, 9 Jan 2020 21:22:19 +0000 +Subject: [PATCH] [Sync] Enable USSPasswords by default + +Change-Id: I021cd952d7a2917a8fb7203cabdac612251193df +Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1963804 +Auto-Submit: Mohamed Amir Yosef <ma...@chromium.org> +Reviewed-by: Mikel Astiz <mas...@chromium.org> +Commit-Queue: Mohamed Amir Yosef <ma...@chromium.org> +Cr-Commit-Position: refs/heads/master@{#729902} +--- + components/sync/driver/sync_driver_switches.cc | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/components/sync/driver/sync_driver_switches.cc b/components/sync/driver/sync_driver_switches.cc +index ddff8b91419..999384aa68a 100644 +--- a/components/sync/driver/sync_driver_switches.cc ++++ b/components/sync/driver/sync_driver_switches.cc +@@ -55,7 +55,7 @@ const base::Feature kStopSyncInPausedState{"StopSyncInPausedState", + + // Enable USS implementation of Passwords datatype. + const base::Feature kSyncUSSPasswords{"SyncUSSPasswords", +- base::FEATURE_DISABLED_BY_DEFAULT}; ++ base::FEATURE_ENABLED_BY_DEFAULT}; + + // Enable USS implementation of Nigori datatype. + const base::Feature kSyncUSSNigori{"SyncUSSNigori",