[arch-commits] Commit in chromium/repos (12 files)

Evangelos Foutras foutrelis at archlinux.org
Tue Nov 12 00:10:16 UTC 2019


    Date: Tuesday, November 12, 2019 @ 00:10:15
  Author: foutrelis
Revision: 367815

archrelease: copy trunk to staging-x86_64

Added:
  chromium/repos/staging-x86_64/
  chromium/repos/staging-x86_64/PKGBUILD
    (from rev 367814, chromium/trunk/PKGBUILD)
  chromium/repos/staging-x86_64/add-missing-include-for-unique_ptr.patch
    (from rev 367814, chromium/trunk/add-missing-include-for-unique_ptr.patch)
  chromium/repos/staging-x86_64/chromium-skia-harmony.patch
    (from rev 367814, chromium/trunk/chromium-skia-harmony.patch)
  chromium/repos/staging-x86_64/chromium-system-icu.patch
    (from rev 367814, chromium/trunk/chromium-system-icu.patch)
  chromium/repos/staging-x86_64/chromium-system-zlib.patch
    (from rev 367814, chromium/trunk/chromium-system-zlib.patch)
  chromium/repos/staging-x86_64/chromium-widevine.patch
    (from rev 367814, chromium/trunk/chromium-widevine.patch)
  chromium/repos/staging-x86_64/chromium.install
    (from rev 367814, chromium/trunk/chromium.install)
  chromium/repos/staging-x86_64/dns_util-make-DohUpgradeEntry-non-const.patch
    (from rev 367814, chromium/trunk/dns_util-make-DohUpgradeEntry-non-const.patch)
  chromium/repos/staging-x86_64/fix-shutdown-crash-in-ProfileManager.patch
    (from rev 367814, chromium/trunk/fix-shutdown-crash-in-ProfileManager.patch)
  chromium/repos/staging-x86_64/fix-spammy-unique-font-matching-log.patch
    (from rev 367814, chromium/trunk/fix-spammy-unique-font-matching-log.patch)
  chromium/repos/staging-x86_64/icu65.patch
    (from rev 367814, chromium/trunk/icu65.patch)

-----------------------------------------------+
 PKGBUILD                                      |  246 ++++++++++++++++++++++++
 add-missing-include-for-unique_ptr.patch      |   30 ++
 chromium-skia-harmony.patch                   |   14 +
 chromium-system-icu.patch                     |   20 +
 chromium-system-zlib.patch                    |   13 +
 chromium-widevine.patch                       |   22 ++
 chromium.install                              |   16 +
 dns_util-make-DohUpgradeEntry-non-const.patch |   86 ++++++++
 fix-shutdown-crash-in-ProfileManager.patch    |   45 ++++
 fix-spammy-unique-font-matching-log.patch     |   13 +
 icu65.patch                                   |   64 ++++++
 11 files changed, 569 insertions(+)

Copied: chromium/repos/staging-x86_64/PKGBUILD (from rev 367814, chromium/trunk/PKGBUILD)
===================================================================
--- staging-x86_64/PKGBUILD	                        (rev 0)
+++ staging-x86_64/PKGBUILD	2019-11-12 00:10:15 UTC (rev 367815)
@@ -0,0 +1,246 @@
+# 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=78.0.3904.97
+pkgrel=2
+_launcher_ver=6
+pkgdesc="A web browser built for speed, simplicity, and security"
+arch=('x86_64')
+url="https://www.chromium.org/Home"
+license=('BSD')
+depends=('gtk3' 'nss' 'alsa-lib' 'xdg-utils' 'libxss' 'libcups' 'libgcrypt'
+         'ttf-font' 'systemd' 'dbus' 'libpulse' 'pciutils' 'json-glib'
+         'desktop-file-utils' 'hicolor-icon-theme')
+makedepends=('python' 'python2' 'gperf' 'yasm' 'mesa' 'ninja' 'nodejs' 'git'
+             'pipewire' 'clang' 'lld' 'gn' 'java-runtime-headless')
+optdepends=('pepper-flash: support for Flash content'
+            'pipewire: WebRTC desktop sharing under Wayland'
+            'kdialog: needed for file dialogs in KDE'
+            'gnome-keyring: for storing passwords in GNOME keyring'
+            'kwallet: for storing passwords in KWallet')
+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
+        add-missing-include-for-unique_ptr.patch
+        dns_util-make-DohUpgradeEntry-non-const.patch
+        fix-shutdown-crash-in-ProfileManager.patch
+        icu65.patch
+        chromium-system-icu.patch
+        chromium-system-zlib.patch
+        fix-spammy-unique-font-matching-log.patch
+        chromium-widevine.patch
+        chromium-skia-harmony.patch)
+sha256sums=('d1f49ab9f4f973536166f587114553c21a29977bdc350dd407a89d34e22a9d07'
+            '04917e3cd4307d8e31bfb0027a5dce6d086edb10ff8a716024fbb8bb0c7dccf1'
+            '49052e8aa630c4aa57bf46823edc32b7b309493275163c3bb3f9fd390c73356e'
+            '69694ab12a5ced389916c0c5e8c7bdc191544f576b134ddfb2fe9d4ed9ec4494'
+            '4f81612c28957987f7344d8ce2b95a4a63136a8319c9751819436b11c62df057'
+            '1de9bdbfed482295dda45c7d4e323cee55a34e42f66b892da1c1a778682b7a41'
+            'e73cc2ee8d3ea35aab18c478d76fdfc68ca4463e1e10306fa1e738c03b3f26b5'
+            'eb67eda4945a89c3b90473fa8dc20637511ca4dcb58879a8ed6bf403700ca9c8'
+            '6fbffe59b886195b92c9a55137cef83021c16593f49714acb20023633e3ebb19'
+            'd081f2ef8793544685aad35dea75a7e6264a2cb987ff3541e6377f4a3650a28b'
+            '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    # https://github.com/webmproject/libvpx/commit/5a0242ba5c
+  [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/libxml_utils.cc
+
+  # Missing include in third_party/blink/public/platform/web_rtc_rtp_source.h
+  patch -Np1 -i ../add-missing-include-for-unique_ptr.patch
+
+  # https://crbug.com/957519#c23
+  patch -Np1 -i ../dns_util-make-DohUpgradeEntry-non-const.patch
+
+  # https://crbug.com/1005244
+  patch -Np1 -i ../fix-shutdown-crash-in-ProfileManager.patch
+
+  # https://crbug.com/1014272
+  patch -Np1 -i ../icu65.patch
+
+  # Fixes from Gentoo
+  patch -Np1 -i ../chromium-system-icu.patch
+  patch -Np1 -i ../chromium-system-zlib.patch
+
+  # https://crbug.com/1005508
+  patch -Np1 -i ../fix-spammy-unique-font-matching-log.patch
+
+  # Load Widevine CDM if available
+  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 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/staging-x86_64/add-missing-include-for-unique_ptr.patch (from rev 367814, chromium/trunk/add-missing-include-for-unique_ptr.patch)
===================================================================
--- staging-x86_64/add-missing-include-for-unique_ptr.patch	                        (rev 0)
+++ staging-x86_64/add-missing-include-for-unique_ptr.patch	2019-11-12 00:10:15 UTC (rev 367815)
@@ -0,0 +1,30 @@
+From bbfe2665923225b4a7c436ba2b6c7e5f695f2e52 Mon Sep 17 00:00:00 2001
+From: David Landell <landell at vewd.com>
+Date: Fri, 13 Sep 2019 12:24:13 +0000
+Subject: [PATCH] Add missing include for unique_ptr
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Change-Id: I614d2f42868d563eb6a92dfb2aae08286e20d687
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1803137
+Reviewed-by: Henrik Boström <hbos at chromium.org>
+Commit-Queue: Henrik Boström <hbos at chromium.org>
+Cr-Commit-Position: refs/heads/master@{#696355}
+---
+ third_party/blink/public/platform/web_rtc_rtp_source.h | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/third_party/blink/public/platform/web_rtc_rtp_source.h b/third_party/blink/public/platform/web_rtc_rtp_source.h
+index 959440f7a5..c3fd5421aa 100644
+--- a/third_party/blink/public/platform/web_rtc_rtp_source.h
++++ b/third_party/blink/public/platform/web_rtc_rtp_source.h
+@@ -5,6 +5,8 @@
+ #ifndef THIRD_PARTY_BLINK_PUBLIC_PLATFORM_WEB_RTC_RTP_SOURCE_H_
+ #define THIRD_PARTY_BLINK_PUBLIC_PLATFORM_WEB_RTC_RTP_SOURCE_H_
+ 
++#include <memory>
++
+ #include "base/optional.h"
+ #include "third_party/blink/public/platform/web_common.h"
+ 

Copied: chromium/repos/staging-x86_64/chromium-skia-harmony.patch (from rev 367814, chromium/trunk/chromium-skia-harmony.patch)
===================================================================
--- staging-x86_64/chromium-skia-harmony.patch	                        (rev 0)
+++ staging-x86_64/chromium-skia-harmony.patch	2019-11-12 00:10:15 UTC (rev 367815)
@@ -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;

Copied: chromium/repos/staging-x86_64/chromium-system-icu.patch (from rev 367814, chromium/trunk/chromium-system-icu.patch)
===================================================================
--- staging-x86_64/chromium-system-icu.patch	                        (rev 0)
+++ staging-x86_64/chromium-system-icu.patch	2019-11-12 00:10:15 UTC (rev 367815)
@@ -0,0 +1,20 @@
+diff --git a/build/linux/unbundle/icu.gn b/build/linux/unbundle/icu.gn
+index 4450e40..9ca36dd 100644
+--- a/build/linux/unbundle/icu.gn
++++ b/build/linux/unbundle/icu.gn
+@@ -96,6 +96,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",
+@@ -178,7 +179,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/staging-x86_64/chromium-system-zlib.patch (from rev 367814, chromium/trunk/chromium-system-zlib.patch)
===================================================================
--- staging-x86_64/chromium-system-zlib.patch	                        (rev 0)
+++ staging-x86_64/chromium-system-zlib.patch	2019-11-12 00:10:15 UTC (rev 367815)
@@ -0,0 +1,13 @@
+diff --git a/third_party/perfetto/gn/BUILD.gn b/third_party/perfetto/gn/BUILD.gn
+index 3bc618a..e0ddf6d 100644
+--- a/third_party/perfetto/gn/BUILD.gn
++++ b/third_party/perfetto/gn/BUILD.gn
+@@ -244,7 +244,7 @@ if (enable_perfetto_trace_processor || perfetto_build_standalone ||
+         "//buildtools:zlib",
+       ]
+     } else {
+-      public_configs = [ "//third_party/zlib:zlib_config" ]
++      public_configs = [ "//third_party/zlib:system_zlib" ]
+       public_deps = [
+         "//third_party/zlib",
+       ]

Copied: chromium/repos/staging-x86_64/chromium-widevine.patch (from rev 367814, chromium/trunk/chromium-widevine.patch)
===================================================================
--- staging-x86_64/chromium-widevine.patch	                        (rev 0)
+++ staging-x86_64/chromium-widevine.patch	2019-11-12 00:10:15 UTC (rev 367815)
@@ -0,0 +1,22 @@
+diff -upr chromium-71.0.3578.80.orig/chrome/common/chrome_content_client.cc chromium-71.0.3578.80/chrome/common/chrome_content_client.cc
+--- chromium-71.0.3578.80.orig/chrome/common/chrome_content_client.cc	2018-12-03 20:16:43.000000000 +0000
++++ chromium-71.0.3578.80/chrome/common/chrome_content_client.cc	2018-12-04 21:34:28.658206942 +0000
+@@ -99,7 +99,7 @@
+ // Registers Widevine CDM if Widevine is enabled, the Widevine CDM is
+ // bundled and not a component. When the Widevine CDM is a component, it is
+ // registered in widevine_cdm_component_installer.cc.
+-#if BUILDFLAG(BUNDLE_WIDEVINE_CDM) && !BUILDFLAG(ENABLE_WIDEVINE_CDM_COMPONENT)
++#if BUILDFLAG(ENABLE_WIDEVINE) && !BUILDFLAG(ENABLE_WIDEVINE_CDM_COMPONENT)
+ #define REGISTER_BUNDLED_WIDEVINE_CDM
+ #include "third_party/widevine/cdm/widevine_cdm_common.h"  // nogncheck
+ // TODO(crbug.com/663554): Needed for WIDEVINE_CDM_VERSION_STRING. Support
+diff -upr chromium-71.0.3578.80.orig/third_party/widevine/cdm/widevine_cdm_version.h chromium-71.0.3578.80/third_party/widevine/cdm/widevine_cdm_version.h
+--- chromium-71.0.3578.80.orig/third_party/widevine/cdm/widevine_cdm_version.h	2018-12-03 20:18:01.000000000 +0000
++++ chromium-71.0.3578.80/third_party/widevine/cdm/widevine_cdm_version.h	2018-12-04 21:37:45.635374949 +0000
+@@ -12,4 +12,6 @@
+ //  - WIDEVINE_CDM_VERSION_STRING (with the version of the CDM that's available
+ //    as a string, e.g., "1.0.123.456").
+ 
++#define WIDEVINE_CDM_VERSION_STRING "unknown"
++
+ #endif  // WIDEVINE_CDM_VERSION_H_

Copied: chromium/repos/staging-x86_64/chromium.install (from rev 367814, chromium/trunk/chromium.install)
===================================================================
--- staging-x86_64/chromium.install	                        (rev 0)
+++ staging-x86_64/chromium.install	2019-11-12 00:10:15 UTC (rev 367815)
@@ -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:

Copied: chromium/repos/staging-x86_64/dns_util-make-DohUpgradeEntry-non-const.patch (from rev 367814, chromium/trunk/dns_util-make-DohUpgradeEntry-non-const.patch)
===================================================================
--- staging-x86_64/dns_util-make-DohUpgradeEntry-non-const.patch	                        (rev 0)
+++ staging-x86_64/dns_util-make-DohUpgradeEntry-non-const.patch	2019-11-12 00:10:15 UTC (rev 367815)
@@ -0,0 +1,86 @@
+From f4c3c329588b78af63aad8b401da767242b86709 Mon Sep 17 00:00:00 2001
+From: Raphael Kubo da Costa <raphael.kubo.da.costa at intel.com>
+Date: Mon, 16 Sep 2019 17:05:42 +0000
+Subject: [PATCH] dns_util: Make DohUpgradeEntry non-const when used with
+ std::vector<>
+
+This fixes the build with libstdc++ (with most other standard libraries
+other than libc++, in fact) after commit f93a48e3 ("Allow upgrade to DoH
+during automatic mode"):
+
+../../../../../../usr/bin/../lib/gcc/x86_64-redhat-linux/8/../../../../include/c++/8/bits/stl_vector.h:351:7: error: static_assert failed due to requirement 'is_same<typename remove_cv<const DohUpgradeEntry>::type, const DohUpgradeEntry>::value' "std::vector must have a non-const, non-volatile value_type"
+      static_assert(is_same<typename remove_cv<_Tp>::type, _Tp>::value,
+      ^             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+../../base/no_destructor.h:77:28: note: in instantiation of template class 'std::vector<const net::(anonymous namespace)::DohUpgradeEntry, std::allocator<const net::(anonymous namespace)::DohUpgradeEntry> >' requested here
+  alignas(T) char storage_[sizeof(T)];
+                           ^
+../../net/dns/dns_util.cc:147:7: note: in instantiation of template class 'base::NoDestructor<std::vector<const net::(anonymous namespace)::DohUpgradeEntry, std::allocator<const net::(anonymous namespace)::DohUpgradeEntry> > >' requested here
+      upgradable_servers({
+      ^
+../../net/dns/dns_util.cc:230:36: error: invalid range expression of type 'const std::vector<const net::(anonymous namespace)::DohUpgradeEntry, std::allocator<const net::(anonymous namespace)::DohUpgradeEntry> >'; no viable 'begin' function available
+    for (const auto& upgrade_entry : upgradable_servers) {
+                                   ^ ~~~~~~~~~~~~~~~~~~
+
+The C++ standard forbids containers of const elements. Callers of
+GetDohUpgradeList() use it in a safe way anyway, and most of
+DohUpgradeEntry's members are const.
+
+Bug: 957519
+Change-Id: I826a51823edb1184c0fae27105101e2894efe568
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1805636
+Auto-Submit: Raphael Kubo da Costa <raphael.kubo.da.costa at intel.com>
+Commit-Queue: Eric Orth <ericorth at chromium.org>
+Reviewed-by: Eric Orth <ericorth at chromium.org>
+Cr-Commit-Position: refs/heads/master@{#696834}
+---
+ net/dns/dns_util.cc | 13 +++++--------
+ 1 file changed, 5 insertions(+), 8 deletions(-)
+
+diff --git a/net/dns/dns_util.cc b/net/dns/dns_util.cc
+index d83ff7c150..14997c48b2 100644
+--- a/net/dns/dns_util.cc
++++ b/net/dns/dns_util.cc
+@@ -139,11 +139,11 @@ struct DohUpgradeEntry {
+   const DnsConfig::DnsOverHttpsServerConfig dns_over_https_config;
+ };
+ 
+-const std::vector<const DohUpgradeEntry>& GetDohUpgradeList() {
++const std::vector<DohUpgradeEntry>& GetDohUpgradeList() {
+   // The provider names in these entries should be kept in sync with the
+   // DohProviderId histogram suffix list in
+   // tools/metrics/histograms/histograms.xml.
+-  static const base::NoDestructor<std::vector<const DohUpgradeEntry>>
++  static const base::NoDestructor<std::vector<DohUpgradeEntry>>
+       upgradable_servers({
+           DohUpgradeEntry(
+               "CleanBrowsingAdult",
+@@ -222,8 +222,7 @@ const std::vector<const DohUpgradeEntry>& GetDohUpgradeList() {
+ std::vector<const DohUpgradeEntry*> GetDohUpgradeEntriesFromNameservers(
+     const std::vector<IPEndPoint>& dns_servers,
+     const std::vector<std::string>& excluded_providers) {
+-  const std::vector<const DohUpgradeEntry>& upgradable_servers =
+-      GetDohUpgradeList();
++  const std::vector<DohUpgradeEntry>& upgradable_servers = GetDohUpgradeList();
+   std::vector<const DohUpgradeEntry*> entries;
+ 
+   for (const auto& server : dns_servers) {
+@@ -417,8 +416,7 @@ std::vector<DnsConfig::DnsOverHttpsServerConfig>
+ GetDohUpgradeServersFromDotHostname(
+     const std::string& dot_server,
+     const std::vector<std::string>& excluded_providers) {
+-  const std::vector<const DohUpgradeEntry>& upgradable_servers =
+-      GetDohUpgradeList();
++  const std::vector<DohUpgradeEntry>& upgradable_servers = GetDohUpgradeList();
+   std::vector<DnsConfig::DnsOverHttpsServerConfig> doh_servers;
+ 
+   if (dot_server.empty())
+@@ -451,8 +449,7 @@ GetDohUpgradeServersFromNameservers(
+ 
+ std::string GetDohProviderIdForHistogramFromDohConfig(
+     const DnsConfig::DnsOverHttpsServerConfig& doh_server) {
+-  const std::vector<const DohUpgradeEntry>& upgradable_servers =
+-      GetDohUpgradeList();
++  const std::vector<DohUpgradeEntry>& upgradable_servers = GetDohUpgradeList();
+   for (const auto& upgrade_entry : upgradable_servers) {
+     if (doh_server.server_template ==
+         upgrade_entry.dns_over_https_config.server_template) {

Copied: chromium/repos/staging-x86_64/fix-shutdown-crash-in-ProfileManager.patch (from rev 367814, chromium/trunk/fix-shutdown-crash-in-ProfileManager.patch)
===================================================================
--- staging-x86_64/fix-shutdown-crash-in-ProfileManager.patch	                        (rev 0)
+++ staging-x86_64/fix-shutdown-crash-in-ProfileManager.patch	2019-11-12 00:10:15 UTC (rev 367815)
@@ -0,0 +1,45 @@
+From e73aed9a5ef15102f29ac31b70290faf5c90f9fe Mon Sep 17 00:00:00 2001
+From: Evan Stade <estade at chromium.org>
+Date: Wed, 16 Oct 2019 16:01:32 +0000
+Subject: [PATCH] Fix shutdown crash in ProfileManager.
+
+OnProfileMarkedForPermanentDeletion should move from
+ProfileManagerObserver to ProfileObserver, which would also
+fix this bug. However, changing the order of members is the
+quickest and most cherry-pick-able way to avoid the crash.
+
+Bug: 1005244
+Change-Id: If2db68c846dd418cd02864b57b9b543687fa1e03
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1863518
+Auto-Submit: Evan Stade <estade at chromium.org>
+Reviewed-by: David Roger <droger at chromium.org>
+Commit-Queue: Evan Stade <estade at chromium.org>
+Cr-Commit-Position: refs/heads/master@{#706467}
+---
+ chrome/browser/profiles/profile_manager.h | 6 ++++--
+ 1 file changed, 4 insertions(+), 2 deletions(-)
+
+diff --git a/chrome/browser/profiles/profile_manager.h b/chrome/browser/profiles/profile_manager.h
+index b60df76d59..7d02af7f8f 100644
+--- a/chrome/browser/profiles/profile_manager.h
++++ b/chrome/browser/profiles/profile_manager.h
+@@ -410,6 +410,10 @@ class ProfileManager : public content::NotificationObserver,
+       const base::FilePath& profile_dir);
+ #endif  // !defined(OS_ANDROID)
+ 
++  // Destroy after |profile_info_cache_| since Profile destruction may trigger
++  // some observers to unregister themselves.
++  base::ObserverList<ProfileManagerObserver> observers_;
++
+   // Object to cache various information about profiles. Contains information
+   // about every profile which has been created for this instance of Chrome,
+   // if it has not been explicitly deleted. It must be destroyed after
+@@ -451,8 +455,6 @@ class ProfileManager : public content::NotificationObserver,
+   // Controls whether to initialize some services. Only disabled for testing.
+   bool do_final_services_init_ = true;
+ 
+-  base::ObserverList<ProfileManagerObserver> observers_;
+-
+   // TODO(chrome/browser/profiles/OWNERS): Usage of this in profile_manager.cc
+   // should likely be turned into DCHECK_CURRENTLY_ON(BrowserThread::UI) for
+   // consistency with surrounding code in the same file but that wasn't trivial

Copied: chromium/repos/staging-x86_64/fix-spammy-unique-font-matching-log.patch (from rev 367814, chromium/trunk/fix-spammy-unique-font-matching-log.patch)
===================================================================
--- staging-x86_64/fix-spammy-unique-font-matching-log.patch	                        (rev 0)
+++ staging-x86_64/fix-spammy-unique-font-matching-log.patch	2019-11-12 00:10:15 UTC (rev 367815)
@@ -0,0 +1,13 @@
+diff --git a/content/child/child_process_sandbox_support_impl_linux.cc b/content/child/child_process_sandbox_support_impl_linux.cc
+index 0a57543eb5..fe2ee491a2 100644
+--- a/content/child/child_process_sandbox_support_impl_linux.cc
++++ b/content/child/child_process_sandbox_support_impl_linux.cc
+@@ -78,8 +78,6 @@ void 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;
+   }
+ 

Copied: chromium/repos/staging-x86_64/icu65.patch (from rev 367814, chromium/trunk/icu65.patch)
===================================================================
--- staging-x86_64/icu65.patch	                        (rev 0)
+++ staging-x86_64/icu65.patch	2019-11-12 00:10:15 UTC (rev 367815)
@@ -0,0 +1,64 @@
+From 5679c3c191ed62b62d8db22f1657a296ee9bfe8e Mon Sep 17 00:00:00 2001
+From: Frank Tang <ftang at chromium.org>
+Date: Wed, 30 Oct 2019 22:49:47 +0000
+Subject: [PATCH] Update ICU to 65.1 from 64  and fix broken tests
+
+ICU 65-1 release note
+http://site.icu-project.org/download/65
+
+CLDR 36 release blog
+http://blog.unicode.org/2019/10/unicode-cldr-version-36-languagelocale.html
+
+Most of the test expectation change is due to CLDR 36 update
+of Grapheme Cluster for Indic languages
+See the following for related changes in ICU 65.1 in this area:
+https://unicode-org.atlassian.net/browse/CLDR-10994
+https://unicode-org.atlassian.net/browse/ICU-13637
+https://github.com/unicode-org/cldr/blob/master/common/properties/segments/readme.txt
+
+Bug: chromium:1014272, chromium:1017047
+Change-Id: I9fc6d4620bf2a4c189940d06d8c79893502db3dd
+Cq-Include-Trybots: luci.chromium.try:linux_layout_tests_layout_ng_disabled
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1866059
+Reviewed-by: Jungshik Shin <jshin at chromium.org>
+Reviewed-by: Doug Turner <dougt at chromium.org>
+Reviewed-by: Michael Wasserman <msw at chromium.org>
+Reviewed-by: Kent Tamura <tkent at chromium.org>
+Reviewed-by: Trent Apted <tapted at chromium.org>
+Reviewed-by: Mason Freed <masonfreed at chromium.org>
+Commit-Queue: Frank Tang <ftang at chromium.org>
+Cr-Commit-Position: refs/heads/master@{#711027}
+---
+ third_party/blink/renderer/core/dom/document.cc | 2 +-
+ ui/gfx/render_text_harfbuzz.cc                  | 5 ++++-
+ 2 files changed, 5 insertions(+), 2 deletions(-)
+
+diff --git a/third_party/blink/renderer/core/dom/document.cc b/third_party/blink/renderer/core/dom/document.cc
+index 511aac29086..f188cf548a6 100644
+--- a/third_party/blink/renderer/core/dom/document.cc
++++ b/third_party/blink/renderer/core/dom/document.cc
+@@ -6191,7 +6191,7 @@ static ParseQualifiedNameResult ParseQualifiedNameInternal(
+ 
+   for (unsigned i = 0; i < length;) {
+     UChar32 c;
+-    U16_NEXT(characters, i, length, c)
++    U16_NEXT(characters, i, length, c);
+     if (c == ':') {
+       if (saw_colon)
+         return ParseQualifiedNameResult(kQNMultipleColons);
+diff --git a/ui/gfx/render_text_harfbuzz.cc b/ui/gfx/render_text_harfbuzz.cc
+index 50e86af6b97..0339ff3ff8e 100644
+--- a/ui/gfx/render_text_harfbuzz.cc
++++ b/ui/gfx/render_text_harfbuzz.cc
+@@ -971,7 +971,10 @@ RangeF TextRunHarfBuzz::GetGraphemeBounds(RenderTextHarfBuzz* render_text,
+         ++total;
+       }
+     }
+-    DCHECK_GT(total, 0);
++    // With ICU 65.1, DCHECK_GT() below fails.
++    // See https://crbug.com/1017047 for more details.
++    //
++    // DCHECK_GT(total, 0);
+ 
+     // It's possible for |text_index| to point to a diacritical mark, at the end
+     // of |chars|. In this case all the grapheme boundaries come before it. Just



More information about the arch-commits mailing list