Date: Tuesday, April 10, 2018 @ 00:09:58 Author: foutrelis Revision: 321431
archrelease: copy trunk to extra-x86_64 Added: chromium/repos/extra-x86_64/PKGBUILD (from rev 321430, chromium/trunk/PKGBUILD) chromium/repos/extra-x86_64/allow-stat-in-Linux-for-GPU-process-for-a-list-of-files.patch (from rev 321430, chromium/trunk/allow-stat-in-Linux-for-GPU-process-for-a-list-of-files.patch) chromium/repos/extra-x86_64/chromium-clang-r2.patch (from rev 321430, chromium/trunk/chromium-clang-r2.patch) chromium/repos/extra-x86_64/chromium-math.h-r0.patch (from rev 321430, chromium/trunk/chromium-math.h-r0.patch) chromium/repos/extra-x86_64/chromium-skia-harmony.patch (from rev 321430, chromium/trunk/chromium-skia-harmony.patch) chromium/repos/extra-x86_64/chromium-stdint.patch (from rev 321430, chromium/trunk/chromium-stdint.patch) chromium/repos/extra-x86_64/chromium-widevine.patch (from rev 321430, chromium/trunk/chromium-widevine.patch) chromium/repos/extra-x86_64/chromium.install (from rev 321430, chromium/trunk/chromium.install) chromium/repos/extra-x86_64/fix-crash-in-is_cfi-true-builds-with-unbundled-ICU.patch (from rev 321430, chromium/trunk/fix-crash-in-is_cfi-true-builds-with-unbundled-ICU.patch) chromium/repos/extra-x86_64/fix-frame-buttons-rendering-too-large-when-using-OSX.patch (from rev 321430, chromium/trunk/fix-frame-buttons-rendering-too-large-when-using-OSX.patch) chromium/repos/extra-x86_64/send-GSB-before-switching-to-mainthread-scrolling-in.patch (from rev 321430, chromium/trunk/send-GSB-before-switching-to-mainthread-scrolling-in.patch) Deleted: chromium/repos/extra-x86_64/PKGBUILD chromium/repos/extra-x86_64/allow-stat-in-Linux-for-GPU-process-for-a-list-of-files.patch chromium/repos/extra-x86_64/chromium-clang-r2.patch chromium/repos/extra-x86_64/chromium-math.h-r0.patch chromium/repos/extra-x86_64/chromium-skia-harmony.patch chromium/repos/extra-x86_64/chromium-stdint.patch chromium/repos/extra-x86_64/chromium-widevine.patch chromium/repos/extra-x86_64/chromium.install chromium/repos/extra-x86_64/fix-crash-in-is_cfi-true-builds-with-unbundled-ICU.patch chromium/repos/extra-x86_64/fix-frame-buttons-rendering-too-large-when-using-OSX.patch chromium/repos/extra-x86_64/send-GSB-before-switching-to-mainthread-scrolling-in.patch ---------------------------------------------------------------+ PKGBUILD | 522 +++++----- allow-stat-in-Linux-for-GPU-process-for-a-list-of-files.patch | 176 +-- chromium-clang-r2.patch | 42 chromium-math.h-r0.patch | 58 - chromium-skia-harmony.patch | 154 +- chromium-stdint.patch | 42 chromium-widevine.patch | 20 chromium.install | 32 fix-crash-in-is_cfi-true-builds-with-unbundled-ICU.patch | 106 +- fix-frame-buttons-rendering-too-large-when-using-OSX.patch | 120 +- send-GSB-before-switching-to-mainthread-scrolling-in.patch | 106 +- 11 files changed, 691 insertions(+), 687 deletions(-) Deleted: PKGBUILD =================================================================== --- PKGBUILD 2018-04-10 00:09:16 UTC (rev 321430) +++ PKGBUILD 2018-04-10 00:09:58 UTC (rev 321431) @@ -1,259 +0,0 @@ -# $Id$ -# Maintainer: Evangelos Foutras <evange...@foutrelis.com> -# Contributor: Pierre Schmitz <pie...@archlinux.de> -# Contributor: Jan "heftig" Steffens <jan.steff...@gmail.com> -# Contributor: Daniel J Griffiths <ghost1...@archlinux.us> - -pkgname=chromium -pkgver=65.0.3325.181 -pkgrel=6 -_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' - 'clang' 'lld') -optdepends=('pepper-flash: support for Flash content' - '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 - chromium-$pkgver.txt::https://chromium.googlesource.com/chromium/src.git/+/$pkgver?format=TEXT - fix-crash-in-is_cfi-true-builds-with-unbundled-ICU.patch - allow-stat-in-Linux-for-GPU-process-for-a-list-of-files.patch - fix-frame-buttons-rendering-too-large-when-using-OSX.patch - send-GSB-before-switching-to-mainthread-scrolling-in.patch - chromium-skia-harmony.patch - chromium-clang-r2.patch - chromium-math.h-r0.patch - chromium-stdint.patch - chromium-widevine.patch) -sha256sums=('93666448c6b96ec83e6a35a64cff40db4eb92a154fe1db4e7dab4761d0e38687' - '04917e3cd4307d8e31bfb0027a5dce6d086edb10ff8a716024fbb8bb0c7dccf1' - '2771c049b66c9aba3b945fe065f2610f164d55506eb5d71751a26aaf8b40d4ee' - 'e3fb73b43bb8c69ff517e66b2cac73d6e759fd240003eb35598df9af442422fe' - '4327289866d0b3006de62799ec06b07198a738e50e0a5c2e41ff62dbe00b4a2c' - 'bd5e0e61df3f89172590801aea7c8ac75162c10c7fe83e262e96a14388d1633a' - 'b20bb43c89dd1fb5fc787e52b7ef6f4f20714f7d74e33372c0979fe398b5b436' - 'feca54ab09ac0fc9d0626770a6b899a6ac5a12173c7d0c1005bc3964ec83e7b3' - '4495e8b29dae242c79ffe4beefc5171eb3c7aacb7e9aebfd2d4d69b9d8c958d3' - 'fe0ab86aa5b0072db730eccda3e1582ebed4af25815bfd49fe0da24cf63ca902' - 'c00d2506f1078b38a8ebec474a7318e76a61db1298afb40088a34210f137210f' - 'd6fdcb922e5a7fbe15759d39ccc8ea4225821c44d98054ce0f23f9d1f00c9808') - -# 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 # https://crbug.com/731766 - [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 # https://crbug.com/736026 - [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" - - # https://crbug.com/710701 - local _chrome_build_hash=$(base64 -d ../chromium-$pkgver.txt | - grep -Po '^parent \K[0-9a-f]{40}$') - if [[ -z $_chrome_build_hash ]]; then - error "Unable to find Chrome build hash." - return 1 - fi - echo "LASTCHANGE=$_chrome_build_hash-" >build/util/LASTCHANGE - - # Allow building against system libraries in official builds - sed -i 's/OFFICIAL_BUILD/GOOGLE_CHROME_BUILD/' \ - tools/generate_shim_headers/generate_shim_headers.py - - # Enable support for the Widevine CDM plugin - # libwidevinecdm.so is not included, but can be copied over from Chrome - # (Version string doesn't seem to matter so let's go with "Pinkie Pie") - sed "s/@WIDEVINE_VERSION@/Pinkie Pie/" ../chromium-widevine.patch | - patch -Np1 - - # https://crbug.com/822820 - patch -Np1 -i ../fix-crash-in-is_cfi-true-builds-with-unbundled-ICU.patch - - # https://crbug.com/817400 - patch -Np1 -i ../allow-stat-in-Linux-for-GPU-process-for-a-list-of-files.patch - - # https://crbug.com/821881 - patch -Np1 -i ../fix-frame-buttons-rendering-too-large-when-using-OSX.patch - - # https://crbug.com/797708 - patch -Np1 -i ../send-GSB-before-switching-to-mainthread-scrolling-in.patch - - # https://crbug.com/skia/6663#c10 - patch -Np4 -i ../chromium-skia-harmony.patch - - # Fixes from Gentoo - patch -Np1 -i ../chromium-clang-r2.patch - patch -Np1 -i ../chromium-math.h-r0.patch - patch -Np1 -i ../chromium-stdint.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 -type f -path "*third_party/$_lib/*" \ - \! -path "*third_party/$_lib/chromium/*" \ - \! -path "*third_party/$_lib/google/*" \ - \! -path './base/third_party/icu/*' \ - \! -path './third_party/pdfium/third_party/freetype/include/pstables.h' \ - \! -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 - 'is_debug=false' - 'treat_warnings_as_errors=false' - 'fieldtrial_testing_like_official_build=true' - 'remove_webcore_debug_symbols=true' - 'ffmpeg_branding="Chrome"' - 'proprietary_codecs=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}\"" - ) - - # 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__=' - - if check_option strip y; then - _flags+=('symbol_level=0') - - # Mimic exclude_unwind_tables=true - CFLAGS+=' -fno-unwind-tables -fno-asynchronous-unwind-tables' - CXXFLAGS+=' -fno-unwind-tables -fno-asynchronous-unwind-tables' - CPPFLAGS+=' -DNO_UNWIND_TABLES' - fi - - python2 tools/gn/bootstrap/bootstrap.py -s --no-clean - out/Release/gn gen out/Release --args="${_flags[*]}" \ - --script-executable=/usr/bin/python2 - - ninja -C out/Release chrome chrome_sandbox chromedriver widevinecdmadapter -} - -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,libwidevinecdmadapter.so} \ - "$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 22 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 321430, chromium/trunk/PKGBUILD) =================================================================== --- PKGBUILD (rev 0) +++ PKGBUILD 2018-04-10 00:09:58 UTC (rev 321431) @@ -0,0 +1,263 @@ +# $Id$ +# Maintainer: Evangelos Foutras <evange...@foutrelis.com> +# Contributor: Pierre Schmitz <pie...@archlinux.de> +# Contributor: Jan "heftig" Steffens <jan.steff...@gmail.com> +# Contributor: Daniel J Griffiths <ghost1...@archlinux.us> + +pkgname=chromium +pkgver=65.0.3325.181 +pkgrel=7 +_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' + 'clang' 'lld') +optdepends=('pepper-flash: support for Flash content' + '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 + chromium-$pkgver.txt::https://chromium.googlesource.com/chromium/src.git/+/$pkgver?format=TEXT + fix-crash-in-is_cfi-true-builds-with-unbundled-ICU.patch + allow-stat-in-Linux-for-GPU-process-for-a-list-of-files.patch + fix-frame-buttons-rendering-too-large-when-using-OSX.patch + send-GSB-before-switching-to-mainthread-scrolling-in.patch + chromium-skia-harmony.patch + chromium-clang-r2.patch + chromium-math.h-r0.patch + chromium-stdint.patch + chromium-widevine.patch) +sha256sums=('93666448c6b96ec83e6a35a64cff40db4eb92a154fe1db4e7dab4761d0e38687' + '04917e3cd4307d8e31bfb0027a5dce6d086edb10ff8a716024fbb8bb0c7dccf1' + '2771c049b66c9aba3b945fe065f2610f164d55506eb5d71751a26aaf8b40d4ee' + 'e3fb73b43bb8c69ff517e66b2cac73d6e759fd240003eb35598df9af442422fe' + '4327289866d0b3006de62799ec06b07198a738e50e0a5c2e41ff62dbe00b4a2c' + 'bd5e0e61df3f89172590801aea7c8ac75162c10c7fe83e262e96a14388d1633a' + 'b20bb43c89dd1fb5fc787e52b7ef6f4f20714f7d74e33372c0979fe398b5b436' + 'feca54ab09ac0fc9d0626770a6b899a6ac5a12173c7d0c1005bc3964ec83e7b3' + '4495e8b29dae242c79ffe4beefc5171eb3c7aacb7e9aebfd2d4d69b9d8c958d3' + 'fe0ab86aa5b0072db730eccda3e1582ebed4af25815bfd49fe0da24cf63ca902' + 'c00d2506f1078b38a8ebec474a7318e76a61db1298afb40088a34210f137210f' + 'd6fdcb922e5a7fbe15759d39ccc8ea4225821c44d98054ce0f23f9d1f00c9808') + +# 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 # https://crbug.com/731766 + [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 # https://crbug.com/736026 + [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" + + # https://crbug.com/710701 + local _chrome_build_hash=$(base64 -d ../chromium-$pkgver.txt | + grep -Po '^parent \K[0-9a-f]{40}$') + if [[ -z $_chrome_build_hash ]]; then + error "Unable to find Chrome build hash." + return 1 + fi + echo "LASTCHANGE=$_chrome_build_hash-" >build/util/LASTCHANGE + + # Allow building against system libraries in official builds + sed -i 's/OFFICIAL_BUILD/GOOGLE_CHROME_BUILD/' \ + tools/generate_shim_headers/generate_shim_headers.py + + # Enable support for the Widevine CDM plugin + # libwidevinecdm.so is not included, but can be copied over from Chrome + # (Version string doesn't seem to matter so let's go with "Pinkie Pie") + sed "s/@WIDEVINE_VERSION@/Pinkie Pie/" ../chromium-widevine.patch | + patch -Np1 + + # Work around broken screen sharing in Google Meet + # https://crbug.com/829916#c16 + sed -i 's/"Chromium/"Chrome/' chrome/common/chrome_content_client_constants.cc + + # https://crbug.com/822820 + patch -Np1 -i ../fix-crash-in-is_cfi-true-builds-with-unbundled-ICU.patch + + # https://crbug.com/817400 + patch -Np1 -i ../allow-stat-in-Linux-for-GPU-process-for-a-list-of-files.patch + + # https://crbug.com/821881 + patch -Np1 -i ../fix-frame-buttons-rendering-too-large-when-using-OSX.patch + + # https://crbug.com/797708 + patch -Np1 -i ../send-GSB-before-switching-to-mainthread-scrolling-in.patch + + # https://crbug.com/skia/6663#c10 + patch -Np4 -i ../chromium-skia-harmony.patch + + # Fixes from Gentoo + patch -Np1 -i ../chromium-clang-r2.patch + patch -Np1 -i ../chromium-math.h-r0.patch + patch -Np1 -i ../chromium-stdint.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 -type f -path "*third_party/$_lib/*" \ + \! -path "*third_party/$_lib/chromium/*" \ + \! -path "*third_party/$_lib/google/*" \ + \! -path './base/third_party/icu/*' \ + \! -path './third_party/pdfium/third_party/freetype/include/pstables.h' \ + \! -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 + 'is_debug=false' + 'treat_warnings_as_errors=false' + 'fieldtrial_testing_like_official_build=true' + 'remove_webcore_debug_symbols=true' + 'ffmpeg_branding="Chrome"' + 'proprietary_codecs=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}\"" + ) + + # 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__=' + + if check_option strip y; then + _flags+=('symbol_level=0') + + # Mimic exclude_unwind_tables=true + CFLAGS+=' -fno-unwind-tables -fno-asynchronous-unwind-tables' + CXXFLAGS+=' -fno-unwind-tables -fno-asynchronous-unwind-tables' + CPPFLAGS+=' -DNO_UNWIND_TABLES' + fi + + python2 tools/gn/bootstrap/bootstrap.py -s --no-clean + out/Release/gn gen out/Release --args="${_flags[*]}" \ + --script-executable=/usr/bin/python2 + + ninja -C out/Release chrome chrome_sandbox chromedriver widevinecdmadapter +} + +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,libwidevinecdmadapter.so} \ + "$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 22 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: allow-stat-in-Linux-for-GPU-process-for-a-list-of-files.patch =================================================================== --- allow-stat-in-Linux-for-GPU-process-for-a-list-of-files.patch 2018-04-10 00:09:16 UTC (rev 321430) +++ allow-stat-in-Linux-for-GPU-process-for-a-list-of-files.patch 2018-04-10 00:09:58 UTC (rev 321431) @@ -1,88 +0,0 @@ -From 6b1b6d3a8555075e23cca89335e855d55f35fba9 Mon Sep 17 00:00:00 2001 -From: Zhenyao Mo <z...@chromium.org> -Date: Thu, 29 Mar 2018 23:48:19 +0000 -Subject: [PATCH] Allow `stat` in Linux for GPU process for a list of files. - -This is to unblock certain NVidia driver's glReadPixels calls in the sandboxed -GPU process. - -Note that the needed file /dev/nvidiactl is already in the list for read/write. - -BUG=817400 -TEST=manual -R=tse...@chromium.org - -Change-Id: I9074a8335a9c4df1487f5a288d5e284bbedf67c3 -Reviewed-on: https://chromium-review.googlesource.com/965462 -Reviewed-by: Zhenyao Mo <z...@chromium.org> -Reviewed-by: Tom Sepez <tse...@chromium.org> -Reviewed-by: Robert Sesek <rse...@chromium.org> -Reviewed-by: Kenneth Russell <k...@chromium.org> -Commit-Queue: Zhenyao Mo <z...@chromium.org> -Cr-Commit-Position: refs/heads/master@{#547027} ---- - content/gpu/gpu_sandbox_hook_linux.cc | 5 ++++- - .../service_manager/sandbox/linux/bpf_gpu_policy_linux.cc | 15 ++++++++++++++- - 2 files changed, 18 insertions(+), 2 deletions(-) - -diff --git a/content/gpu/gpu_sandbox_hook_linux.cc b/content/gpu/gpu_sandbox_hook_linux.cc -index ddd7b99485fe..cd914e2f9926 100644 ---- a/content/gpu/gpu_sandbox_hook_linux.cc -+++ b/content/gpu/gpu_sandbox_hook_linux.cc -@@ -153,6 +153,7 @@ void AddStandardGpuWhiteList(std::vector<BrokerFilePermission>* permissions) { - static const char kDriCardBasePath[] = "/dev/dri/card"; - static const char kNvidiaCtlPath[] = "/dev/nvidiactl"; - static const char kNvidiaDeviceBasePath[] = "/dev/nvidia"; -+ static const char kNvidiaDeviceModeSetPath[] = "/dev/nvidia-modeset"; - static const char kNvidiaParamsPath[] = "/proc/driver/nvidia/params"; - static const char kDevShm[] = "/dev/shm/"; - -@@ -172,6 +173,8 @@ void AddStandardGpuWhiteList(std::vector<BrokerFilePermission>* permissions) { - permissions->push_back(BrokerFilePermission::ReadWrite( - base::StringPrintf("%s%d", kNvidiaDeviceBasePath, i))); - } -+ permissions->push_back( -+ BrokerFilePermission::ReadWrite(kNvidiaDeviceModeSetPath)); - permissions->push_back(BrokerFilePermission::ReadOnly(kNvidiaParamsPath)); - } - -@@ -262,9 +265,9 @@ sandbox::syscall_broker::BrokerCommandSet CommandSetForGPU( - sandbox::syscall_broker::BrokerCommandSet command_set; - command_set.set(sandbox::syscall_broker::COMMAND_ACCESS); - command_set.set(sandbox::syscall_broker::COMMAND_OPEN); -+ command_set.set(sandbox::syscall_broker::COMMAND_STAT); - if (IsChromeOS() && options.use_amd_specific_policies) { - command_set.set(sandbox::syscall_broker::COMMAND_READLINK); -- command_set.set(sandbox::syscall_broker::COMMAND_STAT); - } - return command_set; - } -diff --git a/services/service_manager/sandbox/linux/bpf_gpu_policy_linux.cc b/services/service_manager/sandbox/linux/bpf_gpu_policy_linux.cc -index bc16952c0898..d683aacc76f4 100644 ---- a/services/service_manager/sandbox/linux/bpf_gpu_policy_linux.cc -+++ b/services/service_manager/sandbox/linux/bpf_gpu_policy_linux.cc -@@ -61,7 +61,20 @@ ResultExpr GpuProcessPolicy::EvaluateSyscall(int sysno) const { - case __NR_open: - #endif // !defined(__aarch64__) - case __NR_faccessat: -- case __NR_openat: { -+ case __NR_openat: -+#if defined(__NR_stat) -+ case __NR_stat: -+#endif -+#if defined(__NR_stat64) -+ case __NR_stat64: -+#endif -+#if defined(__NR_fstatat) -+ case __NR_fstatat: -+#endif -+#if defined(__NR_newfstatat) -+ case __NR_newfstatat: -+#endif -+ { - auto* broker_process = SandboxLinux::GetInstance()->broker_process(); - DCHECK(broker_process); - return Trap(BrokerProcess::SIGSYS_Handler, broker_process); --- -2.16.2 - Copied: chromium/repos/extra-x86_64/allow-stat-in-Linux-for-GPU-process-for-a-list-of-files.patch (from rev 321430, chromium/trunk/allow-stat-in-Linux-for-GPU-process-for-a-list-of-files.patch) =================================================================== --- allow-stat-in-Linux-for-GPU-process-for-a-list-of-files.patch (rev 0) +++ allow-stat-in-Linux-for-GPU-process-for-a-list-of-files.patch 2018-04-10 00:09:58 UTC (rev 321431) @@ -0,0 +1,88 @@ +From 6b1b6d3a8555075e23cca89335e855d55f35fba9 Mon Sep 17 00:00:00 2001 +From: Zhenyao Mo <z...@chromium.org> +Date: Thu, 29 Mar 2018 23:48:19 +0000 +Subject: [PATCH] Allow `stat` in Linux for GPU process for a list of files. + +This is to unblock certain NVidia driver's glReadPixels calls in the sandboxed +GPU process. + +Note that the needed file /dev/nvidiactl is already in the list for read/write. + +BUG=817400 +TEST=manual +R=tse...@chromium.org + +Change-Id: I9074a8335a9c4df1487f5a288d5e284bbedf67c3 +Reviewed-on: https://chromium-review.googlesource.com/965462 +Reviewed-by: Zhenyao Mo <z...@chromium.org> +Reviewed-by: Tom Sepez <tse...@chromium.org> +Reviewed-by: Robert Sesek <rse...@chromium.org> +Reviewed-by: Kenneth Russell <k...@chromium.org> +Commit-Queue: Zhenyao Mo <z...@chromium.org> +Cr-Commit-Position: refs/heads/master@{#547027} +--- + content/gpu/gpu_sandbox_hook_linux.cc | 5 ++++- + .../service_manager/sandbox/linux/bpf_gpu_policy_linux.cc | 15 ++++++++++++++- + 2 files changed, 18 insertions(+), 2 deletions(-) + +diff --git a/content/gpu/gpu_sandbox_hook_linux.cc b/content/gpu/gpu_sandbox_hook_linux.cc +index ddd7b99485fe..cd914e2f9926 100644 +--- a/content/gpu/gpu_sandbox_hook_linux.cc ++++ b/content/gpu/gpu_sandbox_hook_linux.cc +@@ -153,6 +153,7 @@ void AddStandardGpuWhiteList(std::vector<BrokerFilePermission>* permissions) { + static const char kDriCardBasePath[] = "/dev/dri/card"; + static const char kNvidiaCtlPath[] = "/dev/nvidiactl"; + static const char kNvidiaDeviceBasePath[] = "/dev/nvidia"; ++ static const char kNvidiaDeviceModeSetPath[] = "/dev/nvidia-modeset"; + static const char kNvidiaParamsPath[] = "/proc/driver/nvidia/params"; + static const char kDevShm[] = "/dev/shm/"; + +@@ -172,6 +173,8 @@ void AddStandardGpuWhiteList(std::vector<BrokerFilePermission>* permissions) { + permissions->push_back(BrokerFilePermission::ReadWrite( + base::StringPrintf("%s%d", kNvidiaDeviceBasePath, i))); + } ++ permissions->push_back( ++ BrokerFilePermission::ReadWrite(kNvidiaDeviceModeSetPath)); + permissions->push_back(BrokerFilePermission::ReadOnly(kNvidiaParamsPath)); + } + +@@ -262,9 +265,9 @@ sandbox::syscall_broker::BrokerCommandSet CommandSetForGPU( + sandbox::syscall_broker::BrokerCommandSet command_set; + command_set.set(sandbox::syscall_broker::COMMAND_ACCESS); + command_set.set(sandbox::syscall_broker::COMMAND_OPEN); ++ command_set.set(sandbox::syscall_broker::COMMAND_STAT); + if (IsChromeOS() && options.use_amd_specific_policies) { + command_set.set(sandbox::syscall_broker::COMMAND_READLINK); +- command_set.set(sandbox::syscall_broker::COMMAND_STAT); + } + return command_set; + } +diff --git a/services/service_manager/sandbox/linux/bpf_gpu_policy_linux.cc b/services/service_manager/sandbox/linux/bpf_gpu_policy_linux.cc +index bc16952c0898..d683aacc76f4 100644 +--- a/services/service_manager/sandbox/linux/bpf_gpu_policy_linux.cc ++++ b/services/service_manager/sandbox/linux/bpf_gpu_policy_linux.cc +@@ -61,7 +61,20 @@ ResultExpr GpuProcessPolicy::EvaluateSyscall(int sysno) const { + case __NR_open: + #endif // !defined(__aarch64__) + case __NR_faccessat: +- case __NR_openat: { ++ case __NR_openat: ++#if defined(__NR_stat) ++ case __NR_stat: ++#endif ++#if defined(__NR_stat64) ++ case __NR_stat64: ++#endif ++#if defined(__NR_fstatat) ++ case __NR_fstatat: ++#endif ++#if defined(__NR_newfstatat) ++ case __NR_newfstatat: ++#endif ++ { + auto* broker_process = SandboxLinux::GetInstance()->broker_process(); + DCHECK(broker_process); + return Trap(BrokerProcess::SIGSYS_Handler, broker_process); +-- +2.16.2 + Deleted: chromium-clang-r2.patch =================================================================== --- chromium-clang-r2.patch 2018-04-10 00:09:16 UTC (rev 321430) +++ chromium-clang-r2.patch 2018-04-10 00:09:58 UTC (rev 321431) @@ -1,21 +0,0 @@ ---- a/build/config/compiler/BUILD.gn -+++ b/build/config/compiler/BUILD.gn -@@ -422,18 +422,6 @@ - cflags += [ "-fcolor-diagnostics" ] - } - -- # TODO(hans): Remove this once Clang generates better optimized debug info by -- # default. https://crbug.com/765793 -- if (is_clang && !is_nacl && current_toolchain == host_toolchain && -- target_os != "chromeos") { -- cflags += [ -- "-Xclang", -- "-mllvm", -- "-Xclang", -- "-instcombine-lower-dbg-declare=0", -- ] -- } -- - # Print absolute paths in diagnostics. There is no precedent for doing this - # on Linux/Mac (GCC doesn't support it), but MSVC does this with /FC and - # Windows developers rely on it (crbug.com/636109) so only do this on Windows. Copied: chromium/repos/extra-x86_64/chromium-clang-r2.patch (from rev 321430, chromium/trunk/chromium-clang-r2.patch) =================================================================== --- chromium-clang-r2.patch (rev 0) +++ chromium-clang-r2.patch 2018-04-10 00:09:58 UTC (rev 321431) @@ -0,0 +1,21 @@ +--- a/build/config/compiler/BUILD.gn ++++ b/build/config/compiler/BUILD.gn +@@ -422,18 +422,6 @@ + cflags += [ "-fcolor-diagnostics" ] + } + +- # TODO(hans): Remove this once Clang generates better optimized debug info by +- # default. https://crbug.com/765793 +- if (is_clang && !is_nacl && current_toolchain == host_toolchain && +- target_os != "chromeos") { +- cflags += [ +- "-Xclang", +- "-mllvm", +- "-Xclang", +- "-instcombine-lower-dbg-declare=0", +- ] +- } +- + # Print absolute paths in diagnostics. There is no precedent for doing this + # on Linux/Mac (GCC doesn't support it), but MSVC does this with /FC and + # Windows developers rely on it (crbug.com/636109) so only do this on Windows. Deleted: chromium-math.h-r0.patch =================================================================== --- chromium-math.h-r0.patch 2018-04-10 00:09:16 UTC (rev 321430) +++ chromium-math.h-r0.patch 2018-04-10 00:09:58 UTC (rev 321431) @@ -1,29 +0,0 @@ -From 9f63f94a11abc34d40ede8b8712fa15b5844a8c0 Mon Sep 17 00:00:00 2001 -From: Tom Anderson <thomasander...@chromium.org> -Date: Sat, 27 Jan 2018 20:03:37 +0000 -Subject: [PATCH] Fix build with glibc 2.27 - -BUG=806340 -TBR=hamel...@chromium.org - -Change-Id: Ib4e5091212d874d9ad88f3e9a1fdfee3ed7e0d5e -Reviewed-on: https://chromium-review.googlesource.com/890059 -Reviewed-by: Thomas Anderson <thomasander...@chromium.org> -Reviewed-by: Philippe Hamel <hamel...@chromium.org> -Commit-Queue: Thomas Anderson <thomasander...@chromium.org> -Cr-Commit-Position: refs/heads/master@{#532249} ---- - -diff --git a/components/assist_ranker/ranker_example_util.cc b/components/assist_ranker/ranker_example_util.cc -index 54d4dbd..ceedd8f 100644 ---- a/components/assist_ranker/ranker_example_util.cc -+++ b/components/assist_ranker/ranker_example_util.cc -@@ -2,6 +2,8 @@ - // Use of this source code is governed by a BSD-style license that can be - // found in the LICENSE file. - -+#include <math.h> -+ - #include "components/assist_ranker/ranker_example_util.h" - #include "base/bit_cast.h" - #include "base/format_macros.h" Copied: chromium/repos/extra-x86_64/chromium-math.h-r0.patch (from rev 321430, chromium/trunk/chromium-math.h-r0.patch) =================================================================== --- chromium-math.h-r0.patch (rev 0) +++ chromium-math.h-r0.patch 2018-04-10 00:09:58 UTC (rev 321431) @@ -0,0 +1,29 @@ +From 9f63f94a11abc34d40ede8b8712fa15b5844a8c0 Mon Sep 17 00:00:00 2001 +From: Tom Anderson <thomasander...@chromium.org> +Date: Sat, 27 Jan 2018 20:03:37 +0000 +Subject: [PATCH] Fix build with glibc 2.27 + +BUG=806340 +TBR=hamel...@chromium.org + +Change-Id: Ib4e5091212d874d9ad88f3e9a1fdfee3ed7e0d5e +Reviewed-on: https://chromium-review.googlesource.com/890059 +Reviewed-by: Thomas Anderson <thomasander...@chromium.org> +Reviewed-by: Philippe Hamel <hamel...@chromium.org> +Commit-Queue: Thomas Anderson <thomasander...@chromium.org> +Cr-Commit-Position: refs/heads/master@{#532249} +--- + +diff --git a/components/assist_ranker/ranker_example_util.cc b/components/assist_ranker/ranker_example_util.cc +index 54d4dbd..ceedd8f 100644 +--- a/components/assist_ranker/ranker_example_util.cc ++++ b/components/assist_ranker/ranker_example_util.cc +@@ -2,6 +2,8 @@ + // Use of this source code is governed by a BSD-style license that can be + // found in the LICENSE file. + ++#include <math.h> ++ + #include "components/assist_ranker/ranker_example_util.h" + #include "base/bit_cast.h" + #include "base/format_macros.h" Deleted: chromium-skia-harmony.patch =================================================================== --- chromium-skia-harmony.patch 2018-04-10 00:09:16 UTC (rev 321430) +++ chromium-skia-harmony.patch 2018-04-10 00:09:58 UTC (rev 321431) @@ -1,77 +0,0 @@ ---- qtwebengine-opensource-src-5.9.1/src/3rdparty/chromium/third_party/skia/src/ports/SkFontHost_FreeType.cpp.orig 2017-10-10 17:42:06.956950985 +0200 -+++ qtwebengine-opensource-src-5.9.1/src/3rdparty/chromium/third_party/skia/src/ports/SkFontHost_FreeType.cpp 2017-10-10 17:46:05.824187787 +0200 -@@ -99,8 +99,6 @@ - FreeTypeLibrary() - : fGetVarDesignCoordinates(nullptr) - , fLibrary(nullptr) -- , fIsLCDSupported(false) -- , fLCDExtra(0) - { - if (FT_New_Library(&gFTMemory, &fLibrary)) { - return; -@@ -147,12 +145,7 @@ - } - #endif - -- // Setup LCD filtering. This reduces color fringes for LCD smoothed glyphs. -- // The default has changed over time, so this doesn't mean the same thing to all users. -- if (FT_Library_SetLcdFilter(fLibrary, FT_LCD_FILTER_DEFAULT) == 0) { -- fIsLCDSupported = true; -- fLCDExtra = 2; //Using a filter adds one full pixel to each side. -- } -+ FT_Library_SetLcdFilter(fLibrary, FT_LCD_FILTER_DEFAULT); - } - ~FreeTypeLibrary() { - if (fLibrary) { -@@ -161,8 +153,6 @@ - } - - FT_Library library() { return fLibrary; } -- bool isLCDSupported() { return fIsLCDSupported; } -- int lcdExtra() { return fLCDExtra; } - - // FT_Get_{MM,Var}_{Blend,Design}_Coordinates were added in FreeType 2.7.1. - // Prior to this there was no way to get the coordinates out of the FT_Face. -@@ -173,8 +163,6 @@ - - private: - FT_Library fLibrary; -- bool fIsLCDSupported; -- int fLCDExtra; - - // FT_Library_SetLcdFilterWeights was introduced in FreeType 2.4.0. - // The following platforms provide FreeType of at least 2.4.0. -@@ -704,17 +692,6 @@ - rec->fTextSize = SkIntToScalar(1 << 14); - } - -- if (isLCD(*rec)) { -- // TODO: re-work so that FreeType is set-up and selected by the SkFontMgr. -- SkAutoMutexAcquire ama(gFTMutex); -- ref_ft_library(); -- if (!gFTLibrary->isLCDSupported()) { -- // If the runtime Freetype library doesn't support LCD, disable it here. -- rec->fMaskFormat = SkMask::kA8_Format; -- } -- unref_ft_library(); -- } -- - SkPaint::Hinting h = rec->getHinting(); - if (SkPaint::kFull_Hinting == h && !isLCD(*rec)) { - // collapse full->normal hinting if we're not doing LCD -@@ -1115,11 +1092,11 @@ - void SkScalerContext_FreeType::updateGlyphIfLCD(SkGlyph* glyph) { - if (isLCD(fRec)) { - if (fLCDIsVert) { -- glyph->fHeight += gFTLibrary->lcdExtra(); -- glyph->fTop -= gFTLibrary->lcdExtra() >> 1; -+ glyph->fHeight += 2; -+ glyph->fTop -= 1; - } else { -- glyph->fWidth += gFTLibrary->lcdExtra(); -- glyph->fLeft -= gFTLibrary->lcdExtra() >> 1; -+ glyph->fWidth += 2; -+ glyph->fLeft -= 1; - } - } - } Copied: chromium/repos/extra-x86_64/chromium-skia-harmony.patch (from rev 321430, chromium/trunk/chromium-skia-harmony.patch) =================================================================== --- chromium-skia-harmony.patch (rev 0) +++ chromium-skia-harmony.patch 2018-04-10 00:09:58 UTC (rev 321431) @@ -0,0 +1,77 @@ +--- qtwebengine-opensource-src-5.9.1/src/3rdparty/chromium/third_party/skia/src/ports/SkFontHost_FreeType.cpp.orig 2017-10-10 17:42:06.956950985 +0200 ++++ qtwebengine-opensource-src-5.9.1/src/3rdparty/chromium/third_party/skia/src/ports/SkFontHost_FreeType.cpp 2017-10-10 17:46:05.824187787 +0200 +@@ -99,8 +99,6 @@ + FreeTypeLibrary() + : fGetVarDesignCoordinates(nullptr) + , fLibrary(nullptr) +- , fIsLCDSupported(false) +- , fLCDExtra(0) + { + if (FT_New_Library(&gFTMemory, &fLibrary)) { + return; +@@ -147,12 +145,7 @@ + } + #endif + +- // Setup LCD filtering. This reduces color fringes for LCD smoothed glyphs. +- // The default has changed over time, so this doesn't mean the same thing to all users. +- if (FT_Library_SetLcdFilter(fLibrary, FT_LCD_FILTER_DEFAULT) == 0) { +- fIsLCDSupported = true; +- fLCDExtra = 2; //Using a filter adds one full pixel to each side. +- } ++ FT_Library_SetLcdFilter(fLibrary, FT_LCD_FILTER_DEFAULT); + } + ~FreeTypeLibrary() { + if (fLibrary) { +@@ -161,8 +153,6 @@ + } + + FT_Library library() { return fLibrary; } +- bool isLCDSupported() { return fIsLCDSupported; } +- int lcdExtra() { return fLCDExtra; } + + // FT_Get_{MM,Var}_{Blend,Design}_Coordinates were added in FreeType 2.7.1. + // Prior to this there was no way to get the coordinates out of the FT_Face. +@@ -173,8 +163,6 @@ + + private: + FT_Library fLibrary; +- bool fIsLCDSupported; +- int fLCDExtra; + + // FT_Library_SetLcdFilterWeights was introduced in FreeType 2.4.0. + // The following platforms provide FreeType of at least 2.4.0. +@@ -704,17 +692,6 @@ + rec->fTextSize = SkIntToScalar(1 << 14); + } + +- if (isLCD(*rec)) { +- // TODO: re-work so that FreeType is set-up and selected by the SkFontMgr. +- SkAutoMutexAcquire ama(gFTMutex); +- ref_ft_library(); +- if (!gFTLibrary->isLCDSupported()) { +- // If the runtime Freetype library doesn't support LCD, disable it here. +- rec->fMaskFormat = SkMask::kA8_Format; +- } +- unref_ft_library(); +- } +- + SkPaint::Hinting h = rec->getHinting(); + if (SkPaint::kFull_Hinting == h && !isLCD(*rec)) { + // collapse full->normal hinting if we're not doing LCD +@@ -1115,11 +1092,11 @@ + void SkScalerContext_FreeType::updateGlyphIfLCD(SkGlyph* glyph) { + if (isLCD(fRec)) { + if (fLCDIsVert) { +- glyph->fHeight += gFTLibrary->lcdExtra(); +- glyph->fTop -= gFTLibrary->lcdExtra() >> 1; ++ glyph->fHeight += 2; ++ glyph->fTop -= 1; + } else { +- glyph->fWidth += gFTLibrary->lcdExtra(); +- glyph->fLeft -= gFTLibrary->lcdExtra() >> 1; ++ glyph->fWidth += 2; ++ glyph->fLeft -= 1; + } + } + } Deleted: chromium-stdint.patch =================================================================== --- chromium-stdint.patch 2018-04-10 00:09:16 UTC (rev 321430) +++ chromium-stdint.patch 2018-04-10 00:09:58 UTC (rev 321431) @@ -1,21 +0,0 @@ -From 0235c2b657d936f3cdb09053776e5929fc84704b Mon Sep 17 00:00:00 2001 -From: Tomas Popela <tomas.pop...@gmail.com> -Date: Wed, 31 Jan 2018 18:57:07 +0000 -Subject: [PATCH] Add missing stdint include - -diff --git a/chrome/browser/vr/sample_queue.cc b/chrome/browser/vr/sample_queue.cc -index c2ca777ce90c..53cb3aab1576 100644 ---- a/chrome/browser/vr/sample_queue.cc -+++ b/chrome/browser/vr/sample_queue.cc -@@ -2,6 +2,8 @@ - // Use of this source code is governed by a BSD-style license that can be - // found in the LICENSE file. - -+#include <stdint.h> -+ - #include "chrome/browser/vr/sample_queue.h" - - namespace vr { --- -2.16.2 - Copied: chromium/repos/extra-x86_64/chromium-stdint.patch (from rev 321430, chromium/trunk/chromium-stdint.patch) =================================================================== --- chromium-stdint.patch (rev 0) +++ chromium-stdint.patch 2018-04-10 00:09:58 UTC (rev 321431) @@ -0,0 +1,21 @@ +From 0235c2b657d936f3cdb09053776e5929fc84704b Mon Sep 17 00:00:00 2001 +From: Tomas Popela <tomas.pop...@gmail.com> +Date: Wed, 31 Jan 2018 18:57:07 +0000 +Subject: [PATCH] Add missing stdint include + +diff --git a/chrome/browser/vr/sample_queue.cc b/chrome/browser/vr/sample_queue.cc +index c2ca777ce90c..53cb3aab1576 100644 +--- a/chrome/browser/vr/sample_queue.cc ++++ b/chrome/browser/vr/sample_queue.cc +@@ -2,6 +2,8 @@ + // Use of this source code is governed by a BSD-style license that can be + // found in the LICENSE file. + ++#include <stdint.h> ++ + #include "chrome/browser/vr/sample_queue.h" + + namespace vr { +-- +2.16.2 + Deleted: chromium-widevine.patch =================================================================== --- chromium-widevine.patch 2018-04-10 00:09:16 UTC (rev 321430) +++ chromium-widevine.patch 2018-04-10 00:09:58 UTC (rev 321431) @@ -1,10 +0,0 @@ -diff -upr chromium-48.0.2564.82.orig/third_party/widevine/cdm/stub/widevine_cdm_version.h chromium-48.0.2564.82/third_party/widevine/cdm/stub/widevine_cdm_version.h ---- chromium-48.0.2564.82.orig/third_party/widevine/cdm/stub/widevine_cdm_version.h 2016-01-14 01:05:17.000000000 +0200 -+++ chromium-48.0.2564.82/third_party/widevine/cdm/stub/widevine_cdm_version.h 2016-01-21 19:18:51.287978456 +0200 -@@ -12,4 +12,6 @@ - - #define WIDEVINE_CDM_AVAILABLE - -+#define WIDEVINE_CDM_VERSION_STRING "@WIDEVINE_VERSION@" -+ - #endif // WIDEVINE_CDM_VERSION_H_ Copied: chromium/repos/extra-x86_64/chromium-widevine.patch (from rev 321430, chromium/trunk/chromium-widevine.patch) =================================================================== --- chromium-widevine.patch (rev 0) +++ chromium-widevine.patch 2018-04-10 00:09:58 UTC (rev 321431) @@ -0,0 +1,10 @@ +diff -upr chromium-48.0.2564.82.orig/third_party/widevine/cdm/stub/widevine_cdm_version.h chromium-48.0.2564.82/third_party/widevine/cdm/stub/widevine_cdm_version.h +--- chromium-48.0.2564.82.orig/third_party/widevine/cdm/stub/widevine_cdm_version.h 2016-01-14 01:05:17.000000000 +0200 ++++ chromium-48.0.2564.82/third_party/widevine/cdm/stub/widevine_cdm_version.h 2016-01-21 19:18:51.287978456 +0200 +@@ -12,4 +12,6 @@ + + #define WIDEVINE_CDM_AVAILABLE + ++#define WIDEVINE_CDM_VERSION_STRING "@WIDEVINE_VERSION@" ++ + #endif // WIDEVINE_CDM_VERSION_H_ Deleted: chromium.install =================================================================== --- chromium.install 2018-04-10 00:09:16 UTC (rev 321430) +++ chromium.install 2018-04-10 00:09:58 UTC (rev 321431) @@ -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 321430, chromium/trunk/chromium.install) =================================================================== --- chromium.install (rev 0) +++ chromium.install 2018-04-10 00:09:58 UTC (rev 321431) @@ -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: fix-crash-in-is_cfi-true-builds-with-unbundled-ICU.patch =================================================================== --- fix-crash-in-is_cfi-true-builds-with-unbundled-ICU.patch 2018-04-10 00:09:16 UTC (rev 321430) +++ fix-crash-in-is_cfi-true-builds-with-unbundled-ICU.patch 2018-04-10 00:09:58 UTC (rev 321431) @@ -1,53 +0,0 @@ -From f15e8b573ada0fcd643ae393484214b1c7c940f8 Mon Sep 17 00:00:00 2001 -From: Evangelos Foutras <evange...@foutrelis.com> -Date: Sat, 24 Mar 2018 00:04:33 +0000 -Subject: [PATCH] Fix crash in is_cfi=true builds with unbundled ICU - -Ensure ICU symbols have public visibility and are thus excluded from CFI -checks and whole-program optimization. The former caused a startup crash -and the latter has the potential to break virtual calls in weird ways. - -BUG=822820 - -Change-Id: Ia809eefcb9e93b3c612f2381d394db83bbc67120 -Reviewed-on: https://chromium-review.googlesource.com/978008 -Reviewed-by: Peter Collingbourne <p...@chromium.org> -Reviewed-by: Thomas Anderson <thomasander...@chromium.org> -Commit-Queue: Thomas Anderson <thomasander...@chromium.org> -Cr-Commit-Position: refs/heads/master@{#545638} ---- - build/linux/unbundle/icu.gn | 18 ++++++++++++++++++ - 1 file changed, 18 insertions(+) - -diff --git a/build/linux/unbundle/icu.gn b/build/linux/unbundle/icu.gn -index 5bdd91555df7..4450e409dba5 100644 ---- a/build/linux/unbundle/icu.gn -+++ b/build/linux/unbundle/icu.gn -@@ -17,6 +17,24 @@ config("icu_config") { - "USING_SYSTEM_ICU=1", - "ICU_UTIL_DATA_IMPL=ICU_UTIL_DATA_STATIC", - "UCHAR_TYPE=uint16_t", -+ -+ # U_EXPORT (defined in unicode/platform.h) is used to set public visibility -+ # on classes through the U_COMMON_API and U_I18N_API macros (among others). -+ # When linking against the system ICU library, we want its symbols to have -+ # public LTO visibility. This disables CFI checks for the ICU classes and -+ # allows whole-program optimization to be applied to the rest of Chromium. -+ # -+ # Both U_COMMON_API and U_I18N_API macros would be defined to U_EXPORT only -+ # when U_COMBINED_IMPLEMENTATION is defined (see unicode/utypes.h). Because -+ # we override the default system UCHAR_TYPE (char16_t), it is not possible -+ # to use U_COMBINED_IMPLEMENTATION at this moment, meaning the U_COMMON_API -+ # and U_I18N_API macros are set to U_IMPORT which is an empty definition. -+ # -+ # Until building with UCHAR_TYPE=char16_t is supported, one way to apply -+ # public visibility (and thus public LTO visibility) to all ICU classes is -+ # to define U_IMPORT to have the same value as U_EXPORT. For more details, -+ # please see: https://crbug.com/822820 -+ "U_IMPORT=U_EXPORT", - ] - } - --- -2.16.3 - Copied: chromium/repos/extra-x86_64/fix-crash-in-is_cfi-true-builds-with-unbundled-ICU.patch (from rev 321430, chromium/trunk/fix-crash-in-is_cfi-true-builds-with-unbundled-ICU.patch) =================================================================== --- fix-crash-in-is_cfi-true-builds-with-unbundled-ICU.patch (rev 0) +++ fix-crash-in-is_cfi-true-builds-with-unbundled-ICU.patch 2018-04-10 00:09:58 UTC (rev 321431) @@ -0,0 +1,53 @@ +From f15e8b573ada0fcd643ae393484214b1c7c940f8 Mon Sep 17 00:00:00 2001 +From: Evangelos Foutras <evange...@foutrelis.com> +Date: Sat, 24 Mar 2018 00:04:33 +0000 +Subject: [PATCH] Fix crash in is_cfi=true builds with unbundled ICU + +Ensure ICU symbols have public visibility and are thus excluded from CFI +checks and whole-program optimization. The former caused a startup crash +and the latter has the potential to break virtual calls in weird ways. + +BUG=822820 + +Change-Id: Ia809eefcb9e93b3c612f2381d394db83bbc67120 +Reviewed-on: https://chromium-review.googlesource.com/978008 +Reviewed-by: Peter Collingbourne <p...@chromium.org> +Reviewed-by: Thomas Anderson <thomasander...@chromium.org> +Commit-Queue: Thomas Anderson <thomasander...@chromium.org> +Cr-Commit-Position: refs/heads/master@{#545638} +--- + build/linux/unbundle/icu.gn | 18 ++++++++++++++++++ + 1 file changed, 18 insertions(+) + +diff --git a/build/linux/unbundle/icu.gn b/build/linux/unbundle/icu.gn +index 5bdd91555df7..4450e409dba5 100644 +--- a/build/linux/unbundle/icu.gn ++++ b/build/linux/unbundle/icu.gn +@@ -17,6 +17,24 @@ config("icu_config") { + "USING_SYSTEM_ICU=1", + "ICU_UTIL_DATA_IMPL=ICU_UTIL_DATA_STATIC", + "UCHAR_TYPE=uint16_t", ++ ++ # U_EXPORT (defined in unicode/platform.h) is used to set public visibility ++ # on classes through the U_COMMON_API and U_I18N_API macros (among others). ++ # When linking against the system ICU library, we want its symbols to have ++ # public LTO visibility. This disables CFI checks for the ICU classes and ++ # allows whole-program optimization to be applied to the rest of Chromium. ++ # ++ # Both U_COMMON_API and U_I18N_API macros would be defined to U_EXPORT only ++ # when U_COMBINED_IMPLEMENTATION is defined (see unicode/utypes.h). Because ++ # we override the default system UCHAR_TYPE (char16_t), it is not possible ++ # to use U_COMBINED_IMPLEMENTATION at this moment, meaning the U_COMMON_API ++ # and U_I18N_API macros are set to U_IMPORT which is an empty definition. ++ # ++ # Until building with UCHAR_TYPE=char16_t is supported, one way to apply ++ # public visibility (and thus public LTO visibility) to all ICU classes is ++ # to define U_IMPORT to have the same value as U_EXPORT. For more details, ++ # please see: https://crbug.com/822820 ++ "U_IMPORT=U_EXPORT", + ] + } + +-- +2.16.3 + Deleted: fix-frame-buttons-rendering-too-large-when-using-OSX.patch =================================================================== --- fix-frame-buttons-rendering-too-large-when-using-OSX.patch 2018-04-10 00:09:16 UTC (rev 321430) +++ fix-frame-buttons-rendering-too-large-when-using-OSX.patch 2018-04-10 00:09:58 UTC (rev 321431) @@ -1,60 +0,0 @@ -From 7ef426c221d11b53b6de507b398e35e8d7b3cc94 Mon Sep 17 00:00:00 2001 -From: Tom Anderson <thomasander...@chromium.org> -Date: Wed, 4 Apr 2018 01:23:26 +0000 -Subject: [PATCH] Fix frame buttons rendering too large when using - OSX-Arc-White GTK theme - -The check for GTK 3.20 was incorrect as the issue it was trying to fix -was still occurring on GTK 3.20+ systems. This CL adds the correct, -but more complex, check. - -Verified on these configurations: -{GTK 3.18, GTK 3.22} X -{Breeze, Adwaita, OSX-Arc-White, Greybird} X -{scale=1, scale=2} X -{fullscreen, restored} - -BUG=821881 -R=thestig - -Change-Id: I05afa35c1452a46a1abf4c39191a13657bfd8e2c -Reviewed-on: https://chromium-review.googlesource.com/990717 -Reviewed-by: Lei Zhang <thes...@chromium.org> -Commit-Queue: Thomas Anderson <thomasander...@chromium.org> -Cr-Commit-Position: refs/heads/master@{#547921} ---- - chrome/browser/ui/libgtkui/nav_button_provider_gtk3.cc | 18 +++++++++++++++++- - 1 file changed, 17 insertions(+), 1 deletion(-) - -diff --git a/chrome/browser/ui/libgtkui/nav_button_provider_gtk3.cc b/chrome/browser/ui/libgtkui/nav_button_provider_gtk3.cc -index 31a8087bca11..6a09faec5dd2 100644 ---- a/chrome/browser/ui/libgtkui/nav_button_provider_gtk3.cc -+++ b/chrome/browser/ui/libgtkui/nav_button_provider_gtk3.cc -@@ -213,7 +213,23 @@ class NavButtonImageSource : public gfx::ImageSkiaSource { - // is not scaled for the (unexpected) smaller button size, and the button's - // edges appear cut off. To fix this, manually set the background to scale - // to the button size when it would have clipped. -- if (GtkVersionCheck(3, 20)) { -+ // -+ // GTK's "contain" is unlike CSS's "contain". In CSS, the image would only -+ // be downsized when it would have clipped. In GTK, the image is always -+ // scaled to fit the drawing region (preserving aspect ratio). Only add -+ // "contain" if clipping would occur. -+ cairo_pattern_t* cr_pattern = nullptr; -+ cairo_surface_t* cr_surface = nullptr; -+ gtk_style_context_get(button_context, button_state, -+ GTK_STYLE_PROPERTY_BACKGROUND_IMAGE, &cr_pattern, -+ nullptr); -+ if (cr_pattern && -+ cairo_pattern_get_surface(cr_pattern, &cr_surface) == -+ CAIRO_STATUS_SUCCESS && -+ cr_surface && -+ cairo_surface_get_type(cr_surface) == CAIRO_SURFACE_TYPE_IMAGE && -+ (cairo_image_surface_get_width(cr_surface) > button_size_.width() || -+ cairo_image_surface_get_height(cr_surface) > button_size_.height())) { - ApplyCssToContext(button_context, - ".titlebutton { background-size: contain; }"); - } --- -2.16.2 - Copied: chromium/repos/extra-x86_64/fix-frame-buttons-rendering-too-large-when-using-OSX.patch (from rev 321430, chromium/trunk/fix-frame-buttons-rendering-too-large-when-using-OSX.patch) =================================================================== --- fix-frame-buttons-rendering-too-large-when-using-OSX.patch (rev 0) +++ fix-frame-buttons-rendering-too-large-when-using-OSX.patch 2018-04-10 00:09:58 UTC (rev 321431) @@ -0,0 +1,60 @@ +From 7ef426c221d11b53b6de507b398e35e8d7b3cc94 Mon Sep 17 00:00:00 2001 +From: Tom Anderson <thomasander...@chromium.org> +Date: Wed, 4 Apr 2018 01:23:26 +0000 +Subject: [PATCH] Fix frame buttons rendering too large when using + OSX-Arc-White GTK theme + +The check for GTK 3.20 was incorrect as the issue it was trying to fix +was still occurring on GTK 3.20+ systems. This CL adds the correct, +but more complex, check. + +Verified on these configurations: +{GTK 3.18, GTK 3.22} X +{Breeze, Adwaita, OSX-Arc-White, Greybird} X +{scale=1, scale=2} X +{fullscreen, restored} + +BUG=821881 +R=thestig + +Change-Id: I05afa35c1452a46a1abf4c39191a13657bfd8e2c +Reviewed-on: https://chromium-review.googlesource.com/990717 +Reviewed-by: Lei Zhang <thes...@chromium.org> +Commit-Queue: Thomas Anderson <thomasander...@chromium.org> +Cr-Commit-Position: refs/heads/master@{#547921} +--- + chrome/browser/ui/libgtkui/nav_button_provider_gtk3.cc | 18 +++++++++++++++++- + 1 file changed, 17 insertions(+), 1 deletion(-) + +diff --git a/chrome/browser/ui/libgtkui/nav_button_provider_gtk3.cc b/chrome/browser/ui/libgtkui/nav_button_provider_gtk3.cc +index 31a8087bca11..6a09faec5dd2 100644 +--- a/chrome/browser/ui/libgtkui/nav_button_provider_gtk3.cc ++++ b/chrome/browser/ui/libgtkui/nav_button_provider_gtk3.cc +@@ -213,7 +213,23 @@ class NavButtonImageSource : public gfx::ImageSkiaSource { + // is not scaled for the (unexpected) smaller button size, and the button's + // edges appear cut off. To fix this, manually set the background to scale + // to the button size when it would have clipped. +- if (GtkVersionCheck(3, 20)) { ++ // ++ // GTK's "contain" is unlike CSS's "contain". In CSS, the image would only ++ // be downsized when it would have clipped. In GTK, the image is always ++ // scaled to fit the drawing region (preserving aspect ratio). Only add ++ // "contain" if clipping would occur. ++ cairo_pattern_t* cr_pattern = nullptr; ++ cairo_surface_t* cr_surface = nullptr; ++ gtk_style_context_get(button_context, button_state, ++ GTK_STYLE_PROPERTY_BACKGROUND_IMAGE, &cr_pattern, ++ nullptr); ++ if (cr_pattern && ++ cairo_pattern_get_surface(cr_pattern, &cr_surface) == ++ CAIRO_STATUS_SUCCESS && ++ cr_surface && ++ cairo_surface_get_type(cr_surface) == CAIRO_SURFACE_TYPE_IMAGE && ++ (cairo_image_surface_get_width(cr_surface) > button_size_.width() || ++ cairo_image_surface_get_height(cr_surface) > button_size_.height())) { + ApplyCssToContext(button_context, + ".titlebutton { background-size: contain; }"); + } +-- +2.16.2 + Deleted: send-GSB-before-switching-to-mainthread-scrolling-in.patch =================================================================== --- send-GSB-before-switching-to-mainthread-scrolling-in.patch 2018-04-10 00:09:16 UTC (rev 321430) +++ send-GSB-before-switching-to-mainthread-scrolling-in.patch 2018-04-10 00:09:58 UTC (rev 321431) @@ -1,53 +0,0 @@ -From 5d5a062fac6f567cd8f8b2ef7e894e7623f8013e Mon Sep 17 00:00:00 2001 -From: Sahel Sharify <sa...@chromium.org> -Date: Thu, 15 Mar 2018 17:30:49 +0000 -Subject: [PATCH] Send GSB before switching to mainthread scrolling in smooth - scroll path. - -This cl is the equivalent of https://codereview.chromium.org/2854683002 fix for smooth scrolling -path,if the compositor handles the GSB and during the scrolling we have to switch to main thread -since the compositor cannot handle a GSU a GSB must be sent to the main thread since the original -GSB was handled on the compositor rather than being sent to the main thread. - -touchpad-scroll-impl-to-main.html is the test that forces switch from compositor thread to main -thread in the middle of scrolling. It used to get executed with --disable-smooth-scrolling -in this cl I've moved the test to a new virtual test suite that has default scroll animation -value. - -I have removed the test expectations since I have changed the test and this might fix the flake. - -subpixel-accumulation.html needs scroll animation to be disabled and that's why I had to move it to -a new test suite. - -Bug: 820979, 708499, 757165, 800840 -Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2 -Change-Id: I21b1f4285897d74559f6827e6a232f007dc897b0 -Reviewed-on: https://chromium-review.googlesource.com/961264 -Commit-Queue: Sahel Sharifymoghaddam <sa...@chromium.org> -Reviewed-by: Timothy Dresser <tdres...@chromium.org> -Cr-Commit-Position: refs/heads/master@{#543425} ---- - ui/events/blink/input_handler_proxy.cc | 7 ++++++- - 1 file changed, 6 insertions(+), 1 deletion(-) - -diff --git a/ui/events/blink/input_handler_proxy.cc b/ui/events/blink/input_handler_proxy.cc -index e9dd50253458..6d77910839f4 100644 ---- a/ui/events/blink/input_handler_proxy.cc -+++ b/ui/events/blink/input_handler_proxy.cc -@@ -765,7 +765,12 @@ InputHandlerProxy::HandleGestureScrollUpdate( - return DID_HANDLE; - case cc::InputHandler::SCROLL_IGNORED: - return DROP_EVENT; -- default: -+ case cc::InputHandler::SCROLL_ON_MAIN_THREAD: -+ case cc::InputHandler::SCROLL_UNKNOWN: -+ if (input_handler_->ScrollingShouldSwitchtoMainThread()) { -+ gesture_scroll_on_impl_thread_ = false; -+ client_->GenerateScrollBeginAndSendToMainThread(gesture_event); -+ } - return DID_NOT_HANDLE; - } - } --- -2.16.2 - Copied: chromium/repos/extra-x86_64/send-GSB-before-switching-to-mainthread-scrolling-in.patch (from rev 321430, chromium/trunk/send-GSB-before-switching-to-mainthread-scrolling-in.patch) =================================================================== --- send-GSB-before-switching-to-mainthread-scrolling-in.patch (rev 0) +++ send-GSB-before-switching-to-mainthread-scrolling-in.patch 2018-04-10 00:09:58 UTC (rev 321431) @@ -0,0 +1,53 @@ +From 5d5a062fac6f567cd8f8b2ef7e894e7623f8013e Mon Sep 17 00:00:00 2001 +From: Sahel Sharify <sa...@chromium.org> +Date: Thu, 15 Mar 2018 17:30:49 +0000 +Subject: [PATCH] Send GSB before switching to mainthread scrolling in smooth + scroll path. + +This cl is the equivalent of https://codereview.chromium.org/2854683002 fix for smooth scrolling +path,if the compositor handles the GSB and during the scrolling we have to switch to main thread +since the compositor cannot handle a GSU a GSB must be sent to the main thread since the original +GSB was handled on the compositor rather than being sent to the main thread. + +touchpad-scroll-impl-to-main.html is the test that forces switch from compositor thread to main +thread in the middle of scrolling. It used to get executed with --disable-smooth-scrolling +in this cl I've moved the test to a new virtual test suite that has default scroll animation +value. + +I have removed the test expectations since I have changed the test and this might fix the flake. + +subpixel-accumulation.html needs scroll animation to be disabled and that's why I had to move it to +a new test suite. + +Bug: 820979, 708499, 757165, 800840 +Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2 +Change-Id: I21b1f4285897d74559f6827e6a232f007dc897b0 +Reviewed-on: https://chromium-review.googlesource.com/961264 +Commit-Queue: Sahel Sharifymoghaddam <sa...@chromium.org> +Reviewed-by: Timothy Dresser <tdres...@chromium.org> +Cr-Commit-Position: refs/heads/master@{#543425} +--- + ui/events/blink/input_handler_proxy.cc | 7 ++++++- + 1 file changed, 6 insertions(+), 1 deletion(-) + +diff --git a/ui/events/blink/input_handler_proxy.cc b/ui/events/blink/input_handler_proxy.cc +index e9dd50253458..6d77910839f4 100644 +--- a/ui/events/blink/input_handler_proxy.cc ++++ b/ui/events/blink/input_handler_proxy.cc +@@ -765,7 +765,12 @@ InputHandlerProxy::HandleGestureScrollUpdate( + return DID_HANDLE; + case cc::InputHandler::SCROLL_IGNORED: + return DROP_EVENT; +- default: ++ case cc::InputHandler::SCROLL_ON_MAIN_THREAD: ++ case cc::InputHandler::SCROLL_UNKNOWN: ++ if (input_handler_->ScrollingShouldSwitchtoMainThread()) { ++ gesture_scroll_on_impl_thread_ = false; ++ client_->GenerateScrollBeginAndSendToMainThread(gesture_event); ++ } + return DID_NOT_HANDLE; + } + } +-- +2.16.2 +