diff options
author | claireho <chinglanho@gmail.com> | 2010-11-02 14:26:59 -0700 |
---|---|---|
committer | claireho <chinglanho@gmail.com> | 2010-11-03 10:56:04 -0700 |
commit | 5e45e11e0649161823ace17ca9e020111624a486 (patch) | |
tree | c8e26eaacb53eb26c8783b58006dd7ce60a02635 /WebKit/android/WebCoreSupport/WebRequestContext.cpp | |
parent | 48735f195bdb1f681dba8e1d67f0b85b9b74c1a8 (diff) | |
download | external_webkit-5e45e11e0649161823ace17ca9e020111624a486.zip external_webkit-5e45e11e0649161823ace17ca9e020111624a486.tar.gz external_webkit-5e45e11e0649161823ace17ca9e020111624a486.tar.bz2 |
Bug 3158404 : Performance improvement for browser complex script handle.
1. Reduce the number of calls of normalization function.
The purpose of NFC normalization is to compose base letter and non-spacing
combining marks to be accented character. i.e. Convert A(U+0041) and
acute(U+0301) to A with Acute(U+00C1).
NFC includes three parts - decomposition, canonical sort and composition
for entire string. It is very expensive. TextRunWalker class would like
to convert '\t', '\n' and non-break space(\U+00A0) to space. NFC cannot
achieve this purpose. So, it is not necessary to call normalization for
Font::treatAsSpace().
This improvement saves the NFC nomalization calls for complex script text
has '\t', '\n' or 0xA0 and does not have non-spacing combining marks.
2. FontAndroid.cpp scans text for space and punctuation in 2 separate
loops. Combine these 2 loops to one pass.
Change-Id: I6b1ff20dd1072cf1f03066ce1c87ad39d0040779
Diffstat (limited to 'WebKit/android/WebCoreSupport/WebRequestContext.cpp')
0 files changed, 0 insertions, 0 deletions