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