diff --git a/extra/chromium/PKGBUILD b/extra/chromium/PKGBUILD index d33fcfe9e..61b06f932 100644 --- a/extra/chromium/PKGBUILD +++ b/extra/chromium/PKGBUILD @@ -11,9 +11,10 @@ buildarch=12 highmem=1 +noautobuild=1 pkgname=chromium -pkgver=64.0.3282.186 +pkgver=65.0.3325.146 pkgrel=1 _launcher_ver=5 pkgdesc="A web browser built for speed, simplicity, and security" @@ -31,22 +32,20 @@ install=chromium.install source=(https://commondatastorage.googleapis.com/chromium-browser-official/$pkgname-$pkgver.tar.xz chromium-launcher-$_launcher_ver.tar.gz::https://github.com/foutrelis/chromium-launcher/archive/v$_launcher_ver.tar.gz chromium-$pkgver.txt::https://chromium.googlesource.com/chromium/src.git/+/$pkgver?format=TEXT - chromium-use-fromUTF8-for-UnicodeString-construction.patch - chromium-omnibox-unescape-fragment.patch chromium-skia-harmony.patch - chromium-memcpy-r0.patch chromium-clang-r2.patch + chromium-math.h-r0.patch + chromium-stdint.patch chromium-widevine.patch chromium-angle-r0.patch 0001-ARM-toolchain-fixes.patch) -sha256sums=('5fd0218759231ac00cc729235823592f6fd1e4a00ff64780a5fed7ab210f1860' +sha256sums=('cb4f2f3f5a3344f7c452b61f8086d4b4e56af6f5bc34309c3ede8be6b4ab81a3' '4dc3428f2c927955d9ae117f2fb24d098cc6dd67adb760ac9c82b522ec8b0587' - 'e73f69942af1ba730a700151973fa6309b0586ff45bf35a7fea43f52b54a9cb5' - 'c82c830bac7ab328a76d85fb141e150a17d02d97138a6daa4720a8a8c371a402' - '814eb2cecb10cb697e24036b08aac41e88d0e38971741f9e946200764e2401ae' + 'adfeb830af4c9b55c4a6481ef245e82ad2b9fc3cfe0fe339b30baa8573f701e7' 'feca54ab09ac0fc9d0626770a6b899a6ac5a12173c7d0c1005bc3964ec83e7b3' - '455f0029987d9f0532bd9a5250669af5146a9c2b65b776d4a6e2499e8aca7bb4' '4495e8b29dae242c79ffe4beefc5171eb3c7aacb7e9aebfd2d4d69b9d8c958d3' + 'fe0ab86aa5b0072db730eccda3e1582ebed4af25815bfd49fe0da24cf63ca902' + 'c00d2506f1078b38a8ebec474a7318e76a61db1298afb40088a34210f137210f' 'd6fdcb922e5a7fbe15759d39ccc8ea4225821c44d98054ce0f23f9d1f00c9808' 'ec9dbff87e8a8655090eaa456905b67936c3d0d48d6fd84e088864af39ceed47' '8489d2a85b32e9b08f5c30d47b40ae41911d1915f48b6de3c41fe350dfecfef6') @@ -56,9 +55,9 @@ sha256sums=('5fd0218759231ac00cc729235823592f6fd1e4a00ff64780a5fed7ab210f1860' readonly -A _system_libs=( [ffmpeg]=ffmpeg [flac]=flac - #[fontconfig]=fontconfig # Enable for M65 - #[freetype]=freetype2 # Using 'use_system_freetype=true' until M65 - #[harfbuzz-ng]=harfbuzz # Using 'use_system_harfbuzz=true' until M65 + [fontconfig]=fontconfig + [freetype]=freetype2 + [harfbuzz-ng]=harfbuzz [icu]=icu [libdrm]= [libjpeg]=libjpeg @@ -76,10 +75,8 @@ readonly -A _system_libs=( readonly _unwanted_bundled_libs=( ${!_system_libs[@]} ${_system_libs[libjpeg]+libjpeg_turbo} - freetype - harfbuzz-ng ) -depends+=(${_system_libs[@]} freetype2 harfbuzz) +depends+=(${_system_libs[@]}) # Google API keys (see https://www.chromium.org/developers/how-tos/api-keys) # Note: These are for Arch Linux use ONLY. For your own distribution, please @@ -112,18 +109,13 @@ prepare() { sed "s/@WIDEVINE_VERSION@/Pinkie Pie/" ../chromium-widevine.patch | patch -Np1 - # https://crbug.com/772655 - patch -Np1 -i ../chromium-use-fromUTF8-for-UnicodeString-construction.patch - - # https://crbug.com/789163 - patch -Np1 -i ../chromium-omnibox-unescape-fragment.patch - # https://crbug.com/skia/6663#c10 patch -Np4 -i ../chromium-skia-harmony.patch # Fixes from Gentoo - patch -Np1 -i ../chromium-memcpy-r0.patch patch -Np1 -i ../chromium-clang-r2.patch + patch -Np1 -i ../chromium-math.h-r0.patch + patch -Np1 -i ../chromium-stdint.patch patch -Np1 -i ../chromium-angle-r0.patch # Use Python 2 @@ -145,7 +137,7 @@ prepare() { \! -path "*third_party/$_lib/chromium/*" \ \! -path "*third_party/$_lib/google/*" \ \! -path './base/third_party/icu/*' \ - \! -path './third_party/freetype/src/src/psnames/pstables.h' \ + \! -path './third_party/pdfium/third_party/freetype/include/pstables.h' \ \! -path './third_party/yasm/run_yasm.py' \ \! -regex '.*\.\(gn\|gni\|isolate\)' \ -delete @@ -180,9 +172,6 @@ build() { 'ffmpeg_branding="Chrome"' 'proprietary_codecs=true' 'link_pulseaudio=true' - 'use_system_freetype=true' - 'use_system_harfbuzz=true' - 'use_gconf=false' 'use_gnome_keyring=false' 'use_gold=false' 'use_lld=false' diff --git a/extra/chromium/chromium-math.h-r0.patch b/extra/chromium/chromium-math.h-r0.patch new file mode 100644 index 000000000..6c7c74705 --- /dev/null +++ b/extra/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/extra/chromium/chromium-memcpy-r0.patch b/extra/chromium/chromium-memcpy-r0.patch deleted file mode 100644 index dd2fd57d2..000000000 --- a/extra/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/extra/chromium/chromium-omnibox-unescape-fragment.patch b/extra/chromium/chromium-omnibox-unescape-fragment.patch deleted file mode 100644 index 59ab04003..000000000 --- a/extra/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/extra/chromium/chromium-stdint.patch b/extra/chromium/chromium-stdint.patch new file mode 100644 index 000000000..877443954 --- /dev/null +++ b/extra/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/extra/chromium/chromium-use-fromUTF8-for-UnicodeString-construction.patch b/extra/chromium/chromium-use-fromUTF8-for-UnicodeString-construction.patch deleted file mode 100644 index 0e0765a27..000000000 --- a/extra/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 -