[arch-commits] Commit in chromium/repos/extra-x86_64 (26 files)

Evangelos Foutras foutrelis at archlinux.org
Fri Apr 3 11:26:23 UTC 2020


    Date: Friday, April 3, 2020 @ 11:26:22
  Author: foutrelis
Revision: 379253

archrelease: copy trunk to extra-x86_64

Added:
  chromium/repos/extra-x86_64/PKGBUILD
    (from rev 379252, chromium/trunk/PKGBUILD)
  chromium/repos/extra-x86_64/chromium-skia-harmony.patch
    (from rev 379252, chromium/trunk/chromium-skia-harmony.patch)
  chromium/repos/extra-x86_64/chromium-widevine.patch
    (from rev 379252, chromium/trunk/chromium-widevine.patch)
  chromium/repos/extra-x86_64/chromium.install
    (from rev 379252, chromium/trunk/chromium.install)
  chromium/repos/extra-x86_64/cros-search-service-Include-cmath-for-std-pow.patch
    (from rev 379252, chromium/trunk/cros-search-service-Include-cmath-for-std-pow.patch)
  chromium/repos/extra-x86_64/fix-building-with-system-zlib.patch
    (from rev 379252, chromium/trunk/fix-building-with-system-zlib.patch)
  chromium/repos/extra-x86_64/fix-building-with-unbundled-libxml.patch
    (from rev 379252, chromium/trunk/fix-building-with-unbundled-libxml.patch)
  chromium/repos/extra-x86_64/fix-shim-header-generation-when-unbundling-ICU.patch
    (from rev 379252, chromium/trunk/fix-shim-header-generation-when-unbundling-ICU.patch)
  chromium/repos/extra-x86_64/move-RemoteTreeNode-declaration.patch
    (from rev 379252, chromium/trunk/move-RemoteTreeNode-declaration.patch)
  chromium/repos/extra-x86_64/rebuild-Linux-frame-button-cache-when-activation.patch
    (from rev 379252, 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 379252, chromium/trunk/remove-verbose-logging-in-local-unique-font-matching.patch)
  chromium/repos/extra-x86_64/rename-Relayout-in-DesktopWindowTreeHostPlatform.patch
    (from rev 379252, chromium/trunk/rename-Relayout-in-DesktopWindowTreeHostPlatform.patch)
  chromium/repos/extra-x86_64/sync-enable-USSPasswords-by-default.patch
    (from rev 379252, 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-04-03 11:26:11 UTC (rev 379252)
+++ PKGBUILD	2020-04-03 11:26:22 UTC (rev 379253)
@@ -1,259 +0,0 @@
-# Maintainer: Evangelos Foutras <evangelos at foutrelis.com>
-# Contributor: Pierre Schmitz <pierre at archlinux.de>
-# Contributor: Jan "heftig" Steffens <jan.steffens at gmail.com>
-# Contributor: Daniel J Griffiths <ghost1227 at archlinux.us>
-
-pkgname=chromium
-pkgver=80.0.3987.162
-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=('ac5577162cf10badd2a9c44f97f15c31ebb98bf64b3ff2e98876e55bbbc20e20'
-            '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 379252, chromium/trunk/PKGBUILD)
===================================================================
--- PKGBUILD	                        (rev 0)
+++ PKGBUILD	2020-04-03 11:26:22 UTC (rev 379253)
@@ -0,0 +1,259 @@
+# Maintainer: Evangelos Foutras <evangelos at foutrelis.com>
+# Contributor: Pierre Schmitz <pierre at archlinux.de>
+# Contributor: Jan "heftig" Steffens <jan.steffens at gmail.com>
+# Contributor: Daniel J Griffiths <ghost1227 at archlinux.us>
+
+pkgname=chromium
+pkgver=80.0.3987.163
+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=('b6ddefa9434877a9b923631b7525f7f2f80118dd986ecdac87f2c9f11f237346'
+            '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-04-03 11:26:11 UTC (rev 379252)
+++ chromium-skia-harmony.patch	2020-04-03 11:26:22 UTC (rev 379253)
@@ -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 379252, chromium/trunk/chromium-skia-harmony.patch)
===================================================================
--- chromium-skia-harmony.patch	                        (rev 0)
+++ chromium-skia-harmony.patch	2020-04-03 11:26:22 UTC (rev 379253)
@@ -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-04-03 11:26:11 UTC (rev 379252)
+++ chromium-widevine.patch	2020-04-03 11:26:22 UTC (rev 379253)
@@ -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 379252, chromium/trunk/chromium-widevine.patch)
===================================================================
--- chromium-widevine.patch	                        (rev 0)
+++ chromium-widevine.patch	2020-04-03 11:26:22 UTC (rev 379253)
@@ -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-04-03 11:26:11 UTC (rev 379252)
+++ chromium.install	2020-04-03 11:26:22 UTC (rev 379253)
@@ -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 379252, chromium/trunk/chromium.install)
===================================================================
--- chromium.install	                        (rev 0)
+++ chromium.install	2020-04-03 11:26:22 UTC (rev 379253)
@@ -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-04-03 11:26:11 UTC (rev 379252)
+++ cros-search-service-Include-cmath-for-std-pow.patch	2020-04-03 11:26:22 UTC (rev 379253)
@@ -1,35 +0,0 @@
-From 8273f4d3130e06fd8b6bef87b07c936304b971d9 Mon Sep 17 00:00:00 2001
-From: Raphael Kubo da Costa <raphael.kubo.da.costa at 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.costa at intel.com>
-Reviewed-by: Jia Meng <jiameng at chromium.org>
-Commit-Queue: Raphael Kubo da Costa <raphael.kubo.da.costa at 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 379252, 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-04-03 11:26:22 UTC (rev 379253)
@@ -0,0 +1,35 @@
+From 8273f4d3130e06fd8b6bef87b07c936304b971d9 Mon Sep 17 00:00:00 2001
+From: Raphael Kubo da Costa <raphael.kubo.da.costa at 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.costa at intel.com>
+Reviewed-by: Jia Meng <jiameng at chromium.org>
+Commit-Queue: Raphael Kubo da Costa <raphael.kubo.da.costa at 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-04-03 11:26:11 UTC (rev 379252)
+++ fix-building-with-system-zlib.patch	2020-04-03 11:26:22 UTC (rev 379253)
@@ -1,32 +0,0 @@
-From cda86e34ddadba5f08dea764881bbb6c8ec01e8a Mon Sep 17 00:00:00 2001
-From: Stephan Hartmann <stha09 at 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 <thomasanderson at chromium.org>
-Commit-Queue: Thomas Anderson <thomasanderson at 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 379252, chromium/trunk/fix-building-with-system-zlib.patch)
===================================================================
--- fix-building-with-system-zlib.patch	                        (rev 0)
+++ fix-building-with-system-zlib.patch	2020-04-03 11:26:22 UTC (rev 379253)
@@ -0,0 +1,32 @@
+From cda86e34ddadba5f08dea764881bbb6c8ec01e8a Mon Sep 17 00:00:00 2001
+From: Stephan Hartmann <stha09 at 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 <thomasanderson at chromium.org>
+Commit-Queue: Thomas Anderson <thomasanderson at 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-04-03 11:26:11 UTC (rev 379252)
+++ fix-building-with-unbundled-libxml.patch	2020-04-03 11:26:22 UTC (rev 379253)
@@ -1,127 +0,0 @@
-From d3afade220ddb307e16a6dd4f2b0ec88b2af91e7 Mon Sep 17 00:00:00 2001
-From: Stephan Hartmann <stha09 at 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 <rsesek at chromium.org>
-Reviewed-by: Daniel Cheng <dcheng at chromium.org>
-Reviewed-by: Nico Weber <thakis at chromium.org>
-Commit-Queue: Robert Sesek <rsesek at 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 379252, chromium/trunk/fix-building-with-unbundled-libxml.patch)
===================================================================
--- fix-building-with-unbundled-libxml.patch	                        (rev 0)
+++ fix-building-with-unbundled-libxml.patch	2020-04-03 11:26:22 UTC (rev 379253)
@@ -0,0 +1,127 @@
+From d3afade220ddb307e16a6dd4f2b0ec88b2af91e7 Mon Sep 17 00:00:00 2001
+From: Stephan Hartmann <stha09 at 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 <rsesek at chromium.org>
+Reviewed-by: Daniel Cheng <dcheng at chromium.org>
+Reviewed-by: Nico Weber <thakis at chromium.org>
+Commit-Queue: Robert Sesek <rsesek at 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-04-03 11:26:11 UTC (rev 379252)
+++ fix-shim-header-generation-when-unbundling-ICU.patch	2020-04-03 11:26:22 UTC (rev 379253)
@@ -1,50 +0,0 @@
-From dcad5af090528018599277dc5d7e160fb6b2d68e Mon Sep 17 00:00:00 2001
-From: Stephan Hartmann <stha09 at 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 <thestig at chromium.org>
-Commit-Queue: Lei Zhang <thestig at 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 <dreijerbit at gmail.com>
- Sreerenj Balachandran <sreerenj.balachandran at intel.com>
- Srirama Chandra Sekhar Mogali <srirama.m at samsung.com>
- Staphany Park <stapark008 at gmail.com>
-+Stephan Hartmann <stha09 at googlemail.com>
- Stephen Searles <stephen.searles at gmail.com>
- Steve Sanders <steve at zanderz.com>
- Steven Pennington <spenn at 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 379252, 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-04-03 11:26:22 UTC (rev 379253)
@@ -0,0 +1,50 @@
+From dcad5af090528018599277dc5d7e160fb6b2d68e Mon Sep 17 00:00:00 2001
+From: Stephan Hartmann <stha09 at 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 <thestig at chromium.org>
+Commit-Queue: Lei Zhang <thestig at 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 <dreijerbit at gmail.com>
+ Sreerenj Balachandran <sreerenj.balachandran at intel.com>
+ Srirama Chandra Sekhar Mogali <srirama.m at samsung.com>
+ Staphany Park <stapark008 at gmail.com>
++Stephan Hartmann <stha09 at googlemail.com>
+ Stephen Searles <stephen.searles at gmail.com>
+ Steve Sanders <steve at zanderz.com>
+ Steven Pennington <spenn at 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-04-03 11:26:11 UTC (rev 379252)
+++ move-RemoteTreeNode-declaration.patch	2020-04-03 11:26:22 UTC (rev 379253)
@@ -1,237 +0,0 @@
-From cdf3e81ff49b200213d67d65558f2919222b60ab Mon Sep 17 00:00:00 2001
-From: Raphael Kubo da Costa <raphael.kubo.da.costa at 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.costa at intel.com>
-Reviewed-by: Mikel Astiz <mastiz at chromium.org>
-Auto-Submit: Raphael Kubo da Costa <raphael.kubo.da.costa at 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 379252, chromium/trunk/move-RemoteTreeNode-declaration.patch)
===================================================================
--- move-RemoteTreeNode-declaration.patch	                        (rev 0)
+++ move-RemoteTreeNode-declaration.patch	2020-04-03 11:26:22 UTC (rev 379253)
@@ -0,0 +1,237 @@
+From cdf3e81ff49b200213d67d65558f2919222b60ab Mon Sep 17 00:00:00 2001
+From: Raphael Kubo da Costa <raphael.kubo.da.costa at 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.costa at intel.com>
+Reviewed-by: Mikel Astiz <mastiz at chromium.org>
+Auto-Submit: Raphael Kubo da Costa <raphael.kubo.da.costa at 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-04-03 11:26:11 UTC (rev 379252)
+++ rebuild-Linux-frame-button-cache-when-activation.patch	2020-04-03 11:26:22 UTC (rev 379253)
@@ -1,62 +0,0 @@
-From d10f885b9327399be9348b780967ebd6b7f2c4bc Mon Sep 17 00:00:00 2001
-From: Tom Anderson <thomasanderson at 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 <thomasanderson at chromium.org>
-Commit-Queue: Scott Violet <sky at chromium.org>
-Reviewed-by: Scott Violet <sky at 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 379252, 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-04-03 11:26:22 UTC (rev 379253)
@@ -0,0 +1,62 @@
+From d10f885b9327399be9348b780967ebd6b7f2c4bc Mon Sep 17 00:00:00 2001
+From: Tom Anderson <thomasanderson at 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 <thomasanderson at chromium.org>
+Commit-Queue: Scott Violet <sky at chromium.org>
+Reviewed-by: Scott Violet <sky at 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-04-03 11:26:11 UTC (rev 379252)
+++ remove-verbose-logging-in-local-unique-font-matching.patch	2020-04-03 11:26:22 UTC (rev 379253)
@@ -1,33 +0,0 @@
-From 8500a125e9fba8bb84d185542155747ee7157ff8 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Dominik=20R=C3=B6ttsches?= <drott at 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 <drott at chromium.org>
-Commit-Queue: Kentaro Hara <haraken at chromium.org>
-Auto-Submit: Dominik Röttsches <drott at chromium.org>
-Reviewed-by: Kentaro Hara <haraken at 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 379252, 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-04-03 11:26:22 UTC (rev 379253)
@@ -0,0 +1,33 @@
+From 8500a125e9fba8bb84d185542155747ee7157ff8 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Dominik=20R=C3=B6ttsches?= <drott at 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 <drott at chromium.org>
+Commit-Queue: Kentaro Hara <haraken at chromium.org>
+Auto-Submit: Dominik Röttsches <drott at chromium.org>
+Reviewed-by: Kentaro Hara <haraken at 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-04-03 11:26:11 UTC (rev 379252)
+++ rename-Relayout-in-DesktopWindowTreeHostPlatform.patch	2020-04-03 11:26:22 UTC (rev 379253)
@@ -1,64 +0,0 @@
-From 5a2cd2409c7d65c019ad9f4595a4e85315857ac4 Mon Sep 17 00:00:00 2001
-From: Tom Anderson <thomasanderson at 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 <thomasanderson at chromium.org>
-Reviewed-by: Scott Violet <sky at chromium.org>
-Commit-Queue: Thomas Anderson <thomasanderson at 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 379252, chromium/trunk/rename-Relayout-in-DesktopWindowTreeHostPlatform.patch)
===================================================================
--- rename-Relayout-in-DesktopWindowTreeHostPlatform.patch	                        (rev 0)
+++ rename-Relayout-in-DesktopWindowTreeHostPlatform.patch	2020-04-03 11:26:22 UTC (rev 379253)
@@ -0,0 +1,64 @@
+From 5a2cd2409c7d65c019ad9f4595a4e85315857ac4 Mon Sep 17 00:00:00 2001
+From: Tom Anderson <thomasanderson at 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 <thomasanderson at chromium.org>
+Reviewed-by: Scott Violet <sky at chromium.org>
+Commit-Queue: Thomas Anderson <thomasanderson at 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-04-03 11:26:11 UTC (rev 379252)
+++ sync-enable-USSPasswords-by-default.patch	2020-04-03 11:26:22 UTC (rev 379253)
@@ -1,28 +0,0 @@
-From eb997db5527c01fd12c321a6abc52b7cff882e50 Mon Sep 17 00:00:00 2001
-From: Mohamed Amir Yosef <mamir at 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 <mamir at chromium.org>
-Reviewed-by: Mikel Astiz <mastiz at chromium.org>
-Commit-Queue: Mohamed Amir Yosef <mamir at 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 379252, chromium/trunk/sync-enable-USSPasswords-by-default.patch)
===================================================================
--- sync-enable-USSPasswords-by-default.patch	                        (rev 0)
+++ sync-enable-USSPasswords-by-default.patch	2020-04-03 11:26:22 UTC (rev 379253)
@@ -0,0 +1,28 @@
+From eb997db5527c01fd12c321a6abc52b7cff882e50 Mon Sep 17 00:00:00 2001
+From: Mohamed Amir Yosef <mamir at 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 <mamir at chromium.org>
+Reviewed-by: Mikel Astiz <mastiz at chromium.org>
+Commit-Queue: Mohamed Amir Yosef <mamir at 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",



More information about the arch-commits mailing list