<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>139905</bug_id>
          
          <creation_ts>2014-12-23 09:09:18 -0800</creation_ts>
          <short_desc>REGRESSION(r177637) [HarfBuzz][GTK][EFL] It made 3 performance tests crash and +24 layout tests crashes/failures</short_desc>
          <delta_ts>2015-01-08 10:03:29 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P1</priority>
          <bug_severity>Critical</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>139864</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Csaba Osztrogonác">ossy</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>cgarcia</cc>
    
    <cc>clopez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>d-r</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>kling</cc>
    
    <cc>koivisto</cc>
    
    <cc>mmaxfield</cc>
    
    <cc>mrobinson</cc>
    
    <cc>ossy</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>zan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1057596</commentid>
    <comment_count>0</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2014-12-23 09:09:18 -0800</bug_when>
    <thetext>https://trac.webkit.org/changeset/177637 made 3 performance tests 
crash on the EFL and GTK perf bots:
- GTK: https://build.webkit.org/builders/GTK%20Linux%2064-bit%20Release%20%28Perf%29/builds/1547
- EFL: https://build.webkit.org/builders/EFL%20Linux%2064-bit%20Release%20WK2%20%28Perf%29/builds/4194

Unfortunately the GTK build was broken that time and EFL bot picked up a huge interval,
but I checked the EFL build on r177684 (ToT) with reverting r177637 and I can confirm
that r177637 caused this regression.

The EFL bot provides us some crash backtrace, maybe they can be useful to fix the regression:

Running Interactive/window-resize.html (71 of 141)
error: Interactive/window-resize.html
1   0x7fe533349c00
2   0x7fe53350aff0
3   0x7fe5351a7dca WebCore::SimpleFontData::canRenderCombiningCharacterSequence(unsigned short const*, unsigned long) const
4   0x7fe5351bc16c WebCore::HarfBuzzShaper::collectHarfBuzzRuns()
5   0x7fe5351bc588 WebCore::HarfBuzzShaper::shape(WebCore::GlyphBuffer*)
6   0x7fe5351994eb WebCore::Font::floatWidthForComplexText(WebCore::TextRun const&amp;, WTF::HashSet&lt;WebCore::SimpleFontData const*, WTF::PtrHash&lt;WebCore::SimpleFontData const*&gt;, WTF::HashTraits&lt;WebCore::SimpleFontData const*&gt; &gt;*, WebCore::GlyphOverflow*) const
7   0x7fe534e0a218 WebCore::Font::width(WebCore::TextRun const&amp;, WTF::HashSet&lt;WebCore::SimpleFontData const*, WTF::PtrHash&lt;WebCore::SimpleFontData const*&gt;, WTF::HashTraits&lt;WebCore::SimpleFontData const*&gt; &gt;*, WebCore::GlyphOverflow*) const
8   0x7fe534ff7d9f WebCore::RenderText::computePreferredLogicalWidths(float, WTF::HashSet&lt;WebCore::SimpleFontData const*, WTF::PtrHash&lt;WebCore::SimpleFontData const*&gt;, WTF::HashTraits&lt;WebCore::SimpleFontData const*&gt; &gt;&amp;, WebCore::GlyphOverflow&amp;)
9   0x7fe534ffa753 WebCore::RenderText::computePreferredLogicalWidths(float)
10  0x7fe534ff4abe WebCore::RenderText::trimmedPrefWidths(float, float&amp;, bool&amp;, float&amp;, bool&amp;, bool&amp;, bool&amp;, float&amp;, float&amp;, float&amp;, float&amp;, bool&amp;)
11  0x7fe534ed2d73 WebCore::RenderBlockFlow::computeInlinePreferredLogicalWidths(WebCore::LayoutUnit&amp;, WebCore::LayoutUnit&amp;) const
12  0x7fe534ed3ef9 WebCore::RenderBlockFlow::computeIntrinsicLogicalWidths(WebCore::LayoutUnit&amp;, WebCore::LayoutUnit&amp;) const
13  0x7fe534eafe9c WebCore::RenderBlock::computePreferredLogicalWidths()
14  0x7fe534fe0c21 WebCore::RenderTableCell::computePreferredLogicalWidths()
15  0x7fe534ee6a8b WebCore::RenderBox::minPreferredLogicalWidth() const
16  0x7fe5356c967a WebCore::AutoTableLayout::recalcColumn(unsigned int)
17  0x7fe5356ca86f WebCore::AutoTableLayout::fullRecalc()
18  0x7fe5356cb235 WebCore::AutoTableLayout::computeIntrinsicLogicalWidths(WebCore::LayoutUnit&amp;, WebCore::LayoutUnit&amp;)
19  0x7fe534fd5e4a WebCore::RenderTable::computePreferredLogicalWidths()
20  0x7fe534ee6abb WebCore::RenderBox::maxPreferredLogicalWidth() const
21  0x7fe534fd2c81 WebCore::RenderTable::updateLogicalWidth()
22  0x7fe534fd65eb WebCore::RenderTable::layout()
23  0x7fe534ed0834 WebCore::RenderBlockFlow::layoutBlockChild(WebCore::RenderBox&amp;, WebCore::RenderBlockFlow::MarginInfo&amp;, WebCore::LayoutUnit&amp;, WebCore::LayoutUnit&amp;)
24  0x7fe534ed1956 WebCore::RenderBlockFlow::layoutBlockChildren(bool, WebCore::LayoutUnit&amp;)
25  0x7fe534ed6406 WebCore::RenderBlockFlow::layoutBlock(bool, WebCore::LayoutUnit)
26  0x7fe534ebb261 WebCore::RenderBlock::layout()
27  0x7fe534f39d69 WebCore::RenderFlowThread::layout()
28  0x7fe534fa5651 WebCore::RenderMultiColumnFlowThread::layout()
29  0x7fe534ed84d8 WebCore::RenderBlockFlow::layoutSpecialExcludedChild(bool)
30  0x7fe534ed18cd WebCore::RenderBlockFlow::layoutBlockChildren(bool, WebCore::LayoutUnit&amp;)
31  0x7fe534ed6406 WebCore::RenderBlockFlow::layoutBlock(bool, WebCore::LayoutUnit)

FAILED
Finished: 14.946824 s


Running Parser/HTML5-8266-FullRender.html (110 of 141)
error: Parser/HTML5-8266-FullRender.html
1   0x7f382957cc00
2   0x7f382973dff0
3   0x7f382b3dadca WebCore::SimpleFontData::canRenderCombiningCharacterSequence(unsigned short const*, unsigned long) const
4   0x7f382b3ef16c WebCore::HarfBuzzShaper::collectHarfBuzzRuns()
5   0x7f382b3ef588 WebCore::HarfBuzzShaper::shape(WebCore::GlyphBuffer*)
6   0x7f382b3cc4eb WebCore::Font::floatWidthForComplexText(WebCore::TextRun const&amp;, WTF::HashSet&lt;WebCore::SimpleFontData const*, WTF::PtrHash&lt;WebCore::SimpleFontData const*&gt;, WTF::HashTraits&lt;WebCore::SimpleFontData const*&gt; &gt;*, WebCore::GlyphOverflow*) const
7   0x7f382b03d218 WebCore::Font::width(WebCore::TextRun const&amp;, WTF::HashSet&lt;WebCore::SimpleFontData const*, WTF::PtrHash&lt;WebCore::SimpleFontData const*&gt;, WTF::HashTraits&lt;WebCore::SimpleFontData const*&gt; &gt;*, WebCore::GlyphOverflow*) const
8   0x7f382b22ad9f WebCore::RenderText::computePreferredLogicalWidths(float, WTF::HashSet&lt;WebCore::SimpleFontData const*, WTF::PtrHash&lt;WebCore::SimpleFontData const*&gt;, WTF::HashTraits&lt;WebCore::SimpleFontData const*&gt; &gt;&amp;, WebCore::GlyphOverflow&amp;)
9   0x7f382b22d753 WebCore::RenderText::computePreferredLogicalWidths(float)
10  0x7f382b227abe WebCore::RenderText::trimmedPrefWidths(float, float&amp;, bool&amp;, float&amp;, bool&amp;, bool&amp;, bool&amp;, float&amp;, float&amp;, float&amp;, float&amp;, bool&amp;)
11  0x7f382b105d73 WebCore::RenderBlockFlow::computeInlinePreferredLogicalWidths(WebCore::LayoutUnit&amp;, WebCore::LayoutUnit&amp;) const
12  0x7f382b106ef9 WebCore::RenderBlockFlow::computeIntrinsicLogicalWidths(WebCore::LayoutUnit&amp;, WebCore::LayoutUnit&amp;) const
13  0x7f382b0e2e9c WebCore::RenderBlock::computePreferredLogicalWidths()
14  0x7f382b213c21 WebCore::RenderTableCell::computePreferredLogicalWidths()
15  0x7f382b119a8b WebCore::RenderBox::minPreferredLogicalWidth() const
16  0x7f382b8fc67a WebCore::AutoTableLayout::recalcColumn(unsigned int)
17  0x7f382b8fd86f WebCore::AutoTableLayout::fullRecalc()
18  0x7f382b8fe235 WebCore::AutoTableLayout::computeIntrinsicLogicalWidths(WebCore::LayoutUnit&amp;, WebCore::LayoutUnit&amp;)
19  0x7f382b208e4a WebCore::RenderTable::computePreferredLogicalWidths()
20  0x7f382b119abb WebCore::RenderBox::maxPreferredLogicalWidth() const
21  0x7f382b205c81 WebCore::RenderTable::updateLogicalWidth()
22  0x7f382b2095eb WebCore::RenderTable::layout()
23  0x7f382b103834 WebCore::RenderBlockFlow::layoutBlockChild(WebCore::RenderBox&amp;, WebCore::RenderBlockFlow::MarginInfo&amp;, WebCore::LayoutUnit&amp;, WebCore::LayoutUnit&amp;)
24  0x7f382b104956 WebCore::RenderBlockFlow::layoutBlockChildren(bool, WebCore::LayoutUnit&amp;)
25  0x7f382b109406 WebCore::RenderBlockFlow::layoutBlock(bool, WebCore::LayoutUnit)
26  0x7f382b0ee261 WebCore::RenderBlock::layout()
27  0x7f382b16cd69 WebCore::RenderFlowThread::layout()
28  0x7f382b1d8651 WebCore::RenderMultiColumnFlowThread::layout()
29  0x7f382b10b4d8 WebCore::RenderBlockFlow::layoutSpecialExcludedChild(bool)
30  0x7f382b1048cd WebCore::RenderBlockFlow::layoutBlockChildren(bool, WebCore::LayoutUnit&amp;)
31  0x7f382b109406 WebCore::RenderBlockFlow::layoutBlock(bool, WebCore::LayoutUnit)

FAILED
Finished: 6.431418 s



Running Parser/html5-full-render.html (114 of 141)
error: Parser/html5-full-render.html
1   0x7f6b64e9ec00
2   0x7f6b6505fff0
3   0x7f6b66cfcdca WebCore::SimpleFontData::canRenderCombiningCharacterSequence(unsigned short const*, unsigned long) const
4   0x7f6b66d1116c WebCore::HarfBuzzShaper::collectHarfBuzzRuns()
5   0x7f6b66d11588 WebCore::HarfBuzzShaper::shape(WebCore::GlyphBuffer*)
6   0x7f6b66cee4eb WebCore::Font::floatWidthForComplexText(WebCore::TextRun const&amp;, WTF::HashSet&lt;WebCore::SimpleFontData const*, WTF::PtrHash&lt;WebCore::SimpleFontData const*&gt;, WTF::HashTraits&lt;WebCore::SimpleFontData const*&gt; &gt;*, WebCore::GlyphOverflow*) const
7   0x7f6b6695f218 WebCore::Font::width(WebCore::TextRun const&amp;, WTF::HashSet&lt;WebCore::SimpleFontData const*, WTF::PtrHash&lt;WebCore::SimpleFontData const*&gt;, WTF::HashTraits&lt;WebCore::SimpleFontData const*&gt; &gt;*, WebCore::GlyphOverflow*) const
8   0x7f6b66b4cd9f WebCore::RenderText::computePreferredLogicalWidths(float, WTF::HashSet&lt;WebCore::SimpleFontData const*, WTF::PtrHash&lt;WebCore::SimpleFontData const*&gt;, WTF::HashTraits&lt;WebCore::SimpleFontData const*&gt; &gt;&amp;, WebCore::GlyphOverflow&amp;)
9   0x7f6b66b4f753 WebCore::RenderText::computePreferredLogicalWidths(float)
10  0x7f6b66b49abe WebCore::RenderText::trimmedPrefWidths(float, float&amp;, bool&amp;, float&amp;, bool&amp;, bool&amp;, bool&amp;, float&amp;, float&amp;, float&amp;, float&amp;, bool&amp;)
11  0x7f6b66a27d73 WebCore::RenderBlockFlow::computeInlinePreferredLogicalWidths(WebCore::LayoutUnit&amp;, WebCore::LayoutUnit&amp;) const
12  0x7f6b66a28ef9 WebCore::RenderBlockFlow::computeIntrinsicLogicalWidths(WebCore::LayoutUnit&amp;, WebCore::LayoutUnit&amp;) const
13  0x7f6b66a04e9c WebCore::RenderBlock::computePreferredLogicalWidths()
14  0x7f6b66b35c21 WebCore::RenderTableCell::computePreferredLogicalWidths()
15  0x7f6b66a3ba8b WebCore::RenderBox::minPreferredLogicalWidth() const
16  0x7f6b6721e67a WebCore::AutoTableLayout::recalcColumn(unsigned int)
17  0x7f6b6721f86f WebCore::AutoTableLayout::fullRecalc()
18  0x7f6b67220235 WebCore::AutoTableLayout::computeIntrinsicLogicalWidths(WebCore::LayoutUnit&amp;, WebCore::LayoutUnit&amp;)
19  0x7f6b66b2ae4a WebCore::RenderTable::computePreferredLogicalWidths()
20  0x7f6b66a3babb WebCore::RenderBox::maxPreferredLogicalWidth() const
21  0x7f6b66b27c81 WebCore::RenderTable::updateLogicalWidth()
22  0x7f6b66b2b5eb WebCore::RenderTable::layout()
23  0x7f6b66a25834 WebCore::RenderBlockFlow::layoutBlockChild(WebCore::RenderBox&amp;, WebCore::RenderBlockFlow::MarginInfo&amp;, WebCore::LayoutUnit&amp;, WebCore::LayoutUnit&amp;)
24  0x7f6b66a26956 WebCore::RenderBlockFlow::layoutBlockChildren(bool, WebCore::LayoutUnit&amp;)
25  0x7f6b66a2b406 WebCore::RenderBlockFlow::layoutBlock(bool, WebCore::LayoutUnit)
26  0x7f6b66a10261 WebCore::RenderBlock::layout()
27  0x7f6b66a8ed69 WebCore::RenderFlowThread::layout()
28  0x7f6b66afa651 WebCore::RenderMultiColumnFlowThread::layout()
29  0x7f6b66a2d4d8 WebCore::RenderBlockFlow::layoutSpecialExcludedChild(bool)
30  0x7f6b66a268cd WebCore::RenderBlockFlow::layoutBlockChildren(bool, WebCore::LayoutUnit&amp;)
31  0x7f6b66a2b406 WebCore::RenderBlockFlow::layoutBlock(bool, WebCore::LayoutUnit)

FAILED
Finished: 5.081323 s</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1057597</commentid>
    <comment_count>1</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2014-12-23 09:10:24 -0800</bug_when>
    <thetext>I don&apos;t have time and plan to fix this regression, I only reported 
it, feel free to pick it up, if you are interested in it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1058022</commentid>
    <comment_count>2</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2014-12-28 03:14:37 -0800</bug_when>
    <thetext>There are layout tests crashes too, but I don&apos;t have time to collect the detailed results from always red bots.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1059394</commentid>
    <comment_count>3</comment_count>
    <who name="Carlos Alberto Lopez Perez">clopez</who>
    <bug_when>2015-01-07 08:50:01 -0800</bug_when>
    <thetext>I have updated the GTK TestExpectations on r178037 &lt;https://trac.webkit.org/r178037&gt; to reflect the 24 tests that crash or fail on the GTK port after r177637.

I have double checked this, I tried reverting r177637 and all those test pass as expected, but after r177637 all crash or fail.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1059397</commentid>
    <comment_count>4</comment_count>
    <who name="Carlos Alberto Lopez Perez">clopez</who>
    <bug_when>2015-01-07 09:23:17 -0800</bug_when>
    <thetext>One of the issues is that before r177637 WebCore::FontGlyphs::glyphDataForCharacter returned sometimes missingGlyphData() and now (after r177637 and r177876) instead returns a null GlyphData(), therefore the crash on WebCore::HarfBuzzShaper::collectHarfBuzzRuns().


I tried this patch:

--- a/Source/WebCore/platform/graphics/harfbuzz/HarfBuzzShaper.cpp
+++ b/Source/WebCore/platform/graphics/harfbuzz/HarfBuzzShaper.cpp
@@ -410,6 +410,8 @@ bool HarfBuzzShaper::collectHarfBuzzRuns()
     do {
         const UChar* currentCharacterPosition = iterator.characters();
         const SimpleFontData* currentFontData = nextFontData;
+        if (!currentFontData)
+            break;
         UScriptCode currentScript = nextScript;
 
         for (iterator.advance(clusterLength); iterator.consume(character, clusterLength); iterator.advance(clusterLength)) {


And it fixes the crashes. The performance tests seems to work back and a few of the reported failing layout test pass.

*But* there are still many layout tests failing (16 of 24). So it is an incomplete fix. Looking at the diffs of the results, seems that the width of the text run is 0.


I hope this information can be useful.

I&apos;m not planning to work on this anytime soon, so feel free to pick it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1059774</commentid>
    <comment_count>5</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2015-01-08 03:30:08 -0800</bug_when>
    <thetext>(In reply to comment #4)
&gt; One of the issues is that before r177637
&gt; WebCore::FontGlyphs::glyphDataForCharacter returned sometimes
&gt; missingGlyphData() and now (after r177637 and r177876) instead returns a
&gt; null GlyphData(), therefore the crash on
&gt; WebCore::HarfBuzzShaper::collectHarfBuzzRuns().
&gt; 
&gt; 
&gt; I tried this patch:
&gt; 
&gt; --- a/Source/WebCore/platform/graphics/harfbuzz/HarfBuzzShaper.cpp
&gt; +++ b/Source/WebCore/platform/graphics/harfbuzz/HarfBuzzShaper.cpp
&gt; @@ -410,6 +410,8 @@ bool HarfBuzzShaper::collectHarfBuzzRuns()
&gt;      do {
&gt;          const UChar* currentCharacterPosition = iterator.characters();
&gt;          const SimpleFontData* currentFontData = nextFontData;
&gt; +        if (!currentFontData)
&gt; +            break;
&gt;          UScriptCode currentScript = nextScript;
&gt;  
&gt;          for (iterator.advance(clusterLength); iterator.consume(character,
&gt; clusterLength); iterator.advance(clusterLength)) {
&gt; 
&gt; 
&gt; And it fixes the crashes. The performance tests seems to work back and a few
&gt; of the reported failing layout test pass.
&gt; *But* there are still many layout tests failing (16 of 24).

Yes, that&apos;s because we render the missing glyph (a square) and breaking the loop we don&apos;t render any glyph. That should advance the iterator and continue the loop instead of break, but still the missing characters wouldn&apos;t be rendered at all. If we want to keep rendering the missing glyphs as squares we need to use a fallback font I guess.

&gt; So it is an
&gt; incomplete fix. Looking at the diffs of the results, seems that the width of
&gt; the text run is 0.
&gt; 
&gt; 
&gt; I hope this information can be useful.
&gt; 
&gt; I&apos;m not planning to work on this anytime soon, so feel free to pick it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1059794</commentid>
    <comment_count>6</comment_count>
      <attachid>244254</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2015-01-08 05:37:44 -0800</bug_when>
    <thetext>Created attachment 244254
Patch

I think this is equivalent to what we did before r177637, falling back to the primary font data for missing glhyps. I&apos;m still getting a few failures, though, but I&apos;m not sure if it&apos;s something related to my system, because I see the missing glyhps but rendered slightly different. I think we can land this anyway for now, since it fixes the crashes, most of the layout tests for sure, and the perf tests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1059795</commentid>
    <comment_count>7</comment_count>
    <who name="Carlos Alberto Lopez Perez">clopez</who>
    <bug_when>2015-01-08 05:53:07 -0800</bug_when>
    <thetext>(In reply to comment #6)
&gt; Created attachment 244254 [details]
&gt; Patch
&gt; 
&gt; I think this is equivalent to what we did before r177637, falling back to
&gt; the primary font data for missing glhyps. I&apos;m still getting a few failures,
&gt; though, but I&apos;m not sure if it&apos;s something related to my system, because I
&gt; see the missing glyhps but rendered slightly different. I think we can land
&gt; this anyway for now, since it fixes the crashes, most of the layout tests
&gt; for sure, and the perf tests.

That fixes the crashes, but there are still differences on the expected results of some tests. I&apos;m not sure if that differences still indicate an incomplete fix, or they just need to be rebaselined.

With your patch:

Regressions: Unexpected text-only failures (15)
  fast/css/line-height-determined-by-primary-font.html [ Failure ]
  fast/ruby/bopomofo-letter-spacing.html [ Failure ]
  fast/ruby/bopomofo-rl.html [ Failure ]
  fast/ruby/bopomofo.html [ Failure ]
  fast/text/decorations-with-text-combine.html [ Failure ]
  fast/text/emphasis-combined-text.html [ Failure ]
  fast/text/emphasis-vertical.html [ Failure ]
  fast/text/international/khmer-selection.html [ Failure ]
  fast/text/international/plane2.html [ Failure ]
  fast/text/justify-ideograph-complex.html [ Failure ]
  fast/text/justify-ideograph-simple.html [ Failure ]
  fast/text/justify-ideograph-vertical.html [ Failure ]
  fast/text/khmer-lao-font.html [ Failure ]
  fast/text/midword-break-before-surrogate-pair-2.html [ Failure ]
  svg/custom/svg-fonts-fallback.xhtml [ Failure ]

Check here the diffs: http://people.igalia.com/clopez/bug-139905-results/results.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1059810</commentid>
    <comment_count>8</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2015-01-08 08:00:01 -0800</bug_when>
    <thetext>(In reply to comment #7)
&gt; (In reply to comment #6)
&gt; &gt; Created attachment 244254 [details]
&gt; &gt; Patch
&gt; &gt; 
&gt; &gt; I think this is equivalent to what we did before r177637, falling back to
&gt; &gt; the primary font data for missing glhyps. I&apos;m still getting a few failures,
&gt; &gt; though, but I&apos;m not sure if it&apos;s something related to my system, because I
&gt; &gt; see the missing glyhps but rendered slightly different. I think we can land
&gt; &gt; this anyway for now, since it fixes the crashes, most of the layout tests
&gt; &gt; for sure, and the perf tests.
&gt; 
&gt; That fixes the crashes, but there are still differences on the expected
&gt; results of some tests. I&apos;m not sure if that differences still indicate an
&gt; incomplete fix, or they just need to be rebaselined.
&gt; 
&gt; With your patch:
&gt; 
&gt; Regressions: Unexpected text-only failures (15)
&gt;   fast/css/line-height-determined-by-primary-font.html [ Failure ]
&gt;   fast/ruby/bopomofo-letter-spacing.html [ Failure ]
&gt;   fast/ruby/bopomofo-rl.html [ Failure ]
&gt;   fast/ruby/bopomofo.html [ Failure ]
&gt;   fast/text/decorations-with-text-combine.html [ Failure ]
&gt;   fast/text/emphasis-combined-text.html [ Failure ]
&gt;   fast/text/emphasis-vertical.html [ Failure ]
&gt;   fast/text/international/khmer-selection.html [ Failure ]
&gt;   fast/text/international/plane2.html [ Failure ]
&gt;   fast/text/justify-ideograph-complex.html [ Failure ]
&gt;   fast/text/justify-ideograph-simple.html [ Failure ]
&gt;   fast/text/justify-ideograph-vertical.html [ Failure ]
&gt;   fast/text/khmer-lao-font.html [ Failure ]
&gt;   fast/text/midword-break-before-surrogate-pair-2.html [ Failure ]
&gt;   svg/custom/svg-fonts-fallback.xhtml [ Failure ]
&gt; 
&gt; Check here the diffs:
&gt; http://people.igalia.com/clopez/bug-139905-results/results.html

I see, I&apos;m not a fonts expert so I don&apos;t know how to properly fix this, so I suggest to land this patch for now to fix the crashes, and open a new bug for the remaining layout test failures.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1059812</commentid>
    <comment_count>9</comment_count>
    <who name="Carlos Alberto Lopez Perez">clopez</who>
    <bug_when>2015-01-08 08:14:48 -0800</bug_when>
    <thetext>(In reply to comment #8)
&gt; I see, I&apos;m not a fonts expert so I don&apos;t know how to properly fix this, so I
&gt; suggest to land this patch for now to fix the crashes, and open a new bug
&gt; for the remaining layout test failures.

Sounds reasonable. At least this patch will fix the crashes and get the perf bot back to green.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1059826</commentid>
    <comment_count>10</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2015-01-08 08:37:14 -0800</bug_when>
    <thetext>Do you have image results? Do they look like regressions visually?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1059828</commentid>
    <comment_count>11</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2015-01-08 08:48:00 -0800</bug_when>
    <thetext>Committed r178115: &lt;http://trac.webkit.org/changeset/178115&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1059844</commentid>
    <comment_count>12</comment_count>
    <who name="Carlos Alberto Lopez Perez">clopez</who>
    <bug_when>2015-01-08 09:33:35 -0800</bug_when>
    <thetext>(In reply to comment #10)
&gt; Do you have image results? Do they look like regressions visually?

Yes.

Here are the results with images: http://people.igalia.com/clopez/bug-139905-results-img/results.html

Based on that I think I&apos;m going to just rebaseline the results for the GTK port. Although there are some differences on the images, none of it seems wrong to me. Actually some of them now look better :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1059846</commentid>
    <comment_count>13</comment_count>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2015-01-08 09:35:10 -0800</bug_when>
    <thetext>(In reply to comment #12)
&gt; (In reply to comment #10)
&gt; &gt; Do you have image results? Do they look like regressions visually?
&gt; 
&gt; Yes.
&gt; 
&gt; Here are the results with images:
&gt; http://people.igalia.com/clopez/bug-139905-results-img/results.html
&gt; 
&gt; Based on that I think I&apos;m going to just rebaseline the results for the GTK
&gt; port. Although there are some differences on the images, none of it seems
&gt; wrong to me. Actually some of them now look better :)

Are these images with your change or Carlos&apos;? I notice a the missing glyph symbols are now gone completely.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1059849</commentid>
    <comment_count>14</comment_count>
    <who name="Carlos Alberto Lopez Perez">clopez</who>
    <bug_when>2015-01-08 09:44:25 -0800</bug_when>
    <thetext>(In reply to comment #13)
&gt; Are these images with your change or Carlos&apos;? I notice a the missing glyph
&gt; symbols are now gone completely.

With the one that just landed on r178115.

Yes, you are right... i was failing to identify the square as the missing glyph :)

I will open a bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1059861</commentid>
    <comment_count>15</comment_count>
    <who name="Carlos Alberto Lopez Perez">clopez</who>
    <bug_when>2015-01-08 10:03:29 -0800</bug_when>
    <thetext>(In reply to comment #14)
&gt; (In reply to comment #13)
&gt; &gt; Are these images with your change or Carlos&apos;? I notice a the missing glyph
&gt; &gt; symbols are now gone completely.
&gt; 
&gt; With the one that just landed on r178115.
&gt; 
&gt; Yes, you are right... i was failing to identify the square as the missing
&gt; glyph :)
&gt; 
&gt; I will open a bug.

Opened bug: https://bugs.webkit.org/show_bug.cgi?id=140252</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>244254</attachid>
            <date>2015-01-08 05:37:44 -0800</date>
            <delta_ts>2015-01-08 08:38:04 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>wk-missing-glyphs.diff</filename>
            <type>text/plain</type>
            <size>4574</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBjZDUyNmEzLi41ZjBlYzQ3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTUtMDEt
MDggIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgorCisgICAgICAg
IFJFR1JFU1NJT04ocjE3NzYzNykgW0hhcmZCdXp6XVtHVEtdW0VGTF0gSXQgbWFkZSAzIHBlcmZv
cm1hbmNlIHRlc3RzIGNyYXNoIGFuZCArMjQgbGF5b3V0IHRlc3RzIGNyYXNoZXMvZmFpbHVyZXMK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzOTkwNQor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogcGxhdGZv
cm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnM6IFJlbW92ZSBjcmFzaGluZy9mYWlsaW5nIHRlc3RzCisg
ICAgICAgIHRoYXQgc2hvdWxkIHBhc3Mgbm93LgorCiAyMDE1LTAxLTA3ICBDaHJpcyBEdW1leiAg
PGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgQXNzZXJ0IHNob3VsZCBuZXZlciBiZSByZWFj
aGVkIGhpdCBpbiBXZWJDb3JlOjpDU1NDYWxjUHJpbWl0aXZlVmFsdWU6OmRvdWJsZVZhbHVlCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9ucyBiL0xh
eW91dFRlc3RzL3BsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zCmluZGV4IGMwMTczYjkuLjAy
N2MwMDQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRp
b25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zCkBAIC02
MTksMzEgKzYxOSw2IEBAIHdlYmtpdC5vcmcvYi8xMjkwNTAgZmFzdC9zdWItcGl4ZWwvY29tcG9z
aXRpbmctbGF5ZXJzLW9uLXN1YnBpeGVsLXBvc2l0aW9uLmh0bWwKIAogd2Via2l0Lm9yZy9iLzEz
OTM2NCBpbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvc2V0QnJlYWtwb2ludC1kZmcuaHRtbCBb
IENyYXNoIF0KIAotd2Via2l0Lm9yZy9iLzEzOTkwNSBjc3MzL2ZsZXhib3gvaW5saW5lLWZsZXgt
Y3Jhc2guaHRtbCBbIENyYXNoIF0KLXdlYmtpdC5vcmcvYi8xMzk5MDUgZWRpdGluZy9kZWxldGlu
Zy9yZWdpb25hbC1pbmRpY2F0b3JzLmh0bWwgWyBDcmFzaCBdCi13ZWJraXQub3JnL2IvMTM5OTA1
IGVkaXRpbmcvdGV4dC1pdGVyYXRvci9ydGwtZmlyc3QtbGV0dGVyLXRleHQtaXRlcmF0b3ItY3Jh
c2guaHRtbCBbIENyYXNoIF0KLXdlYmtpdC5vcmcvYi8xMzk5MDUgZmFzdC9jc3MvbGluZS1oZWln
aHQtZGV0ZXJtaW5lZC1ieS1wcmltYXJ5LWZvbnQuaHRtbCBbIEZhaWx1cmUgXQotd2Via2l0Lm9y
Zy9iLzEzOTkwNSBmYXN0L2xpc3RzL3czLWNzczMtbGlzdC1zdHlsZXMtbnVtZXJpYy5odG1sIFsg
Q3Jhc2ggXQotd2Via2l0Lm9yZy9iLzEzOTkwNSBmYXN0L3J1YnkvYm9wb21vZm8uaHRtbCBbIEZh
aWx1cmUgXQotd2Via2l0Lm9yZy9iLzEzOTkwNSBmYXN0L3J1YnkvYm9wb21vZm8tbGV0dGVyLXNw
YWNpbmcuaHRtbCBbIEZhaWx1cmUgXQotd2Via2l0Lm9yZy9iLzEzOTkwNSBmYXN0L3J1YnkvYm9w
b21vZm8tcmwuaHRtbCBbIEZhaWx1cmUgXQotd2Via2l0Lm9yZy9iLzEzOTkwNSBmYXN0L3RleHQv
ZGVjb3JhdGlvbnMtd2l0aC10ZXh0LWNvbWJpbmUuaHRtbCBbIEZhaWx1cmUgXQotd2Via2l0Lm9y
Zy9iLzEzOTkwNSBmYXN0L3RleHQvZW1waGFzaXMtY29tYmluZWQtdGV4dC5odG1sIFsgRmFpbHVy
ZSBdCi13ZWJraXQub3JnL2IvMTM5OTA1IGZhc3QvdGV4dC9lbXBoYXNpcy12ZXJ0aWNhbC5odG1s
IFsgRmFpbHVyZSBdCi13ZWJraXQub3JnL2IvMTM5OTA1IGZhc3QvdGV4dC9pbnRlcm5hdGlvbmFs
L2tobWVyLXNlbGVjdGlvbi5odG1sIFsgQ3Jhc2ggXQotd2Via2l0Lm9yZy9iLzEzOTkwNSBmYXN0
L3RleHQvaW50ZXJuYXRpb25hbC9wbGFuZTIuaHRtbCBbIEZhaWx1cmUgQ3Jhc2ggXQotd2Via2l0
Lm9yZy9iLzEzOTkwNSBmYXN0L3RleHQvanVzdGlmeS1pZGVvZ3JhcGgtY29tcGxleC5odG1sIFsg
Q3Jhc2ggXQotd2Via2l0Lm9yZy9iLzEzOTkwNSBmYXN0L3RleHQvanVzdGlmeS1pZGVvZ3JhcGgt
c2ltcGxlLmh0bWwgWyBGYWlsdXJlIENyYXNoIF0KLXdlYmtpdC5vcmcvYi8xMzk5MDUgZmFzdC90
ZXh0L2p1c3RpZnktaWRlb2dyYXBoLXZlcnRpY2FsLmh0bWwgWyBGYWlsdXJlIENyYXNoIF0KLXdl
YmtpdC5vcmcvYi8xMzk5MDUgZmFzdC90ZXh0L2tobWVyLWNyYXNoLmh0bWwgWyBDcmFzaCBdCi13
ZWJraXQub3JnL2IvMTM5OTA1IGZhc3QvdGV4dC9raG1lci1sYW8tZm9udC5odG1sIFsgQ3Jhc2gg
XQotd2Via2l0Lm9yZy9iLzEzOTkwNSBmYXN0L3RleHQvbWlkd29yZC1icmVhay1iZWZvcmUtc3Vy
cm9nYXRlLXBhaXItMi5odG1sIFsgQ3Jhc2ggXQotd2Via2l0Lm9yZy9iLzEzOTkwNSBmYXN0L3Rl
eHQvcmVnaW9uYWwtaW5kaWNhdG9yLXN5bW9ibHMuaHRtbCBbIENyYXNoIF0KLXdlYmtpdC5vcmcv
Yi8xMzk5MDUgZmFzdC90ZXh0L3VuaWNvZGUtdmFyaWF0aW9uLXNlbGVjdG9yLmh0bWwgWyBDcmFz
aCBdCi13ZWJraXQub3JnL2IvMTM5OTA1IGZhc3QvdXJsL2lkbmEyMDAzLmh0bWwgWyBDcmFzaCBd
Ci13ZWJraXQub3JnL2IvMTM5OTA1IGpzL2tkZS9wYXJzZS5odG1sIFsgQ3Jhc2ggXQotd2Via2l0
Lm9yZy9iLzEzOTkwNSBzdmcvY3VzdG9tL3N2Zy1mb250cy1mYWxsYmFjay54aHRtbCBbIENyYXNo
IF0KLQogIy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KICMgRW5kIG9mIENyYXNoaW5n
IHRlc3RzCiAjLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGM2
YWE3ZjYuLjE5NWZmM2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAxNS0wMS0wOCAg
Q2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CisKKyAgICAgICAgUkVH
UkVTU0lPTihyMTc3NjM3KSBbSGFyZkJ1enpdW0dUS11bRUZMXSBJdCBtYWRlIDMgcGVyZm9ybWFu
Y2UgdGVzdHMgY3Jhc2ggYW5kICsyNCBsYXlvdXQgdGVzdHMgY3Jhc2hlcy9mYWlsdXJlcworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM5OTA1CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9oYXJmYnV6ei9IYXJmQnV6elNoYXBlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpI
YXJmQnV6elNoYXBlcjo6Y29sbGVjdEhhcmZCdXp6UnVucyk6IEZhbGxiYWNrIHRvCisgICAgICAg
IHByaW1hcnkgZm9udCBkYXRhIGZvciBtaXNzaW5nIGdseXBocy4KKwogMjAxNS0wMS0wNyAgQ2hy
aXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIE1vdmUgLXdlYmtpdC10YXAt
aGlnaGxpZ2h0LWNvbG9yIC8gLXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmcgLyAtd2Via2l0LXRv
dWNoLWNhbGxvdXQgdG8gdGhlIG5ldyBTdHlsZUJ1aWxkZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2hhcmZidXp6L0hhcmZCdXp6U2hhcGVyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2hhcmZidXp6L0hhcmZCdXp6U2hhcGVyLmNw
cAppbmRleCA5Y2Q5NzAxLi4xMWY1MTUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9oYXJmYnV6ei9IYXJmQnV6elNoYXBlci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvaGFyZmJ1enovSGFyZkJ1enpTaGFwZXIuY3BwCkBAIC00
MTAsNiArNDEwLDggQEAgYm9vbCBIYXJmQnV6elNoYXBlcjo6Y29sbGVjdEhhcmZCdXp6UnVucygp
CiAgICAgZG8gewogICAgICAgICBjb25zdCBVQ2hhciogY3VycmVudENoYXJhY3RlclBvc2l0aW9u
ID0gaXRlcmF0b3IuY2hhcmFjdGVycygpOwogICAgICAgICBjb25zdCBTaW1wbGVGb250RGF0YSog
Y3VycmVudEZvbnREYXRhID0gbmV4dEZvbnREYXRhOworICAgICAgICBpZiAoIWN1cnJlbnRGb250
RGF0YSkKKyAgICAgICAgICAgIGN1cnJlbnRGb250RGF0YSA9ICZtX2ZvbnQtPnByaW1hcnlGb250
RGF0YSgpOwogICAgICAgICBVU2NyaXB0Q29kZSBjdXJyZW50U2NyaXB0ID0gbmV4dFNjcmlwdDsK
IAogICAgICAgICBmb3IgKGl0ZXJhdG9yLmFkdmFuY2UoY2x1c3Rlckxlbmd0aCk7IGl0ZXJhdG9y
LmNvbnN1bWUoY2hhcmFjdGVyLCBjbHVzdGVyTGVuZ3RoKTsgaXRlcmF0b3IuYWR2YW5jZShjbHVz
dGVyTGVuZ3RoKSkgewo=
</data>
<flag name="review"
          id="269183"
          type_id="1"
          status="+"
          setter="koivisto"
    />
          </attachment>
      

    </bug>

</bugzilla>