-rw-r--r-- root/root usr/lib/chromium/resources/inspector/audits/audits_module.js
drwxr-xr-x root/root usr/lib/chromium/resources/inspector/audits2/
-rw-r--r-- root/root usr/lib/chromium/resources/inspector/audits2/audits2_module.js
+drwxr-xr-x root/root usr/lib/chromium/resources/inspector/audits2_test_runner/
+-rw-r--r-- root/root usr/lib/chromium/resources/inspector/audits2_test_runner/audits2_test_runner_module.js
-rw-r--r-- root/root usr/lib/chromium/resources/inspector/audits2_worker.js
drwxr-xr-x root/root usr/lib/chromium/resources/inspector/audits2_worker/
-rw-r--r-- root/root usr/lib/chromium/resources/inspector/audits2_worker/audits2_worker_module.js
-rw-r--r-- root/root usr/lib/chromium/resources/inspector/coverage/coverage_module.js
drwxr-xr-x root/root usr/lib/chromium/resources/inspector/coverage_test_runner/
-rw-r--r-- root/root usr/lib/chromium/resources/inspector/coverage_test_runner/coverage_test_runner_module.js
+drwxr-xr-x root/root usr/lib/chromium/resources/inspector/cpu_profiler_test_runner/
+-rw-r--r-- root/root usr/lib/chromium/resources/inspector/cpu_profiler_test_runner/cpu_profiler_test_runner_module.js
drwxr-xr-x root/root usr/lib/chromium/resources/inspector/data_grid/
-rw-r--r-- root/root usr/lib/chromium/resources/inspector/data_grid/data_grid_module.js
drwxr-xr-x root/root usr/lib/chromium/resources/inspector/data_grid_test_runner/
drwxr-xr-x root/root usr/lib/chromium/resources/inspector/formatter/
-rw-r--r-- root/root usr/lib/chromium/resources/inspector/formatter/formatter_module.js
-rw-r--r-- root/root usr/lib/chromium/resources/inspector/formatter_worker.js
-drwxr-xr-x root/root usr/lib/chromium/resources/inspector/gonzales/
--rw-r--r-- root/root usr/lib/chromium/resources/inspector/gonzales/gonzales_module.js
drwxr-xr-x root/root usr/lib/chromium/resources/inspector/har_importer/
-rw-r--r-- root/root usr/lib/chromium/resources/inspector/har_importer/har_importer_module.js
+drwxr-xr-x root/root usr/lib/chromium/resources/inspector/heap_profiler_test_runner/
+-rw-r--r-- root/root usr/lib/chromium/resources/inspector/heap_profiler_test_runner/heap_profiler_test_runner_module.js
drwxr-xr-x root/root usr/lib/chromium/resources/inspector/heap_snapshot_model/
-rw-r--r-- root/root usr/lib/chromium/resources/inspector/heap_snapshot_model/heap_snapshot_model_module.js
-rw-r--r-- root/root usr/lib/chromium/resources/inspector/heap_snapshot_worker.js
-rw-r--r-- root/root usr/lib/chromium/resources/inspector/product_registry_impl/product_registry_impl_module.js
drwxr-xr-x root/root usr/lib/chromium/resources/inspector/profiler/
-rw-r--r-- root/root usr/lib/chromium/resources/inspector/profiler/profiler_module.js
-drwxr-xr-x root/root usr/lib/chromium/resources/inspector/profiler_test_runner/
--rw-r--r-- root/root usr/lib/chromium/resources/inspector/profiler_test_runner/profiler_test_runner_module.js
drwxr-xr-x root/root usr/lib/chromium/resources/inspector/quick_open/
-rw-r--r-- root/root usr/lib/chromium/resources/inspector/quick_open/quick_open_module.js
drwxr-xr-x root/root usr/lib/chromium/resources/inspector/resources/
-rw-r--r-- root/root usr/lib/chromium/resources/inspector/resources/resources_module.js
-drwxr-xr-x root/root usr/lib/chromium/resources/inspector/sass/
--rw-r--r-- root/root usr/lib/chromium/resources/inspector/sass/sass_module.js
-drwxr-xr-x root/root usr/lib/chromium/resources/inspector/sass_test_runner/
--rw-r--r-- root/root usr/lib/chromium/resources/inspector/sass_test_runner/sass_test_runner_module.js
drwxr-xr-x root/root usr/lib/chromium/resources/inspector/screencast/
-rw-r--r-- root/root usr/lib/chromium/resources/inspector/screencast/screencast_module.js
+drwxr-xr-x root/root usr/lib/chromium/resources/inspector/sdk_test_runner/
+-rw-r--r-- root/root usr/lib/chromium/resources/inspector/sdk_test_runner/sdk_test_runner_module.js
drwxr-xr-x root/root usr/lib/chromium/resources/inspector/security/
-rw-r--r-- root/root usr/lib/chromium/resources/inspector/security/security_module.js
drwxr-xr-x root/root usr/lib/chromium/resources/inspector/security_test_runner/
-rw-r--r-- root/root usr/lib/chromium/resources/inspector/timeline_model/timeline_model_module.js
-rw-r--r-- root/root usr/lib/chromium/resources/inspector/toolbox.html
-rw-r--r-- root/root usr/lib/chromium/resources/inspector/toolbox.js
--rw-r--r-- root/root usr/lib/chromium/resources/inspector/unit_test_runner.html
--rw-r--r-- root/root usr/lib/chromium/resources/inspector/unit_test_runner.js
drwxr-xr-x root/root usr/lib/chromium/resources/inspector/workspace_diff/
-rw-r--r-- root/root usr/lib/chromium/resources/inspector/workspace_diff/workspace_diff_module.js
-rw-r--r-- root/root usr/lib/chromium/snapshot_blob.bin
drwxr-xr-x root/root usr/share/icons/hicolor/128x128/
drwxr-xr-x root/root usr/share/icons/hicolor/128x128/apps/
-rw-r--r-- root/root usr/share/icons/hicolor/128x128/apps/chromium.png
+drwxr-xr-x root/root usr/share/icons/hicolor/16x16/
+drwxr-xr-x root/root usr/share/icons/hicolor/16x16/apps/
+-rw-r--r-- root/root usr/share/icons/hicolor/16x16/apps/chromium.png
drwxr-xr-x root/root usr/share/icons/hicolor/22x22/
drwxr-xr-x root/root usr/share/icons/hicolor/22x22/apps/
-rw-r--r-- root/root usr/share/icons/hicolor/22x22/apps/chromium.png
drwxr-xr-x root/root usr/share/icons/hicolor/256x256/
drwxr-xr-x root/root usr/share/icons/hicolor/256x256/apps/
-rw-r--r-- root/root usr/share/icons/hicolor/256x256/apps/chromium.png
+drwxr-xr-x root/root usr/share/icons/hicolor/32x32/
+drwxr-xr-x root/root usr/share/icons/hicolor/32x32/apps/
+-rw-r--r-- root/root usr/share/icons/hicolor/32x32/apps/chromium.png
drwxr-xr-x root/root usr/share/icons/hicolor/48x48/
drwxr-xr-x root/root usr/share/icons/hicolor/48x48/apps/
-rw-r--r-- root/root usr/share/icons/hicolor/48x48/apps/chromium.png
+drwxr-xr-x root/root usr/share/icons/hicolor/64x64/
+drwxr-xr-x root/root usr/share/icons/hicolor/64x64/apps/
+-rw-r--r-- root/root usr/share/icons/hicolor/64x64/apps/chromium.png
drwxr-xr-x root/root usr/share/man/
drwxr-xr-x root/root usr/share/man/man1/
-rw-r--r-- root/root usr/share/man/man1/chromium.1.gz
-drwxr-xr-x root/root usr/share/pixmaps/
-lrwxrwxrwx root/root usr/share/pixmaps/chromium.png -> /usr/share/icons/hicolor/48x48/apps/chromium.png
-4dbc4cd98731f133a3f6e0f47625ad08 breakpad-use-ucontext_t.patch
-98cf7b6eca255e2422f96094eccc1887 chromium-62.0.3202.94.tar.xz
+d144ace1ee63acdf7dd149b013c83088 chromium-64.0.3282.119-constexpr-1.patch
+5b72bcaba2ad920c524cd92a7a6125fe chromium-64.0.3282.119.tar.xz
bce5db9dba2aec40a1a709797a907e2a chromium-build-toolchain.patch
-1e9f37377b470e26dc0fa609c1cdad9e chromium-gn-bootstrap-r17.patch
-b527005e021b14869a669e42c46b661d chromium.desktop
+27dbd1479d469346d1ffe27c7e7c0011 chromium-clang-r2.patch
+21f73763be6c44ce3df0f1cbbfbff440 chromium-cups-r0.patch
+3e30a8e6629c931a640d65d4ab02b939 chromium-exclude_unwind_tables.patch
+cb40c4153943f9eb5e38e90ba2f8b382 chromium-memcpy-r0.patch
+e42a8b91ea55b4765b9b2b9e2437a9d0 chromium-omnibox-unescape-fragment.patch
+254061cb349cff714230b7cca83b0a4c chromium-skia-harmony.patch
+40ff364c3a581e5f7ec4a84d785ab6a4 chromium-use-fromUTF8-for-UnicodeString-construction.patch
64968626706b07721983ac59fb3babbf chromium.sh
-d1359f1c4cc42c9f74a862361d736ef1 crc32c-string-view-check.patch
3354997dd0bfde3443499133a6e16a85 last-commit-position.patch
# Depends on: dbus-glib gperf gtk gtk3 libevent libexif libgcrypt ninja nodejs nss pciutils speech-dispatcher xorg-libxscrnsaver xorg-libxt yasm
name=chromium
-version=62.0.3202.94
+version=64.0.3282.119
release=1
source=(https://commondatastorage.googleapis.com/$name-browser-official/$name-$version.tar.xz
chromium-build-toolchain.patch
- last-commit-position.patch $name.sh $name.desktop
- breakpad-use-ucontext_t.patch
- chromium-gn-bootstrap-r17.patch
- crc32c-string-view-check.patch)
+ last-commit-position.patch $name.sh
+ chromium-64.0.3282.119-constexpr-1.patch
+ chromium-exclude_unwind_tables.patch
+ 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-cups-r0.patch)
build() {
cd $name-$version
+ if [ -n "$(pkginfo -i | grep '^ccache ')" ]; then
+ # Avoid falling back to preprocessor mode when sources contain time macros
+ export CCACHE_SLOPPINESS=time_macros
+ fi
+
export CFLAGS="-O2 -pipe -mfloat-abi=hard"
export CFLAGS="$CFLAGS $(pkg-config --cflags nspr) -lpthread"
esac
done
-
# we don't use git sources
patch -p1 -i $SRC/last-commit-position.patch
- # Fix incorrect inclusion of <string_view> in modes other than >= C++17
- patch -p1 -d third_party/crc32c/src -i $SRC/crc32c-string-view-check.patch
+ # Corrects error call to non-constexpr function
+ patch -p1 -i $SRC/chromium-64.0.3282.119-constexpr-1.patch
+
+ wget https://chromium.googlesource.com/chromium/src.git/+/$version?format=TEXT -O ../chromium-$version.txt
+ # https://crbug.com/710701
+ local _chrome_build_hash=$(base64 -d ../chromium-$version.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
+
+ # https://chromium-review.googlesource.com/c/chromium/src/+/712575
+ patch -p1 -i $SRC/chromium-exclude_unwind_tables.patch
- # Fix build with glibc 2.26
- patch -p1 -i $SRC/breakpad-use-ucontext_t.patch
+ # https://crbug.com/772655
+ patch -p1 -i $SRC/chromium-use-fromUTF8-for-UnicodeString-construction.patch
+
+ # https://crbug.com/789163
+ patch -p1 -i $SRC/chromium-omnibox-unescape-fragment.patch
+
+ # https://crbug.com/skia/6663#c10
+ patch -p4 -i $SRC/chromium-skia-harmony.patch
# Fixes from Gentoo
- patch -p1 -i $SRC/chromium-gn-bootstrap-r17.patch
+ patch -p1 -i $SRC/chromium-memcpy-r0.patch
+ patch -p1 -i $SRC/chromium-clang-r2.patch
+ patch -p1 -i $SRC/chromium-cups-r0.patch
mkdir -p third_party/node/linux/node-linux-x64/bin
ln -s /usr/bin/node third_party/node/linux/node-linux-x64/bin/
'use_gconf=false'
'use_gnome_keyring=false'
'use_gold=false'
+ 'use_gtk3=true'
'use_kerberos=false'
'use_pulseaudio=false'
'use_sysroot=false'
- 'use_system_libjpeg=true'
)
-# export TMPDIR="${PKGMK_WORK_DIR}/temp"
-# mkdir -p -m 755 "${TMPDIR}" || die
-
- python2 tools/gn/bootstrap/bootstrap.py --gn-gen-args="${_gn_args[*]}"
+ /usr/bin/python2 tools/gn/bootstrap/bootstrap.py --gn-gen-args="${_gn_args[*]}"
out/Release/gn gen out/Release --args="${_gn_args[*]}" --script-executable=/usr/bin/python2
ninja -j ${JOBS-1} -C out/Release chrome chrome_sandbox
install -d $PKG/usr/lib/$name/locales
install -m 0644 out/Release/locales/en-US.pak $PKG/usr/lib/$name/locales
cp -a out/Release/resources $PKG/usr/lib/$name
- install -m 0644 -D out/Release/chrome.1 $PKG/usr/share/man/man1/$name.1
+
+ install -m 0644 -D chrome/installer/linux/common/desktop.template $PKG/usr/share/applications/$name.desktop
+ install -m 0644 -D chrome/app/resources/manpage.1.in $PKG/usr/share/man/man1/$name.1
+
+ sed -i \
+ -e "s/@@MENUNAME@@/Chromium/g" \
+ -e "s/@@PACKAGE@@/chromium/g" \
+ -e "s/@@USR_BIN_SYMLINK_NAME@@/chromium/g" \
+ $PKG/usr/share/applications/$name.desktop \
+ $PKG/usr/share/man/man1/$name.1
# fix v8 natives
cp -a out/Release/{natives,snapshot}_blob.bin $PKG/usr/lib/$name
- for size in 22 24 48 128 256; do
+ for size in 16 32; do
+ install -m 0644 -D chrome/app/theme/default_100_percent/$name/product_logo_${size}.png \
+ $PKG/usr/share/icons/hicolor/${size}x${size}/apps/$name.png
+ done
+
+ for size in 22 24 48 64 128 256; do
install -m 0644 -D chrome/app/theme/$name/product_logo_${size}.png \
$PKG/usr/share/icons/hicolor/${size}x${size}/apps/$name.png
done
# fix icu installation
- cp -a out/Release/icudtl.dat $PKG/usr/lib/$name
+ install -m 0644 -D out/Release/icudtl.dat $PKG/usr/lib/$name/icudtl.dat
- install -d $PKG/usr/share/pixmaps
- ln -sf /usr/share/icons/hicolor/48x48/apps/$name.png $PKG/usr/share/pixmaps/$name.png
- install -m 0644 -D $SRC/$name.desktop $PKG/usr/share/applications/$name.desktop
install -m 0755 -D $SRC/$name.sh $PKG/usr/bin/$name
+
}
--- /dev/null
+Submitted By: DJ Lucas <dj_AT_linuxfromscratch_DOT_org>
+Date: 2018-01-28
+Initial Package Version: 64.0.3282.119
+Upstream Status: Committed
+Origin: Upstream
+Description: Corrects error call to non-constexpr function
+
+
+From 030017a4855c7b6e7f2ff8d9566c146f31eb301b Mon Sep 17 00:00:00 2001
+From: Kai Ninomiya <kainino@chromium.org>
+Date: Wed, 06 Dec 2017 14:06:53 -0800
+Subject: [PATCH] Mark StaticType related functions as constexpr
+
+Fixes compilation on some versions of GCC and probably Clang.
+
+Follow-up to http://crrev.com/c/786317
+
+Bug: angleproject:1432
+Change-Id: I3fc3ad0f65492f9543eb27fcdce6ca29a9ad06e5
+Reviewed-on: https://chromium-review.googlesource.com/812220
+Reviewed-by: Jamie Madill <jmadill@chromium.org>
+Commit-Queue: Kai Ninomiya <kainino@chromium.org>
+---
+
+diff --git a/third_party/angle/src/compiler/translator/StaticType.h b/third_party/angle/src/compiler/translator/StaticType.h
+index e26e5ff..30b391a 100644
+--- a/third_party/angle/src/compiler/translator/StaticType.h
++++ b/third_party/angle/src/compiler/translator/StaticType.h
+@@ -160,7 +160,7 @@
+ TPrecision precision,
+ TQualifier qualifier,
+ unsigned char secondarySize>
+-const TType *GetForVecMatHelper(unsigned char primarySize)
++constexpr const TType *GetForVecMatHelper(unsigned char primarySize)
+ {
+ static_assert(basicType == EbtFloat || basicType == EbtInt || basicType == EbtUInt ||
+ basicType == EbtBool,
+@@ -186,7 +186,7 @@
+ template <TBasicType basicType,
+ TPrecision precision = EbpUndefined,
+ TQualifier qualifier = EvqGlobal>
+-const TType *GetForVecMat(unsigned char primarySize, unsigned char secondarySize = 1)
++constexpr const TType *GetForVecMat(unsigned char primarySize, unsigned char secondarySize = 1)
+ {
+ static_assert(basicType == EbtFloat || basicType == EbtInt || basicType == EbtUInt ||
+ basicType == EbtBool,
+@@ -208,7 +208,7 @@
+ }
+
+ template <TBasicType basicType, TPrecision precision = EbpUndefined>
+-const TType *GetForVec(TQualifier qualifier, unsigned char size)
++constexpr const TType *GetForVec(TQualifier qualifier, unsigned char size)
+ {
+ switch (qualifier)
+ {
+diff --git a/third_party/angle/src/compiler/translator/SymbolTable.cpp b/third_party/angle/src/compiler/translator/SymbolTable.cpp
+index adf1e4e..90d4c15 100644
+--- a/third_party/angle/src/compiler/translator/SymbolTable.cpp
++++ b/third_party/angle/src/compiler/translator/SymbolTable.cpp
+@@ -236,7 +236,7 @@
+ pop();
+ }
+
+-bool IsGenType(const TType *type)
++constexpr bool IsGenType(const TType *type)
+ {
+ if (type)
+ {
+@@ -248,7 +248,7 @@
+ return false;
+ }
+
+-bool IsVecType(const TType *type)
++constexpr bool IsVecType(const TType *type)
+ {
+ if (type)
+ {
+diff --git a/third_party/angle/src/compiler/translator/Types.h b/third_party/angle/src/compiler/translator/Types.h
+index 04f46f1..a54d447 100644
+--- a/third_party/angle/src/compiler/translator/Types.h
++++ b/third_party/angle/src/compiler/translator/Types.h
+@@ -142,13 +142,13 @@
+ {
+ }
+
+- TBasicType getBasicType() const { return type; }
++ constexpr TBasicType getBasicType() const { return type; }
+ void setBasicType(TBasicType t);
+
+ TPrecision getPrecision() const { return precision; }
+ void setPrecision(TPrecision p) { precision = p; }
+
+- TQualifier getQualifier() const { return qualifier; }
++ constexpr TQualifier getQualifier() const { return qualifier; }
+ void setQualifier(TQualifier q) { qualifier = q; }
+
+ bool isInvariant() const { return invariant; }
+
---- a/build/config/compiler/BUILD.gn.orig 2017-10-04 08:50:15.014675936 +0000
-+++ b/build/config/compiler/BUILD.gn 2017-10-04 08:50:32.831024327 +0000
-@@ -429,18 +429,6 @@
+--- a/build/config/compiler/BUILD.gn
++++ b/build/config/compiler/BUILD.gn
+@@ -422,18 +422,6 @@
cflags += [ "-fcolor-diagnostics" ]
}
- "-Xclang",
- "-mllvm",
- "-Xclang",
-- "-instcombine-lower-dbg-declare=1",
+- "-instcombine-lower-dbg-declare=0",
- ]
- }
-
--- /dev/null
+From 3cf91d8d674a496d533aa106723a632b68ab26ba Mon Sep 17 00:00:00 2001
+From: Tom Anderson <thomasanderson@chromium.org>
+Date: Tue, 12 Dec 2017 23:31:56 +0000
+Subject: [PATCH] Fix use_cups=false build
+
+BUG=793801
+R=thestig@chromium.org
+
+Change-Id: I60ee6ec48d2686d0b42ca25311a9b76009ce9768
+Reviewed-on: https://chromium-review.googlesource.com/823245
+Reviewed-by: Lei Zhang <thestig@chromium.org>
+Commit-Queue: Thomas Anderson <thomasanderson@chromium.org>
+Cr-Commit-Position: refs/heads/master@{#523602}
+---
+ chrome/service/cloud_print/print_system.cc | 9 ++++++++-
+ 1 file changed, 8 insertions(+), 1 deletion(-)
+
+diff --git a/chrome/service/cloud_print/print_system.cc b/chrome/service/cloud_print/print_system.cc
+index ac94c804f9..4ceba96919 100644
+--- a/chrome/service/cloud_print/print_system.cc
++++ b/chrome/service/cloud_print/print_system.cc
+@@ -5,6 +5,7 @@
+ #include "chrome/service/cloud_print/print_system.h"
+
+ #include "base/guid.h"
++#include "build/build_config.h"
+
+ namespace cloud_print {
+
+@@ -35,5 +36,11 @@ std::string PrintSystem::GenerateProxyId() {
+ return base::GenerateGUID();
+ }
+
+-} // namespace cloud_print
++#if defined(OS_LINUX) && !defined(USE_CUPS)
++scoped_refptr<PrintSystem> PrintSystem::CreateInstance(
++ const base::DictionaryValue*) {
++ return nullptr;
++}
++#endif
+
++} // namespace cloud_print
+--
+2.15.1
+
-From 1fc37227522ccd314f82ec893ed15c6129296604 Mon Sep 17 00:00:00 2001
-From: Paul Jensen <pauljensen@chromium.org>
-Date: Wed, 11 Oct 2017 08:37:34 -0400
-Subject: [PATCH] Move exclude_unwind_tables back into declare_args
-
-There is desire to adjust this flag manually.
-
-BUG=762629
-R=thakis@chromium.org
-
-Change-Id: I3bd134c19270cd1f729b3ea078674e734493d4ab
----
-
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,18 +68,18 @@
+@@ -68,19 +68,19 @@
# Whether or not we should use position independent code.
use_pic = true
+ # 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)
++ 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")
-# 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)
+-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.
--- /dev/null
+From 4942f56ceb6d60d6f54ebca8e6eba8ba01c278e8 Mon Sep 17 00:00:00 2001
+From: Tomas Popela <tomas.popela@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@chromium.org>
+Reviewed-by: vmpstr <vmpstr@chromium.org>
+Commit-Queue: Thomas Anderson <thomasanderson@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
+
--- /dev/null
+commit 03f9a90d8a783f9d1a94935ac298338a1e694380
+Author: Eric Lawrence <elawrence@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@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@chromium.org>
+ Reviewed-by: Peter Kasting <pkasting@chromium.org>
+ Reviewed-by: Eugene But <eugenebut@chromium.org>
+ Commit-Queue: Eric Lawrence <elawrence@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()];
+ }
+
--- /dev/null
+--- 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;
+ }
+ }
+ }
--- /dev/null
+From e58fa0ba66272c5f28828b15d06c7e42a9882b3b Mon Sep 17 00:00:00 2001
+From: Jungshik Shin <jshin@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@chromium.org>
+Commit-Queue: Jungshik Shin <jshin@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
+
+++ /dev/null
-From 7f90e2cceda0458cf56026eb6ccffb961a47804b Mon Sep 17 00:00:00 2001
-From: Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com>
-Date: Fri, 13 Oct 2017 15:49:32 +0200
-Subject: [PATCH] IWYU: Include math.h for round(3).
-
-math.h was being implicitly included, which can break the build with
-alternative libc implementations.
-
-Bug: None
-Change-Id: I969b320b65d0f44abb33d3e1036cfbcb859a4952
-Reviewed-on: https://webrtc-review.googlesource.com/9384
-Reviewed-by: Tommi <tommi@webrtc.org>
-Commit-Queue: Raphael Kubo da Costa (rakuco) <raphael.kubo.da.costa@intel.com>
-Cr-Commit-Position: refs/heads/master@{#20292}
----
- p2p/base/port.cc | 2 ++
- 1 file changed, 2 insertions(+)
-
-diff --git a/p2p/base/port.cc b/p2p/base/port.cc
-index a1b478d11..81aa0aadb 100644
---- a/third_party/webrtc/p2p/base/port.cc
-+++ b/third_party/webrtc/p2p/base/port.cc
-@@ -10,6 +10,8 @@
-
- #include "p2p/base/port.h"
-
-+#include <math.h>
-+
- #include <algorithm>
- #include <vector>
-
---
-2.15.0.rc2
-