From bd70e9dd2ffdbac1e5ac14cf1ed264d61033300f Mon Sep 17 00:00:00 2001 From: Victor Martinez Date: Sat, 10 Feb 2018 22:20:16 +0100 Subject: [PATCH] chromium: updated to 64.0.3282.119 --- chromium/.footprint | 29 +- chromium/.md5sum | 14 +- chromium/Pkgfile | 83 +++- .../chromium-64.0.3282.119-constexpr-1.patch | 98 ++++ ...clang-r1.patch => chromium-clang-r2.patch} | 8 +- chromium/chromium-cups-r0.patch | 45 ++ chromium/chromium-exclude_unwind_tables.patch | 25 +- chromium/chromium-memcpy-r0.patch | 35 ++ .../chromium-omnibox-unescape-fragment.patch | 437 ++++++++++++++++++ chromium/chromium-skia-harmony.patch | 77 +++ ...mUTF8-for-UnicodeString-construction.patch | 68 +++ chromium/chromium-webrtc-r0.patch | 34 -- 12 files changed, 858 insertions(+), 95 deletions(-) create mode 100644 chromium/chromium-64.0.3282.119-constexpr-1.patch rename chromium/{chromium-clang-r1.patch => chromium-clang-r2.patch} (73%) create mode 100644 chromium/chromium-cups-r0.patch create mode 100644 chromium/chromium-memcpy-r0.patch create mode 100644 chromium/chromium-omnibox-unescape-fragment.patch create mode 100644 chromium/chromium-skia-harmony.patch create mode 100644 chromium/chromium-use-fromUTF8-for-UnicodeString-construction.patch delete mode 100644 chromium/chromium-webrtc-r0.patch diff --git a/chromium/.footprint b/chromium/.footprint index 8c4f73c..bc7b712 100644 --- a/chromium/.footprint +++ b/chromium/.footprint @@ -97,6 +97,8 @@ 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/ +-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 @@ -122,6 +124,8 @@ drwxr-xr-x root/root usr/lib/chromium/resources/inspector/coverage/ -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/ @@ -183,10 +187,10 @@ drwxr-xr-x root/root usr/lib/chromium/resources/inspector/extensions_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 @@ -220,18 +224,14 @@ drwxr-xr-x root/root usr/lib/chromium/resources/inspector/product_registry_impl/ -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/ @@ -256,8 +256,6 @@ drwxr-xr-x root/root usr/lib/chromium/resources/inspector/timeline_model/ -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 @@ -270,6 +268,9 @@ drwxr-xr-x root/root usr/share/icons/hicolor/ 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 @@ -279,11 +280,15 @@ drwxr-xr-x root/root usr/share/icons/hicolor/24x24/apps/ 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 diff --git a/chromium/.md5sum b/chromium/.md5sum index 97d87c6..6f30207 100644 --- a/chromium/.md5sum +++ b/chromium/.md5sum @@ -1,8 +1,12 @@ -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 diff --git a/chromium/Pkgfile b/chromium/Pkgfile index c6a6468..e5c286c 100644 --- a/chromium/Pkgfile +++ b/chromium/Pkgfile @@ -6,18 +6,28 @@ # 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" @@ -34,18 +44,38 @@ build() { esac done - # we don't use git sources patch -p1 -i $SRC/last-commit-position.patch - # Fix incorrect inclusion of 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/ @@ -74,16 +104,13 @@ build() { '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 @@ -94,21 +121,33 @@ build() { 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 + } diff --git a/chromium/chromium-64.0.3282.119-constexpr-1.patch b/chromium/chromium-64.0.3282.119-constexpr-1.patch new file mode 100644 index 0000000..ae40fd1 --- /dev/null +++ b/chromium/chromium-64.0.3282.119-constexpr-1.patch @@ -0,0 +1,98 @@ +Submitted By: DJ Lucas +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 +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 +Commit-Queue: Kai Ninomiya +--- + +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 +-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 +-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-clang-r1.patch b/chromium/chromium-clang-r2.patch similarity index 73% rename from chromium/chromium-clang-r1.patch rename to chromium/chromium-clang-r2.patch index 0fef167..aaee167 100644 --- a/chromium/chromium-clang-r1.patch +++ b/chromium/chromium-clang-r2.patch @@ -1,6 +1,6 @@ ---- 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" ] } @@ -12,7 +12,7 @@ - "-Xclang", - "-mllvm", - "-Xclang", -- "-instcombine-lower-dbg-declare=1", +- "-instcombine-lower-dbg-declare=0", - ] - } - diff --git a/chromium/chromium-cups-r0.patch b/chromium/chromium-cups-r0.patch new file mode 100644 index 0000000..88ea78a --- /dev/null +++ b/chromium/chromium-cups-r0.patch @@ -0,0 +1,45 @@ +From 3cf91d8d674a496d533aa106723a632b68ab26ba Mon Sep 17 00:00:00 2001 +From: Tom Anderson +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 +Commit-Queue: Thomas Anderson +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::CreateInstance( ++ const base::DictionaryValue*) { ++ return nullptr; ++} ++#endif + ++} // namespace cloud_print +-- +2.15.1 + diff --git a/chromium/chromium-exclude_unwind_tables.patch b/chromium/chromium-exclude_unwind_tables.patch index 6723259..1961f15 100644 --- a/chromium/chromium-exclude_unwind_tables.patch +++ b/chromium/chromium-exclude_unwind_tables.patch @@ -1,21 +1,8 @@ -From 1fc37227522ccd314f82ec893ed15c6129296604 Mon Sep 17 00:00:00 2001 -From: Paul Jensen -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 @@ -25,8 +12,9 @@ index ad40fd9..50e19a4 100644 + # 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") @@ -36,8 +24,9 @@ index ad40fd9..50e19a4 100644 -# 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. diff --git a/chromium/chromium-memcpy-r0.patch b/chromium/chromium-memcpy-r0.patch new file mode 100644 index 0000000..dd2fd57 --- /dev/null +++ b/chromium/chromium-memcpy-r0.patch @@ -0,0 +1,35 @@ +From 4942f56ceb6d60d6f54ebca8e6eba8ba01c278e8 Mon Sep 17 00:00:00 2001 +From: Tomas Popela +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 +Reviewed-by: vmpstr +Commit-Queue: Thomas Anderson +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 ++ + namespace cc { + + ClientRawMemoryTransferCacheEntry::ClientRawMemoryTransferCacheEntry( +-- +2.15.1 + diff --git a/chromium/chromium-omnibox-unescape-fragment.patch b/chromium/chromium-omnibox-unescape-fragment.patch new file mode 100644 index 0000000..59ab040 --- /dev/null +++ b/chromium/chromium-omnibox-unescape-fragment.patch @@ -0,0 +1,437 @@ +commit 03f9a90d8a783f9d1a94935ac298338a1e694380 +Author: Eric Lawrence +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 + Reviewed-by: Peter Kasting + Reviewed-by: Eugene But + Commit-Queue: Eric Lawrence + 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-skia-harmony.patch b/chromium/chromium-skia-harmony.patch new file mode 100644 index 0000000..6343f7f --- /dev/null +++ b/chromium/chromium-skia-harmony.patch @@ -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; + } + } + } diff --git a/chromium/chromium-use-fromUTF8-for-UnicodeString-construction.patch b/chromium/chromium-use-fromUTF8-for-UnicodeString-construction.patch new file mode 100644 index 0000000..0e0765a --- /dev/null +++ b/chromium/chromium-use-fromUTF8-for-UnicodeString-construction.patch @@ -0,0 +1,68 @@ +From e58fa0ba66272c5f28828b15d06c7e42a9882b3b Mon Sep 17 00:00:00 2001 +From: Jungshik Shin +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 +Commit-Queue: Jungshik Shin +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 + diff --git a/chromium/chromium-webrtc-r0.patch b/chromium/chromium-webrtc-r0.patch deleted file mode 100644 index e14b185..0000000 --- a/chromium/chromium-webrtc-r0.patch +++ /dev/null @@ -1,34 +0,0 @@ -From 7f90e2cceda0458cf56026eb6ccffb961a47804b Mon Sep 17 00:00:00 2001 -From: Raphael Kubo da Costa -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 -Commit-Queue: Raphael Kubo da Costa (rakuco) -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 -+ - #include - #include - --- -2.15.0.rc2 - -- 2.26.2