diff options
21 files changed, 844 insertions, 279 deletions
@@ -1,6 +1,6 @@ pkgbase = ungoogled-chromium-ozone pkgdesc = A lightweight approach to removing Google web service dependency with patches for wayland support via Ozone - pkgver = 79.0.3945.79 + pkgver = 80.0.3987.87 pkgrel = 1 url = https://ungoogled-software.github.io/ arch = x86_64 @@ -25,18 +25,20 @@ pkgbase = ungoogled-chromium-ozone depends = libxss depends = libcups depends = libgcrypt - depends = ttf-font + depends = ttf-liberation depends = systemd depends = dbus depends = libpulse depends = pciutils depends = json-glib + depends = libva depends = desktop-file-utils depends = hicolor-icon-theme depends = icu depends = libxml2 depends = fontconfig depends = harfbuzz + depends = libvpx depends = libjpeg depends = re2 depends = snappy @@ -48,45 +50,50 @@ pkgbase = ungoogled-chromium-ozone depends = freetype2 depends = opus optdepends = pepper-flash: support for Flash content + optdepends = pipewire: WebRTC desktop sharing under Wayland optdepends = kdialog: needed for file dialogs in KDE optdepends = org.freedesktop.secrets: password storage backend on GNOME / Xfce optdepends = kwallet: for storing passwords in KWallet on KDE desktops - optdepends = libva-intel-driver: for hardware video acceleration with Intel GPUs - optdepends = intel-media-driver: for hardware video acceleration with newer intel gpus - optdepends = libva-mesa-driver: for hardware video acceleration with AMD/ATI GPUs - optdepends = libva-vdpau-driver: for hardware video acceleration with NVIDIA GPUs provides = chromium conflicts = chromium - source = https://commondatastorage.googleapis.com/chromium-browser-official/chromium-79.0.3945.79.tar.xz + source = https://commondatastorage.googleapis.com/chromium-browser-official/chromium-80.0.3987.87.tar.xz source = chromium-launcher-6.tar.gz::https://github.com/foutrelis/chromium-launcher/archive/v6.tar.gz - source = ungoogled-chromium::git+https://github.com/Eloston/ungoogled-chromium + source = ungoogled-chromium.zip::https://github.com/Eloston/ungoogled-chromium/archive/80.0.3987.87-2.zip + source = 0001-Add-missing-algorithm-header-in-bitmap_cursor_factor.patch source = flags.archlinux.gn source = chromium-drirc-disable-10bpc-color-configs.conf source = vaapi-fix.patch source = fix-vaapi-ozone-build.patch - source = launch_manager.h-uses-std-vector.patch - source = include-algorithm-to-use-std-lower_bound.patch - source = icu65.patch - source = chromium-system-icu.patch - source = chromium-system-zlib.patch - source = chromium-system-hb.patch - source = fix-spammy-unique-font-matching-log.patch + source = cros-search-service-Include-cmath-for-std-pow.patch + source = move-RemoteTreeNode-declaration.patch + source = sync-enable-USSPasswords-by-default.patch + source = fix-shim-header-generation-when-unbundling-ICU.patch + source = fix-building-with-system-zlib.patch + source = remove-verbose-logging-in-local-unique-font-matching.patch + source = fix-building-with-unbundled-libxml.patch + source = fix-browser-frame-view-not-getting-a-relayout.patch + source = rename-Relayout-in-DesktopWindowTreeHostPlatform.patch + source = rebuild-Linux-frame-button-cache-when-activation.patch source = chromium-widevine.patch source = chromium-skia-harmony.patch - sha256sums = e1a7362d396b0f72e6ad8c1d53cae67db201e0eeaa2a96dbe9214d080925bcf3 + sha256sums = f51f6fca5d9abbef855aa6b5bf427410c6e96ae58b64a7d45f843868cfb0ac8e sha256sums = 04917e3cd4307d8e31bfb0027a5dce6d086edb10ff8a716024fbb8bb0c7dccf1 sha256sums = SKIP - sha256sums = 2f77b02f0e5b2396cdbede4360bd44f71d03844c36bd8c4f038f3e238fac8981 + sha256sums = d8a57adf4b3106ab4d7ecdf5b050e02b87901b61c33cfa8810a7143c483e1fe4 + sha256sums = 157ba62d6b9ae92ade0babebd8a4f2d5ef8bdd54ae2f3646a61261e9805b86fa sha256sums = babda4f5c1179825797496898d77334ac067149cac03d797ab27ac69671a7feb sha256sums = 0ec6ee49113cc8cc5036fa008519b94137df6987bf1f9fbffb2d42d298af868a sha256sums = 9aebd800e5fe191cd5f4bd82c33419eefdd80919e6c6f5a3a9346a224625f094 - sha256sums = bd0fae907c451252e91c4cbf1ad301716bc9f8a4644ecc60e9590a64197477d3 - sha256sums = 1f906676563e866e2b59719679e76e0b2f7f082f48ef0593e86da0351a586c73 - sha256sums = 1de9bdbfed482295dda45c7d4e323cee55a34e42f66b892da1c1a778682b7a41 - sha256sums = e73cc2ee8d3ea35aab18c478d76fdfc68ca4463e1e10306fa1e738c03b3f26b5 - sha256sums = eb67eda4945a89c3b90473fa8dc20637511ca4dcb58879a8ed6bf403700ca9c8 - sha256sums = c0ad3fa426cb8fc1a237ddc6309a6b2dd4055bbe41dd07f50071ee61f969b81a - sha256sums = 6fbffe59b886195b92c9a55137cef83021c16593f49714acb20023633e3ebb19 + sha256sums = 0a8d1af2a3734b5f99ea8462940e332db4acee7130fe436ad3e4b7ad133e5ae5 + sha256sums = 21f631851cdcb347f40793485b168cb5d0da65ae26ae39ba58d624c66197d0a5 + sha256sums = 08ef82476780e0864b5bf7f20eb19db320e73b9a5d4f595351e12e97dda8746f + sha256sums = e477aa48a11ca4d53927f66a9593567fcd053325fb38af30ac3508465f1dd1f6 + sha256sums = 18276e65c68a0c328601b12fefb7e8bfc632346f34b87e64944c9de8c95c5cfa + sha256sums = 5bc775c0ece84d67855f51b30eadcf96fa8163b416d2036e9f9ba19072f54dfe + sha256sums = e530d1b39504c2ab247e16f1602359c484e9e8be4ef6d4824d68b14d29a7f60b + sha256sums = 5db225565336a3d9b9e9f341281680433c0b7bb343dff2698b2acffd86585cbe + sha256sums = ae3bf107834bd8eda9a3ec7899fe35fde62e6111062e5def7d24bf49b53db3db + sha256sums = 46f7fc9768730c460b27681ccf3dc2685c7e1fd22d70d3a82d9e57e3389bb014 sha256sums = 709e2fddba3c1f2ed4deb3a239fc0479bfa50c46e054e7f32db4fb1365fed070 sha256sums = 771292942c0901092a402cc60ee883877a99fb804cb54d568c8c6c94565a48e1 diff --git a/0001-Add-missing-algorithm-header-in-bitmap_cursor_factor.patch b/0001-Add-missing-algorithm-header-in-bitmap_cursor_factor.patch new file mode 100644 index 000000000000..dd66d5461fb7 --- /dev/null +++ b/0001-Add-missing-algorithm-header-in-bitmap_cursor_factor.patch @@ -0,0 +1,47 @@ +From 1def13d08fb76df631b604af75e754df94626c0c Mon Sep 17 00:00:00 2001 +From: Daniel Playfair Cal <daniel.playfair.cal@gmail.com> +Date: Fri, 13 Dec 2019 11:48:23 +0000 +Subject: [PATCH] Add missing algorithm header in + bitmap_cursor_factory_ozone.cc + +This is needed for the use of std::find_if + +Change-Id: Ica47d3d323f5b2e115463372824b1af84b2294bc +Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1963832 +Commit-Queue: Maksim Sisov <msisov@igalia.com> +Reviewed-by: Maksim Sisov <msisov@igalia.com> +Reviewed-by: Robert Kroeger <rjkroege@chromium.org> +Auto-Submit: Daniel Playfair Cal <daniel.playfair.cal@gmail.com> +Cr-Commit-Position: refs/heads/master@{#724589} +--- + AUTHORS | 1 + + ui/base/cursor/ozone/bitmap_cursor_factory_ozone.cc | 2 ++ + 2 files changed, 3 insertions(+) + +diff --git a/AUTHORS b/AUTHORS +index 751283238162..bf8810c3f109 100644 +--- a/AUTHORS ++++ b/AUTHORS +@@ -205,6 +205,7 @@ Daniel Johnson <danielj41@gmail.com> + Daniel Lockyer <thisisdaniellockyer@gmail.com> + Daniel Nishi <dhnishi@gmail.com> + Daniel Platz <daplatz@googlemail.com> ++Daniel Playfair Cal <daniel.playfair.cal@gmail.com> + Daniel Shaulov <dshaulov@ptc.com> + Daniel Trebbien <dtrebbien@gmail.com> + Daniel Waxweiler <daniel.waxweiler@gmail.com> +diff --git a/ui/base/cursor/ozone/bitmap_cursor_factory_ozone.cc b/ui/base/cursor/ozone/bitmap_cursor_factory_ozone.cc +index 71ec564b4803..f79d7932e236 100644 +--- a/ui/base/cursor/ozone/bitmap_cursor_factory_ozone.cc ++++ b/ui/base/cursor/ozone/bitmap_cursor_factory_ozone.cc +@@ -4,6 +4,8 @@ + + #include "ui/base/cursor/ozone/bitmap_cursor_factory_ozone.h" + ++#include <algorithm> ++ + #include "base/logging.h" + #include "third_party/skia/include/core/SkBitmap.h" + #include "ui/base/cursor/cursors_aura.h" +-- +2.24.1 @@ -3,58 +3,65 @@ pkgname=ungoogled-chromium-ozone _pkgname=ungoogled-chromium -pkgver=79.0.3945.79 +pkgver=80.0.3987.87 pkgrel=1 _launcher_ver=6 +_ungoogled_rel=2 pkgdesc="A lightweight approach to removing Google web service dependency with patches for wayland support via Ozone" arch=('x86_64') url="https://ungoogled-software.github.io/" license=('BSD') depends=('gtk3' 'nss' 'alsa-lib' 'xdg-utils' 'libxss' 'libcups' 'libgcrypt' - 'ttf-font' 'systemd' 'dbus' 'libpulse' 'pciutils' 'json-glib' + 'ttf-liberation' 'systemd' 'dbus' 'libpulse' 'pciutils' 'json-glib' 'libva' 'desktop-file-utils' 'hicolor-icon-theme') makedepends=('python' 'python2' 'gperf' 'yasm' 'mesa' 'ninja' 'nodejs' 'git' 'pipewire' 'clang' 'lld' 'gn' 'java-runtime-headless') optdepends=('pepper-flash: support for Flash content' + 'pipewire: WebRTC desktop sharing under Wayland' 'kdialog: needed for file dialogs in KDE' 'org.freedesktop.secrets: password storage backend on GNOME / Xfce' - 'kwallet: for storing passwords in KWallet on KDE desktops' - 'libva-intel-driver: for hardware video acceleration with Intel GPUs' - 'intel-media-driver: for hardware video acceleration with newer intel gpus' - 'libva-mesa-driver: for hardware video acceleration with AMD/ATI GPUs' - 'libva-vdpau-driver: for hardware video acceleration with NVIDIA GPUs') + 'kwallet: for storing passwords in KWallet on KDE desktops') provides=('chromium') conflicts=('chromium') source=(https://commondatastorage.googleapis.com/chromium-browser-official/chromium-${pkgver}.tar.xz chromium-launcher-$_launcher_ver.tar.gz::https://github.com/foutrelis/chromium-launcher/archive/v$_launcher_ver.tar.gz - 'ungoogled-chromium::git+https://github.com/Eloston/ungoogled-chromium' + 'ungoogled-chromium.zip::https://github.com/Eloston/ungoogled-chromium/archive/80.0.3987.87-2.zip' + 0001-Add-missing-algorithm-header-in-bitmap_cursor_factor.patch flags.archlinux.gn chromium-drirc-disable-10bpc-color-configs.conf vaapi-fix.patch fix-vaapi-ozone-build.patch - launch_manager.h-uses-std-vector.patch - include-algorithm-to-use-std-lower_bound.patch - icu65.patch - chromium-system-icu.patch - chromium-system-zlib.patch - chromium-system-hb.patch - fix-spammy-unique-font-matching-log.patch + 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 + fix-browser-frame-view-not-getting-a-relayout.patch + rename-Relayout-in-DesktopWindowTreeHostPlatform.patch + rebuild-Linux-frame-button-cache-when-activation.patch chromium-widevine.patch chromium-skia-harmony.patch) -sha256sums=('e1a7362d396b0f72e6ad8c1d53cae67db201e0eeaa2a96dbe9214d080925bcf3' +sha256sums=('f51f6fca5d9abbef855aa6b5bf427410c6e96ae58b64a7d45f843868cfb0ac8e' '04917e3cd4307d8e31bfb0027a5dce6d086edb10ff8a716024fbb8bb0c7dccf1' 'SKIP' - '2f77b02f0e5b2396cdbede4360bd44f71d03844c36bd8c4f038f3e238fac8981' +# '716c28bed9f6e9c32e3617e125c1b04806700aef691763923cd4ed14b8d23279' + 'd8a57adf4b3106ab4d7ecdf5b050e02b87901b61c33cfa8810a7143c483e1fe4' + '157ba62d6b9ae92ade0babebd8a4f2d5ef8bdd54ae2f3646a61261e9805b86fa' 'babda4f5c1179825797496898d77334ac067149cac03d797ab27ac69671a7feb' '0ec6ee49113cc8cc5036fa008519b94137df6987bf1f9fbffb2d42d298af868a' '9aebd800e5fe191cd5f4bd82c33419eefdd80919e6c6f5a3a9346a224625f094' - 'bd0fae907c451252e91c4cbf1ad301716bc9f8a4644ecc60e9590a64197477d3' - '1f906676563e866e2b59719679e76e0b2f7f082f48ef0593e86da0351a586c73' - '1de9bdbfed482295dda45c7d4e323cee55a34e42f66b892da1c1a778682b7a41' - 'e73cc2ee8d3ea35aab18c478d76fdfc68ca4463e1e10306fa1e738c03b3f26b5' - 'eb67eda4945a89c3b90473fa8dc20637511ca4dcb58879a8ed6bf403700ca9c8' - 'c0ad3fa426cb8fc1a237ddc6309a6b2dd4055bbe41dd07f50071ee61f969b81a' - '6fbffe59b886195b92c9a55137cef83021c16593f49714acb20023633e3ebb19' + '0a8d1af2a3734b5f99ea8462940e332db4acee7130fe436ad3e4b7ad133e5ae5' + '21f631851cdcb347f40793485b168cb5d0da65ae26ae39ba58d624c66197d0a5' + '08ef82476780e0864b5bf7f20eb19db320e73b9a5d4f595351e12e97dda8746f' + 'e477aa48a11ca4d53927f66a9593567fcd053325fb38af30ac3508465f1dd1f6' + '18276e65c68a0c328601b12fefb7e8bfc632346f34b87e64944c9de8c95c5cfa' + '5bc775c0ece84d67855f51b30eadcf96fa8163b416d2036e9f9ba19072f54dfe' + 'e530d1b39504c2ab247e16f1602359c484e9e8be4ef6d4824d68b14d29a7f60b' + '5db225565336a3d9b9e9f341281680433c0b7bb343dff2698b2acffd86585cbe' + 'ae3bf107834bd8eda9a3ec7899fe35fde62e6111062e5def7d24bf49b53db3db' + '46f7fc9768730c460b27681ccf3dc2685c7e1fd22d70d3a82d9e57e3389bb014' '709e2fddba3c1f2ed4deb3a239fc0479bfa50c46e054e7f32db4fb1365fed070' '771292942c0901092a402cc60ee883877a99fb804cb54d568c8c6c94565a48e1') # Possible replacements are listed in build/linux/unbundle/replace_gn_files.py @@ -69,7 +76,7 @@ declare -gA _system_libs=( [libdrm]= [libjpeg]=libjpeg #[libpng]=libpng # https://crbug.com/752403#c10 - #[libvpx]=libvpx # https://github.com/webmproject/libvpx/commit/5a0242ba5c + [libvpx]=libvpx [libwebp]=libwebp [libxml]=libxml2 [libxslt]=libxslt @@ -96,7 +103,7 @@ prepare() { 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 + third_party/libxml/chromium/*.cc msg2 'Applying archlinux patches' @@ -105,21 +112,35 @@ prepare() { # Fix vaapi linkage error patch -Np1 -i ../fix-vaapi-ozone-build.patch - - # https://crbug.com/819294 - patch -Np1 -i ../launch_manager.h-uses-std-vector.patch - patch -Np1 -i ../include-algorithm-to-use-std-lower_bound.patch - # https://crbug.com/1014272 - patch -Np1 -i ../icu65.patch + # build fixes + patch -Np1 -i ../0001-Add-missing-algorithm-header-in-bitmap_cursor_factor.patch + + # 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 - # Fixes from Gentoo - patch -Np1 -i ../chromium-system-icu.patch - patch -Np1 -i ../chromium-system-zlib.patch - patch -Np1 -i ../chromium-system-hb.patch + # https://crbug.com/977964 + patch -Np1 -i ../fix-building-with-system-zlib.patch # https://crbug.com/1005508 - patch -Np1 -i ../fix-spammy-unique-font-matching-log.patch + 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/1046122 + patch -Np1 -i ../fix-browser-frame-view-not-getting-a-relayout.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 @@ -129,7 +150,7 @@ prepare() { patch -Np0 -i ../chromium-skia-harmony.patch # Ungoogled chromium stuff - _ungoogled_repo="$srcdir/$_pkgname" + _ungoogled_repo="$srcdir/$_pkgname-$pkgver-$_ungoogled_rel" _utils="${_ungoogled_repo}/utils" msg2 'Applying ungoogled chromium patches' # Prune binaries @@ -178,7 +199,7 @@ build() { export NM=nm # Ungoogled Chromium stuff - _ungoogled_repo="$srcdir/$_pkgname" + _ungoogled_repo="$srcdir/$_pkgname-$pkgver-$_ungoogled_rel" nproc=$(nproc) mkdir -p out/Release # Assemble GN flags diff --git a/chromium-system-hb.patch b/chromium-system-hb.patch deleted file mode 100644 index 83e0621777f1..000000000000 --- a/chromium-system-hb.patch +++ /dev/null @@ -1,19 +0,0 @@ -diff --git a/components/paint_preview/common/subset_font.cc b/components/paint_preview/common/subset_font.cc -index a218d63..6a5bdae 100644 ---- a/components/paint_preview/common/subset_font.cc -+++ b/components/paint_preview/common/subset_font.cc -@@ -10,11 +10,12 @@ - #include "base/bind.h" - #include "base/callback.h" - #include "base/macros.h" --#include "third_party/harfbuzz-ng/src/src/hb-subset.h" --#include "third_party/harfbuzz-ng/src/src/hb.h" - #include "third_party/skia/include/core/SkStream.h" - #include "third_party/skia/include/core/SkTypeface.h" - -+#include <hb-subset.h> -+#include <hb.h> -+ - namespace paint_preview { - - namespace { diff --git a/chromium-system-icu.patch b/chromium-system-icu.patch deleted file mode 100644 index 1f848d7ee2be..000000000000 --- a/chromium-system-icu.patch +++ /dev/null @@ -1,20 +0,0 @@ -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", diff --git a/chromium-system-zlib.patch b/chromium-system-zlib.patch deleted file mode 100644 index 951a2adb196a..000000000000 --- a/chromium-system-zlib.patch +++ /dev/null @@ -1,13 +0,0 @@ -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", - ] diff --git a/cros-search-service-Include-cmath-for-std-pow.patch b/cros-search-service-Include-cmath-for-std-pow.patch new file mode 100644 index 000000000000..410b968d0fe6 --- /dev/null +++ b/cros-search-service-Include-cmath-for-std-pow.patch @@ -0,0 +1,35 @@ +From 8273f4d3130e06fd8b6bef87b07c936304b971d9 Mon Sep 17 00:00:00 2001 +From: Raphael Kubo da Costa <raphael.kubo.da.costa@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@intel.com> +Reviewed-by: Jia Meng <jiameng@chromium.org> +Commit-Queue: Raphael Kubo da Costa <raphael.kubo.da.costa@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" diff --git a/fix-browser-frame-view-not-getting-a-relayout.patch b/fix-browser-frame-view-not-getting-a-relayout.patch new file mode 100644 index 000000000000..fbdd026ff10f --- /dev/null +++ b/fix-browser-frame-view-not-getting-a-relayout.patch @@ -0,0 +1,38 @@ +From c73968d63c456d4aaf55c5cd439b42403a3bbeb1 Mon Sep 17 00:00:00 2001 +From: Tom Anderson <thomasanderson@chromium.org> +Date: Mon, 3 Feb 2020 19:53:50 +0000 +Subject: [PATCH] Fix browser frame view not getting a relayout after a state + change + +views::NonClientView has 2 things: a views::NonClientFrameView and a +views::ClientView. We were previously only invalidating the layout on +the ClientView after a state change. This was causing the browser +frame to paint as if it were still maximized after restoring from +a maximized state on Linux. Invalidating the layout of the frame view +fixes the issue. + +BUG=1046122 +R=sky + +Change-Id: I7da525efe1f436564ffffb410afe294e901e5d89 +Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2033759 +Reviewed-by: Scott Violet <sky@chromium.org> +Commit-Queue: Thomas Anderson <thomasanderson@chromium.org> +Cr-Commit-Position: refs/heads/master@{#737890} +--- + .../widget/desktop_aura/desktop_window_tree_host_platform.cc | 2 ++ + 1 file changed, 2 insertions(+) + +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 9abbce89586..6c00d49eb3f 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 +@@ -717,6 +717,8 @@ void DesktopWindowTreeHostPlatform::Relayout() { + NonClientView* non_client_view = widget->non_client_view(); + // non_client_view may be NULL, especially during creation. + if (non_client_view) { ++ if (non_client_view->frame_view()) ++ non_client_view->frame_view()->InvalidateLayout(); + non_client_view->client_view()->InvalidateLayout(); + non_client_view->InvalidateLayout(); + } diff --git a/fix-building-with-system-zlib.patch b/fix-building-with-system-zlib.patch new file mode 100644 index 000000000000..d488ac20fe13 --- /dev/null +++ b/fix-building-with-system-zlib.patch @@ -0,0 +1,32 @@ +From cda86e34ddadba5f08dea764881bbb6c8ec01e8a Mon Sep 17 00:00:00 2001 +From: Stephan Hartmann <stha09@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@chromium.org> +Commit-Queue: Thomas Anderson <thomasanderson@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" ] diff --git a/fix-building-with-unbundled-libxml.patch b/fix-building-with-unbundled-libxml.patch new file mode 100644 index 000000000000..7b934376e6e4 --- /dev/null +++ b/fix-building-with-unbundled-libxml.patch @@ -0,0 +1,127 @@ +From d3afade220ddb307e16a6dd4f2b0ec88b2af91e7 Mon Sep 17 00:00:00 2001 +From: Stephan Hartmann <stha09@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@chromium.org> +Reviewed-by: Daniel Cheng <dcheng@chromium.org> +Reviewed-by: Nico Weber <thakis@chromium.org> +Commit-Queue: Robert Sesek <rsesek@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) {} + diff --git a/fix-shim-header-generation-when-unbundling-ICU.patch b/fix-shim-header-generation-when-unbundling-ICU.patch new file mode 100644 index 000000000000..04f1ecd3bced --- /dev/null +++ b/fix-shim-header-generation-when-unbundling-ICU.patch @@ -0,0 +1,50 @@ +From dcad5af090528018599277dc5d7e160fb6b2d68e Mon Sep 17 00:00:00 2001 +From: Stephan Hartmann <stha09@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@chromium.org> +Commit-Queue: Lei Zhang <thestig@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@gmail.com> + Sreerenj Balachandran <sreerenj.balachandran@intel.com> + Srirama Chandra Sekhar Mogali <srirama.m@samsung.com> + Staphany Park <stapark008@gmail.com> ++Stephan Hartmann <stha09@googlemail.com> + Stephen Searles <stephen.searles@gmail.com> + Steve Sanders <steve@zanderz.com> + Steven Pennington <spenn@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", diff --git a/fix-spammy-unique-font-matching-log.patch b/fix-spammy-unique-font-matching-log.patch deleted file mode 100644 index 9321a98a7254..000000000000 --- a/fix-spammy-unique-font-matching-log.patch +++ /dev/null @@ -1,13 +0,0 @@ -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; - } - diff --git a/flags.archlinux.gn b/flags.archlinux.gn index 5eb781e02f2b..0e8efd8117cf 100644 --- a/flags.archlinux.gn +++ b/flags.archlinux.gn @@ -8,7 +8,6 @@ goma_dir="" is_official_build=true host_toolchain="//build/toolchain/linux/unbundle:default" is_clang=true -jumbo_file_merge_limit=8 link_pulseaudio=true linux_use_bundled_binutils=false proprietary_codecs=true @@ -17,7 +16,6 @@ use_cups=true use_custom_libcxx=false use_gio=true use_gnome_keyring=false -use_jumbo_build=true use_kerberos=false use_libjpeg_turbo=true use_lld=true diff --git a/icu65.patch b/icu65.patch deleted file mode 100644 index 811d56286a98..000000000000 --- a/icu65.patch +++ /dev/null @@ -1,64 +0,0 @@ -From 5679c3c191ed62b62d8db22f1657a296ee9bfe8e Mon Sep 17 00:00:00 2001 -From: Frank Tang <ftang@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@chromium.org> -Reviewed-by: Doug Turner <dougt@chromium.org> -Reviewed-by: Michael Wasserman <msw@chromium.org> -Reviewed-by: Kent Tamura <tkent@chromium.org> -Reviewed-by: Trent Apted <tapted@chromium.org> -Reviewed-by: Mason Freed <masonfreed@chromium.org> -Commit-Queue: Frank Tang <ftang@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 diff --git a/include-algorithm-to-use-std-lower_bound.patch b/include-algorithm-to-use-std-lower_bound.patch deleted file mode 100644 index dc376321ffc4..000000000000 --- a/include-algorithm-to-use-std-lower_bound.patch +++ /dev/null @@ -1,49 +0,0 @@ -From f7c177d35242311ea7a2cf49a0980c61664f27ba Mon Sep 17 00:00:00 2001 -From: Jose Dapena Paz <jose.dapena@lge.com> -Date: Fri, 25 Oct 2019 15:07:09 +0000 -Subject: [PATCH] IWYU: include algorithm to use std::lower_bound in - ui/gfx/font.cc -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Fix GCC build because of missing include: -../../ui/gfx/font.cc: In function ‘gfx::Font::Weight gfx::FontWeightFromInt(int)’: -../../ui/gfx/font.cc:114:8: error: no matching function for call to ‘lower_bound(const gfx::Font::Weight*, const gfx::Font::Weight*, int&, gfx::FontWeightFromInt(int)::<lambda(const gfx::Font::Weight&, const int&)>)’ - }); - ^ -In file included from /usr/include/c++/8/bits/char_traits.h:39, - from /usr/include/c++/8/string:40, - from ../../ui/gfx/font.h:8, - from ../../ui/gfx/font.cc:5: -/usr/include/c++/8/bits/stl_algobase.h:984:5: note: candidate: ‘template<class _ForwardIterator, class _Tp> _ForwardIterator std::lower_bound(_ForwardIterator, _ForwardIterator, const _Tp&)’ - lower_bound(_ForwardIterator __first, _ForwardIterator __last, - ^~~~~~~~~~~ -/usr/include/c++/8/bits/stl_algobase.h:984:5: note: template argument deduction/substitution failed: -../../ui/gfx/font.cc:114:8: note: candidate expects 3 arguments, 4 provided - }); - ^ - -Bug: 819294 -Change-Id: Ic59dcf3a06bdd54d1d426c08a61624873a0ff30c -Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1879909 -Commit-Queue: Alexei Svitkine <asvitkine@chromium.org> -Reviewed-by: Alexei Svitkine <asvitkine@chromium.org> -Cr-Commit-Position: refs/heads/master@{#709472} ---- - ui/gfx/font.cc | 2 ++ - 1 file changed, 2 insertions(+) - -diff --git a/ui/gfx/font.cc b/ui/gfx/font.cc -index 21367fd7297..92b159e13d1 100644 ---- a/ui/gfx/font.cc -+++ b/ui/gfx/font.cc -@@ -4,6 +4,8 @@ - - #include "ui/gfx/font.h" - -+#include <algorithm> -+ - #include "base/strings/utf_string_conversions.h" - #include "build/build_config.h" - #include "ui/gfx/platform_font.h" diff --git a/launch_manager.h-uses-std-vector.patch b/launch_manager.h-uses-std-vector.patch deleted file mode 100644 index 72abe9b9ce69..000000000000 --- a/launch_manager.h-uses-std-vector.patch +++ /dev/null @@ -1,36 +0,0 @@ -From 97eb905ba262382bc3583078761c68f4452aea71 Mon Sep 17 00:00:00 2001 -From: Jose Dapena Paz <jose.dapena@lge.com> -Date: Fri, 25 Oct 2019 09:27:53 +0000 -Subject: [PATCH] IWYU: launch_manager.h uses std::vector -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Add #include <vector> for using std::vector. This fixes GCC build. - -./../chrome/browser/apps/launch_service/launch_manager.h:46:15: error: ‘vector’ in namespace ‘std’ does not name a template type - static std::vector<base::FilePath> GetLaunchFilesFromCommandLine( - ^~~~~~ - -Bug: 819294 -Change-Id: I02ec3a2914a8fbe3aa0041017a0228f4b0ca1ec9 -Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1879289 -Reviewed-by: Alexey Baskakov <loyso@chromium.org> -Commit-Queue: José Dapena Paz <jose.dapena@lge.com> -Cr-Commit-Position: refs/heads/master@{#709411} ---- - chrome/browser/apps/launch_service/launch_manager.h | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/chrome/browser/apps/launch_service/launch_manager.h b/chrome/browser/apps/launch_service/launch_manager.h -index 00aeb9d9c2a..76570ead0f9 100644 ---- a/chrome/browser/apps/launch_service/launch_manager.h -+++ b/chrome/browser/apps/launch_service/launch_manager.h -@@ -6,6 +6,7 @@ - #define CHROME_BROWSER_APPS_LAUNCH_SERVICE_LAUNCH_MANAGER_H_ - - #include <string> -+#include <vector> - - #include "base/macros.h" - diff --git a/move-RemoteTreeNode-declaration.patch b/move-RemoteTreeNode-declaration.patch new file mode 100644 index 000000000000..50fc78cdb47a --- /dev/null +++ b/move-RemoteTreeNode-declaration.patch @@ -0,0 +1,237 @@ +From cdf3e81ff49b200213d67d65558f2919222b60ab Mon Sep 17 00:00:00 2001 +From: Raphael Kubo da Costa <raphael.kubo.da.costa@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@intel.com> +Reviewed-by: Mikel Astiz <mastiz@chromium.org> +Auto-Submit: Raphael Kubo da Costa <raphael.kubo.da.costa@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. diff --git a/rebuild-Linux-frame-button-cache-when-activation.patch b/rebuild-Linux-frame-button-cache-when-activation.patch new file mode 100644 index 000000000000..40764b3ba7ab --- /dev/null +++ b/rebuild-Linux-frame-button-cache-when-activation.patch @@ -0,0 +1,62 @@ +From d10f885b9327399be9348b780967ebd6b7f2c4bc Mon Sep 17 00:00:00 2001 +From: Tom Anderson <thomasanderson@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@chromium.org> +Commit-Queue: Scott Violet <sky@chromium.org> +Reviewed-by: Scott Violet <sky@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> diff --git a/remove-verbose-logging-in-local-unique-font-matching.patch b/remove-verbose-logging-in-local-unique-font-matching.patch new file mode 100644 index 000000000000..a88286181017 --- /dev/null +++ b/remove-verbose-logging-in-local-unique-font-matching.patch @@ -0,0 +1,33 @@ +From 8500a125e9fba8bb84d185542155747ee7157ff8 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Dominik=20R=C3=B6ttsches?= <drott@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@chromium.org> +Commit-Queue: Kentaro Hara <haraken@chromium.org> +Auto-Submit: Dominik Röttsches <drott@chromium.org> +Reviewed-by: Kentaro Hara <haraken@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; + } + diff --git a/rename-Relayout-in-DesktopWindowTreeHostPlatform.patch b/rename-Relayout-in-DesktopWindowTreeHostPlatform.patch new file mode 100644 index 000000000000..eda3cbdbaaf3 --- /dev/null +++ b/rename-Relayout-in-DesktopWindowTreeHostPlatform.patch @@ -0,0 +1,64 @@ +From 5a2cd2409c7d65c019ad9f4595a4e85315857ac4 Mon Sep 17 00:00:00 2001 +From: Tom Anderson <thomasanderson@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@chromium.org> +Reviewed-by: Scott Violet <sky@chromium.org> +Commit-Queue: Thomas Anderson <thomasanderson@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; diff --git a/sync-enable-USSPasswords-by-default.patch b/sync-enable-USSPasswords-by-default.patch new file mode 100644 index 000000000000..7f3a7005a66c --- /dev/null +++ b/sync-enable-USSPasswords-by-default.patch @@ -0,0 +1,28 @@ +From eb997db5527c01fd12c321a6abc52b7cff882e50 Mon Sep 17 00:00:00 2001 +From: Mohamed Amir Yosef <mamir@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@chromium.org> +Reviewed-by: Mikel Astiz <mastiz@chromium.org> +Commit-Queue: Mohamed Amir Yosef <mamir@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", |