[arch-commits] Commit in chromium/repos/testing-x86_64 (18 files)
Evangelos Foutras
foutrelis at archlinux.org
Thu Jan 25 09:41:37 UTC 2018
Date: Thursday, January 25, 2018 @ 09:41:30
Author: foutrelis
Revision: 315429
archrelease: copy trunk to testing-x86_64
Added:
chromium/repos/testing-x86_64/PKGBUILD
(from rev 315428, chromium/trunk/PKGBUILD)
chromium/repos/testing-x86_64/chromium-clang-r2.patch
(from rev 315428, chromium/trunk/chromium-clang-r2.patch)
chromium/repos/testing-x86_64/chromium-exclude_unwind_tables.patch
(from rev 315428, chromium/trunk/chromium-exclude_unwind_tables.patch)
chromium/repos/testing-x86_64/chromium-memcpy-r0.patch
(from rev 315428, chromium/trunk/chromium-memcpy-r0.patch)
chromium/repos/testing-x86_64/chromium-omnibox-unescape-fragment.patch
(from rev 315428, chromium/trunk/chromium-omnibox-unescape-fragment.patch)
chromium/repos/testing-x86_64/chromium-skia-harmony.patch
(from rev 315428, chromium/trunk/chromium-skia-harmony.patch)
chromium/repos/testing-x86_64/chromium-use-fromUTF8-for-UnicodeString-construction.patch
(from rev 315428, chromium/trunk/chromium-use-fromUTF8-for-UnicodeString-construction.patch)
chromium/repos/testing-x86_64/chromium-widevine.patch
(from rev 315428, chromium/trunk/chromium-widevine.patch)
chromium/repos/testing-x86_64/chromium.install
(from rev 315428, chromium/trunk/chromium.install)
Deleted:
chromium/repos/testing-x86_64/PKGBUILD
chromium/repos/testing-x86_64/chromium-clang-r2.patch
chromium/repos/testing-x86_64/chromium-exclude_unwind_tables.patch
chromium/repos/testing-x86_64/chromium-memcpy-r0.patch
chromium/repos/testing-x86_64/chromium-omnibox-unescape-fragment.patch
chromium/repos/testing-x86_64/chromium-skia-harmony.patch
chromium/repos/testing-x86_64/chromium-use-fromUTF8-for-UnicodeString-construction.patch
chromium/repos/testing-x86_64/chromium-widevine.patch
chromium/repos/testing-x86_64/chromium.install
------------------------------------------------------------+
PKGBUILD | 522 +++---
chromium-clang-r2.patch | 42
chromium-exclude_unwind_tables.patch | 66
chromium-memcpy-r0.patch | 70
chromium-omnibox-unescape-fragment.patch | 874 +++++------
chromium-skia-harmony.patch | 154 -
chromium-use-fromUTF8-for-UnicodeString-construction.patch | 136 -
chromium-widevine.patch | 20
chromium.install | 32
9 files changed, 958 insertions(+), 958 deletions(-)
Deleted: PKGBUILD
===================================================================
--- PKGBUILD 2018-01-25 09:41:06 UTC (rev 315428)
+++ PKGBUILD 2018-01-25 09:41:30 UTC (rev 315429)
@@ -1,261 +0,0 @@
-# $Id$
-# Maintainer: Evangelos Foutras <evangelos at foutrelis.com>
-# Contributor: Pierre Schmitz <pierre at archlinux.de>
-# Contributor: Jan "heftig" Steffens <jan.steffens at gmail.com>
-# Contributor: Daniel J Griffiths <ghost1227 at archlinux.us>
-
-pkgname=chromium
-pkgver=64.0.3282.113
-pkgrel=1
-_launcher_ver=5
-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=('python2' 'gperf' 'yasm' 'mesa' 'ninja' 'nodejs' 'git' 'clang')
-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
- chromium-use-fromUTF8-for-UnicodeString-construction.patch
- chromium-omnibox-unescape-fragment.patch
- chromium-skia-harmony.patch
- chromium-memcpy-r0.patch
- chromium-clang-r2.patch
- chromium-exclude_unwind_tables.patch
- chromium-widevine.patch)
-sha256sums=('cffa16a5a49bb9c0813306b261b90ab1ec549a9d98fe64731afe28ebf535e16b'
- '4dc3428f2c927955d9ae117f2fb24d098cc6dd67adb760ac9c82b522ec8b0587'
- 'eb542d00801349d6df9b83ae07ddeaf55eddd450a02cf6d4a9b1682092dd8193'
- 'c82c830bac7ab328a76d85fb141e150a17d02d97138a6daa4720a8a8c371a402'
- '814eb2cecb10cb697e24036b08aac41e88d0e38971741f9e946200764e2401ae'
- 'feca54ab09ac0fc9d0626770a6b899a6ac5a12173c7d0c1005bc3964ec83e7b3'
- '455f0029987d9f0532bd9a5250669af5146a9c2b65b776d4a6e2499e8aca7bb4'
- '4495e8b29dae242c79ffe4beefc5171eb3c7aacb7e9aebfd2d4d69b9d8c958d3'
- '9478f1ec1a3c53425306cf41c2d0555c215a4f106955d9d6adfff38044530ce8'
- '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
-readonly -A _system_libs=(
- #[ffmpeg]=ffmpeg # https://crbug.com/731766
- [flac]=flac
- #[fontconfig]=fontconfig # Enable for M65
- #[freetype]=freetype2 # Using 'use_system_freetype=true' until M65
- #[harfbuzz-ng]=harfbuzz # Using 'use_system_harfbuzz=true' until M65
- [icu]=icu
- [libdrm]=
- [libjpeg]=libjpeg
- #[libpng]=libpng # https://crbug.com/752403#c10
- #[libvpx]=libvpx # https://bugs.gentoo.org/611394
- [libwebp]=libwebp
- #[libxml]=libxml2 # https://crbug.com/736026
- [libxslt]=libxslt
- [opus]=opus
- [re2]=re2
- [snappy]=snappy
- [yasm]=
- [zlib]=minizip
-)
-readonly _unwanted_bundled_libs=(
- ${!_system_libs[@]}
- ${_system_libs[libjpeg]+libjpeg_turbo}
- freetype
- harfbuzz-ng
-)
-depends+=(${_system_libs[@]} freetype2 harfbuzz)
-
-# 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
-
- # 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://chromium-review.googlesource.com/c/chromium/src/+/712575
- patch -Np1 -i ../chromium-exclude_unwind_tables.patch
-
- # https://crbug.com/772655
- patch -Np1 -i ../chromium-use-fromUTF8-for-UnicodeString-construction.patch
-
- # https://crbug.com/789163
- patch -Np1 -i ../chromium-omnibox-unescape-fragment.patch
-
- # https://crbug.com/skia/6663#c10
- patch -Np4 -i ../chromium-skia-harmony.patch
-
- # Fixes from Gentoo
- patch -Np1 -i ../chromium-memcpy-r0.patch
- patch -Np1 -i ../chromium-clang-r2.patch
-
- # Remove compiler flags not supported by our system clang
- sed -i \
- -e '/"-Wno-enum-compare-switch"/d' \
- -e '/"-Wno-null-pointer-arithmetic"/d' \
- -e '/"-Wno-tautological-unsigned-zero-compare"/d' \
- -e '/"-Wno-tautological-constant-compare"/d' \
- build/config/compiler/BUILD.gn
-
- # Use Python 2
- find . -name '*.py' -exec sed -i -r 's|/usr/bin/python$|&2|g' {} +
-
- # There are still a lot of relative calls which need a workaround
- mkdir "$srcdir/python2-path"
- ln -s /usr/bin/python2 "$srcdir/python2-path/python"
-
- 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/freetype/src/src/psnames/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 PATH="$srcdir/python2-path:$PATH"
- export TMPDIR="$srcdir/temp"
- mkdir -p "$TMPDIR"
-
- 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"'
- 'is_clang=true'
- 'clang_use_chrome_plugins=false'
- 'is_debug=false'
- 'fatal_linker_warnings=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_system_freetype=true'
- 'use_system_harfbuzz=true'
- 'use_gtk3=true'
- 'use_gconf=false'
- 'use_gnome_keyring=false'
- 'use_gold=false'
- 'use_lld=false'
- 'use_sysroot=false'
- 'linux_use_bundled_binutils=false'
- 'use_custom_libcxx=false'
- 'enable_hangout_services_extension=true'
- 'enable_widevine=true'
- 'enable_nacl=false'
- 'enable_swiftshader=false'
- "google_api_key=\"${_google_api_key}\""
- "google_default_client_id=\"${_google_default_client_id}\""
- "google_default_client_secret=\"${_google_default_client_secret}\""
- )
-
- if check_option strip y; then
- _flags+=('exclude_unwind_tables=true')
- fi
-
- python2 tools/gn/bootstrap/bootstrap.py --gn-gen-args "${_flags[*]}"
- 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/testing-x86_64/PKGBUILD (from rev 315428, chromium/trunk/PKGBUILD)
===================================================================
--- PKGBUILD (rev 0)
+++ PKGBUILD 2018-01-25 09:41:30 UTC (rev 315429)
@@ -0,0 +1,261 @@
+# $Id$
+# Maintainer: Evangelos Foutras <evangelos at foutrelis.com>
+# Contributor: Pierre Schmitz <pierre at archlinux.de>
+# Contributor: Jan "heftig" Steffens <jan.steffens at gmail.com>
+# Contributor: Daniel J Griffiths <ghost1227 at archlinux.us>
+
+pkgname=chromium
+pkgver=64.0.3282.119
+pkgrel=1
+_launcher_ver=5
+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=('python2' 'gperf' 'yasm' 'mesa' 'ninja' 'nodejs' 'git' 'clang')
+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
+ chromium-use-fromUTF8-for-UnicodeString-construction.patch
+ chromium-omnibox-unescape-fragment.patch
+ chromium-skia-harmony.patch
+ chromium-memcpy-r0.patch
+ chromium-clang-r2.patch
+ chromium-exclude_unwind_tables.patch
+ chromium-widevine.patch)
+sha256sums=('342ea80a925d85f5155b2b423a0d3cbcf2ee5729bf107c601d7d902315d03127'
+ '4dc3428f2c927955d9ae117f2fb24d098cc6dd67adb760ac9c82b522ec8b0587'
+ 'a86a8ec67aed5a94557257b9826c5b8fe37005e8376e75986fee77acd066539a'
+ 'c82c830bac7ab328a76d85fb141e150a17d02d97138a6daa4720a8a8c371a402'
+ '814eb2cecb10cb697e24036b08aac41e88d0e38971741f9e946200764e2401ae'
+ 'feca54ab09ac0fc9d0626770a6b899a6ac5a12173c7d0c1005bc3964ec83e7b3'
+ '455f0029987d9f0532bd9a5250669af5146a9c2b65b776d4a6e2499e8aca7bb4'
+ '4495e8b29dae242c79ffe4beefc5171eb3c7aacb7e9aebfd2d4d69b9d8c958d3'
+ '9478f1ec1a3c53425306cf41c2d0555c215a4f106955d9d6adfff38044530ce8'
+ '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
+readonly -A _system_libs=(
+ #[ffmpeg]=ffmpeg # https://crbug.com/731766
+ [flac]=flac
+ #[fontconfig]=fontconfig # Enable for M65
+ #[freetype]=freetype2 # Using 'use_system_freetype=true' until M65
+ #[harfbuzz-ng]=harfbuzz # Using 'use_system_harfbuzz=true' until M65
+ [icu]=icu
+ [libdrm]=
+ [libjpeg]=libjpeg
+ #[libpng]=libpng # https://crbug.com/752403#c10
+ #[libvpx]=libvpx # https://bugs.gentoo.org/611394
+ [libwebp]=libwebp
+ #[libxml]=libxml2 # https://crbug.com/736026
+ [libxslt]=libxslt
+ [opus]=opus
+ [re2]=re2
+ [snappy]=snappy
+ [yasm]=
+ [zlib]=minizip
+)
+readonly _unwanted_bundled_libs=(
+ ${!_system_libs[@]}
+ ${_system_libs[libjpeg]+libjpeg_turbo}
+ freetype
+ harfbuzz-ng
+)
+depends+=(${_system_libs[@]} freetype2 harfbuzz)
+
+# 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
+
+ # 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://chromium-review.googlesource.com/c/chromium/src/+/712575
+ patch -Np1 -i ../chromium-exclude_unwind_tables.patch
+
+ # https://crbug.com/772655
+ patch -Np1 -i ../chromium-use-fromUTF8-for-UnicodeString-construction.patch
+
+ # https://crbug.com/789163
+ patch -Np1 -i ../chromium-omnibox-unescape-fragment.patch
+
+ # https://crbug.com/skia/6663#c10
+ patch -Np4 -i ../chromium-skia-harmony.patch
+
+ # Fixes from Gentoo
+ patch -Np1 -i ../chromium-memcpy-r0.patch
+ patch -Np1 -i ../chromium-clang-r2.patch
+
+ # Remove compiler flags not supported by our system clang
+ sed -i \
+ -e '/"-Wno-enum-compare-switch"/d' \
+ -e '/"-Wno-null-pointer-arithmetic"/d' \
+ -e '/"-Wno-tautological-unsigned-zero-compare"/d' \
+ -e '/"-Wno-tautological-constant-compare"/d' \
+ build/config/compiler/BUILD.gn
+
+ # Use Python 2
+ find . -name '*.py' -exec sed -i -r 's|/usr/bin/python$|&2|g' {} +
+
+ # There are still a lot of relative calls which need a workaround
+ mkdir "$srcdir/python2-path"
+ ln -s /usr/bin/python2 "$srcdir/python2-path/python"
+
+ 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/freetype/src/src/psnames/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 PATH="$srcdir/python2-path:$PATH"
+ export TMPDIR="$srcdir/temp"
+ mkdir -p "$TMPDIR"
+
+ 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"'
+ 'is_clang=true'
+ 'clang_use_chrome_plugins=false'
+ 'is_debug=false'
+ 'fatal_linker_warnings=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_system_freetype=true'
+ 'use_system_harfbuzz=true'
+ 'use_gtk3=true'
+ 'use_gconf=false'
+ 'use_gnome_keyring=false'
+ 'use_gold=false'
+ 'use_lld=false'
+ 'use_sysroot=false'
+ 'linux_use_bundled_binutils=false'
+ 'use_custom_libcxx=false'
+ 'enable_hangout_services_extension=true'
+ 'enable_widevine=true'
+ 'enable_nacl=false'
+ 'enable_swiftshader=false'
+ "google_api_key=\"${_google_api_key}\""
+ "google_default_client_id=\"${_google_default_client_id}\""
+ "google_default_client_secret=\"${_google_default_client_secret}\""
+ )
+
+ if check_option strip y; then
+ _flags+=('exclude_unwind_tables=true')
+ fi
+
+ python2 tools/gn/bootstrap/bootstrap.py --gn-gen-args "${_flags[*]}"
+ 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: chromium-clang-r2.patch
===================================================================
--- chromium-clang-r2.patch 2018-01-25 09:41:06 UTC (rev 315428)
+++ chromium-clang-r2.patch 2018-01-25 09:41:30 UTC (rev 315429)
@@ -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/testing-x86_64/chromium-clang-r2.patch (from rev 315428, chromium/trunk/chromium-clang-r2.patch)
===================================================================
--- chromium-clang-r2.patch (rev 0)
+++ chromium-clang-r2.patch 2018-01-25 09:41:30 UTC (rev 315429)
@@ -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-exclude_unwind_tables.patch
===================================================================
--- chromium-exclude_unwind_tables.patch 2018-01-25 09:41:06 UTC (rev 315428)
+++ chromium-exclude_unwind_tables.patch 2018-01-25 09:41:30 UTC (rev 315429)
@@ -1,33 +0,0 @@
-diff --git a/build/config/compiler/compiler.gni b/build/config/compiler/compiler.gni
-index ad40fd9..50e19a4 100644
---- a/build/config/compiler/compiler.gni
-+++ b/build/config/compiler/compiler.gni
-@@ -68,19 +68,19 @@
-
- # Whether or not we should use position independent code.
- use_pic = true
-+
-+ # Exclude unwind tables for official builds as unwinding can be done from
-+ # stack dumps produced by Crashpad at a later time "offline" in the crash
-+ # server. For unofficial (e.g. development) builds and non-Chrome branded
-+ # (e.g. Cronet which doesn't use Crashpad, crbug.com/479283) builds it's
-+ # useful to be able to unwind at runtime.
-+ exclude_unwind_tables =
-+ (is_chrome_branded && is_official_build) ||
-+ (is_chromecast && !is_cast_desktop_build && !is_debug && !is_fuchsia)
- }
-
- assert(!is_cfi || use_thin_lto, "CFI requires ThinLTO")
-
--# Exclude unwind tables for official builds as unwinding can be done from stack
--# dumps produced by Crashpad at a later time "offline" in the crash server.
--# For unofficial (e.g. development) builds and non-Chrome branded (e.g. Cronet
--# which doesn't use Crashpad, crbug.com/479283) builds it's useful to be able
--# to unwind at runtime.
--exclude_unwind_tables =
-- (is_chrome_branded && is_official_build) ||
-- (is_chromecast && !is_cast_desktop_build && !is_debug && !is_fuchsia)
--
- # If true, optimize for size. Does not affect windows builds.
- # Linux & Mac favor speed over size.
- # TODO(brettw) it's weird that Mac and desktop Linux are different. We should
Copied: chromium/repos/testing-x86_64/chromium-exclude_unwind_tables.patch (from rev 315428, chromium/trunk/chromium-exclude_unwind_tables.patch)
===================================================================
--- chromium-exclude_unwind_tables.patch (rev 0)
+++ chromium-exclude_unwind_tables.patch 2018-01-25 09:41:30 UTC (rev 315429)
@@ -0,0 +1,33 @@
+diff --git a/build/config/compiler/compiler.gni b/build/config/compiler/compiler.gni
+index ad40fd9..50e19a4 100644
+--- a/build/config/compiler/compiler.gni
++++ b/build/config/compiler/compiler.gni
+@@ -68,19 +68,19 @@
+
+ # Whether or not we should use position independent code.
+ use_pic = true
++
++ # Exclude unwind tables for official builds as unwinding can be done from
++ # stack dumps produced by Crashpad at a later time "offline" in the crash
++ # server. For unofficial (e.g. development) builds and non-Chrome branded
++ # (e.g. Cronet which doesn't use Crashpad, crbug.com/479283) builds it's
++ # useful to be able to unwind at runtime.
++ exclude_unwind_tables =
++ (is_chrome_branded && is_official_build) ||
++ (is_chromecast && !is_cast_desktop_build && !is_debug && !is_fuchsia)
+ }
+
+ assert(!is_cfi || use_thin_lto, "CFI requires ThinLTO")
+
+-# Exclude unwind tables for official builds as unwinding can be done from stack
+-# dumps produced by Crashpad at a later time "offline" in the crash server.
+-# For unofficial (e.g. development) builds and non-Chrome branded (e.g. Cronet
+-# which doesn't use Crashpad, crbug.com/479283) builds it's useful to be able
+-# to unwind at runtime.
+-exclude_unwind_tables =
+- (is_chrome_branded && is_official_build) ||
+- (is_chromecast && !is_cast_desktop_build && !is_debug && !is_fuchsia)
+-
+ # If true, optimize for size. Does not affect windows builds.
+ # Linux & Mac favor speed over size.
+ # TODO(brettw) it's weird that Mac and desktop Linux are different. We should
Deleted: chromium-memcpy-r0.patch
===================================================================
--- chromium-memcpy-r0.patch 2018-01-25 09:41:06 UTC (rev 315428)
+++ chromium-memcpy-r0.patch 2018-01-25 09:41:30 UTC (rev 315429)
@@ -1,35 +0,0 @@
-From 4942f56ceb6d60d6f54ebca8e6eba8ba01c278e8 Mon Sep 17 00:00:00 2001
-From: Tomas Popela <tomas.popela at gmail.com>
-Date: Thu, 7 Dec 2017 22:33:34 +0000
-Subject: [PATCH] memcpy used without including string.h
-
-Compiling Chromium with Clang 4.0.1 and using libstdc++ will fail on using
-memcpy without including string.h.
-
-Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.android:android_optional_gpu_tests_rel
-Change-Id: Idced1d5de3baf6b520d4a2d61774120642ead1a8
-Reviewed-on: https://chromium-review.googlesource.com/813737
-Reviewed-by: Thomas Anderson <thomasanderson at chromium.org>
-Reviewed-by: vmpstr <vmpstr at chromium.org>
-Commit-Queue: Thomas Anderson <thomasanderson at chromium.org>
-Cr-Commit-Position: refs/heads/master@{#522579}
----
- cc/paint/raw_memory_transfer_cache_entry.cc | 2 ++
- 1 file changed, 2 insertions(+)
-
-diff --git a/cc/paint/raw_memory_transfer_cache_entry.cc b/cc/paint/raw_memory_transfer_cache_entry.cc
-index 9e4660c685ee..95ad50b1a338 100644
---- a/cc/paint/raw_memory_transfer_cache_entry.cc
-+++ b/cc/paint/raw_memory_transfer_cache_entry.cc
-@@ -4,6 +4,8 @@
-
- #include "cc/paint/raw_memory_transfer_cache_entry.h"
-
-+#include <string.h>
-+
- namespace cc {
-
- ClientRawMemoryTransferCacheEntry::ClientRawMemoryTransferCacheEntry(
---
-2.15.1
-
Copied: chromium/repos/testing-x86_64/chromium-memcpy-r0.patch (from rev 315428, chromium/trunk/chromium-memcpy-r0.patch)
===================================================================
--- chromium-memcpy-r0.patch (rev 0)
+++ chromium-memcpy-r0.patch 2018-01-25 09:41:30 UTC (rev 315429)
@@ -0,0 +1,35 @@
+From 4942f56ceb6d60d6f54ebca8e6eba8ba01c278e8 Mon Sep 17 00:00:00 2001
+From: Tomas Popela <tomas.popela at gmail.com>
+Date: Thu, 7 Dec 2017 22:33:34 +0000
+Subject: [PATCH] memcpy used without including string.h
+
+Compiling Chromium with Clang 4.0.1 and using libstdc++ will fail on using
+memcpy without including string.h.
+
+Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.android:android_optional_gpu_tests_rel
+Change-Id: Idced1d5de3baf6b520d4a2d61774120642ead1a8
+Reviewed-on: https://chromium-review.googlesource.com/813737
+Reviewed-by: Thomas Anderson <thomasanderson at chromium.org>
+Reviewed-by: vmpstr <vmpstr at chromium.org>
+Commit-Queue: Thomas Anderson <thomasanderson at chromium.org>
+Cr-Commit-Position: refs/heads/master@{#522579}
+---
+ cc/paint/raw_memory_transfer_cache_entry.cc | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/cc/paint/raw_memory_transfer_cache_entry.cc b/cc/paint/raw_memory_transfer_cache_entry.cc
+index 9e4660c685ee..95ad50b1a338 100644
+--- a/cc/paint/raw_memory_transfer_cache_entry.cc
++++ b/cc/paint/raw_memory_transfer_cache_entry.cc
+@@ -4,6 +4,8 @@
+
+ #include "cc/paint/raw_memory_transfer_cache_entry.h"
+
++#include <string.h>
++
+ namespace cc {
+
+ ClientRawMemoryTransferCacheEntry::ClientRawMemoryTransferCacheEntry(
+--
+2.15.1
+
Deleted: chromium-omnibox-unescape-fragment.patch
===================================================================
--- chromium-omnibox-unescape-fragment.patch 2018-01-25 09:41:06 UTC (rev 315428)
+++ chromium-omnibox-unescape-fragment.patch 2018-01-25 09:41:30 UTC (rev 315429)
@@ -1,437 +0,0 @@
-commit 03f9a90d8a783f9d1a94935ac298338a1e694380
-Author: Eric Lawrence <elawrence at chromium.org>
-Date: Sat Dec 16 04:48:11 2017 +0000
-
- Reland of 'Unescape fragment for display in Omnibox'
-
- The original landing broke EGTests for iOS Simulator and Device which
- were not run by the CQ. This change includes updated EGTests.
-
- TBR=pkasting at chromium.org
-
- Bug: 789163, 643458
- Cq-Include-Trybots: master.tryserver.chromium.mac:ios-simulator-cronet;master.tryserver.chromium.mac:ios-simulator-full-configs
- Change-Id: Ie30afcb7bcba5affc7266d72a10b7f8dc0074314
- Reviewed-on: https://chromium-review.googlesource.com/830093
- Reviewed-by: Eric Lawrence <elawrence at chromium.org>
- Reviewed-by: Peter Kasting <pkasting at chromium.org>
- Reviewed-by: Eugene But <eugenebut at chromium.org>
- Commit-Queue: Eric Lawrence <elawrence at chromium.org>
- Cr-Commit-Position: refs/heads/master@{#524591}
-
-diff --git a/chrome/browser/ui/views/omnibox/omnibox_view_views_browsertest.cc b/chrome/browser/ui/views/omnibox/omnibox_view_views_browsertest.cc
-index 6e5dff47f7ec..24f1056d49d5 100644
---- a/chrome/browser/ui/views/omnibox/omnibox_view_views_browsertest.cc
-+++ b/chrome/browser/ui/views/omnibox/omnibox_view_views_browsertest.cc
-@@ -462,3 +462,13 @@ IN_PROC_BROWSER_TEST_F(OmniboxViewViewsTest, TextElideStatus) {
- EXPECT_EQ(omnibox_view_views->GetRenderText()->elide_behavior(),
- gfx::NO_ELIDE);
- }
-+
-+IN_PROC_BROWSER_TEST_F(OmniboxViewViewsTest, FragmentUnescapedForDisplay) {
-+ OmniboxView* view = nullptr;
-+ ASSERT_NO_FATAL_FAILURE(GetOmniboxViewForBrowser(browser(), &view));
-+ ui_test_utils::NavigateToURL(browser(),
-+ GURL("https://www.google.com/#%E2%98%83"));
-+
-+ EXPECT_EQ(view->GetText(),
-+ base::UTF8ToUTF16("https://www.google.com/#\u2603"));
-+}
-diff --git a/components/url_formatter/elide_url_unittest.cc b/components/url_formatter/elide_url_unittest.cc
-index 5e0384af72a2..d403ce065f45 100644
---- a/components/url_formatter/elide_url_unittest.cc
-+++ b/components/url_formatter/elide_url_unittest.cc
-@@ -347,15 +347,16 @@ TEST(TextEliderTest, TestElisionSpecialCases) {
- kEllipsisStr + "berkeley.edu:4430/" + kEllipsisStr + "/arbitfilename"},
-
- // Unescaping.
-- {"http://www/%E4%BD%A0%E5%A5%BD?q=%E4%BD%A0%E5%A5%BD#\xe4\xbd\xa0",
-- "www/\xe4\xbd\xa0\xe5\xa5\xbd?q=\xe4\xbd\xa0\xe5\xa5\xbd#" +
-+ {"http://www/%E4%BD%A0%E5%A5%BD?"
-+ "q=%E4%BD%A0%E5%A5%BD#\xe4\xbd\xa0\xe4\xbd\xa0\xe4\xbd\xa0",
-+ "www/\xe4\xbd\xa0\xe5\xa5\xbd?q=\xe4\xbd\xa0\xe5\xa5\xbd#\xe4\xbd\xa0" +
- kEllipsisStr},
-
- // Invalid unescaping for path. The ref will always be valid UTF-8. We
- // don't bother to do too many edge cases, since these are handled by the
- // escaper unittest.
- {"http://www/%E4%A0%E5%A5%BD?q=%E4%BD%A0%E5%A5%BD#\xe4\xbd\xa0",
-- "www/%E4%A0%E5%A5%BD?q=\xe4\xbd\xa0\xe5\xa5\xbd#" + kEllipsisStr},
-+ "www/%E4%A0%E5%A5%BD?q=\xe4\xbd\xa0\xe5\xa5\xbd#\xe4\xbd\xa0"},
- };
-
- RunElisionTest(testcases);
-diff --git a/components/url_formatter/url_formatter.cc b/components/url_formatter/url_formatter.cc
-index d5c0d314a5de..c422e3d98a72 100644
---- a/components/url_formatter/url_formatter.cc
-+++ b/components/url_formatter/url_formatter.cc
-@@ -586,11 +586,10 @@ base::string16 FormatUrlWithAdjustments(
- NonHostComponentTransform(unescape_rules),
- &url_string, &new_parsed->query, adjustments);
-
-- // Ref. This is valid, unescaped UTF-8, so we can just convert.
- if (parsed.ref.is_valid())
- url_string.push_back('#');
- AppendFormattedComponent(spec, parsed.ref,
-- NonHostComponentTransform(net::UnescapeRule::NONE),
-+ NonHostComponentTransform(unescape_rules),
- &url_string, &new_parsed->ref, adjustments);
- }
-
-diff --git a/components/url_formatter/url_formatter_unittest.cc b/components/url_formatter/url_formatter_unittest.cc
-index 6fd3ece50f7d..5aaf31105a43 100644
---- a/components/url_formatter/url_formatter_unittest.cc
-+++ b/components/url_formatter/url_formatter_unittest.cc
-@@ -828,7 +828,7 @@ TEST(UrlFormatterTest, FormatUrl) {
-
- {"With a port number and a reference",
- "http://www.google.com:8080/#\xE3\x82\xB0", default_format_type,
-- net::UnescapeRule::NORMAL, L"http://www.google.com:8080/#%E3%82%B0", 7},
-+ net::UnescapeRule::NORMAL, L"http://www.google.com:8080/#\x30B0", 7},
-
- // -------- IDN tests --------
- {"Japanese IDN with ja", "http://xn--l8jvb1ey91xtjb.jp",
-@@ -1119,7 +1119,7 @@ TEST(UrlFormatterTest, FormatUrlParsed) {
- kFormatUrlOmitNothing, net::UnescapeRule::NORMAL, &parsed,
- nullptr, nullptr);
- EXPECT_EQ(WideToUTF16(L"http://\x30B0:\x30FC@\x30B0\x30FC\x30B0\x30EB.jp:8080"
-- L"/\x30B0/?q=\x30B0#%E3%82%B0"),
-+ L"/\x30B0/?q=\x30B0#\x30B0"),
- formatted);
- EXPECT_EQ(WideToUTF16(L"\x30B0"),
- formatted.substr(parsed.username.begin, parsed.username.len));
-@@ -1133,7 +1133,7 @@ TEST(UrlFormatterTest, FormatUrlParsed) {
- formatted.substr(parsed.path.begin, parsed.path.len));
- EXPECT_EQ(WideToUTF16(L"q=\x30B0"),
- formatted.substr(parsed.query.begin, parsed.query.len));
-- EXPECT_EQ(WideToUTF16(L"%E3%82%B0"),
-+ EXPECT_EQ(WideToUTF16(L"\x30B0"),
- formatted.substr(parsed.ref.begin, parsed.ref.len));
-
- // Omit_username_password + unescape case.
-@@ -1143,7 +1143,7 @@ TEST(UrlFormatterTest, FormatUrlParsed) {
- kFormatUrlOmitUsernamePassword, net::UnescapeRule::NORMAL,
- &parsed, nullptr, nullptr);
- EXPECT_EQ(WideToUTF16(L"http://\x30B0\x30FC\x30B0\x30EB.jp:8080"
-- L"/\x30B0/?q=\x30B0#%E3%82%B0"),
-+ L"/\x30B0/?q=\x30B0#\x30B0"),
- formatted);
- EXPECT_FALSE(parsed.username.is_valid());
- EXPECT_FALSE(parsed.password.is_valid());
-@@ -1155,7 +1155,7 @@ TEST(UrlFormatterTest, FormatUrlParsed) {
- formatted.substr(parsed.path.begin, parsed.path.len));
- EXPECT_EQ(WideToUTF16(L"q=\x30B0"),
- formatted.substr(parsed.query.begin, parsed.query.len));
-- EXPECT_EQ(WideToUTF16(L"%E3%82%B0"),
-+ EXPECT_EQ(WideToUTF16(L"\x30B0"),
- formatted.substr(parsed.ref.begin, parsed.ref.len));
-
- // View-source case.
-@@ -1389,9 +1389,12 @@ TEST(UrlFormatterTest, FormatUrlWithOffsets) {
- kFormatUrlOmitNothing, net::UnescapeRule::SPACES, unescape_offsets);
-
- const size_t ref_offsets[] = {
-- 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
-- 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33,
-- 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49};
-+ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9,
-+ 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
-+ 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
-+ 30, 31, kNpos, kNpos, kNpos, kNpos, kNpos, kNpos, kNpos, kNpos,
-+ 32, kNpos, kNpos, kNpos, kNpos, kNpos, kNpos, kNpos, kNpos, 33};
-+
- // Unescape to "http://www.google.com/foo.html#\x30B0\x30B0z".
- CheckAdjustedOffsets("http://www.google.com/foo.html#%E3%82%B0%E3%82%B0z",
- kFormatUrlOmitNothing, net::UnescapeRule::NORMAL,
-diff --git a/ios/chrome/browser/web/push_and_replace_state_navigation_egtest.mm b/ios/chrome/browser/web/push_and_replace_state_navigation_egtest.mm
-index b67f2a08d0a0..431ad368f07d 100644
---- a/ios/chrome/browser/web/push_and_replace_state_navigation_egtest.mm
-+++ b/ios/chrome/browser/web/push_and_replace_state_navigation_egtest.mm
-@@ -59,40 +59,42 @@ const char* kReplaceStateRootPathSpaceURL = "http://ios/rep lace";
- // Push 3 URLs. Verify that the URL changed and the status was updated.
- [ChromeEarlGrey tapWebViewElementWithID:@"pushStateHashWithObject"];
- [self assertStatusText:@"pushStateHashWithObject"
-- withURL:pushStateHashWithObjectURL
-+ withOmniboxText:pushStateHashWithObjectURL.GetContent()
- pageLoaded:NO];
-
- [ChromeEarlGrey tapWebViewElementWithID:@"pushStateRootPath"];
- [self assertStatusText:@"pushStateRootPath"
-- withURL:pushStateRootPathURL
-+ withOmniboxText:pushStateRootPathURL.GetContent()
- pageLoaded:NO];
-
- [ChromeEarlGrey tapWebViewElementWithID:@"pushStatePathSpace"];
- [self assertStatusText:@"pushStatePathSpace"
-- withURL:pushStatePathSpaceURL
-+ withOmniboxText:pushStatePathSpaceURL.GetContent()
- pageLoaded:NO];
-
- // Go back and check that the page doesn't load and the status text is updated
- // by the popstate event.
- [[EarlGrey selectElementWithMatcher:BackButton()] performAction:grey_tap()];
- [self assertStatusText:@"pushStateRootPath"
-- withURL:pushStateRootPathURL
-+ withOmniboxText:pushStateRootPathURL.GetContent()
- pageLoaded:NO];
-
- [[EarlGrey selectElementWithMatcher:BackButton()] performAction:grey_tap()];
- [self assertStatusText:@"pushStateHashWithObject"
-- withURL:pushStateHashWithObjectURL
-+ withOmniboxText:pushStateHashWithObjectURL.GetContent()
- pageLoaded:NO];
-
- [ChromeEarlGrey tapWebViewElementWithID:@"goBack"];
- const GURL historyTestURL = web::test::HttpServer::MakeUrl(kHistoryTestUrl);
-- [self assertStatusText:NULL withURL:historyTestURL pageLoaded:NO];
-+ [self assertStatusText:nil
-+ withOmniboxText:historyTestURL.GetContent()
-+ pageLoaded:NO];
-
- // Go forward 2 pages and check that the page doesn't load and the status text
- // is updated by the popstate event.
- [ChromeEarlGrey tapWebViewElementWithID:@"goForward2"];
- [self assertStatusText:@"pushStateRootPath"
-- withURL:pushStateRootPathURL
-+ withOmniboxText:pushStateRootPathURL.GetContent()
- pageLoaded:NO];
- }
-
-@@ -108,7 +110,7 @@ const char* kReplaceStateRootPathSpaceURL = "http://ios/rep lace";
- web::test::HttpServer::MakeUrl(kReplaceStateHashWithObjectURL);
- [ChromeEarlGrey tapWebViewElementWithID:@"replaceStateHashWithObject"];
- [self assertStatusText:@"replaceStateHashWithObject"
-- withURL:replaceStateHashWithObjectURL
-+ withOmniboxText:replaceStateHashWithObjectURL.GetContent()
- pageLoaded:NO];
-
- [[EarlGrey selectElementWithMatcher:BackButton()] performAction:grey_tap()];
-@@ -119,7 +121,7 @@ const char* kReplaceStateRootPathSpaceURL = "http://ios/rep lace";
- [[EarlGrey selectElementWithMatcher:ForwardButton()]
- performAction:grey_tap()];
- [self assertStatusText:@"replaceStateHashWithObject"
-- withURL:replaceStateHashWithObjectURL
-+ withOmniboxText:replaceStateHashWithObjectURL.GetContent()
- pageLoaded:YES];
-
- // Push URL then replace it. Do this twice.
-@@ -127,44 +129,44 @@ const char* kReplaceStateRootPathSpaceURL = "http://ios/rep lace";
- web::test::HttpServer::MakeUrl(kPushStateHashStringURL);
- [ChromeEarlGrey tapWebViewElementWithID:@"pushStateHashString"];
- [self assertStatusText:@"pushStateHashString"
-- withURL:pushStateHashStringURL
-+ withOmniboxText:pushStateHashStringURL.GetContent()
- pageLoaded:NO];
-
- const GURL replaceStateHashStringURL =
- web::test::HttpServer::MakeUrl(kReplaceStateHashStringURL);
- [ChromeEarlGrey tapWebViewElementWithID:@"replaceStateHashString"];
- [self assertStatusText:@"replaceStateHashString"
-- withURL:replaceStateHashStringURL
-+ withOmniboxText:replaceStateHashStringURL.GetContent()
- pageLoaded:NO];
-
- const GURL pushStatePathURL =
- web::test::HttpServer::MakeUrl(kPushStatePathURL);
- [ChromeEarlGrey tapWebViewElementWithID:@"pushStatePath"];
- [self assertStatusText:@"pushStatePath"
-- withURL:pushStatePathURL
-+ withOmniboxText:pushStatePathURL.GetContent()
- pageLoaded:NO];
-
- const GURL replaceStateRootPathSpaceURL =
- web::test::HttpServer::MakeUrl(kReplaceStateRootPathSpaceURL);
- [ChromeEarlGrey tapWebViewElementWithID:@"replaceStateRootPathSpace"];
- [self assertStatusText:@"replaceStateRootPathSpace"
-- withURL:replaceStateRootPathSpaceURL
-+ withOmniboxText:replaceStateRootPathSpaceURL.GetContent()
- pageLoaded:NO];
-
- // Go back and check URLs.
- [[EarlGrey selectElementWithMatcher:BackButton()] performAction:grey_tap()];
- [self assertStatusText:@"replaceStateHashString"
-- withURL:replaceStateHashStringURL
-+ withOmniboxText:replaceStateHashStringURL.GetContent()
- pageLoaded:NO];
- [[EarlGrey selectElementWithMatcher:BackButton()] performAction:grey_tap()];
- [self assertStatusText:@"replaceStateHashWithObject"
-- withURL:replaceStateHashWithObjectURL
-+ withOmniboxText:replaceStateHashWithObjectURL.GetContent()
- pageLoaded:NO];
-
- // Go forward and check URL.
- [ChromeEarlGrey tapWebViewElementWithID:@"goForward2"];
- [self assertStatusText:@"replaceStateRootPathSpace"
-- withURL:replaceStateRootPathSpaceURL
-+ withOmniboxText:replaceStateRootPathSpaceURL.GetContent()
- pageLoaded:NO];
- }
-
-@@ -180,11 +182,11 @@ const char* kReplaceStateRootPathSpaceURL = "http://ios/rep lace";
- web::test::HttpServer::MakeUrl(kPushStateHashStringURL);
- [ChromeEarlGrey tapWebViewElementWithID:@"pushStateHashString"];
- [self assertStatusText:@"pushStateHashString"
-- withURL:pushStateHashStringURL
-+ withOmniboxText:pushStateHashStringURL.GetContent()
- pageLoaded:NO];
- [ChromeEarlGrey tapWebViewElementWithID:@"pushStateHashString"];
- [self assertStatusText:@"pushStateHashString"
-- withURL:pushStateHashStringURL
-+ withOmniboxText:pushStateHashStringURL.GetContent()
- pageLoaded:NO];
-
- // Load a non-pushed URL.
-@@ -194,7 +196,7 @@ const char* kReplaceStateRootPathSpaceURL = "http://ios/rep lace";
- [ChromeEarlGrey loadURL:historyTestURL];
- [ChromeEarlGrey tapWebViewElementWithID:@"pushStateHashString"];
- [self assertStatusText:@"pushStateHashString"
-- withURL:pushStateHashStringURL
-+ withOmniboxText:pushStateHashStringURL.GetContent()
- pageLoaded:NO];
-
- // At this point the history looks like this:
-@@ -202,38 +204,54 @@ const char* kReplaceStateRootPathSpaceURL = "http://ios/rep lace";
-
- // Go back (to second history.html) and verify page did not load.
- [[EarlGrey selectElementWithMatcher:BackButton()] performAction:grey_tap()];
-- [self assertStatusText:nil withURL:historyTestURL pageLoaded:NO];
-+ [self assertStatusText:nil
-+ withOmniboxText:historyTestURL.GetContent()
-+ pageLoaded:NO];
-
- // Go back twice (to second #string) and verify page did load.
- [[EarlGrey selectElementWithMatcher:BackButton()] performAction:grey_tap()];
- [[EarlGrey selectElementWithMatcher:BackButton()] performAction:grey_tap()];
-- [self assertStatusText:nil withURL:pushStateHashStringURL pageLoaded:YES];
-+ [self assertStatusText:nil
-+ withOmniboxText:pushStateHashStringURL.GetContent()
-+ pageLoaded:YES];
-
- // Go back once (to first #string) and verify page did not load.
- [[EarlGrey selectElementWithMatcher:BackButton()] performAction:grey_tap()];
- [self assertStatusText:@"pushStateHashString"
-- withURL:pushStateHashStringURL
-+ withOmniboxText:pushStateHashStringURL.GetContent()
- pageLoaded:NO];
-
- // Go forward 4 entries at once (to third #string) and verify page did load.
- [ChromeEarlGrey tapWebViewElementWithID:@"goForward4"];
-
-- [self assertStatusText:nil withURL:pushStateHashStringURL pageLoaded:YES];
-+ [self assertStatusText:nil
-+ withOmniboxText:pushStateHashStringURL.GetContent()
-+ pageLoaded:YES];
-
- // Go back 4 entries at once (to first #string) and verify page did load.
- [ChromeEarlGrey tapWebViewElementWithID:@"goBack4"];
-
-- [self assertStatusText:NULL withURL:pushStateHashStringURL pageLoaded:YES];
-+ [self assertStatusText:nil
-+ withOmniboxText:pushStateHashStringURL.GetContent()
-+ pageLoaded:YES];
- }
-
- // Tests calling pushState with unicode characters.
- - (void)testHtml5HistoryPushUnicodeCharacters {
-- const GURL pushStateUnicodeURLEncoded = web::test::HttpServer::MakeUrl(
-- "http://ios/testing/data/http_server_files/"
-- "history.html#unicode%E1%84%91");
-- const GURL pushStateUnicode2URLEncoded = web::test::HttpServer::MakeUrl(
-- "http://ios/testing/data/http_server_files/"
-- "history.html#unicode2%E2%88%A2");
-+ // The GURL object %-escapes Unicode characters in the URL's fragment,
-+ // but the omnibox decodes them back to Unicode for display.
-+ std::string pushStateUnicode =
-+ web::test::HttpServer::MakeUrl(
-+ "http://ios/testing/data/http_server_files/"
-+ "history.html#unicode")
-+ .GetContent() +
-+ "\xe1\x84\x91";
-+ std::string pushStateUnicode2 =
-+ web::test::HttpServer::MakeUrl(
-+ "http://ios/testing/data/http_server_files/"
-+ "history.html#unicode2")
-+ .GetContent() +
-+ "\xe2\x88\xa2";
- const char pushStateUnicodeLabel[] = "Action: pushStateUnicodeᄑ";
- NSString* pushStateUnicodeStatus = @"pushStateUnicodeᄑ";
- const char pushStateUnicode2Label[] = "Action: pushStateUnicode2∢";
-@@ -242,21 +260,16 @@ const char* kReplaceStateRootPathSpaceURL = "http://ios/rep lace";
- web::test::SetUpFileBasedHttpServer();
- [ChromeEarlGrey loadURL:web::test::HttpServer::MakeUrl(kHistoryTestUrl)];
-
-- // TODO(crbug.com/643458): The fact that the URL shows %-escaped is due to
-- // NSURL escaping to make UIWebView/JS happy. See if it's possible to
-- // represent differently such that it displays unescaped.
- // Do 2 push states with unicode characters.
- [ChromeEarlGrey tapWebViewElementWithID:@"pushStateUnicode"];
- [[EarlGrey
-- selectElementWithMatcher:chrome_test_util::OmniboxText(
-- pushStateUnicodeURLEncoded.GetContent())]
-+ selectElementWithMatcher:chrome_test_util::OmniboxText(pushStateUnicode)]
- assertWithMatcher:grey_notNil()];
- [ChromeEarlGrey waitForWebViewContainingText:pushStateUnicodeLabel];
-
- [ChromeEarlGrey tapWebViewElementWithID:@"pushStateUnicode2"];
- [[EarlGrey
-- selectElementWithMatcher:chrome_test_util::OmniboxText(
-- pushStateUnicode2URLEncoded.GetContent())]
-+ selectElementWithMatcher:chrome_test_util::OmniboxText(pushStateUnicode2)]
- assertWithMatcher:grey_notNil()];
- [ChromeEarlGrey waitForWebViewContainingText:pushStateUnicode2Label];
-
-@@ -266,18 +279,18 @@ const char* kReplaceStateRootPathSpaceURL = "http://ios/rep lace";
- [ChromeEarlGrey tapWebViewElementWithID:@"pushStatePath"];
-
- [self assertStatusText:@"pushStatePath"
-- withURL:pushStatePathURL
-+ withOmniboxText:pushStatePathURL.GetContent()
- pageLoaded:NO];
-
- // Go back and check the unicode in the URL and status.
- [[EarlGrey selectElementWithMatcher:BackButton()] performAction:grey_tap()];
- [self assertStatusText:pushStateUnicode2Status
-- withURL:pushStateUnicode2URLEncoded
-+ withOmniboxText:pushStateUnicode2
- pageLoaded:NO];
-
- [[EarlGrey selectElementWithMatcher:BackButton()] performAction:grey_tap()];
- [self assertStatusText:pushStateUnicodeStatus
-- withURL:pushStateUnicodeURLEncoded
-+ withOmniboxText:pushStateUnicode
- pageLoaded:NO];
- }
-
-@@ -321,10 +334,11 @@ const char* kReplaceStateRootPathSpaceURL = "http://ios/rep lace";
-
- #pragma mark - Utility methods
-
--// Assert that status text |status| is displayed in the webview, that "onloaded"
--// text is displayed if pageLoaded is YES, and that the URL is as expected.
-+// Assert that status text |status|, if non-nil, is displayed in the webview,
-+// that the omnibox text is as expected, and that "onload" text is displayed if
-+// pageLoaded is YES.
- - (void)assertStatusText:(NSString*)status
-- withURL:(const GURL&)urlToVerify
-+ withOmniboxText:(const std::string&)omniboxText
- pageLoaded:(BOOL)pageLoaded {
- if (pageLoaded) {
- [ChromeEarlGrey waitForWebViewContainingText:"onload"];
-@@ -332,14 +346,14 @@ const char* kReplaceStateRootPathSpaceURL = "http://ios/rep lace";
- [ChromeEarlGrey waitForWebViewNotContainingText:"onload"];
- }
-
-- if (status != NULL) {
-+ if (status != nil) {
- NSString* statusLabel = [NSString stringWithFormat:@"Action: %@", status];
- [ChromeEarlGrey
- waitForWebViewContainingText:base::SysNSStringToUTF8(statusLabel)];
- }
-
-- [[EarlGrey selectElementWithMatcher:chrome_test_util::OmniboxText(
-- urlToVerify.GetContent())]
-+ [[EarlGrey
-+ selectElementWithMatcher:chrome_test_util::OmniboxText(omniboxText)]
- assertWithMatcher:grey_notNil()];
- }
-
Copied: chromium/repos/testing-x86_64/chromium-omnibox-unescape-fragment.patch (from rev 315428, chromium/trunk/chromium-omnibox-unescape-fragment.patch)
===================================================================
--- chromium-omnibox-unescape-fragment.patch (rev 0)
+++ chromium-omnibox-unescape-fragment.patch 2018-01-25 09:41:30 UTC (rev 315429)
@@ -0,0 +1,437 @@
+commit 03f9a90d8a783f9d1a94935ac298338a1e694380
+Author: Eric Lawrence <elawrence at chromium.org>
+Date: Sat Dec 16 04:48:11 2017 +0000
+
+ Reland of 'Unescape fragment for display in Omnibox'
+
+ The original landing broke EGTests for iOS Simulator and Device which
+ were not run by the CQ. This change includes updated EGTests.
+
+ TBR=pkasting at chromium.org
+
+ Bug: 789163, 643458
+ Cq-Include-Trybots: master.tryserver.chromium.mac:ios-simulator-cronet;master.tryserver.chromium.mac:ios-simulator-full-configs
+ Change-Id: Ie30afcb7bcba5affc7266d72a10b7f8dc0074314
+ Reviewed-on: https://chromium-review.googlesource.com/830093
+ Reviewed-by: Eric Lawrence <elawrence at chromium.org>
+ Reviewed-by: Peter Kasting <pkasting at chromium.org>
+ Reviewed-by: Eugene But <eugenebut at chromium.org>
+ Commit-Queue: Eric Lawrence <elawrence at chromium.org>
+ Cr-Commit-Position: refs/heads/master@{#524591}
+
+diff --git a/chrome/browser/ui/views/omnibox/omnibox_view_views_browsertest.cc b/chrome/browser/ui/views/omnibox/omnibox_view_views_browsertest.cc
+index 6e5dff47f7ec..24f1056d49d5 100644
+--- a/chrome/browser/ui/views/omnibox/omnibox_view_views_browsertest.cc
++++ b/chrome/browser/ui/views/omnibox/omnibox_view_views_browsertest.cc
+@@ -462,3 +462,13 @@ IN_PROC_BROWSER_TEST_F(OmniboxViewViewsTest, TextElideStatus) {
+ EXPECT_EQ(omnibox_view_views->GetRenderText()->elide_behavior(),
+ gfx::NO_ELIDE);
+ }
++
++IN_PROC_BROWSER_TEST_F(OmniboxViewViewsTest, FragmentUnescapedForDisplay) {
++ OmniboxView* view = nullptr;
++ ASSERT_NO_FATAL_FAILURE(GetOmniboxViewForBrowser(browser(), &view));
++ ui_test_utils::NavigateToURL(browser(),
++ GURL("https://www.google.com/#%E2%98%83"));
++
++ EXPECT_EQ(view->GetText(),
++ base::UTF8ToUTF16("https://www.google.com/#\u2603"));
++}
+diff --git a/components/url_formatter/elide_url_unittest.cc b/components/url_formatter/elide_url_unittest.cc
+index 5e0384af72a2..d403ce065f45 100644
+--- a/components/url_formatter/elide_url_unittest.cc
++++ b/components/url_formatter/elide_url_unittest.cc
+@@ -347,15 +347,16 @@ TEST(TextEliderTest, TestElisionSpecialCases) {
+ kEllipsisStr + "berkeley.edu:4430/" + kEllipsisStr + "/arbitfilename"},
+
+ // Unescaping.
+- {"http://www/%E4%BD%A0%E5%A5%BD?q=%E4%BD%A0%E5%A5%BD#\xe4\xbd\xa0",
+- "www/\xe4\xbd\xa0\xe5\xa5\xbd?q=\xe4\xbd\xa0\xe5\xa5\xbd#" +
++ {"http://www/%E4%BD%A0%E5%A5%BD?"
++ "q=%E4%BD%A0%E5%A5%BD#\xe4\xbd\xa0\xe4\xbd\xa0\xe4\xbd\xa0",
++ "www/\xe4\xbd\xa0\xe5\xa5\xbd?q=\xe4\xbd\xa0\xe5\xa5\xbd#\xe4\xbd\xa0" +
+ kEllipsisStr},
+
+ // Invalid unescaping for path. The ref will always be valid UTF-8. We
+ // don't bother to do too many edge cases, since these are handled by the
+ // escaper unittest.
+ {"http://www/%E4%A0%E5%A5%BD?q=%E4%BD%A0%E5%A5%BD#\xe4\xbd\xa0",
+- "www/%E4%A0%E5%A5%BD?q=\xe4\xbd\xa0\xe5\xa5\xbd#" + kEllipsisStr},
++ "www/%E4%A0%E5%A5%BD?q=\xe4\xbd\xa0\xe5\xa5\xbd#\xe4\xbd\xa0"},
+ };
+
+ RunElisionTest(testcases);
+diff --git a/components/url_formatter/url_formatter.cc b/components/url_formatter/url_formatter.cc
+index d5c0d314a5de..c422e3d98a72 100644
+--- a/components/url_formatter/url_formatter.cc
++++ b/components/url_formatter/url_formatter.cc
+@@ -586,11 +586,10 @@ base::string16 FormatUrlWithAdjustments(
+ NonHostComponentTransform(unescape_rules),
+ &url_string, &new_parsed->query, adjustments);
+
+- // Ref. This is valid, unescaped UTF-8, so we can just convert.
+ if (parsed.ref.is_valid())
+ url_string.push_back('#');
+ AppendFormattedComponent(spec, parsed.ref,
+- NonHostComponentTransform(net::UnescapeRule::NONE),
++ NonHostComponentTransform(unescape_rules),
+ &url_string, &new_parsed->ref, adjustments);
+ }
+
+diff --git a/components/url_formatter/url_formatter_unittest.cc b/components/url_formatter/url_formatter_unittest.cc
+index 6fd3ece50f7d..5aaf31105a43 100644
+--- a/components/url_formatter/url_formatter_unittest.cc
++++ b/components/url_formatter/url_formatter_unittest.cc
+@@ -828,7 +828,7 @@ TEST(UrlFormatterTest, FormatUrl) {
+
+ {"With a port number and a reference",
+ "http://www.google.com:8080/#\xE3\x82\xB0", default_format_type,
+- net::UnescapeRule::NORMAL, L"http://www.google.com:8080/#%E3%82%B0", 7},
++ net::UnescapeRule::NORMAL, L"http://www.google.com:8080/#\x30B0", 7},
+
+ // -------- IDN tests --------
+ {"Japanese IDN with ja", "http://xn--l8jvb1ey91xtjb.jp",
+@@ -1119,7 +1119,7 @@ TEST(UrlFormatterTest, FormatUrlParsed) {
+ kFormatUrlOmitNothing, net::UnescapeRule::NORMAL, &parsed,
+ nullptr, nullptr);
+ EXPECT_EQ(WideToUTF16(L"http://\x30B0:\x30FC@\x30B0\x30FC\x30B0\x30EB.jp:8080"
+- L"/\x30B0/?q=\x30B0#%E3%82%B0"),
++ L"/\x30B0/?q=\x30B0#\x30B0"),
+ formatted);
+ EXPECT_EQ(WideToUTF16(L"\x30B0"),
+ formatted.substr(parsed.username.begin, parsed.username.len));
+@@ -1133,7 +1133,7 @@ TEST(UrlFormatterTest, FormatUrlParsed) {
+ formatted.substr(parsed.path.begin, parsed.path.len));
+ EXPECT_EQ(WideToUTF16(L"q=\x30B0"),
+ formatted.substr(parsed.query.begin, parsed.query.len));
+- EXPECT_EQ(WideToUTF16(L"%E3%82%B0"),
++ EXPECT_EQ(WideToUTF16(L"\x30B0"),
+ formatted.substr(parsed.ref.begin, parsed.ref.len));
+
+ // Omit_username_password + unescape case.
+@@ -1143,7 +1143,7 @@ TEST(UrlFormatterTest, FormatUrlParsed) {
+ kFormatUrlOmitUsernamePassword, net::UnescapeRule::NORMAL,
+ &parsed, nullptr, nullptr);
+ EXPECT_EQ(WideToUTF16(L"http://\x30B0\x30FC\x30B0\x30EB.jp:8080"
+- L"/\x30B0/?q=\x30B0#%E3%82%B0"),
++ L"/\x30B0/?q=\x30B0#\x30B0"),
+ formatted);
+ EXPECT_FALSE(parsed.username.is_valid());
+ EXPECT_FALSE(parsed.password.is_valid());
+@@ -1155,7 +1155,7 @@ TEST(UrlFormatterTest, FormatUrlParsed) {
+ formatted.substr(parsed.path.begin, parsed.path.len));
+ EXPECT_EQ(WideToUTF16(L"q=\x30B0"),
+ formatted.substr(parsed.query.begin, parsed.query.len));
+- EXPECT_EQ(WideToUTF16(L"%E3%82%B0"),
++ EXPECT_EQ(WideToUTF16(L"\x30B0"),
+ formatted.substr(parsed.ref.begin, parsed.ref.len));
+
+ // View-source case.
+@@ -1389,9 +1389,12 @@ TEST(UrlFormatterTest, FormatUrlWithOffsets) {
+ kFormatUrlOmitNothing, net::UnescapeRule::SPACES, unescape_offsets);
+
+ const size_t ref_offsets[] = {
+- 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
+- 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33,
+- 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49};
++ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9,
++ 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
++ 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
++ 30, 31, kNpos, kNpos, kNpos, kNpos, kNpos, kNpos, kNpos, kNpos,
++ 32, kNpos, kNpos, kNpos, kNpos, kNpos, kNpos, kNpos, kNpos, 33};
++
+ // Unescape to "http://www.google.com/foo.html#\x30B0\x30B0z".
+ CheckAdjustedOffsets("http://www.google.com/foo.html#%E3%82%B0%E3%82%B0z",
+ kFormatUrlOmitNothing, net::UnescapeRule::NORMAL,
+diff --git a/ios/chrome/browser/web/push_and_replace_state_navigation_egtest.mm b/ios/chrome/browser/web/push_and_replace_state_navigation_egtest.mm
+index b67f2a08d0a0..431ad368f07d 100644
+--- a/ios/chrome/browser/web/push_and_replace_state_navigation_egtest.mm
++++ b/ios/chrome/browser/web/push_and_replace_state_navigation_egtest.mm
+@@ -59,40 +59,42 @@ const char* kReplaceStateRootPathSpaceURL = "http://ios/rep lace";
+ // Push 3 URLs. Verify that the URL changed and the status was updated.
+ [ChromeEarlGrey tapWebViewElementWithID:@"pushStateHashWithObject"];
+ [self assertStatusText:@"pushStateHashWithObject"
+- withURL:pushStateHashWithObjectURL
++ withOmniboxText:pushStateHashWithObjectURL.GetContent()
+ pageLoaded:NO];
+
+ [ChromeEarlGrey tapWebViewElementWithID:@"pushStateRootPath"];
+ [self assertStatusText:@"pushStateRootPath"
+- withURL:pushStateRootPathURL
++ withOmniboxText:pushStateRootPathURL.GetContent()
+ pageLoaded:NO];
+
+ [ChromeEarlGrey tapWebViewElementWithID:@"pushStatePathSpace"];
+ [self assertStatusText:@"pushStatePathSpace"
+- withURL:pushStatePathSpaceURL
++ withOmniboxText:pushStatePathSpaceURL.GetContent()
+ pageLoaded:NO];
+
+ // Go back and check that the page doesn't load and the status text is updated
+ // by the popstate event.
+ [[EarlGrey selectElementWithMatcher:BackButton()] performAction:grey_tap()];
+ [self assertStatusText:@"pushStateRootPath"
+- withURL:pushStateRootPathURL
++ withOmniboxText:pushStateRootPathURL.GetContent()
+ pageLoaded:NO];
+
+ [[EarlGrey selectElementWithMatcher:BackButton()] performAction:grey_tap()];
+ [self assertStatusText:@"pushStateHashWithObject"
+- withURL:pushStateHashWithObjectURL
++ withOmniboxText:pushStateHashWithObjectURL.GetContent()
+ pageLoaded:NO];
+
+ [ChromeEarlGrey tapWebViewElementWithID:@"goBack"];
+ const GURL historyTestURL = web::test::HttpServer::MakeUrl(kHistoryTestUrl);
+- [self assertStatusText:NULL withURL:historyTestURL pageLoaded:NO];
++ [self assertStatusText:nil
++ withOmniboxText:historyTestURL.GetContent()
++ pageLoaded:NO];
+
+ // Go forward 2 pages and check that the page doesn't load and the status text
+ // is updated by the popstate event.
+ [ChromeEarlGrey tapWebViewElementWithID:@"goForward2"];
+ [self assertStatusText:@"pushStateRootPath"
+- withURL:pushStateRootPathURL
++ withOmniboxText:pushStateRootPathURL.GetContent()
+ pageLoaded:NO];
+ }
+
+@@ -108,7 +110,7 @@ const char* kReplaceStateRootPathSpaceURL = "http://ios/rep lace";
+ web::test::HttpServer::MakeUrl(kReplaceStateHashWithObjectURL);
+ [ChromeEarlGrey tapWebViewElementWithID:@"replaceStateHashWithObject"];
+ [self assertStatusText:@"replaceStateHashWithObject"
+- withURL:replaceStateHashWithObjectURL
++ withOmniboxText:replaceStateHashWithObjectURL.GetContent()
+ pageLoaded:NO];
+
+ [[EarlGrey selectElementWithMatcher:BackButton()] performAction:grey_tap()];
+@@ -119,7 +121,7 @@ const char* kReplaceStateRootPathSpaceURL = "http://ios/rep lace";
+ [[EarlGrey selectElementWithMatcher:ForwardButton()]
+ performAction:grey_tap()];
+ [self assertStatusText:@"replaceStateHashWithObject"
+- withURL:replaceStateHashWithObjectURL
++ withOmniboxText:replaceStateHashWithObjectURL.GetContent()
+ pageLoaded:YES];
+
+ // Push URL then replace it. Do this twice.
+@@ -127,44 +129,44 @@ const char* kReplaceStateRootPathSpaceURL = "http://ios/rep lace";
+ web::test::HttpServer::MakeUrl(kPushStateHashStringURL);
+ [ChromeEarlGrey tapWebViewElementWithID:@"pushStateHashString"];
+ [self assertStatusText:@"pushStateHashString"
+- withURL:pushStateHashStringURL
++ withOmniboxText:pushStateHashStringURL.GetContent()
+ pageLoaded:NO];
+
+ const GURL replaceStateHashStringURL =
+ web::test::HttpServer::MakeUrl(kReplaceStateHashStringURL);
+ [ChromeEarlGrey tapWebViewElementWithID:@"replaceStateHashString"];
+ [self assertStatusText:@"replaceStateHashString"
+- withURL:replaceStateHashStringURL
++ withOmniboxText:replaceStateHashStringURL.GetContent()
+ pageLoaded:NO];
+
+ const GURL pushStatePathURL =
+ web::test::HttpServer::MakeUrl(kPushStatePathURL);
+ [ChromeEarlGrey tapWebViewElementWithID:@"pushStatePath"];
+ [self assertStatusText:@"pushStatePath"
+- withURL:pushStatePathURL
++ withOmniboxText:pushStatePathURL.GetContent()
+ pageLoaded:NO];
+
+ const GURL replaceStateRootPathSpaceURL =
+ web::test::HttpServer::MakeUrl(kReplaceStateRootPathSpaceURL);
+ [ChromeEarlGrey tapWebViewElementWithID:@"replaceStateRootPathSpace"];
+ [self assertStatusText:@"replaceStateRootPathSpace"
+- withURL:replaceStateRootPathSpaceURL
++ withOmniboxText:replaceStateRootPathSpaceURL.GetContent()
+ pageLoaded:NO];
+
+ // Go back and check URLs.
+ [[EarlGrey selectElementWithMatcher:BackButton()] performAction:grey_tap()];
+ [self assertStatusText:@"replaceStateHashString"
+- withURL:replaceStateHashStringURL
++ withOmniboxText:replaceStateHashStringURL.GetContent()
+ pageLoaded:NO];
+ [[EarlGrey selectElementWithMatcher:BackButton()] performAction:grey_tap()];
+ [self assertStatusText:@"replaceStateHashWithObject"
+- withURL:replaceStateHashWithObjectURL
++ withOmniboxText:replaceStateHashWithObjectURL.GetContent()
+ pageLoaded:NO];
+
+ // Go forward and check URL.
+ [ChromeEarlGrey tapWebViewElementWithID:@"goForward2"];
+ [self assertStatusText:@"replaceStateRootPathSpace"
+- withURL:replaceStateRootPathSpaceURL
++ withOmniboxText:replaceStateRootPathSpaceURL.GetContent()
+ pageLoaded:NO];
+ }
+
+@@ -180,11 +182,11 @@ const char* kReplaceStateRootPathSpaceURL = "http://ios/rep lace";
+ web::test::HttpServer::MakeUrl(kPushStateHashStringURL);
+ [ChromeEarlGrey tapWebViewElementWithID:@"pushStateHashString"];
+ [self assertStatusText:@"pushStateHashString"
+- withURL:pushStateHashStringURL
++ withOmniboxText:pushStateHashStringURL.GetContent()
+ pageLoaded:NO];
+ [ChromeEarlGrey tapWebViewElementWithID:@"pushStateHashString"];
+ [self assertStatusText:@"pushStateHashString"
+- withURL:pushStateHashStringURL
++ withOmniboxText:pushStateHashStringURL.GetContent()
+ pageLoaded:NO];
+
+ // Load a non-pushed URL.
+@@ -194,7 +196,7 @@ const char* kReplaceStateRootPathSpaceURL = "http://ios/rep lace";
+ [ChromeEarlGrey loadURL:historyTestURL];
+ [ChromeEarlGrey tapWebViewElementWithID:@"pushStateHashString"];
+ [self assertStatusText:@"pushStateHashString"
+- withURL:pushStateHashStringURL
++ withOmniboxText:pushStateHashStringURL.GetContent()
+ pageLoaded:NO];
+
+ // At this point the history looks like this:
+@@ -202,38 +204,54 @@ const char* kReplaceStateRootPathSpaceURL = "http://ios/rep lace";
+
+ // Go back (to second history.html) and verify page did not load.
+ [[EarlGrey selectElementWithMatcher:BackButton()] performAction:grey_tap()];
+- [self assertStatusText:nil withURL:historyTestURL pageLoaded:NO];
++ [self assertStatusText:nil
++ withOmniboxText:historyTestURL.GetContent()
++ pageLoaded:NO];
+
+ // Go back twice (to second #string) and verify page did load.
+ [[EarlGrey selectElementWithMatcher:BackButton()] performAction:grey_tap()];
+ [[EarlGrey selectElementWithMatcher:BackButton()] performAction:grey_tap()];
+- [self assertStatusText:nil withURL:pushStateHashStringURL pageLoaded:YES];
++ [self assertStatusText:nil
++ withOmniboxText:pushStateHashStringURL.GetContent()
++ pageLoaded:YES];
+
+ // Go back once (to first #string) and verify page did not load.
+ [[EarlGrey selectElementWithMatcher:BackButton()] performAction:grey_tap()];
+ [self assertStatusText:@"pushStateHashString"
+- withURL:pushStateHashStringURL
++ withOmniboxText:pushStateHashStringURL.GetContent()
+ pageLoaded:NO];
+
+ // Go forward 4 entries at once (to third #string) and verify page did load.
+ [ChromeEarlGrey tapWebViewElementWithID:@"goForward4"];
+
+- [self assertStatusText:nil withURL:pushStateHashStringURL pageLoaded:YES];
++ [self assertStatusText:nil
++ withOmniboxText:pushStateHashStringURL.GetContent()
++ pageLoaded:YES];
+
+ // Go back 4 entries at once (to first #string) and verify page did load.
+ [ChromeEarlGrey tapWebViewElementWithID:@"goBack4"];
+
+- [self assertStatusText:NULL withURL:pushStateHashStringURL pageLoaded:YES];
++ [self assertStatusText:nil
++ withOmniboxText:pushStateHashStringURL.GetContent()
++ pageLoaded:YES];
+ }
+
+ // Tests calling pushState with unicode characters.
+ - (void)testHtml5HistoryPushUnicodeCharacters {
+- const GURL pushStateUnicodeURLEncoded = web::test::HttpServer::MakeUrl(
+- "http://ios/testing/data/http_server_files/"
+- "history.html#unicode%E1%84%91");
+- const GURL pushStateUnicode2URLEncoded = web::test::HttpServer::MakeUrl(
+- "http://ios/testing/data/http_server_files/"
+- "history.html#unicode2%E2%88%A2");
++ // The GURL object %-escapes Unicode characters in the URL's fragment,
++ // but the omnibox decodes them back to Unicode for display.
++ std::string pushStateUnicode =
++ web::test::HttpServer::MakeUrl(
++ "http://ios/testing/data/http_server_files/"
++ "history.html#unicode")
++ .GetContent() +
++ "\xe1\x84\x91";
++ std::string pushStateUnicode2 =
++ web::test::HttpServer::MakeUrl(
++ "http://ios/testing/data/http_server_files/"
++ "history.html#unicode2")
++ .GetContent() +
++ "\xe2\x88\xa2";
+ const char pushStateUnicodeLabel[] = "Action: pushStateUnicodeᄑ";
+ NSString* pushStateUnicodeStatus = @"pushStateUnicodeᄑ";
+ const char pushStateUnicode2Label[] = "Action: pushStateUnicode2∢";
+@@ -242,21 +260,16 @@ const char* kReplaceStateRootPathSpaceURL = "http://ios/rep lace";
+ web::test::SetUpFileBasedHttpServer();
+ [ChromeEarlGrey loadURL:web::test::HttpServer::MakeUrl(kHistoryTestUrl)];
+
+- // TODO(crbug.com/643458): The fact that the URL shows %-escaped is due to
+- // NSURL escaping to make UIWebView/JS happy. See if it's possible to
+- // represent differently such that it displays unescaped.
+ // Do 2 push states with unicode characters.
+ [ChromeEarlGrey tapWebViewElementWithID:@"pushStateUnicode"];
+ [[EarlGrey
+- selectElementWithMatcher:chrome_test_util::OmniboxText(
+- pushStateUnicodeURLEncoded.GetContent())]
++ selectElementWithMatcher:chrome_test_util::OmniboxText(pushStateUnicode)]
+ assertWithMatcher:grey_notNil()];
+ [ChromeEarlGrey waitForWebViewContainingText:pushStateUnicodeLabel];
+
+ [ChromeEarlGrey tapWebViewElementWithID:@"pushStateUnicode2"];
+ [[EarlGrey
+- selectElementWithMatcher:chrome_test_util::OmniboxText(
+- pushStateUnicode2URLEncoded.GetContent())]
++ selectElementWithMatcher:chrome_test_util::OmniboxText(pushStateUnicode2)]
+ assertWithMatcher:grey_notNil()];
+ [ChromeEarlGrey waitForWebViewContainingText:pushStateUnicode2Label];
+
+@@ -266,18 +279,18 @@ const char* kReplaceStateRootPathSpaceURL = "http://ios/rep lace";
+ [ChromeEarlGrey tapWebViewElementWithID:@"pushStatePath"];
+
+ [self assertStatusText:@"pushStatePath"
+- withURL:pushStatePathURL
++ withOmniboxText:pushStatePathURL.GetContent()
+ pageLoaded:NO];
+
+ // Go back and check the unicode in the URL and status.
+ [[EarlGrey selectElementWithMatcher:BackButton()] performAction:grey_tap()];
+ [self assertStatusText:pushStateUnicode2Status
+- withURL:pushStateUnicode2URLEncoded
++ withOmniboxText:pushStateUnicode2
+ pageLoaded:NO];
+
+ [[EarlGrey selectElementWithMatcher:BackButton()] performAction:grey_tap()];
+ [self assertStatusText:pushStateUnicodeStatus
+- withURL:pushStateUnicodeURLEncoded
++ withOmniboxText:pushStateUnicode
+ pageLoaded:NO];
+ }
+
+@@ -321,10 +334,11 @@ const char* kReplaceStateRootPathSpaceURL = "http://ios/rep lace";
+
+ #pragma mark - Utility methods
+
+-// Assert that status text |status| is displayed in the webview, that "onloaded"
+-// text is displayed if pageLoaded is YES, and that the URL is as expected.
++// Assert that status text |status|, if non-nil, is displayed in the webview,
++// that the omnibox text is as expected, and that "onload" text is displayed if
++// pageLoaded is YES.
+ - (void)assertStatusText:(NSString*)status
+- withURL:(const GURL&)urlToVerify
++ withOmniboxText:(const std::string&)omniboxText
+ pageLoaded:(BOOL)pageLoaded {
+ if (pageLoaded) {
+ [ChromeEarlGrey waitForWebViewContainingText:"onload"];
+@@ -332,14 +346,14 @@ const char* kReplaceStateRootPathSpaceURL = "http://ios/rep lace";
+ [ChromeEarlGrey waitForWebViewNotContainingText:"onload"];
+ }
+
+- if (status != NULL) {
++ if (status != nil) {
+ NSString* statusLabel = [NSString stringWithFormat:@"Action: %@", status];
+ [ChromeEarlGrey
+ waitForWebViewContainingText:base::SysNSStringToUTF8(statusLabel)];
+ }
+
+- [[EarlGrey selectElementWithMatcher:chrome_test_util::OmniboxText(
+- urlToVerify.GetContent())]
++ [[EarlGrey
++ selectElementWithMatcher:chrome_test_util::OmniboxText(omniboxText)]
+ assertWithMatcher:grey_notNil()];
+ }
+
Deleted: chromium-skia-harmony.patch
===================================================================
--- chromium-skia-harmony.patch 2018-01-25 09:41:06 UTC (rev 315428)
+++ chromium-skia-harmony.patch 2018-01-25 09:41:30 UTC (rev 315429)
@@ -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/testing-x86_64/chromium-skia-harmony.patch (from rev 315428, chromium/trunk/chromium-skia-harmony.patch)
===================================================================
--- chromium-skia-harmony.patch (rev 0)
+++ chromium-skia-harmony.patch 2018-01-25 09:41:30 UTC (rev 315429)
@@ -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-use-fromUTF8-for-UnicodeString-construction.patch
===================================================================
--- chromium-use-fromUTF8-for-UnicodeString-construction.patch 2018-01-25 09:41:06 UTC (rev 315428)
+++ chromium-use-fromUTF8-for-UnicodeString-construction.patch 2018-01-25 09:41:30 UTC (rev 315429)
@@ -1,68 +0,0 @@
-From e58fa0ba66272c5f28828b15d06c7e42a9882b3b Mon Sep 17 00:00:00 2001
-From: Jungshik Shin <jshin at chromium.org>
-Date: Sat, 16 Dec 2017 04:19:27 +0000
-Subject: [PATCH] Use fromUTF8() for UnicodeString construction from UTF-8
-
-Chrome's copy of ICU is built with U_CHARSET_IS_UTF8=1 so that |char *|
-buffer is treated as UTF-8 when constructing UnicodeString() regardless
-of the default encoding of the current locale on Linux or non-Unicode code
-page on Windows.
-
-However, some Linux distros do not set U_CHARSET_IS_UTF=1 when building
-ICU and Chromium build with system_icu crashes when Chromium is run in
-non-UTF-8 locale (e.g. 'C').
-
-To make Chromium work in a non-UTF-8 locale (which is pretty rare these
-days), use 'icu::UnicodeString::fromUTF8(StringPiece)' instead of
-'icu::UnicodeString(const char*)'.
-
-Bug: 772655
-Test: components_unittests --gtest_filter=*IDN*
-Test: Chromium built with system_icu does not crash in C locale.
-Change-Id: I0daa284ec06b8e83814fc70eb8e9e5c96444ebfa
-Reviewed-on: https://chromium-review.googlesource.com/831247
-Reviewed-by: Peter Kasting <pkasting at chromium.org>
-Commit-Queue: Jungshik Shin <jshin at chromium.org>
-Cr-Commit-Position: refs/heads/master@{#524586}
----
- components/url_formatter/idn_spoof_checker.cc | 10 +++++-----
- 1 file changed, 5 insertions(+), 5 deletions(-)
-
-diff --git a/components/url_formatter/idn_spoof_checker.cc b/components/url_formatter/idn_spoof_checker.cc
-index a88c5e8f8331..aee748d8a4d5 100644
---- a/components/url_formatter/idn_spoof_checker.cc
-+++ b/components/url_formatter/idn_spoof_checker.cc
-@@ -110,8 +110,8 @@ IDNSpoofChecker::IDNSpoofChecker() {
-
- // These Cyrillic letters look like Latin. A domain label entirely made of
- // these letters is blocked as a simplified whole-script-spoofable.
-- cyrillic_letters_latin_alike_ =
-- icu::UnicodeSet(icu::UnicodeString("[асԁеһіјӏорԛѕԝхуъЬҽпгѵѡ]"), status);
-+ cyrillic_letters_latin_alike_ = icu::UnicodeSet(
-+ icu::UnicodeString::fromUTF8("[асԁеһіјӏорԛѕԝхуъЬҽпгѵѡ]"), status);
- cyrillic_letters_latin_alike_.freeze();
-
- cyrillic_letters_ =
-@@ -141,8 +141,8 @@ IDNSpoofChecker::IDNSpoofChecker() {
- UParseError parse_error;
- diacritic_remover_.reset(icu::Transliterator::createFromRules(
- UNICODE_STRING_SIMPLE("DropAcc"),
-- icu::UnicodeString("::NFD; ::[:Nonspacing Mark:] Remove; ::NFC;"
-- " ł > l; ø > o; đ > d;"),
-+ icu::UnicodeString::fromUTF8("::NFD; ::[:Nonspacing Mark:] Remove; ::NFC;"
-+ " ł > l; ø > o; đ > d;"),
- UTRANS_FORWARD, parse_error, status));
-
- // Supplement the Unicode confusable list by the following mapping.
-@@ -158,7 +158,7 @@ IDNSpoofChecker::IDNSpoofChecker() {
- // - U+0D1F (ട) => s
- extra_confusable_mapper_.reset(icu::Transliterator::createFromRules(
- UNICODE_STRING_SIMPLE("ExtraConf"),
-- icu::UnicodeString(
-+ icu::UnicodeString::fromUTF8(
- "ӏ > l; [кĸκ] > k; п > n; [ƅь] > b; в > b; м > m; н > h; "
- "т > t; [шщ] > w; ട > s;"),
- UTRANS_FORWARD, parse_error, status));
---
-2.15.1
-
Copied: chromium/repos/testing-x86_64/chromium-use-fromUTF8-for-UnicodeString-construction.patch (from rev 315428, chromium/trunk/chromium-use-fromUTF8-for-UnicodeString-construction.patch)
===================================================================
--- chromium-use-fromUTF8-for-UnicodeString-construction.patch (rev 0)
+++ chromium-use-fromUTF8-for-UnicodeString-construction.patch 2018-01-25 09:41:30 UTC (rev 315429)
@@ -0,0 +1,68 @@
+From e58fa0ba66272c5f28828b15d06c7e42a9882b3b Mon Sep 17 00:00:00 2001
+From: Jungshik Shin <jshin at chromium.org>
+Date: Sat, 16 Dec 2017 04:19:27 +0000
+Subject: [PATCH] Use fromUTF8() for UnicodeString construction from UTF-8
+
+Chrome's copy of ICU is built with U_CHARSET_IS_UTF8=1 so that |char *|
+buffer is treated as UTF-8 when constructing UnicodeString() regardless
+of the default encoding of the current locale on Linux or non-Unicode code
+page on Windows.
+
+However, some Linux distros do not set U_CHARSET_IS_UTF=1 when building
+ICU and Chromium build with system_icu crashes when Chromium is run in
+non-UTF-8 locale (e.g. 'C').
+
+To make Chromium work in a non-UTF-8 locale (which is pretty rare these
+days), use 'icu::UnicodeString::fromUTF8(StringPiece)' instead of
+'icu::UnicodeString(const char*)'.
+
+Bug: 772655
+Test: components_unittests --gtest_filter=*IDN*
+Test: Chromium built with system_icu does not crash in C locale.
+Change-Id: I0daa284ec06b8e83814fc70eb8e9e5c96444ebfa
+Reviewed-on: https://chromium-review.googlesource.com/831247
+Reviewed-by: Peter Kasting <pkasting at chromium.org>
+Commit-Queue: Jungshik Shin <jshin at chromium.org>
+Cr-Commit-Position: refs/heads/master@{#524586}
+---
+ components/url_formatter/idn_spoof_checker.cc | 10 +++++-----
+ 1 file changed, 5 insertions(+), 5 deletions(-)
+
+diff --git a/components/url_formatter/idn_spoof_checker.cc b/components/url_formatter/idn_spoof_checker.cc
+index a88c5e8f8331..aee748d8a4d5 100644
+--- a/components/url_formatter/idn_spoof_checker.cc
++++ b/components/url_formatter/idn_spoof_checker.cc
+@@ -110,8 +110,8 @@ IDNSpoofChecker::IDNSpoofChecker() {
+
+ // These Cyrillic letters look like Latin. A domain label entirely made of
+ // these letters is blocked as a simplified whole-script-spoofable.
+- cyrillic_letters_latin_alike_ =
+- icu::UnicodeSet(icu::UnicodeString("[асԁеһіјӏорԛѕԝхуъЬҽпгѵѡ]"), status);
++ cyrillic_letters_latin_alike_ = icu::UnicodeSet(
++ icu::UnicodeString::fromUTF8("[асԁеһіјӏорԛѕԝхуъЬҽпгѵѡ]"), status);
+ cyrillic_letters_latin_alike_.freeze();
+
+ cyrillic_letters_ =
+@@ -141,8 +141,8 @@ IDNSpoofChecker::IDNSpoofChecker() {
+ UParseError parse_error;
+ diacritic_remover_.reset(icu::Transliterator::createFromRules(
+ UNICODE_STRING_SIMPLE("DropAcc"),
+- icu::UnicodeString("::NFD; ::[:Nonspacing Mark:] Remove; ::NFC;"
+- " ł > l; ø > o; đ > d;"),
++ icu::UnicodeString::fromUTF8("::NFD; ::[:Nonspacing Mark:] Remove; ::NFC;"
++ " ł > l; ø > o; đ > d;"),
+ UTRANS_FORWARD, parse_error, status));
+
+ // Supplement the Unicode confusable list by the following mapping.
+@@ -158,7 +158,7 @@ IDNSpoofChecker::IDNSpoofChecker() {
+ // - U+0D1F (ട) => s
+ extra_confusable_mapper_.reset(icu::Transliterator::createFromRules(
+ UNICODE_STRING_SIMPLE("ExtraConf"),
+- icu::UnicodeString(
++ icu::UnicodeString::fromUTF8(
+ "ӏ > l; [кĸκ] > k; п > n; [ƅь] > b; в > b; м > m; н > h; "
+ "т > t; [шщ] > w; ട > s;"),
+ UTRANS_FORWARD, parse_error, status));
+--
+2.15.1
+
Deleted: chromium-widevine.patch
===================================================================
--- chromium-widevine.patch 2018-01-25 09:41:06 UTC (rev 315428)
+++ chromium-widevine.patch 2018-01-25 09:41:30 UTC (rev 315429)
@@ -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/testing-x86_64/chromium-widevine.patch (from rev 315428, chromium/trunk/chromium-widevine.patch)
===================================================================
--- chromium-widevine.patch (rev 0)
+++ chromium-widevine.patch 2018-01-25 09:41:30 UTC (rev 315429)
@@ -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-01-25 09:41:06 UTC (rev 315428)
+++ chromium.install 2018-01-25 09:41:30 UTC (rev 315429)
@@ -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/testing-x86_64/chromium.install (from rev 315428, chromium/trunk/chromium.install)
===================================================================
--- chromium.install (rev 0)
+++ chromium.install 2018-01-25 09:41:30 UTC (rev 315429)
@@ -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:
More information about the arch-commits
mailing list