New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 766816 link

Starred by 6 users

Issue metadata

Status: Fixed
Owner:
Closed: Nov 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Linux , Android , Windows , iOS , Chrome , Mac , Fuchsia
Pri: 2
Type: Bug

Blocked on:
issue 777330

Blocking:
issue v8:4743



Sign in to add a comment

Update ICU to 60.x when released

Project Member Reported by js...@chromium.org, Sep 19 2017

Issue description

ICU 60.x will be released next month. This is a placeholder/tracking bug for ICU update in Chrome. 


One change that can affect Blink layout performance negatively is an ICU BreakIterator rule file format change. To streamline the maintenance and cut down the size, reverse rules are removed and only forward rules are kept.   And it regresses line break iterator performance for CJK.   
A question is how much time Blink layout code spends in ICU line break iterator.

Dominik, is there a layout performance test I can try?  PageLoad test with CJK web sites can be one, but are there others (more 'focused' ones)? 




 

Comment 1 by js...@chromium.org, Sep 19 2017

Cc: aheninger@google.com

Comment 2 by js...@chromium.org, Sep 19 2017

Cc: kojii@chromium.org

Comment 3 by js...@chromium.org, Sep 19 2017

Attached is a back-port of what's coming in ICU 60 to ICU 59.1 so that we can try the upcoming change easily. 

Below are break iterator data file sizes. 

ICU 59
 34384 char.brk
115696 line.brk
120440 line_fi.brk
116208 line_loose.brk
123632 line_loose_cj.brk
121008 line_loose_fi.brk
115696 line_normal.brk
119280 line_normal_cj.brk
120440 line_normal_fi.brk
 35592 sent.brk
 35624 sent_el.brk
 17472 title.brk
 71184 word.brk
 71216 word_POSIX.brk

---------------
 34384 char.brk
115696 line.brk
120440 line_fi.brk
116208 line_loose.brk
123632 line_loose_cj.brk
121008 line_loose_fi.brk
115696 line_normal.brk
119280 line_normal_cj.brk
120440 line_normal_fi.brk
 35592 sent.brk
 35624 sent_el.brk
 17472 title.brk
 71184 word.brk
 71216 word_POSIX.brk

icu-rbbi-backport.patch
298 KB Download

Comment 4 by kojii@chromium.org, Sep 19 2017

Thank you for the info. Some perf tests are here:
https://cs.chromium.org/chromium/src/third_party/WebKit/PerformanceTests/Layout/

Is the performance affected only for CJK and only for reverse rules? The current line breaker does not use preceding(), only following(). In the new line breaker (under development), we loop to find previous, and I was thinking to start using preceding(). I think eae@ has perf test for the new engine.

Does this also affect character (grapheme cluster) iterator too? We might use its preceding function more often, but I haven't checked all the places we use it, I can help if it does.

Comment 5 by js...@chromium.org, Sep 20 2017

Cc: e...@chromium.org
Thank you !

This change affects all the break iterators including character/grapheme cluster breakiterator.  

Andy,  what's the performance impact on the forward iteration?  

If preceding() is used at a random point in a given string without an earlier run of forward iteration over the region of interest, I think the performance can be pretty bad.  

Andy, can you confirm?  Thanks 
The change affects all of the types of break iterators, including character/grapheme.

The change removes the reverse rules, which will slow reverse direction iteration, and adds a cache of recent boundaries, which will speed up iteration that revisits the same recent region of text, and also helps with reverse iteration. Reverse is implemented by jumping backwards, iterating forwards and caching until the starting position is reached, then returning the cached boundaries.

For plain forward iteration (always a cache miss), the change adds a roughly constant overhead to each boundary returned. It's approximately 7 to 10 ns. on my standard issue desktop machine (Intel(R) Xeon(R) CPU E5-1650 0 @ 3.20GHz). Caution, crude benchmark with somewhat noisy results, but the order should be right.

The time to iterate to a boundary depends on the number of characters traversed. For forward iteration, ICU 59, approximate times, ns:

Grapheme               32
Line, Japanese text    35
Word, English text     60
               
I'm still playing with the benchmarks; it appears that ICU 60's inner loop for forward iteration may be slightly faster than 59's.

Regarding the data sizes that Jungshik showed above, the ICU 60 ones should be

 30464  char.brk
 78384  line.brk
 80984  line_fi.brk
 78392  line_loose.brk
 81256  line_loose_cj.brk
 81024  line_loose_fi.brk
 78384  line_normal.brk
 80208  line_normal_cj.brk
 82288  line_normal_fi.brk
 37544  sent.brk
 37576  sent_el.brk
 18784  title.brk
 55704  word.brk
 55736  word_POSIX.brk
 



Comment 7 by js...@chromium.org, Sep 22 2017

https://chromium-review.googlesource.com/#/c/chromium/src/+/678558  is a CL to roll ICU to a special branch I made to apply ICU 60's RBBI changes to Chrome's ICU 59. 

If we can run perf-bots for that CL, there'd be less need for local perf test. 

Comment 8 by js...@chromium.org, Sep 26 2017

eae@:  What should I do to run perf test locally (blink layout perf test)?  I think it has to be run for both desktop and Android?  

ICU 60 is around the code and Andy (cc'd) is eager to hear about any perf impact due to his change.  

Thanks a lot !


BTW, it appears that sending try jobs to perfbots does not seem to work. I'd love to hear otherwise. Please, correct me if there's a way to use perf trybots to detect perf regressions.   


Comment 9 by drott@chromium.org, Sep 27 2017

Cc: primiano@chromium.org
Primiano, do you have any advice on how to include performance testing bots on a CL? Thank you!

Comment 10 by js...@chromium.org, Sep 27 2017

In a CL, I do see a list of perf bots, but I'm not sure what they do - bisect bots vs perf_cq bots.    

I sent tryjobs to android_nexus5x_perf_bisect (bisect between what versions? ) and {linux,win10_64,mac}_perf_cq bots.  The first one failed due to a reason not related to the CL (configuration file syntax ? ) and the latter three are purple (but I can't even go to the bot result page). 

https://chromium-review.googlesource.com/c/chromium/src/+/678558

----------------


For local testing, it appears that I have to use 

./tools/perf/run_benchmark blink_perf --test_path=Layout/<foo.html> 

(somehow, the above command gives me an error, though) 
or use pre-defined pagesets for page load tests. 

Comment 11 by js...@chromium.org, Sep 28 2017

I'm also running page_cycler tests locally, but pages in intl_* sets (especially Chinese/Japanese set) are not text-heavy.  typical-25 set seems better, but it's English only.

Comment 13 by js...@chromium.org, Sep 29 2017

I ran these perf tests on perf bots and they all came back neutral with the default significant value of 0.01 ( α=0.01 ; i.e. p-value >= α=0.01 and can't reject null hypothesis of test and baseline coming from the same distribution ). 

 
https://00e9e64bac46838af49639953877c5a69a93a6793f0b599be7-apidata.googleusercontent.com/download/storage/v1/b/chromium-telemetry/o/html-results%2Fresults-2017-09-29_04-24-20?r=TOT&s=%CE%94avg&g=name ). 

tools/perf/run_benchmark try all-android  loading.mobile
tools/perf/run_benchmark try all-{win,linux,mac}  loading.desktop
tools/perf/run_benchmark try all  blink_perf.layout

However, those tests do not seem to test text-heavy pages. 

I've just sent a few more specific page-cycler tests :

tools/perf/run_benchmark try all  page_cycler_v2.typical_25

And page_cycler_v2.intl_{ko_th_vi, zh_ja, hi_ru, es_fr_pt-BR}

(language groups are rather arbitrary and can obscure potential regressions; e.g. ko should be grouped together with zh_ja. hi should be with th. ru should be by itself or with el or with es_fr... ). 



Comment 14 by js...@chromium.org, Sep 29 2017

> I ran these perf tests on perf bots and they all came back neutral with the default significant value of 0.01

Some blink layout tests are rather positive (p-value barely missing our threshold of 0.01); Hindi and Arabic layout. 
Cc: sullivan@chromium.org
+sullivan@ :  could you shed some light on running page_cycler tests on perf bots? 
See below. Thank you !

> I've just sent a few more specific page-cycler tests :

> tools/perf/run_benchmark try all  page_cycler_v2.typical_25
> And page_cycler_v2.intl_{ko_th_vi, zh_ja, hi_ru, es_fr_pt-BR}

https://chromium-review.googlesource.com/c/chromium/src/+/678558/4 : a bunch of bisect builders were run to build with my CL, but NO perf test (page_cycler_v2.foo) was actually run  on 'foo_perf_bisect' bots.

OTOH, https://chromium-review.googlesource.com/c/chromium/src/+/678558/3 shows a lot of runs from foo_perf_bisect' bots with HTML results; they're for the following:

tools/perf/run_benchmark try all-android  loading.mobile
tools/perf/run_benchmark try all-{win,linux,mac}  loading.desktop
tools/perf/run_benchmark try all  blink_perf.layout



Cc: nedngu...@google.com
Yep, those page_cycler* tests have been replaced with loading.* tests.
Thanks !

loading.mobile [1] is neutral as well. Pages tested by loading.*  are not text-heavy, either, but perhaps they're chosen to reflect the actual Chrome usage pattern. I thought I had seen the results from loading.desktop, but couldn't find them any more. 

I've just restarted them: 

tools/perf/run_benchmark try all-{win,linux,mac}  loading.desktop



[1] https://goo.gl/gPTZBx : loading.mobile on N5X. The distribution is bi-modal for most tests in loading.mobile somehow ....

Desktop loading (both overall and layout portion) is also neutral with a huge p-value (> 0.5) across platforms:  
e.g 

layout (real time): https://goo.gl/5Z8ikf
layout (cpu time): https://goo.gl/BPHzFm
overall: https://goo.gl/gdcMzV 

Just in case, I tried to compare the result of individual intl_{ko_th_vi, zh_ja, hi_ru, es_fr_pt-BR}, but couldn't figure out how to. 

Anyway, I think I'm pretty sure that the impact of ICU's RBBI change by Andy is pretty neutral for Blink layout and page loading. 

Comment 19 by js...@chromium.org, Oct 12 2017

Blocking: v8:4743

Comment 20 by js...@chromium.org, Oct 12 2017

Cc: mathias@chromium.org
Labels: -Pri-3 Pri-2

Comment 21 by js...@chromium.org, Oct 20 2017

I made a 60staging branch and pushed my WiP there. 

It passed one of the most critical tests (ICU data size). The ICU data sizes on various platforms are smaller than before (mainly thanks to Andy's breakiterator rule file optimization).  THe delta is about -200kB. 

     6466112 android/icudtl.dat    (6635168) 
    10143888 common/icudtb.dat     (10196592)
    10143888 common/icudtl.dat
     6452448 ios/icudtl.dat        (6623360)

I'll send this to Chromium's and v8's trybots and see if there's any failing test. 


Comment 22 by js...@chromium.org, Oct 20 2017


https://chromium.googlesource.com/chromium/deps/icu/+log/chromium/60staging

(btw, I started with ICU 60 RC, but updating to ICU 60 release should be easy). 

Comment 24 by js...@chromium.org, Oct 21 2017

Labels: OS-Android OS-Chrome OS-Fuchsia OS-iOS OS-Linux OS-Mac OS-Windows
Status: Started (was: Assigned)
A couple of build failures:  
ICU normalize API was deprecated and we need to switch to normalize2 API to avoid 'deprecation' warning in a couple of places, one of which is HarfBuzz.  

HarfBuzz needs to be updated to a release containing the following CL (or cherry-pick it) in both Chromium and CrOS. 

https://cgit.freedesktop.org/harfbuzz/commit/?id=41b1984 (ICU normalize API). 

There's an also Windows build failure. Haven't looked into it yet. 

Comment 25 by js...@chromium.org, Oct 22 2017

https://chromium-review.googlesource.com/c/chromium/src/+/732193/2 

is an ICU roll CL with 3 'ancestor' CLs to fix build failures. 

Comment 26 by js...@chromium.org, Oct 23 2017

https://unicode.org/cldr/trac/ticket/10176#comment:7  : Farsi percent format unit test failure 

Comment 27 by js...@chromium.org, Oct 23 2017

https://chromium-review.googlesource.com/c/v8/v8/+/731764 : 
V8 bots mostly pass with one expected result revised to match the latest locale data (Currency format in Portuguese now uses U+00A0 between a currency sign and the amount. ). 

Gyp bot failures are expected because I haven't updated ICU gyp file, yet.
 
Windows bot failure is strange. Chromium Win bots have the same issue. 

Comment 28 by js...@chromium.org, Oct 23 2017

Cc: sffc@google.com
Windows build failure:

[637/1313] CXX obj/third_party/icu/icui18n/number_rounding.obj
FAILED: obj/third_party/icu/icui18n/number_rounding.obj 
ninja -t msvc -e environment.x64 -- E:\b\c\goma_client/gomacc.exe "e:\b\c\win_toolchain\vs_files\88c3b62e1eb0893b8cd57e3f4859c3af27907f64\vc\tools\msvc\14.11.25503\bin\hostx64\x64/cl.exe" /nologo /showIncludes  @obj/third_party/icu/icui18n/number_rounding.obj.rsp /c ../../third_party/icu/source/i18n/number_rounding.cpp /Foobj/third_party/icu/icui18n/number_rounding.obj /Fd"obj/third_party/icu/icui18n_cc.pdb"
../../third_party/icu/source/i18n/number_rounding.cpp(159): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
../../third_party/icu/source/i18n/number_rounding.cpp(159): error C2143: syntax error: missing ',' before '&'
../../third_party/icu/source/i18n/number_rounding.cpp(159): error C2511: 'icu_60::number::Rounder icu_60::number::Rounder::withCurrency(const int) const': overloaded member function not found in 'icu_60::number::Rounder'
e:\b\c\b\v8_win64_rel_ng\v8\third_party\icu\source\i18n\unicode/numberformatter.h(571): note: see declaration of 'icu_60::number::Rounder'
../../third_party/icu/source/i18n/number_rounding.cpp(160): error C2597: illegal reference to non-static member 'icu_60::number::Rounder::fType'
../../third_party/icu/source/i18n/number_rounding.cpp(160): error C2671: 'icu_60::number::Rounder::withCurrency': static member functions do not have 'this' pointers
../../third_party/icu/source/i18n/number_rounding.cpp(162): error C2228: left of '.getISOCurrency' must have class/struct/union
../../third_party/icu/source/i18n/number_rounding.cpp(163): error C2228: left of '.currencyUsage' must have class/struct/union
../../third_party/icu/source/i18n/number_rounding.cpp(163): error C2065: 'status': undeclared identifier
../../third_party/icu/source/i18n/number_rounding.cpp(165): error C2228: left of '.currencyUsage' must have class/struct/union
../../third_party/icu/source/i18n/number_rounding.cpp(165): error C2065: 'status': undeclared identifier
../../third_party/icu/source/i18n/number_rounding.cpp(174): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
../../third_party/icu/source/i18n/number_rounding.cpp(174): error C2143: syntax error: missing ',' before '&'
../../third_party/icu/source/i18n/number_rounding.cpp(174): error C2511: 'icu_60::number::Rounder icu_60::number::CurrencyRounder::withCurrency(const int) const': overloaded member function not found in 'icu_60::number::CurrencyRounder'
e:\b\c\b\v8_win64_rel_ng\v8\third_party\icu\source\i18n\unicode/numberformatter.h(940): note: see declaration of 'icu_60::number::CurrencyRounder'
../../third_party/icu/source/i18n/number_rounding.cpp(176): error C2664: 'icu_60::number::Rounder icu_60::number::Rounder::withCurrency(const icu_60::CurrencyUnit &,UErrorCode &) const': cannot convert argument 1 from 'icu_60::number::CurrencyRounder (__cdecl *)(UCurrencyUsage)' to 'const icu_60::CurrencyUnit &'
../../third_party/icu/source/i18n/number_rounding.cpp(176): note: Reason: cannot convert from 'overloaded-function' to 'const icu_60::CurrencyUnit'
../../third_party/icu/source/i18n/number_rounding.cpp(176): note: No constructor could take the source type, or constructor overload resolution was ambiguous
../../third_party/icu/source/i18n/number_rounding.cpp(245): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
../../third_party/icu/source/i18n/number_rounding.cpp(245): error C2143: syntax error: missing ',' before '&'
../../third_party/icu/source/i18n/number_rounding.cpp(245): error C2511: 'void icu_60::number::Rounder::setLocaleData(const int)': overloaded member function not found in 'icu_60::number::Rounder'
e:\b\c\b\v8_win64_rel_ng\v8\third_party\icu\source\i18n\unicode/numberformatter.h(571): note: see declaration of 'icu_60::number::Rounder'
../../third_party/icu/source/i18n/number_rounding.cpp(246): error C2597: illegal reference to non-static member 'icu_60::number::Rounder::fType'
../../third_party/icu/source/i18n/number_rounding.cpp(247): error C2671: 'icu_60::number::Rounder::setLocaleData': static member functions do not have 'this' pointers
../../third_party/icu/source/i18n/number_rounding.cpp(247): error C2065: 'status': undeclared identifier

-------
Andy and Shane, 

Have you seen this failure on Windows when compiling ICU on Windows ?   I'll try it tomorrow, but I wonder if you have come across something like the above while building on Windows with MSVC. 

Line numbers in number_rounding.cpp are one larger than ICU 60RC because I explicitly included "unicode/currunit.h" (IWYU) for |CurrencyUnit| type  even though it's indirectly included by "unicode/numberformatter.h". 

MSVC emits errors above as if |CurrencyUnit| is replaced by an empty string in the following line in number_rounding.cpp (line 158 in ICU 60 RC): 

Rounder Rounder::withCurrency(const CurrencyUnit &currency, UErrorCode &status) const {

Comment 29 by sffc@google.com, Oct 23 2017

Mozilla also reported a build failure in this file on MSVC.  I prepared a
fix for the maintenance branch.  Can you try cherry-picking and see if it
fixes the problem?

Ticket: http://bugs.icu-project.org/trac/ticket/13411
Patch: https://codereview.appspot.com/332050043

Comment 30 by js...@chromium.org, Oct 23 2017

Blockedon: 777330

Comment 31 by js...@chromium.org, Oct 23 2017

Thanks, Shane !

The patch may need some changes to use ICU's namespace related macros to handle symbol versioning. 
In the meantime, the compilation went through with the patch, but now I got a linker warning (that is treated as an error). 

FAILED: icuuc.dll icuuc.dll.lib icuuc.dll.pdb 
E:/b/depot_tools/win_tools-2_7_6_bin/python/bin/python.exe ../../build/toolchain/win/tool_wrapper.py link-wrapper environment.x86 False link.exe /nologo /IMPLIB:./icuuc.dll.lib /DLL /OUT:./icuuc.dll /PDB:./icuuc.dll.pdb @./icuuc.dll.rsp
udata.obj : warning LNK4217: locally defined symbol _icudt60_dat imported in function "struct UDataMemory * __cdecl openCommonData(char const *,int,enum UErrorCode *)" (?openCommonData@@YAPAUUDataMemory@@PBDHPAW4UErrorCode@@@Z)
LINK : error LNK1218: warning treated as error; no output file generated

This may as well be a Chromium/v8 specific (dllspec(import|export) ).  I'll take a look. 

Comment 32 by js...@chromium.org, Oct 23 2017

> This may as well be a Chromium/v8 specific (dllspec(import|export) ).  I'll take a look. 

Yes, it is. I haven't yet applied one of Chromium-patches to Chromium's copy of ICU 60RC. When I do, it'll be resolved. 


Comment 33 by js...@chromium.org, Oct 23 2017

Blockedon: 774502

Comment 34 by js...@chromium.org, Oct 23 2017

Made a harfbuzz roll CL to 1.6.1. Turned out that Dominik has already been working on it ( bug 774502 ). 

Comment 35 by js...@chromium.org, Oct 23 2017

Windows build issue is resolved. 

v8 trybots are all green except for gyp trybot (which will be resolved when I update gyp file for ICU). 


Comment 36 by js...@chromium.org, Oct 24 2017

v8 bots are 100% green.

Chromium bots:

base_unittests

BreakIteratorTest.BreakWide32
BreakIteratorTest.BreakWide16
NumberFormattingTest.FormatPercent  <== CLDR issue in comment 26
BreakIteratorTest.BreakWord

Blink bots fail the following two tests:

editing/selection/modify_move/move-by-word-visually-inline-block-positioned-element.html
fast/forms/datetimelocal/datetimelocal-appearance-l10n.html
Project Member

Comment 37 by bugdroid1@chromium.org, Oct 24 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/8b002d1386bb5fc03967cee82401ad457369d883

commit 8b002d1386bb5fc03967cee82401ad457369d883
Author: Jungshik Shin <jshin@chromium.org>
Date: Tue Oct 24 22:05:47 2017

Harfbuzz: Cherry-pick an upstream CL for ICU 60

unorm API was deprecated in ICU 54 and ICU 60 turns on a deprecated
API warning which is treated as an error.

Cherry-pick an upstream CL (a00803c):
  https://cgit.freedesktop.org/harfbuzz/commit/?id=41b1984

Bug:  766816 
Test: Harfbuzz is compiled.
Change-Id: I842fe9fded5ef1dd8f0a49577c1054d808181705
Reviewed-on: https://chromium-review.googlesource.com/731971
Reviewed-by: Dominik Röttsches <drott@chromium.org>
Commit-Queue: Jungshik Shin <jshin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#511277}
[modify] https://crrev.com/8b002d1386bb5fc03967cee82401ad457369d883/third_party/harfbuzz-ng/README.chromium
[modify] https://crrev.com/8b002d1386bb5fc03967cee82401ad457369d883/third_party/harfbuzz-ng/src/hb-icu.cc

Project Member

Comment 38 by bugdroid1@chromium.org, Oct 25 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/afca0a393f23f0b7ef18d8c3d05e166c3012606d

commit afca0a393f23f0b7ef18d8c3d05e166c3012606d
Author: Jungshik Shin <jshin@chromium.org>
Date: Wed Oct 25 00:13:47 2017

Disallow 5 aspirational scripts in IDN display

UTS 31 (http://www.unicode.org/reports/tr31/#Aspirational_Use_Scripts )
used to list 5 scripts in Table 6 as 'aspirational scripts', but it
deprecated the category and moved 5 scripts to Table 7 for limited use
scripts.

Given this, there's no basis to treat those 5 scripts differently from
other limited use scripts. Note that Mozilla stopped allowding those 5
scripts in IDN display a while ago.

This is also necessary for updating ICU to version 60.

Bug:  724968 , 766816 
Test: components_unittests --gtest_filter=*IDN*
Change-Id: I32e7d030107ef90dd3b80f64849ab7398ae98985
Reviewed-on: https://chromium-review.googlesource.com/731871
Reviewed-by: Brett Wilson <brettw@chromium.org>
Commit-Queue: Jungshik Shin <jshin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#511316}
[modify] https://crrev.com/afca0a393f23f0b7ef18d8c3d05e166c3012606d/components/url_formatter/idn_spoof_checker.cc
[modify] https://crrev.com/afca0a393f23f0b7ef18d8c3d05e166c3012606d/components/url_formatter/url_formatter_unittest.cc

Project Member

Comment 39 by bugdroid1@chromium.org, Oct 25 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/d7e25c13117c0c94e35a5e9d8cf30c52d7ee4556

commit d7e25c13117c0c94e35a5e9d8cf30c52d7ee4556
Author: Jungshik Shin <jshin@chromium.org>
Date: Wed Oct 25 04:26:44 2017

Prepare for ICU 60 upgrade

Replace a depreaced unorm_* API with Normalizer2 API. While I'm at it,
I also switched to C++ API.

Cq_Include_Trybots: master.tryserver.blink:linux_trusty_blink_rel,mac10.12_blink_rel,win10_blink_rel;master.tryserver.chromium.android:android_blink_rel

Bug:  766816 
Test: base_unittests: ICUStringConversionsTest.ConvertToUtf8AndNormalize
Change-Id: Ic80b1cf2ce66f969dfb4b907f805ed5c8f565dab
Reviewed-on: https://chromium-review.googlesource.com/732192
Commit-Queue: Jungshik Shin <jshin@chromium.org>
Reviewed-by: Dominik Röttsches <drott@chromium.org>
Reviewed-by: Mark Mentovai <mark@chromium.org>
Cr-Commit-Position: refs/heads/master@{#511370}
[modify] https://crrev.com/d7e25c13117c0c94e35a5e9d8cf30c52d7ee4556/base/i18n/icu_string_conversions.cc
[modify] https://crrev.com/d7e25c13117c0c94e35a5e9d8cf30c52d7ee4556/third_party/WebKit/Source/platform/fonts/SimpleFontData.cpp
[modify] https://crrev.com/d7e25c13117c0c94e35a5e9d8cf30c52d7ee4556/third_party/WebKit/Source/platform/text/UnicodeUtilities.cpp

Comment 40 by js...@chromium.org, Oct 25 2017

All 4 failures in base_unittestss are taken care of:

BreakIteratorTest.BreakWide32
BreakIteratorTest.BreakWide16
NumberFormattingTest.FormatPercent  <== CLDR issue in comment 26
BreakIteratorTest.BreakWord

BreakIteratorTest is due to http://bugs.icu-project.org/trac/ticket/13447 , but I changed Chrome to deal with the change talked about in the ICU ticket because it's likely that Chrome's BreakIterator wrapper depends on an undocumented behavior. 

Comment 41 by js...@chromium.org, Oct 25 2017

Cc: thakis@chromium.org
Adding Nico to ask about clang on Windows. 

Chrome's clang-windows bot failed to build (I don't know why it didn't fail in earlier tries). 

Filed http://bugs.icu-project.org/trac/ticket/13448 .  I think it can be fixed easily in ICU. 

Nico, can you comment on my proposed fix in the above ICU bug? Thanks 

I left a comment. I forgot to set my name, so my name shows up as "anonymous".
Ah no, my comment got rejected. I resubmitted it with my @chromium address, now it seems to show up.

In case it still didn't really make it into the db, I'm pasting it here too: """Hi, in general checking for __clang__ and doing something else for clang than for msvc is not necessary and often wrong. Unless there's overwhelming evidence it's needed here, I'd try hard not to go that route.

The error says "explicit instantiation of 'icu_60::LocalPointerBase' must occur in namespace 'icu_60'" – what happens if you just move the explicit instantiation into namespace icu_60 like the diagnostic says? Does that not work with MSVC and clang?

(I'm guessing that's behind an _MSC_VER because exports and imports work differently on windows and non-windows, and that this _MSC_VER is really to detect windows, not msvc)"""

Comment 44 by js...@chromium.org, Oct 25 2017

Thank you, Nico !

The upstream followed your suggestion and I confirmed that it works with Chromium Windows bots. 

---------------

Now, I'm down to the following layout test failures:

1. common 

editing/selection/modify_move/move-by-word-visually-inline-block-positioned-element.html

2. macOS:

virtual/mojo-loading/http/tests/devtools/console/console-retain-autocomplete-on-typing.html
 

3. Linux:

fast/forms/datetimelocal/datetimelocal-appearance-l10n.html

Linux only one (3) is easy. I have to apply Google-specific locale data patch (once Google's ICU get stabilized after ICU 60 release on November 1st). The failure is due to 'ampm' markers in Hindi. Google and Chromium want to use 'AM' or 'PM' instead of Hindi words for them. 

Mac only one: I have yet to take a look (I need to set up my macOS build system again after losing a desktop). 

The first one (common to all platforms): It's a bit mystery. Apparently, it's triggered by a word breakiterator change, but I haven't yet found a culprit. 

And, IANA tzdb has to be updated to 2017c, but the upstream ICU 60 release will have that change, too (Nov 1st). 
Cc: -nedngu...@google.com

Comment 46 by js...@chromium.org, Oct 26 2017

Blockedon: -774502

Comment 47 by js...@chromium.org, Oct 26 2017

Cc: -sullivan@chromium.org yoichio@chromium.org
The macOS-only failure is gone. 

So, the only remaining failure for which I don't have a resolution is 

editing/selection/modify_move/move-by-word-visually-inline-block-positioned-element.html

I'm not sure exactly what that test does.  

yoichio@ : could you help me with diagnosing this failure I got when ICU was rolled to 02218e5 (ICU 60 RC) ? Thanks .

I got this output. It appears that word break iterator didn't work as expected. 

----------------
FAIL d_1 assert_equals: wordBreaks.length expected 19 but got 20
------------------

The input string seems to be 

[d_1, 0][d_1, 6][d_2, 0][d_2, 4][d_3, 0][d_3, 4][d_4, 0][d_4, 5][d_4, 8][d_5, 0][d_5, 5][d_5, 8][d_6, 0][d_6, 5][d_6, 8][d_7, 0][d_7, 5][d_7, 8][d_7, 16]

There are 19 pairs of brackets, but there are a lot more word breaks than 19 in the input string. So, where does 20 come from? 
I must be missing something as to how selection.modify('move', <dir>, 'word') is supposed to work. 
Project Member

Comment 48 by bugdroid1@chromium.org, Oct 26 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/overlays/chromiumos-overlay/+/544f28589b405677a4853462feb3648413a3f7ca

commit 544f28589b405677a4853462feb3648413a3f7ca
Author: Jungshik Shin <jshin@chromium.org>
Date: Thu Oct 26 22:57:46 2017

Update Harfbuzz to 1.6.2

Along with improvements since 1.5.1, 1.6.2 is
necessary for ICU 60 update.

BUG= chromium:774502 ,  chromium:766816 
TEST=emerge-${BOARD} harfbuzz
TEST=cros tryjob -g 736711 chromiumos-sdk   amd64-generic-full  arm-generic-full
Change-Id: I1bd7f570c0b2ae46f2aa145f5f67d3a17a3808ad
Reviewed-on: https://chromium-review.googlesource.com/736711
Commit-Ready: Jungshik Shin <jshin@chromium.org>
Tested-by: Jungshik Shin <jshin@chromium.org>
Reviewed-by: Dan Erat <derat@chromium.org>
Reviewed-by: Dominik Röttsches <drott@chromium.org>
Reviewed-by: Mike Frysinger <vapier@chromium.org>

[delete] https://crrev.com/fbf71160b9f18ec46d24c706eedcb54c1e6ac19d/media-libs/harfbuzz/harfbuzz-1.5.1-r1.ebuild
[rename] https://crrev.com/544f28589b405677a4853462feb3648413a3f7ca/media-libs/harfbuzz/harfbuzz-1.6.2.ebuild
[add] https://crrev.com/544f28589b405677a4853462feb3648413a3f7ca/media-libs/harfbuzz/harfbuzz-1.6.2-r1.ebuild
[modify] https://crrev.com/544f28589b405677a4853462feb3648413a3f7ca/media-libs/harfbuzz/Manifest

I'm not an original author of that test. I agree that the test is still
ugly to understand. 
Since it looks that the test confirm where cursor moves using selection.modify,
I recommend you rewriting the test with |selection_test|(see LayoutTests/editing/assert_selection.html) like:
<!doctype html>
<script src="../resources/testharness.js"></script>
<script src="../resources/testharnessreport.js"></script>
<script src="assert_selection.js"></script>
<script>
function move_forward_word(selection) {
  selection.modify('move', 'forward', 'word') 
}
selection_test(
  '<div style="display:inline-block">|begin start</div>',
   move_forward_word,
  '<div style="display:inline-block">begin| start</div>');
selection_test(
  '<div style="display:inline-block">b|egin start</div>',
   move_forward_word,
  '<div style="display:inline-block">begin| start</div>');
...

Comment 50 by pkl@chromium.org, Oct 30 2017

Components: UI>Internationalization

Comment 51 by js...@chromium.org, Oct 31 2017

re: comment 49. 
Thank you for the reply. 

> I recommend you rewriting the test with |selection_test|

Well, without knowing the intent of the original test, I can't rewrite it. Do you know who wrote the test? (well, I can track it down, I guess). 


What I don't understand is why the following input string is expected to have only 19 word-breaks. On macOS, with 'option + right-arrow', it takes me a lot more than 19 'move-by-word's to go from the beginning to the end. So, I must be missing something about 'move-by-word'. 

[d_1, 0][d_1, 6][d_2, 0][d_2, 4][d_3, 0][d_3, 4][d_4, 0][d_4, 5][d_4, 8][d_5, 0][d_5, 5][d_5, 8][d_6, 0][d_6, 5][d_6, 8][d_7, 0][d_7, 5][d_7, 8][d_7, 16]

Comment 52 by js...@chromium.org, Oct 31 2017

I found the original author. I'll ask. 

------

For my own record:

https://bug-78856-attachments.webkit.org/attachment.cgi?id=132121

git log for the test file:  https://goo.gl/f1JXb4


Comment 53 by js...@chromium.org, Oct 31 2017

https://goo.gl/Ev3vLn  ( LayoutTests/editing/selection/modify_move/move-by-word-visually-multi-space.html ) has a comment explaining the title attribute is for. 



Comment 54 by js...@chromium.org, Oct 31 2017

https://cs.chromium.org/chromium/src/third_party/WebKit/Source/core/layout/line/AbstractInlineTextBox.cpp  has this. 


-----------
  String text = this->GetText();
  int len = text.length();
  TextBreakIterator* iterator = WordBreakIterator(text, 0, len);

  // FIXME: When  http://crbug.com/411764  is fixed, replace this with an ASSERT.
  if (!iterator)
    return;

  int pos = iterator->first();
  while (pos >= 0 && pos < len) {
    int next = iterator->next();
    if (IsWordTextBreak(iterator))
      words.push_back(WordBoundaries(pos, next));
    pos = next;
  }
--------------

http://bugs.icu-project.org/trac/ticket/13447  is also relevant. 

|IsWordTextBreak| just checks for rulestatus != WORD_NONE. 

Comment 55 by js...@chromium.org, Oct 31 2017


Perhaps, this is more relevant (the ICU issue above is still relevant)

bool IsLogicalStartOfWord(TextBreakIterator* iter,
                          int position,
                          bool hard_line_break) {
  bool boundary = hard_line_break ? true : iter->isBoundary(position);
  if (!boundary)
    return false;

  iter->following(position);
  // isWordTextBreak returns true after moving across a word and false after
  // moving across a punctuation/space.
  return IsWordTextBreak(iter);
}

Comment 56 by js...@chromium.org, Oct 31 2017

editing/selection/modify_move/move-by-word-visually-inline-block-positioned-element.html
 : this one is fixed as well with a slight adjustment in Blink to work with ICU 60. 

So, ICU can be rolled to 60.1 once the upstream has the final 60.1 and I apply Google-specific locale data patch on top of it. 


Project Member

Comment 57 by bugdroid1@chromium.org, Nov 6 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/62ab790a0c8c7f510395476cc2ffa682e3806173

commit 62ab790a0c8c7f510395476cc2ffa682e3806173
Author: Mark Mentovai <mark@chromium.org>
Date: Mon Nov 06 22:26:09 2017

Use ICU 60.1 as the basis for base/third_party/icu

This involves a subtle behavior change, which will also be picked up in
//third_party/icu when it’s upgraded to ICU 60.1: illegal UTF-8
subsequences may now decode to more U+FFFD (replacement character)
characters than previously. Test expectations are adjusted accordingly.

More information about this behavior change:

https://sourceforge.net/p/icu/mailman/message/35990833/
https://ssl.icu-project.org/trac/changeset/40455
https://ssl.icu-project.org/trac/ticket/13311

Bug:  777950 ,  766816 
Change-Id: Ie7724fe627f61fbab941a5013c2ae2c821bb45fe
Reviewed-on: https://chromium-review.googlesource.com/753783
Reviewed-by: Jungshik Shin <jshin@chromium.org>
Reviewed-by: Brett Wilson <brettw@chromium.org>
Commit-Queue: Mark Mentovai <mark@chromium.org>
Cr-Commit-Position: refs/heads/master@{#514257}
[modify] https://crrev.com/62ab790a0c8c7f510395476cc2ffa682e3806173/base/strings/utf_offset_string_conversions_unittest.cc
[modify] https://crrev.com/62ab790a0c8c7f510395476cc2ffa682e3806173/base/strings/utf_string_conversions_unittest.cc
[modify] https://crrev.com/62ab790a0c8c7f510395476cc2ffa682e3806173/base/third_party/icu/LICENSE
[modify] https://crrev.com/62ab790a0c8c7f510395476cc2ffa682e3806173/base/third_party/icu/README.chromium
[modify] https://crrev.com/62ab790a0c8c7f510395476cc2ffa682e3806173/base/third_party/icu/icu_utf.cc
[modify] https://crrev.com/62ab790a0c8c7f510395476cc2ffa682e3806173/base/third_party/icu/icu_utf.h
[modify] https://crrev.com/62ab790a0c8c7f510395476cc2ffa682e3806173/url/url_canon_unittest.cc

Project Member

Comment 58 by bugdroid1@chromium.org, Nov 7 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/deps/icu.git/+/b31896655a701874d13e70cc24bca95e3e66a991

commit b31896655a701874d13e70cc24bca95e3e66a991
Author: Jungshik Shin <jshin@chromium.org>
Date: Tue Nov 07 19:22:11 2017

Update ICU to 60.1 + local patches

What's new in ICU 60.1:
  - Unicode 10.0 (including Emoji 5.0)
  - CLDR 32 (locale data; http://cldr.unicode.org/index/downloads/cldr-32 )
  - Smaller rule file size for BreakIterator (no more reverse rules)
  - A new number formatting API
  - Malformed UTF-8 sequences are handled per W3C Encoding Standard
  - See http://site.icu-project.org/download/60 for more details.

In addition, the following changes are made:

* Add more locale variants for en,fr,de,it,pt,nl,ru,ar

* Add the minimum locale data for Osage and Chakma

* Apply locale data patches (Google and Chromium)

* Apply build-related and break iterator patches:
  wpo.patch
  vscomp.patch
  data.build.win.patch
  data_symb.patch
  cjdict.patch
  khmer-dictbe.patch
  wordbrk.patch
  patches/data.build.patch

* Update BUILD.gn and gyp files.

* Data file size (25 ~ 130kB smaller than the latest 59.1)
  android/icudtl.dat 6499904
  common/icudtl.dat 10170896
  ios/icudtl.dat 6486240

The update steps are recorded in
https://chromium.googlesource.com/chromium/deps/icu/+log/f88520f..1034c7e5 .


Bug:  766816 
Test: None (DEPS roll CL will have test specified).
Change-Id: I9144bb37464eec1f282f40f9f2d28b6306511083
Reviewed-on: https://chromium-review.googlesource.com/756237
Reviewed-by: Mark Mentovai <mark@chromium.org>

[modify] https://crrev.com/b31896655a701874d13e70cc24bca95e3e66a991/APIChangeReport.html
[modify] https://crrev.com/b31896655a701874d13e70cc24bca95e3e66a991/BUILD.gn
[modify] https://crrev.com/b31896655a701874d13e70cc24bca95e3e66a991/LICENSE
[modify] https://crrev.com/b31896655a701874d13e70cc24bca95e3e66a991/README.chromium
[modify] https://crrev.com/b31896655a701874d13e70cc24bca95e3e66a991/android/brkitr.patch
[modify] https://crrev.com/b31896655a701874d13e70cc24bca95e3e66a991/android/icudtl.dat
[modify] https://crrev.com/b31896655a701874d13e70cc24bca95e3e66a991/common/icudtb.dat
[modify] https://crrev.com/b31896655a701874d13e70cc24bca95e3e66a991/common/icudtl.dat
[modify] https://crrev.com/b31896655a701874d13e70cc24bca95e3e66a991/icu.gyp
[modify] https://crrev.com/b31896655a701874d13e70cc24bca95e3e66a991/icu.gypi
[modify] https://crrev.com/b31896655a701874d13e70cc24bca95e3e66a991/ios/icudtl.dat
[delete] https://crrev.com/4b5a7240d2dfa0cb5627f20a26ceffd67930d134/patches/collator_range.patch
[modify] https://crrev.com/b31896655a701874d13e70cc24bca95e3e66a991/patches/data.build.win.patch
[delete] https://crrev.com/4b5a7240d2dfa0cb5627f20a26ceffd67930d134/patches/fuchsia.patch
[delete] https://crrev.com/4b5a7240d2dfa0cb5627f20a26ceffd67930d134/patches/han_script.patch
[modify] https://crrev.com/b31896655a701874d13e70cc24bca95e3e66a991/patches/khmer-dictbe.patch
[delete] https://crrev.com/4b5a7240d2dfa0cb5627f20a26ceffd67930d134/patches/linebrk.patch
[delete] https://crrev.com/4b5a7240d2dfa0cb5627f20a26ceffd67930d134/patches/loc_keyvalue.patch
[modify] https://crrev.com/b31896655a701874d13e70cc24bca95e3e66a991/patches/locale1.patch
[modify] https://crrev.com/b31896655a701874d13e70cc24bca95e3e66a991/patches/locale_google.patch
[delete] https://crrev.com/4b5a7240d2dfa0cb5627f20a26ceffd67930d134/patches/msvc4229.patch
[delete] https://crrev.com/4b5a7240d2dfa0cb5627f20a26ceffd67930d134/patches/string_literal_charptr.patch
[delete] https://crrev.com/4b5a7240d2dfa0cb5627f20a26ceffd67930d134/patches/timezone_detection.patch
[delete] https://crrev.com/4b5a7240d2dfa0cb5627f20a26ceffd67930d134/patches/tzdbname.patch
[delete] https://crrev.com/4b5a7240d2dfa0cb5627f20a26ceffd67930d134/patches/ucase_utf8.patch
[delete] https://crrev.com/4b5a7240d2dfa0cb5627f20a26ceffd67930d134/patches/ucurr_locale.patch
[delete] https://crrev.com/4b5a7240d2dfa0cb5627f20a26ceffd67930d134/patches/uloc_buffer_overrun.patch
[modify] https://crrev.com/b31896655a701874d13e70cc24bca95e3e66a991/patches/wordbrk.patch
[modify] https://crrev.com/b31896655a701874d13e70cc24bca95e3e66a991/patches/wpo.patch
[modify] https://crrev.com/b31896655a701874d13e70cc24bca95e3e66a991/readme.html
[modify] https://crrev.com/b31896655a701874d13e70cc24bca95e3e66a991/scripts/accept_lang.list
[modify] https://crrev.com/b31896655a701874d13e70cc24bca95e3e66a991/scripts/data_files_to_preserve.txt
[add] https://crrev.com/b31896655a701874d13e70cc24bca95e3e66a991/scripts/make_data_all.sh
[modify] https://crrev.com/b31896655a701874d13e70cc24bca95e3e66a991/scripts/update.sh
[modify] https://crrev.com/b31896655a701874d13e70cc24bca95e3e66a991/source/Doxyfile.in
[modify] https://crrev.com/b31896655a701874d13e70cc24bca95e3e66a991/source/Makefile.in
[modify] https://crrev.com/b31896655a701874d13e70cc24bca95e3e66a991/source/common/Makefile.in
[modify] https://crrev.com/b31896655a701874d13e70cc24bca95e3e66a991/source/common/bmpset.cpp
[modify] https://crrev.com/b31896655a701874d13e70cc24bca95e3e66a991/source/common/bmpset.h
[modify] https://crrev.com/b31896655a701874d13e70cc24bca95e3e66a991/source/common/brkeng.cpp
[modify] https://crrev.com/b31896655a701874d13e70cc24bca95e3e66a991/source/common/brkeng.h
[modify] https://crrev.com/b31896655a701874d13e70cc24bca95e3e66a991/source/common/brkiter.cpp
[add] https://crrev.com/b31896655a701874d13e70cc24bca95e3e66a991/source/common/bytesinkutil.cpp
[add] https://crrev.com/b31896655a701874d13e70cc24bca95e3e66a991/source/common/bytesinkutil.h
[modify] https://crrev.com/b31896655a701874d13e70cc24bca95e3e66a991/source/common/bytestream.cpp
[modify] https://crrev.com/b31896655a701874d13e70cc24bca95e3e66a991/source/common/caniter.cpp
[modify] https://crrev.com/b31896655a701874d13e70cc24bca95e3e66a991/source/common/cmemory.h
[modify] https://crrev.com/b31896655a701874d13e70cc24bca95e3e66a991/source/common/dictbe.cpp
[modify] https://crrev.com/b31896655a701874d13e70cc24bca95e3e66a991/source/common/dictbe.h
[modify] https://crrev.com/b31896655a701874d13e70cc24bca95e3e66a991/source/common/edits.cpp
[modify] https://crrev.com/b31896655a701874d13e70cc24bca95e3e66a991/source/common/filteredbrk.cpp
[modify] https://crrev.com/b31896655a701874d13e70cc24bca95e3e66a991/source/common/filterednormalizer2.cpp
[modify] https://crrev.com/b31896655a701874d13e70cc24bca95e3e66a991/source/common/hash.h
[modify] https://crrev.com/b31896655a701874d13e70cc24bca95e3e66a991/source/common/listformatter.cpp
[modify] https://crrev.com/b31896655a701874d13e70cc24bca95e3e66a991/source/common/loadednormalizer2impl.cpp
[modify] https://crrev.com/b31896655a701874d13e70cc24bca95e3e66a991/source/common/locavailable.cpp
[modify] https://crrev.com/b31896655a701874d13e70cc24bca95e3e66a991/source/common/locdispnames.cpp
[modify] https://crrev.com/b31896655a701874d13e70cc24bca95e3e66a991/source/common/locdspnm.cpp
[modify] https://crrev.com/b31896655a701874d13e70cc24bca95e3e66a991/source/common/loclikely.cpp
[modify] https://crrev.com/b31896655a701874d13e70cc24bca95e3e66a991/source/common/locmap.cpp
[modify] https://crrev.com/b31896655a701874d13e70cc24bca95e3e66a991/source/common/norm2_nfc_data.h
[modify] https://crrev.com/b31896655a701874d13e70cc24bca95e3e66a991/source/common/norm2allmodes.h
[modify] https://crrev.com/b31896655a701874d13e70cc24bca95e3e66a991/source/common/normalizer2.cpp
[modify] https://crrev.com/b31896655a701874d13e70cc24bca95e3e66a991/source/common/normalizer2impl.cpp
[modify] https://crrev.com/b31896655a701874d13e70cc24bca95e3e66a991/source/common/normalizer2impl.h
[modify] https://crrev.com/b31896655a701874d13e70cc24bca95e3e66a991/source/common/propname_data.h
[modify] https://crrev.com/b31896655a701874d13e70cc24bca95e3e66a991/source/common/putil.cpp
[modify] https://crrev.com/b31896655a701874d13e70cc24bca95e3e66a991/source/common/putilimp.h
[modify] https://crrev.com/b31896655a701874d13e70cc24bca95e3e66a991/source/common/rbbi.cpp
[add] https://crrev.com/b31896655a701874d13e70cc24bca95e3e66a991/source/common/rbbi_cache.cpp
[add] https://crrev.com/b31896655a701874d13e70cc24bca95e3e66a991/source/common/rbbi_cache.h
[modify] https://crrev.com/b31896655a701874d13e70cc24bca95e3e66a991/source/common/rbbidata.cpp
[modify] https://crrev.com/b31896655a701874d13e70cc24bca95e3e66a991/source/common/rbbidata.h
[modify] https://crrev.com/b31896655a701874d13e70cc24bca95e3e66a991/source/common/rbbirb.cpp
[modify] https://crrev.com/b31896655a701874d13e70cc24bca95e3e66a991/source/common/rbbirb.h
[modify] https://crrev.com/b31896655a701874d13e70cc24bca95e3e66a991/source/common/rbbiscan.cpp
[modify] https://crrev.com/b31896655a701874d13e70cc24bca95e3e66a991/source/common/rbbisetb.cpp
[modify] https://crrev.com/b31896655a701874d13e70cc24bca95e3e66a991/source/common/rbbisetb.h
[modify] https://crrev.com/b31896655a701874d13e70cc24bca95e3e66a991/source/common/ubidi_props_data.h
[modify] https://crrev.com/b31896655a701874d13e70cc24bca95e3e66a991/source/common/ucase.h
[modify] https://crrev.com/b31896655a701874d13e70cc24bca95e3e66a991/source/common/ucase_props_data.h
[modify] https://crrev.com/b31896655a701874d13e70cc24bca95e3e66a991/source/common/ucasemap.cpp
[modify] https://crrev.com/b31896655a701874d13e70cc24bca95e3e66a991/source/common/ucasemap_imp.h
[modify] https://crrev.com/b31896655a701874d13e70cc24bca95e3e66a991/source/common/ucasemap_titlecase_brkiter.cpp
[modify] https://crrev.com/b31896655a701874d13e70cc24bca95e3e66a991/source/common/uchar.cpp
[modify] https://crrev.com/b31896655a701874d13e70cc24bca95e3e66a991/source/common/uchar_props_data.h
[modify] https://crrev.com/b31896655a701874d13e70cc24bca95e3e66a991/source/common/ucharstriebuilder.cpp
[modify] https://crrev.com/b31896655a701874d13e70cc24bca95e3e66a991/source/common/ucln_cmn.h
[modify] https://crrev.com/b31896655a701874d13e70cc24bca95e3e66a991/source/common/ucnv_ct.cpp
[modify] https://crrev.com/b31896655a701874d13e70cc24bca95e3e66a991/source/common/ucnv_lmb.cpp
[modify] https://crrev.com/b31896655a701874d13e70cc24bca95e3e66a991/source/common/ucnv_u16.cpp
[modify] https://crrev.com/b31896655a701874d13e70cc24bca95e3e66a991/source/common/ucnv_u8.cpp
[modify] https://crrev.com/b31896655a701874d13e70cc24bca95e3e66a991/source/common/ucnvlat1.cpp
[modify] https://crrev.com/b31896655a701874d13e70cc24bca95e3e66a991/source/common/ucnvmbcs.cpp
[modify] https://crrev.com/b31896655a701874d13e70cc24bca95e3e66a991/source/common/ucurr.cpp
[modify] https://crrev.com/b31896655a701874d13e70cc24bca95e3e66a991/source/common/udata.cpp
[modify] https://crrev.com/b31896655a701874d13e70cc24bca95e3e66a991/source/common/uhash.cpp
[modify] https://crrev.com/b31896655a701874d13e70cc24bca95e3e66a991/source/common/uhash.h
[modify] https://crrev.com/b31896655a701874d13e70cc24bca95e3e66a991/source/common/uinvchar.cpp
[modify] https://crrev.com/b31896655a701874d13e70cc24bca95e3e66a991/source/common/ulist.cpp
[modify] https://crrev.com/b31896655a701874d13e70cc24bca95e3e66a991/source/common/uloc.cpp
[modify] https://crrev.com/b31896655a701874d13e70cc24bca95e3e66a991/source/common/uloc_tag.cpp
[modify] https://crrev.com/b31896655a701874d13e70cc24bca95e3e66a991/source/common/umapfile.cpp
[modify] https://crrev.com/b31896655a701874d13e70cc24bca95e3e66a991/source/common/umutex.cpp
[modify] https://crrev.com/b31896655a701874d13e70cc24bca95e3e66a991/source/common/unicode/brkiter.h
[modify] https://crrev.com/b31896655a701874d13e70cc24bca95e3e66a991/source/common/unicode/bytestream.h
[modify] https://crrev.com/b31896655a701874d13e70cc24bca95e3e66a991/source/common/unicode/casemap.h
[modify] https://crrev.com/b31896655a701874d13e70cc24bca95e3e66a991/source/common/unicode/char16ptr.h
[modify] https://crrev.com/b31896655a701874d13e70cc24bca95e3e66a991/source/common/unicode/docmain.h
[modify] https://crrev.com/b31896655a701874d13e70cc24bca95e3e66a991/source/common/unicode/edits.h
[modify] https://crrev.com/b31896655a701874d13e70cc24bca95e3e66a991/source/common/unicode/filteredbrk.h
[modify] https://crrev.com/b31896655a701874d13e70cc24bca95e3e66a991/source/common/unicode/localpointer.h
[modify] https://crrev.com/b31896655a701874d13e70cc24bca95e3e66a991/source/common/unicode/locid.h
[modify] https://crrev.com/b31896655a701874d13e70cc24bca95e3e66a991/source/common/unicode/normalizer2.h
[modify] https://crrev.com/b31896655a701874d13e70cc24bca95e3e66a991/source/common/unicode/platform.h
[modify] https://crrev.com/b31896655a701874d13e70cc24bca95e3e66a991/source/common/unicode/rbbi.h
[modify] https://crrev.com/b31896655a701874d13e70cc24bca95e3e66a991/source/common/unicode/simpleformatter.h
[add] https://crrev.com/b31896655a701874d13e70cc24bca95e3e66a991/source/common/unicode/stringoptions.h
[modify] https://crrev.com/b31896655a701874d13e70cc24bca95e3e66a991/source/common/unicode/stringtriebuilder.h
[modify] https://crrev.com/b31896655a701874d13e70cc24bca95e3e66a991/source/common/unicode/ubiditransform.h
[modify] https://crrev.com/b31896655a701874d13e70cc24bca95e3e66a991/source/common/unicode/ubrk.h
[modify] https://crrev.com/b31896655a701874d13e70cc24bca95e3e66a991/source/common/unicode/ucasemap.h
[modify] https://crrev.com/b31896655a701874d13e70cc24bca95e3e66a991/source/common/unicode/uchar.h
[modify] https://crrev.com/b31896655a701874d13e70cc24bca95e3e66a991/source/common/unicode/uclean.h
[modify] https://crrev.com/b31896655a701874d13e70cc24bca95e3e66a991/source/common/unicode/uconfig.h
[modify] https://crrev.com/b31896655a701874d13e70cc24bca95e3e66a991/source/common/unicode/udisplaycontext.h
[modify] https://crrev.com/b31896655a701874d13e70cc24bca95e3e66a991/source/common/unicode/unistr.h
[modify] https://crrev.com/b31896655a701874d13e70cc24bca95e3e66a991/source/common/unicode/unorm.h
[modify] https://crrev.com/b31896655a701874d13e70cc24bca95e3e66a991/source/common/unicode/unorm2.h
[modify] https://crrev.com/b31896655a701874d13e70cc24bca95e3e66a991/source/common/unicode/urename.h
[modify] https://crrev.com/b31896655a701874d13e70cc24bca95e3e66a991/source/common/unicode/uscript.h
[modify] https://crrev.com/b31896655a701874d13e70cc24bca95e3e66a991/source/common/unicode/ustring.h
[modify] https://crrev.com/b31896655a701874d13e70cc24bca95e3e66a991/source/common/unicode/utext.h
[modify] https://crrev.com/b31896655a701874d13e70cc24bca95e3e66a991/source/common/unicode/utf.h
[modify] https://crrev.com/b31896655a701874d13e70cc24bca95e3e66a991/source/common/unicode/utf16.h
[modify] https://crrev.com/b31896655a701874d13e70cc24bca95e3e66a991/source/common/unicode/utf8.h
[modify] https://crrev.com/b31896655a701874d13e70cc24bca95e3e66a991/source/common/unicode/utf_old.h
[modify] https://crrev.com/b31896655a701874d13e70cc24bca95e3e66a991/source/common/unicode/uvernum.h
[modify] https://crrev.com/b31896655a701874d13e70cc24bca95e3e66a991/source/common/unifiedcache.cpp
[modify] https://crrev.com/b31896655a701874d13e70cc24bca95e3e66a991/source/common/unifiedcache.h
[modify] https://crrev.com/b31896655a701874d13e70cc24bca95e3e66a991/source/common/uniset_props.cpp
[modify] https://crrev.com/b31896655a701874d13e70cc24bca95e3e66a991/source/common/unisetspan.cpp
[modify] https://crrev.com/b31896655a701874d13e70cc24bca95e3e66a991/source/common/unistr.cpp
[modify] https://crrev.com/b31896655a701874d13e70cc24bca95e3e66a991/source/common/unistr_case.cpp
[modify] https://crrev.com/b31896655a701874d13e70cc24bca95e3e66a991/source/common/unistr_titlecase_brkiter.cpp
[modify] https://crrev.com/b31896655a701874d13e70cc24bca95e3e66a991/source/common/uprops.cpp
[modify] https://crrev.com/b31896655a701874d13e70cc24bca95e3e66a991/source/common/uprops.h
[modify] https://crrev.com/b31896655a701874d13e70cc24bca95e3e66a991/source/common/uresbund.cpp
[modify] https://crrev.com/b31896655a701874d13e70cc24bca95e3e66a991/source/common/uscript_props.cpp
[modify] https://crrev.com/b31896655a701874d13e70cc24bca95e3e66a991/source/common/ustr_imp.h
[modify] https://crrev.com/b31896655a701874d13e70cc24bca95e3e66a991/source/common/ustr_titlecase_brkiter.cpp
[modify] https://crrev.com/b31896655a701874d13e70cc24bca95e3e66a991/source/common/ustrcase.cpp
[modify] https://crrev.com/b31896655a701874d13e70cc24bca95e3e66a991/source/common/ustrtrns.cpp
[modify] https://crrev.com/b31896655a701874d13e70cc24bca95e3e66a991/source/common/utext.cpp
[modify] https://crrev.com/b31896655a701874d13e70cc24bca95e3e66a991/source/common/utf_impl.cpp
[modify] https://crrev.com/b31896655a701874d13e70cc24bca95e3e66a991/source/common/utrie2.cpp
[modify] https://crrev.com/b31896655a701874d13e70cc24bca95e3e66a991/source/common/utrie2.h
[modify] https://crrev.com/b31896655a701874d13e70cc24bca95e3e66a991/source/common/uts46.cpp
[modify] https://crrev.com/b31896655a701874d13e70cc24bca95e3e66a991/source/config/dist.mk
[modify] https://crrev.com/b31896655a701874d13e70cc24bca95e3e66a991/source/config/mh-mingw
[modify] https://crrev.com/b31896655a701874d13e70cc24bca95e3e66a991/source/config/mh-mingw64
[modify] https://crrev.com/b31896655a701874d13e70cc24bca95e3e66a991/source/configure
[modify] https://crrev.com/b31896655a701874d13e70cc24bca95e3e66a991/source/configure.ac
[modify] https://crrev.com/b31896655a701874d13e70cc24bca95e3e66a991/source/data/brkitr/brkfiles.mk
[modify] https://crrev.com/b31896655a701874d13e70cc24bca95e3e66a991/source/data/brkitr/root.txt
[modify] https://crrev.com/b31896655a701874d13e70cc24bca95e3e66a991/source/data/brkitr/rules/char.txt
[modify] https://crrev.com/b31896655a701874d13e70cc24bca95e3e66a991/source/data/brkitr/rules/line.txt
[modify] https://crrev.com/b31896655a701874d13e70cc24bca95e3e66a991/source/data/brkitr/rules/line_fi.txt
[modify] https://crrev.com/b31896655a701874d13e70cc24bca95e3e66a991/source/data/brkitr/rules/line_loose.txt
[modify] https://crrev.com/b31896655a701874d13e70cc24bca95e3e66a991/source/data/brkitr/rules/line_loose_cj.txt
[modify] https://crrev.com/b31896655a701874d13e70cc24bca95e3e66a991/source/data/brkitr/rules/line_loose_fi.txt
[modify] https://crrev.com/b31896655a701874d13e70cc24bca95e3e66a991/source/data/brkitr/rules/line_normal.txt
[modify] https://crrev.com/b31896655a701874d13e70cc24bca95e3e66a991/source/data/brkitr/rules/line_normal_cj.txt
[modify] https://crrev.com/b31896655a701874d13e70cc24bca95e3e66a991/source/data/brkitr/rules/line_normal_fi.txt
[modify] https://crrev.com/b31896655a701874d13e70cc24bca95e3e66a991/source/data/brkitr/rules/sent.txt
[modify] https://crrev.com/b31896655a701874d13e70cc24bca95e3e66a991/source/data/brkitr/rules/sent_el.txt
[modify] https://crrev.com/b31896655a701874d13e70cc24bca95e3e66a991/source/data/brkitr/rules/title.txt
[modify] https://crrev.com/b31896655a701874d13e70cc24bca95e3e66a991/source/data/brkitr/rules/word.txt
[modify] https://crrev.com/b31896655a701874d13e70cc24bca95e3e66a991/source/data/brkitr/rules/word_POSIX.txt
[modify] https://crrev.com/b31896655a701874d13e70cc24bca95e3e66a991/source/data/brkitr/zh_Hant.txt
[modify] https://crrev.com/b31896655a701874d13e70cc24bca95e3e66a991/source/data/build.xml
[modify] https://crrev.com/b31896655a701874d13e70cc24bca95e3e66a991/source/data/coll/af.txt
[modify] https://crrev.com/b31896655a701874d13e70cc24bca95e3e66a991/source/data/coll/am.txt
[modify] https://crrev.com/b31896655a701874d13e70cc24bca95e3e66a991/source/data/coll/ar.txt
[modify] https://crrev.com/b31896655a701874d13e70cc24bca95e3e66a991/source/data/coll/as.txt
[modify] https://crrev.com/b31896655a701874d13e70cc24bca95e3e66a991/source/data/coll/az.txt
[modify] https://crrev.com/b31896655a701874d13e70cc24bca95e3e66a991/source/data/coll/be.txt
[modify] https://crrev.com/b31896655a701874d13e70cc24bca95e3e66a991/source/data/coll/bg.txt
[modify] https://crrev.com/b31896655a701874d13e70cc24bca95e3e66a991/source/data/coll/bn.txt
[modify] https://crrev.com/b31896655a701874d13e70cc24bca95e3e66a991/source/data/coll/bs.txt
[modify] https://crrev.com/b31896655a701874d13e70cc24bca95e3e66a991/source/data/coll/bs_Cyrl.txt
[modify] https://crrev.com/b31896655a701874d13e70cc24bca95e3e66a991/source/data/coll/ca.txt
[modify] https://crrev.com/b31896655a701874d13e70cc24bca95e3e66a991/source/data/coll/chr.txt
[modify] https://crrev.com/b31896655a701874d13e70cc24bca95e3e66a991/source/data/coll/colfiles.mk
[modify] https://crrev.com/b31896655a701874d13e70cc24bca95e3e66a991/source/data/coll/collocal.mk
[modify] https://crrev.com/b31896655a701874d13e70cc24bca95e3e66a991/source/data/coll/cs.txt
[modify] https://crrev.com/b31896655a701874d13e70cc24bca95e3e66a991/source/data/coll/cy.txt
[modify] https://crrev.com/b31896655a701874d13e70cc24bca95e3e66a991/source/data/coll/da.txt
[modify] https://crrev.com/b31896655a701874d13e70cc24bca95e3e66a991/source/data/coll/de.txt
[modify] https://crrev.com/b31896655a701874d13e70cc24bca95e3e66a991/source/data/coll/de_AT.txt
[modify] https://crrev.com/b31896655a701874d13e70cc24bca95e3e66a991/source/data/coll/dsb.txt
[modify] https://crrev.com/b31896655a701874d13e70cc24bca95e3e66a991/source/data/coll/ee.txt
[modify] https://crrev.com/b31896655a701874d13e70cc24bca95e3e66a991/source/data/coll/el.txt
[modify] https://crrev.com/b31896655a701874d13e70cc24bca95e3e66a991/source/data/coll/en_US_POSIX.txt
[modify] https://crrev.com/b31896655a701874d13e70cc24bca95e3e66a991/source/data/coll/eo.txt
[modify] https://crrev.com/b31896655a701874d13e70cc24bca95e3e66a991/source/data/coll/es.txt
[modify] https://crrev.com/b31896655a701874d13e70cc24bca95e3e66a991/source/data/coll/et.txt
[modify] https://crrev.com/b31896655a701874d13e70cc24bca95e3e66a991/source/data/coll/fa.txt
[modify] https://crrev.com/b31896655a701874d13e70cc24bca95e3e66a991/source/data/coll/fa_AF.txt
[modify] https://crrev.com/b31896655a701874d13e70cc24bca95e3e66a991/source/data/coll/fi.txt
[modify] https://crrev.com/b31896655a701874d13e70cc24bca95e3e66a991/source/data/coll/fil.txt
[modify] https://crrev.com/b31896655a701874d13e70cc24bca95e3e66a991/source/data/coll/fo.txt
[modify] https://crrev.com/b31896655a701874d13e70cc24bca95e3e66a991/source/data/coll/fr_CA.txt
[modify] https://crrev.com/b31896655a701874d13e70cc24bca95e3e66a991/source/data/coll/gl.txt
[modify] https://crrev.com/b31896655a701874d13e70cc24bca95e3e66a991/source/data/coll/gu.txt
[modify] https://crrev.com/b31896655a701874d13e70cc24bca95e3e66a991/source/data/coll/ha.txt
[modify] https://crrev.com/b31896655a701874d13e70cc24bca95e3e66a991/source/data/coll/haw.txt
[modify] https://crrev.com/b31896655a701874d13e70cc24bca95e3e66a991/source/data/coll/he.txt
[modify] https://crrev.com/b31896655a701874d13e70cc24bca95e3e66a991/source/data/coll/hi.txt
[modify] https://crrev.com/b31896655a701874d13e70cc24bca95e3e66a991/source/data/coll/hr.txt
[modify] https://crrev.com/b31896655a701874d13e70cc24bca95e3e66a991/source/data/coll/hsb.txt
[modify] https://crrev.com/b31896655a701874d13e70cc24bca95e3e66a991/source/data/coll/hu.txt
[modify] https://crrev.com/b31896655a701874d13e70cc24bca95e3e66a991/source/data/coll/hy.txt
[modify] https://crrev.com/b31896655a701874d13e70cc24bca95e3e66a991/source/data/coll/ig.txt
[modify] https://crrev.com/b31896655a701874d13e70cc24bca95e3e66a991/source/data/coll/is.txt
[modify] https://crrev.com/b31896655a701874d13e70cc24bca95e3e66a991/source/data/coll/ja.txt
[modify] https://crrev.com/b31896655a701874d13e70cc24bca95e3e66a991/source/data/coll/ka.txt
[modify] https://crrev.com/b31896655a701874d13e70cc24bca95e3e66a991/source/data/coll/kk.txt
[modify] https://crrev.com/b31896655a701874d13e70cc24bca95e3e66a991/source/data/coll/kl.txt
[modify] https://crrev.com/b31896655a701874d13e70cc24bca95e3e66a991/source/data/coll/km.txt
[modify] https://crrev.com/b31896655a701874d13e70cc24bca95e3e66a991/source/data/coll/kn.txt
[modify] https://crrev.com/b31896655a701874d13e70cc24bca95e3e66a991/source/data/coll/ko.txt
[modify] https://crrev.com/b31896655a701874d13e70cc24bca95e3e66a991/source/data/coll/kok.txt
[modify] https://crrev.com/b31896655a701874d13e70cc24bca95e3e66a991/source/data/coll/ky.txt
[modify] https://crrev.com/b31896655a701874d13e70cc24bca95e3e66a991/source/data/coll/lkt.txt
[modify] https://crrev.com/b31896655a701874d13e70cc24bca95e3e66a991/source/data/coll/ln.txt
[modify] https://crrev.com/b31896655a701874d13e70cc24bca95e3e66a991/source/data/coll/lo.txt
[modify] https://crrev.com/b31896655a701874d13e70cc24bca95e3e66a991/source/data/coll/lt.txt
[modify] https://crrev.com/b31896655a701874d13e70cc24bca95e3e66a991/source/data/coll/lv.txt
[modify] https://crrev.com/b31896655a701874d13e70cc24bca95e3e66a991/source/data/coll/mk.txt
[modify] https://crrev.com/b31896655a701874d13e70cc24bca95e3e66a991/source/data/coll/ml.txt
[modify] https://crrev.co
Project Member

Comment 59 by bugdroid1@chromium.org, Nov 7 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/fd8c79294f00c46b0e1e0f5678e5a290af2f4ff3

commit fd8c79294f00c46b0e1e0f5678e5a290af2f4ff3
Author: Jungshik Shin <jshin@chromium.org>
Date: Tue Nov 07 20:59:31 2017

Disable format-currency during transition to ICU 60

Update the expected result for intl/number-format/format-currency
to match the output of ICU 60/CLDR 32.

Disable the test while ICU is rolled to ICU 60.1. This will be enabled
once v8 picks up the ICU roll to 60.1.

Bug:  chromium:766816 
Test: intl/numbuer-format/*
Cq-Include-Trybots: master.tryserver.v8:v8_linux_noi18n_rel_ng
Change-Id: Id6ffe149e9105ca050c6398d484437e1c88c2794
Reviewed-on: https://chromium-review.googlesource.com/756643
Reviewed-by: Adam Klein <adamk@chromium.org>
Commit-Queue: Jungshik Shin <jshin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#49206}
[modify] https://crrev.com/fd8c79294f00c46b0e1e0f5678e5a290af2f4ff3/test/intl/intl.status
[modify] https://crrev.com/fd8c79294f00c46b0e1e0f5678e5a290af2f4ff3/test/intl/number-format/format-currency.js

Project Member

Comment 60 by bugdroid1@chromium.org, Nov 8 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/befb16634bb440cf5442979ad262832b4cebd43e

commit befb16634bb440cf5442979ad262832b4cebd43e
Author: Jungshik Shin <jshin@chromium.org>
Date: Wed Nov 08 02:13:24 2017

Update ICU to version 60.1 + local patches

The expected results for a few tests are updated per new CLDR 32 locale data.
In addition, BreakIterator code in both base/i18n and Blink is adjusted NOT to 
depend on an undocumented behavior of the ICU BreakIterator behavior for going 
past the end of the input.

See https://chromium-review.googlesource.com/c/chromium/deps/icu/+/756237
for actual changes. 

The size impact: ICU data files got smaller by 25 ~ 130 KiB. 

Cq_Include_Trybots: master.tryserver.blink:linux_trusty_blink_rel,mac10.12_blink_rel,win10_blink_rel;master.tryserver.chromium.android:android_blink_rel

Bug:  766816 
Test: base_unittests:*Conv*,*Format*,*Break*
Test: components_unittests: *IDN*, *URL*, *Format*
Test: gfx_unittests: *Word*
Test: Blink tests, layout tests, accessibility_unittests: *Boundar*
Change-Id: I951a59ac26963e9e81341b32c95d5ac8f2f0d84c
Reviewed-on: https://chromium-review.googlesource.com/732193
Reviewed-by: Mark Mentovai <mark@chromium.org>
Reviewed-by: Dominik Röttsches <drott@chromium.org>
Reviewed-by: Yoshifumi Inoue <yosin@chromium.org>
Reviewed-by: Rouslan Solomakhin <rouslan@chromium.org>
Commit-Queue: Jungshik Shin <jshin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#514709}
[modify] https://crrev.com/befb16634bb440cf5442979ad262832b4cebd43e/DEPS
[modify] https://crrev.com/befb16634bb440cf5442979ad262832b4cebd43e/base/i18n/break_iterator.cc
[modify] https://crrev.com/befb16634bb440cf5442979ad262832b4cebd43e/base/i18n/number_formatting_unittest.cc
[modify] https://crrev.com/befb16634bb440cf5442979ad262832b4cebd43e/components/payments/core/currency_formatter_unittest.cc
[modify] https://crrev.com/befb16634bb440cf5442979ad262832b4cebd43e/third_party/WebKit/Source/core/editing/SelectionModifierWord.cpp
[modify] https://crrev.com/befb16634bb440cf5442979ad262832b4cebd43e/third_party/WebKit/Source/platform/text/TextBreakIterator.h

Project Member

Comment 61 by bugdroid1@chromium.org, Nov 8 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/494aa2e015182d5debc2aa1455184a34d5ca7840

commit 494aa2e015182d5debc2aa1455184a34d5ca7840
Author: Jungshik Shin <jshin@chromium.org>
Date: Wed Nov 08 19:37:50 2017

Reenable intl/number-format/format-currency test

Now that ICU 60.1 was autorolled in, reenable
number-format/format-currency test the expected result of which was
adjusted to match the output from ICU 60.1/CLDR 32.

Bug:  chromium:766816 
Test: intl/number-format/format-currency
Cq-Include-Trybots: master.tryserver.v8:v8_linux_noi18n_rel_ng
Change-Id: If58d493821d505b86202e134b9e2061504dd5e6a
Reviewed-on: https://chromium-review.googlesource.com/758027
Reviewed-by: Adam Klein <adamk@chromium.org>
Commit-Queue: Jungshik Shin <jshin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#49234}
[modify] https://crrev.com/494aa2e015182d5debc2aa1455184a34d5ca7840/test/intl/intl.status

Status: Fixed (was: Started)
Thanks everyone. Everything is in. 
For the record, jshin@ is also working on cherry-picking a bugfix patch on top of ICU 60.1 in Chromium: https://bugs.chromium.org/p/v8/issues/detail?id=4743#c58
Project Member

Comment 64 by bugdroid1@chromium.org, Dec 2 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/dc3b79aa88f9b77b7dc55c47e77b8f656598c45b

commit dc3b79aa88f9b77b7dc55c47e77b8f656598c45b
Author: Jungshik Shin <jshin@chromium.org>
Date: Sat Dec 02 00:26:26 2017

Update top domain skeletons for ICU 60

In ICU 60, the skeleton of 'w' is not 'vv' any more. It's just 'w'.
The top domain gperf file was regenerated with ICU 60.

Bug:  766816 
Test: components_unittests --gtest_filter=*IDN*
Change-Id: Ifde69a696f8b3062803745f8a9ad242ca4915549
Reviewed-on: https://chromium-review.googlesource.com/802765
Commit-Queue: Jungshik Shin <jshin@chromium.org>
Reviewed-by: Peter Kasting <pkasting@chromium.org>
Cr-Commit-Position: refs/heads/master@{#521148}
[modify] https://crrev.com/dc3b79aa88f9b77b7dc55c47e77b8f656598c45b/components/url_formatter/top_domains/alexa_skeletons.gperf
[modify] https://crrev.com/dc3b79aa88f9b77b7dc55c47e77b8f656598c45b/components/url_formatter/url_formatter_unittest.cc

Project Member

Comment 65 by bugdroid1@chromium.org, Dec 12 2017

Labels: merge-merged-3282
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/ef5c8da3bcd333db3068b1e1f386bf8738a4268b

commit ef5c8da3bcd333db3068b1e1f386bf8738a4268b
Author: Jungshik Shin <jshin@chromium.org>
Date: Tue Dec 12 07:30:16 2017

[M64 branch] Update top domain skeletons for ICU 60

In ICU 60, the skeleton of 'w' is not 'vv' any more. It's just 'w'.
The top domain gperf file was regenerated with ICU 60.

TBR=cmasso@chromium.org

Bug:  766816 , 791336 
Test: components_unittests --gtest_filter=*IDN*
Change-Id: Ifde69a696f8b3062803745f8a9ad242ca4915549
Reviewed-on: https://chromium-review.googlesource.com/802765
Commit-Queue: Jungshik Shin <jshin@chromium.org>
Reviewed-by: Peter Kasting <pkasting@chromium.org>
Cr-Original-Commit-Position: refs/heads/master@{#521148}(cherry picked from commit dc3b79aa88f9b77b7dc55c47e77b8f656598c45b)
Reviewed-on: https://chromium-review.googlesource.com/822051
Reviewed-by: Jungshik Shin <jshin@chromium.org>
Cr-Commit-Position: refs/branch-heads/3282@{#168}
Cr-Branched-From: 5fdc0fab22ce7efd32532ee989b223fa12f8171e-refs/heads/master@{#520840}
[modify] https://crrev.com/ef5c8da3bcd333db3068b1e1f386bf8738a4268b/components/url_formatter/top_domains/alexa_skeletons.gperf
[modify] https://crrev.com/ef5c8da3bcd333db3068b1e1f386bf8738a4268b/components/url_formatter/url_formatter_unittest.cc

Project Member

Comment 66 by bugdroid1@chromium.org, Jan 8 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/7b57f780f61ed3b19445a8c37e4b312a04cfbfb2

commit 7b57f780f61ed3b19445a8c37e4b312a04cfbfb2
Author: Mostyn Bramley-Moore <mostynb@vewd.com>
Date: Mon Jan 08 22:59:04 2018

don't include ICU license twice in chrome://credits

Mark one copy of ICU as NOT_SHIPPED.
Followup to https://chromium-review.googlesource.com/753783

Bug:  777950 ,  766816 
Change-Id: I86e6ba3253edb4535212dbbf148a04f97167d3d6
Reviewed-on: https://chromium-review.googlesource.com/854838
Commit-Queue: Mostyn Bramley-Moore <mostynb@vewd.com>
Reviewed-by: Mark Mentovai <mark@chromium.org>
Cr-Commit-Position: refs/heads/master@{#527797}
[modify] https://crrev.com/7b57f780f61ed3b19445a8c37e4b312a04cfbfb2/base/third_party/icu/README.chromium

Sign in to add a comment