Update ICU to 60.x when released |
|||||||||||||||||||
Issue descriptionICU 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)?
,
Sep 19 2017
,
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
,
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.
,
Sep 20 2017
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
,
Sep 20 2017
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
,
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.
,
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.
,
Sep 27 2017
Primiano, do you have any advice on how to include performance testing bots on a CL? Thank you!
,
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.
,
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.
,
Sep 28 2017
Oh, I found this https://chromium.googlesource.com/chromium/src/+/master/docs/speed/perf_trybots.md This should work for me.
,
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... ).
,
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.
,
Oct 2 2017
+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
,
Oct 3 2017
Yep, those page_cycler* tests have been replaced with loading.* tests.
,
Oct 3 2017
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 ....
,
Oct 4 2017
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.
,
Oct 12 2017
,
Oct 12 2017
,
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.
,
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).
,
Oct 21 2017
ICU roll CLs: v8: https://chromium-review.googlesource.com/c/v8/v8/+/731764 Chromium: https://chromium-review.googlesource.com/c/chromium/src/+/731190 Both just have been sent to trybots.
,
Oct 21 2017
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.
,
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.
,
Oct 23 2017
https://unicode.org/cldr/trac/ticket/10176#comment:7 : Farsi percent format unit test failure
,
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.
,
Oct 23 2017
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 ¤cy, UErrorCode &status) const {
,
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
,
Oct 23 2017
,
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.
,
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.
,
Oct 23 2017
,
Oct 23 2017
Made a harfbuzz roll CL to 1.6.1. Turned out that Dominik has already been working on it ( bug 774502 ).
,
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).
,
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
,
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
,
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
,
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
,
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.
,
Oct 25 2017
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
,
Oct 25 2017
I left a comment. I forgot to set my name, so my name shows up as "anonymous".
,
Oct 25 2017
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)"""
,
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).
,
Oct 25 2017
,
Oct 26 2017
,
Oct 26 2017
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.
,
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
,
Oct 27 2017
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>');
...
,
Oct 30 2017
,
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]
,
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
,
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.
,
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.
,
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);
}
,
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.
,
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
,
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
,
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
,
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
,
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
,
Nov 8 2017
Thanks everyone. Everything is in.
,
Nov 9 2017
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
,
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
,
Dec 12 2017
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
,
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 |
|||||||||||||||||||
Comment 1 by js...@chromium.org
, Sep 19 2017