commit 8a4c00d2c1edec9479f1f7d990263aa639d34df1 Author: Danny Rawlins <monster.romster@gmail.com> Date: Thu Mar 29 21:38:15 2018 +1100 [notify] chromium: 64.0.3282.186 -> 65.0.3325.181 new dependencies: clang libvpx libwebp, removed libevent. Closes FS#1633 diff --git a/chromium/.footprint b/chromium/.footprint index bc7b71256..b83eea5c4 100644 --- a/chromium/.footprint +++ b/chromium/.footprint @@ -93,8 +93,6 @@ drwxr-xr-x root/root usr/lib/chromium/resources/inspector/animation/ -rw-r--r-- root/root usr/lib/chromium/resources/inspector/animation/animation_module.js drwxr-xr-x root/root usr/lib/chromium/resources/inspector/application_test_runner/ -rw-r--r-- root/root usr/lib/chromium/resources/inspector/application_test_runner/application_test_runner_module.js -drwxr-xr-x root/root usr/lib/chromium/resources/inspector/audits/ --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/ @@ -102,8 +100,6 @@ drwxr-xr-x root/root usr/lib/chromium/resources/inspector/audits2_test_runner/ -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 -drwxr-xr-x root/root usr/lib/chromium/resources/inspector/audits_test_runner/ --rw-r--r-- root/root usr/lib/chromium/resources/inspector/audits_test_runner/audits_test_runner_module.js drwxr-xr-x root/root usr/lib/chromium/resources/inspector/bindings_test_runner/ -rw-r--r-- root/root usr/lib/chromium/resources/inspector/bindings_test_runner/bindings_test_runner_module.js drwxr-xr-x root/root usr/lib/chromium/resources/inspector/changes/ diff --git a/chromium/.md5sum b/chromium/.md5sum index 8abbdcc13..75c9f517f 100644 --- a/chromium/.md5sum +++ b/chromium/.md5sum @@ -1,10 +1,7 @@ -d144ace1ee63acdf7dd149b013c83088 chromium-64.0.3282.119-constexpr-1.patch -0c361a429c5dcea568cbc7b001a82d92 chromium-64.0.3282.186.tar.xz +717988367527423b897712ec0e25a5dd chromium-65.0.3325.181.tar.xz 27dbd1479d469346d1ffe27c7e7c0011 chromium-clang-r2.patch -21f73763be6c44ce3df0f1cbbfbff440 chromium-cups-r0.patch -cb40c4153943f9eb5e38e90ba2f8b382 chromium-memcpy-r0.patch -e42a8b91ea55b4765b9b2b9e2437a9d0 chromium-omnibox-unescape-fragment.patch +01f7422efc71c1dd9255b5d9f72a36ec chromium-math.h-r0.patch 254061cb349cff714230b7cca83b0a4c chromium-skia-harmony.patch -40ff364c3a581e5f7ec4a84d785ab6a4 chromium-use-fromUTF8-for-UnicodeString-construction.patch +9d6eab4a8302b23a991ddc8682ecaaab chromium-stdint.patch 64968626706b07721983ac59fb3babbf chromium.sh 3354997dd0bfde3443499133a6e16a85 last-commit-position.patch diff --git a/chromium/.signature b/chromium/.signature index 33f37d18a..34e28ed34 100644 --- a/chromium/.signature +++ b/chromium/.signature @@ -1,14 +1,11 @@ untrusted comment: verify with /etc/ports/opt.pub -RWSE3ohX2g5d/ey8wdaJVrX7vAizPeFwt7QvQSNET76nR3Oxj0uG4Vl0qkCm9Q0x719hifw+5i+G4tUUMtmM6ZU15GSd9/FARwA= -SHA256 (Pkgfile) = 7d8fdc35785fb1ddeb117573b1d07cf380485770d63321d29a22586d5f566189 -SHA256 (.footprint) = e1e6cdeeb1dc4e10e1b0f3e743f69fae1c35e4db1f455cd9e65e5bf0387d9d7e -SHA256 (chromium-64.0.3282.186.tar.xz) = 5fd0218759231ac00cc729235823592f6fd1e4a00ff64780a5fed7ab210f1860 +RWSE3ohX2g5d/Z3xpwEfM4Q9/9Ijb8vZudoetipL4uL0scSqs8CgLGerd/YbOw4Pd37nZEy3iDhYUjfcmxhlsy336sxXBjEm6QQ= +SHA256 (Pkgfile) = 7b117ccf7bdb817b98a423288661d1619003c59780875400d9c4fe827d7ce88d +SHA256 (.footprint) = 95eb53a45199694e600d1fb7e055c8d1fd3ad4033de075267cd2a7750a0f7b12 +SHA256 (chromium-65.0.3325.181.tar.xz) = 93666448c6b96ec83e6a35a64cff40db4eb92a154fe1db4e7dab4761d0e38687 SHA256 (last-commit-position.patch) = d3dc397956a26ec045e76c25c57a1fac5fc0acff94306b2a670daee7ba15709e SHA256 (chromium.sh) = 7b182d0ae1e9ef841f8cd0b403a304babd548bf60b5e3808b2144bebdbb7c154 -SHA256 (chromium-64.0.3282.119-constexpr-1.patch) = 9982464badc03879c5f73ed18a719661f00aad51da078bae032293e656bfaf6d -SHA256 (chromium-use-fromUTF8-for-UnicodeString-construction.patch) = c82c830bac7ab328a76d85fb141e150a17d02d97138a6daa4720a8a8c371a402 -SHA256 (chromium-omnibox-unescape-fragment.patch) = 814eb2cecb10cb697e24036b08aac41e88d0e38971741f9e946200764e2401ae SHA256 (chromium-skia-harmony.patch) = feca54ab09ac0fc9d0626770a6b899a6ac5a12173c7d0c1005bc3964ec83e7b3 -SHA256 (chromium-memcpy-r0.patch) = 455f0029987d9f0532bd9a5250669af5146a9c2b65b776d4a6e2499e8aca7bb4 SHA256 (chromium-clang-r2.patch) = 4495e8b29dae242c79ffe4beefc5171eb3c7aacb7e9aebfd2d4d69b9d8c958d3 -SHA256 (chromium-cups-r0.patch) = 34cfc58664c67901f498dcff5e0d27edfb821bf1472c224981880903a0a3d243 +SHA256 (chromium-math.h-r0.patch) = fe0ab86aa5b0072db730eccda3e1582ebed4af25815bfd49fe0da24cf63ca902 +SHA256 (chromium-stdint.patch) = c00d2506f1078b38a8ebec474a7318e76a61db1298afb40088a34210f137210f diff --git a/chromium/Pkgfile b/chromium/Pkgfile index 37c16259e..d275a46c5 100644 --- a/chromium/Pkgfile +++ b/chromium/Pkgfile @@ -1,20 +1,17 @@ # Description: Open source version of Google Chrome web browser. # URL: http://chromium.org/ # Maintainer: CRUX System Team, core-ports at crux dot nu -# Depends on: dbus-glib gperf gtk gtk3 libevent libexif libgcrypt ninja nodejs nss pciutils speech-dispatcher xorg-libxscrnsaver xorg-libxt yasm +# Depends on: clang dbus-glib gperf gtk gtk3 libexif libgcrypt libvpx libwebp nodejs nss pciutils speech-dispatcher xorg-libxscrnsaver xorg-libxt name=chromium -version=64.0.3282.186 +version=65.0.3325.181 release=1 source=(https://commondatastorage.googleapis.com/$name-browser-official/$name-$versi... last-commit-position.patch $name.sh - chromium-64.0.3282.119-constexpr-1.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) + chromium-math.h-r0.patch + chromium-stdint.patch) build() { cd $name-$version @@ -27,12 +24,14 @@ build() { export CFLAGS="$CFLAGS $(pkg-config --cflags nspr)" export LDFLAGS="$LDFLAGS $(pkg-config --libs nspr)" + export CC=clang + export CXX=clang++ + export AR=ar + export NM=nm + # we don't use git sources patch -p1 -i $SRC/last-commit-position.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 | @@ -43,73 +42,90 @@ build() { fi echo "LASTCHANGE=$_chrome_build_hash-" >build/util/LASTCHANGE - # https://chromium-review.googlesource.com/c/chromium/src/+/712575 - # _flags+=('exclude_unwind_tables=true') - CFLAGS+=' -fno-unwind-tables -fno-asynchronous-unwind-tables' - CXXFLAGS+=' -fno-unwind-tables -fno-asynchronous-unwind-tables' + CFLAGS+=' -fno-unwind-tables -fno-asynchronous-unwind-tables -Wno-parentheses-equality -Wno-unused-command-line-argument' + CXXFLAGS+=' -fno-unwind-tables -fno-asynchronous-unwind-tables -Wno-parentheses-equality -Wno-unused-command-line-argument' CPPFLAGS+=' -DNO_UNWIND_TABLES' - # 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-memcpy-r0.patch patch -p1 -i $SRC/chromium-clang-r2.patch - patch -p1 -i $SRC/chromium-cups-r0.patch + patch -p1 -i $SRC/chromium-math.h-r0.patch + patch -p1 -i $SRC/chromium-stdint.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' \ + -e '/"-fno-delete-null-pointer-checks"/d' \ + -e '/"-Wno-maybe-uninitialized"/d' \ + build/config/compiler/BUILD.gn mkdir -p third_party/node/linux/node-linux-x64/bin ln -s /usr/bin/node third_party/node/linux/node-linux-x64/bin/ - local LIB - for LIB in libjpeg libjpeg_turbo yasm; 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/yasm/run_yasm.py' \ - \! -regex '.*\.\(gn\|gni\|isolate\)' \ - \! -path './third_party/freetype/src/src/psnames/pstables.h' \ - -delete + local gn_system_libraries=( + #libdrm + #libjpeg + #libpng + libvpx + libwebp + # libxml + yasm + # zlib + # bzip2 + ) + + local ULIB + for ULIB in ${gn_system_libraries[@]}; do + find -type f -path "*third_party/$ULIB/*" \ + \! -path "*third_party/$ULIB/chromium/*" \ + \! -path "*third_party/$ULIB/google/*" \ + \! -regex '.*\.\(gn\|gni\|isolate\|py\)' \ + -delete done /usr/bin/python2 build/linux/unbundle/replace_gn_files.py \ - --system-libraries libjpeg libxml libevent yasm + --system-libraries ${gn_system_libraries[@]} + # Chromium issue #386097 /usr/bin/python2 third_party/libaddressinput/chromium/tools/update-strings.py - _gn_args=( - 'blink_gc_plugin=false' + local _gn_args=( + 'custom_toolchain="//build/toolchain/linux/unbundle:default"' + 'host_toolchain="//build/toolchain/linux/unbundle:default"' + 'is_clang=false' 'clang_use_chrome_plugins=false' - 'enable_hangout_services_extension=true' - 'enable_nacl=false' - 'enable_swiftshader=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"' - 'is_clang=false' - 'is_debug=false' - 'linux_use_bundled_binutils=false' - 'use_custom_libcxx=false' 'proprietary_codecs=true' - 'remove_webcore_debug_symbols=true' - 'symbol_level=0' - 'treat_warnings_as_errors=false' - 'use_allocator="none"' + 'link_pulseaudio=false' + 'use_gnome_keyring=false' + 'use_gold=false' + 'use_lld=false' + 'use_sysroot=false' + 'use_bundled_fontconfig=false' + 'linux_use_bundled_binutils=false' + 'use_custom_libcxx=true' + 'enable_hangout_services_extension=true' + 'enable_widevine=false' + 'enable_nacl=false' + 'enable_swiftshader=false' 'use_cups=false' 'use_gconf=false' 'use_gnome_keyring=false' - 'use_gold=false' 'use_kerberos=false' 'use_pulseaudio=false' - 'use_sysroot=false' ) - /usr/bin/python2 tools/gn/bootstrap/bootstrap.py --gn-gen-args="${_gn_args[*]}" + /usr/bin/python2 tools/gn/bootstrap/bootstrap.py -s -v --no-clean out/Release/gn gen out/Release --args="${_gn_args[*]}" --script-executable=/usr/bin/python2 ninja -j ${JOBS-1} -C out/Release chrome chrome_sandbox diff --git a/chromium/chromium-64.0.3282.119-constexpr-1.patch b/chromium/chromium-64.0.3282.119-constexpr-1.patch deleted file mode 100644 index ae40fd18c..000000000 --- a/chromium/chromium-64.0.3282.119-constexpr-1.patch +++ /dev/null @@ -1,98 +0,0 @@ -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; } - diff --git a/chromium/chromium-cups-r0.patch b/chromium/chromium-cups-r0.patch deleted file mode 100644 index 88ea78a81..000000000 --- a/chromium/chromium-cups-r0.patch +++ /dev/null @@ -1,45 +0,0 @@ -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 - diff --git a/chromium/chromium-math.h-r0.patch b/chromium/chromium-math.h-r0.patch new file mode 100644 index 000000000..6c7c74705 --- /dev/null +++ b/chromium/chromium-math.h-r0.patch @@ -0,0 +1,29 @@ +From 9f63f94a11abc34d40ede8b8712fa15b5844a8c0 Mon Sep 17 00:00:00 2001 +From: Tom Anderson <thomasanderson@chromium.org> +Date: Sat, 27 Jan 2018 20:03:37 +0000 +Subject: [PATCH] Fix build with glibc 2.27 + +BUG=806340 +TBR=hamelphi@chromium.org + +Change-Id: Ib4e5091212d874d9ad88f3e9a1fdfee3ed7e0d5e +Reviewed-on: https://chromium-review.googlesource.com/890059 +Reviewed-by: Thomas Anderson <thomasanderson@chromium.org> +Reviewed-by: Philippe Hamel <hamelphi@chromium.org> +Commit-Queue: Thomas Anderson <thomasanderson@chromium.org> +Cr-Commit-Position: refs/heads/master@{#532249} +--- + +diff --git a/components/assist_ranker/ranker_example_util.cc b/components/assist_ranker/ranker_example_util.cc +index 54d4dbd..ceedd8f 100644 +--- a/components/assist_ranker/ranker_example_util.cc ++++ b/components/assist_ranker/ranker_example_util.cc +@@ -2,6 +2,8 @@ + // Use of this source code is governed by a BSD-style license that can be + // found in the LICENSE file. + ++#include <math.h> ++ + #include "components/assist_ranker/ranker_example_util.h" + #include "base/bit_cast.h" + #include "base/format_macros.h" diff --git a/chromium/chromium-memcpy-r0.patch b/chromium/chromium-memcpy-r0.patch deleted file mode 100644 index dd2fd57d2..000000000 --- a/chromium/chromium-memcpy-r0.patch +++ /dev/null @@ -1,35 +0,0 @@ -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 - diff --git a/chromium/chromium-omnibox-unescape-fragment.patch b/chromium/chromium-omnibox-unescape-fragment.patch deleted file mode 100644 index 59ab04003..000000000 --- a/chromium/chromium-omnibox-unescape-fragment.patch +++ /dev/null @@ -1,437 +0,0 @@ -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()]; - } - diff --git a/chromium/chromium-stdint.patch b/chromium/chromium-stdint.patch new file mode 100644 index 000000000..877443954 --- /dev/null +++ b/chromium/chromium-stdint.patch @@ -0,0 +1,21 @@ +From 0235c2b657d936f3cdb09053776e5929fc84704b Mon Sep 17 00:00:00 2001 +From: Tomas Popela <tomas.popela@gmail.com> +Date: Wed, 31 Jan 2018 18:57:07 +0000 +Subject: [PATCH] Add missing stdint include + +diff --git a/chrome/browser/vr/sample_queue.cc b/chrome/browser/vr/sample_queue.cc +index c2ca777ce90c..53cb3aab1576 100644 +--- a/chrome/browser/vr/sample_queue.cc ++++ b/chrome/browser/vr/sample_queue.cc +@@ -2,6 +2,8 @@ + // Use of this source code is governed by a BSD-style license that can be + // found in the LICENSE file. + ++#include <stdint.h> ++ + #include "chrome/browser/vr/sample_queue.h" + + namespace vr { +-- +2.16.2 + diff --git a/chromium/chromium-use-fromUTF8-for-UnicodeString-construction.patch b/chromium/chromium-use-fromUTF8-for-UnicodeString-construction.patch deleted file mode 100644 index 0e0765a27..000000000 --- a/chromium/chromium-use-fromUTF8-for-UnicodeString-construction.patch +++ /dev/null @@ -1,68 +0,0 @@ -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 -