Blocked painting of selection for inline inputbox
[framework/web/webkit-efl.git] / webkit-efl-contributions / patch-[20130226]-[hyeonji.kim@samsung.com]-[ReduceLayoutTimeByAppendingFontData].patch
1 diff --git a/Source/WebCore/ChangeLog b/Source/WebCore/ChangeLog
2 index 743984a..6603d20 100644
3 --- a/Source/WebCore/ChangeLog
4 +++ b/Source/WebCore/ChangeLog
5 @@ -1,3 +1,21 @@
6 +2013-02-25  Hyeonji Kim  <hyeonji.kim@samsung.com>
7 +
8 +        Add system fallback FontData to FontFallbackList
9 +        https://bugs.webkit.org/show_bug.cgi?id=110838
10 +
11 +        Reviewed by NOBODY (OOPS!).
12 +
13 +        Add system fallback FontData to FontFallbackList to reduce layout time.
14 +        When system fallback font's glyph page dosen't have the character, especially CJK,
15 +        Page layout takes a long time due to create a fontData for the character.
16 +        Add the fontData which has already been created to FontFallbackList
17 +        not to try to create the same FontData.
18 +
19 +        No new tests, covered by existing tests.
20 +
21 +        * platform/graphics/FontFastPath.cpp:
22 +        (WebCore::Font::glyphDataAndPageForCharacter):
23 +
24  2013-02-25  Ilya Tikhonovsky  <loislo@chromium.org>
25  
26          Unreviewed fix of type annotation for this._liveLocations.
27 diff --git a/Source/WebCore/platform/graphics/FontFastPath.cpp b/Source/WebCore/platform/graphics/FontFastPath.cpp
28 index 9a945ca..acb74b0 100644
29 --- a/Source/WebCore/platform/graphics/FontFastPath.cpp
30 +++ b/Source/WebCore/platform/graphics/FontFastPath.cpp
31 @@ -246,6 +246,8 @@ std::pair<GlyphData, GlyphPage*> Font::glyphDataAndPageForCharacter(UChar32 c, b
32              characterFontData = characterFontData->variantFontData(m_fontDescription, variant);
33      }
34      if (characterFontData) {
35 +        // Add the fallback FontPlatformData
36 +        m_fontList->setPlatformFont(characterFontData->platformData());
37          // Got the fallback glyph and font.
38          GlyphPage* fallbackPage = GlyphPageTreeNode::getRootChild(characterFontData.get(), pageNumber)->page();
39          GlyphData data = fallbackPage && fallbackPage->fontDataForCharacter(c) ? fallbackPage->glyphDataForCharacter(c) : characterFontData->missingGlyphData();