<?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>79524</bug_id>
          
          <creation_ts>2012-02-24 13:15:58 -0800</creation_ts>
          <short_desc>[WinCairo] Compute more accurate font heights</short_desc>
          <delta_ts>2012-02-24 13:39:20 -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>WebCore Misc.</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>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Brent Fulgham">bfulgham</reporter>
          <assigned_to name="Brent Fulgham">bfulgham</assigned_to>
          <cc>aroben</cc>
    
    <cc>jeff</cc>
    
    <cc>lynn.neir</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>564577</commentid>
    <comment_count>0</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2012-02-24 13:15:58 -0800</bug_when>
    <thetext>Lynn Neir reports:
Many of the Layout tests (e.g., &quot;css1/text_properties/line_height.html&quot;) use ‘ex’ to calculate margin or line-height, etc.  This value depends directly on the proper calculation of xHeight.
 
In my tests I never actually see the existing code that calculates xHeight getting executed, seems windows function GetGlyphOutline is failing, that is it never gets to line: xHeight = gm.gmptGlyphOrigin.y * metricsMultiplier;  So then it ends up always using xHeight = ascent * 0.56f, which is not exactly correct to match mac results. 
 
So the code I used is below:
 
      cairo_text_extents_t extents;
      cairo_scaled_font_text_extents(scaledFont, &quot;x&quot;, &amp;extents);
      xHeight = -extents.y_bearing;
 
This code correctly gets the x-Height and the results match for the ones above.
 
Try it out for yourself and see what you think.&quot;

I did try it out, and found that the results were better.  Moreover, the actual implementation of &quot;cairo_scaled_font_text_extents&quot; makes use of the same ::GetGlyphOutline (and related) calls, with additional fallback handling for non-TrueType fonts, etc.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>564585</commentid>
    <comment_count>1</comment_count>
      <attachid>128794</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2012-02-24 13:26:01 -0800</bug_when>
    <thetext>Created attachment 128794
Correct handling of xHeight to produce better layout test results.

This patch brings several css1/text layout tests into agreement with the Apple port.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>564588</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-02-24 13:29:27 -0800</bug_when>
    <thetext>Attachment 128794 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u&apos;Source/WebCor...&quot; exit_code: 1
Source/WebCore/ChangeLog:1:  ChangeLog entry has no bug number  [changelog/bugnumber] [5]
Total errors found: 1 in 2 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>564603</commentid>
    <comment_count>3</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2012-02-24 13:39:20 -0800</bug_when>
    <thetext>All changes landed in r108843.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>128794</attachid>
            <date>2012-02-24 13:26:01 -0800</date>
            <delta_ts>2012-02-24 13:37:22 -0800</delta_ts>
            <desc>Correct handling of xHeight to produce better layout test results.</desc>
            <filename>font_extents.patch</filename>
            <type>text/plain</type>
            <size>4876</size>
            <attacher name="Brent Fulgham">bfulgham</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEwODg0MSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIyIEBACisyMDEyLTAyLTI0ICBCcmVudCBG
dWxnaGFtICA8YmZ1bGdoYW1Ad2Via2l0Lm9yZz4KKworICAgICAgICBbV2luQ2Fpcm9dIENvbXB1
dGUgbW9yZSBhY3VyYXRlIGZvbnQgaGVpZ2h0cy4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKQorCisgICAgICAgIEFkanVzdCBmb250IGhhbmRsaW5nIGFzIHN1Z2dlc3RlZCBi
eSBMeW5uIE5laXIgdG8gdXNlIHRoZSBwcm9wZXIKKyAgICAgICAgeEhlaWdodCB2YWx1ZSBmb3Ig
dGhlIGZvbnQsIHJhdGhlciB0aGFuIHRoZSBmYWxsLWJhY2sgZ3Vlc3MKKyAgICAgICAgdXNlZCBp
biB0aGUgY3VycmVudCBjb2RlLgorCisgICAgICAgIGNzczEvdGV4dF9wcm9wZXJ0aWVzL2xpbmVf
aGVpZ2h0Lmh0bWwKKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3dpbi9TaW1wbGVGb250
RGF0YUNhaXJvV2luLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNpbXBsZUZvbnREYXRhOjpwbGF0
Zm9ybUluaXQpOiBQcm9wZXJseSBpbml0aWFsaXplIGEKKyAgICAgICAgICBmZXcgZWxlbWVudHMu
CisgICAgICAgIChXZWJDb3JlOjpTaW1wbGVGb250RGF0YTo6cGxhdGZvcm1XaWR0aEZvckdseXBo
KTogVXNlIHRoZSBDYWlybworICAgICAgICAgIGNhaXJvX3NjYWxlZF9mb250X3RleHRfZXh0ZW50
cyBjYWxsLCByYXRoZXIgdGhhbiBhdHRlbXB0aW5nCisgICAgICAgICAgdG8gY29tcHV0ZSB0aGUg
dmFsdWUgZnJvbSA6OkdldEdseXBoT3V0bGluZS4KKwogMjAxMi0wMi0yNCAgVGltIEhvcnRvbiAg
PHRpbW90aHlfaG9ydG9uQGFwcGxlLmNvbT4KIAogICAgICAgICBJbmZpbml0ZSByZXBhaW50IGxv
b3Agd2l0aCBTVkdJbWFnZUNhY2hlIGFuZCBkZWZlcnJlZCByZXBhaW50IHRpbWVycwpJbmRleDog
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL1NpbXBsZUZvbnREYXRhQ2Fpcm9X
aW4uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dp
bi9TaW1wbGVGb250RGF0YUNhaXJvV2luLmNwcAkocmV2aXNpb24gMTA4ODIwKQorKysgU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL1NpbXBsZUZvbnREYXRhQ2Fpcm9XaW4uY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0zNCw2ICszNCw3IEBACiAjaW5jbHVkZSAiRm9udC5oIgogI2lu
Y2x1ZGUgIkZvbnRDYWNoZS5oIgogI2luY2x1ZGUgIkZvbnREZXNjcmlwdGlvbi5oIgorI2luY2x1
ZGUgIkhXbmREQy5oIgogI2luY2x1ZGUgPGNhaXJvLmg+CiAjaW5jbHVkZSA8Y2Fpcm8td2luMzIu
aD4KICNpbmNsdWRlIDxtbGFuZy5oPgpAQCAtNTUsMjcgKzU2LDMwIEBAIHZvaWQgU2ltcGxlRm9u
dERhdGE6OnBsYXRmb3JtSW5pdCgpCiAgICAgICAgIG1fZm9udE1ldHJpY3MucmVzZXQoKTsKICAg
ICAgICAgbV9hdmdDaGFyV2lkdGggPSAwOwogICAgICAgICBtX21heENoYXJXaWR0aCA9IDA7Cisg
ICAgICAgIG1faXNTeXN0ZW1Gb250ID0gZmFsc2U7CisgICAgICAgIG1fc2NyaXB0Q2FjaGUgPSAw
OworICAgICAgICBtX3NjcmlwdEZvbnRQcm9wZXJ0aWVzID0gMDsKICAgICAgICAgcmV0dXJuOwog
ICAgIH0KIAotICAgIEhEQyBoZGMgPSBHZXREQygwKTsKLSAgICBTYXZlREMoaGRjKTsKKyAgICBI
V25kREMgZGMoMCk7CisgICAgU2F2ZURDKGRjKTsKIAogICAgIGNhaXJvX3NjYWxlZF9mb250X3Qq
IHNjYWxlZEZvbnQgPSBtX3BsYXRmb3JtRGF0YS5zY2FsZWRGb250KCk7CiAgICAgY29uc3QgZG91
YmxlIG1ldHJpY3NNdWx0aXBsaWVyID0gY2Fpcm9fd2luMzJfc2NhbGVkX2ZvbnRfZ2V0X21ldHJp
Y3NfZmFjdG9yKHNjYWxlZEZvbnQpICogbV9wbGF0Zm9ybURhdGEuc2l6ZSgpOwogCi0gICAgY2Fp
cm9fd2luMzJfc2NhbGVkX2ZvbnRfc2VsZWN0X2ZvbnQoc2NhbGVkRm9udCwgaGRjKTsKKyAgICBj
YWlyb193aW4zMl9zY2FsZWRfZm9udF9zZWxlY3RfZm9udChzY2FsZWRGb250LCBkYyk7CiAKICAg
ICBURVhUTUVUUklDIHRleHRNZXRyaWNzOwotICAgIEdldFRleHRNZXRyaWNzKGhkYywgJnRleHRN
ZXRyaWNzKTsKKyAgICBHZXRUZXh0TWV0cmljcyhkYywgJnRleHRNZXRyaWNzKTsKICAgICBmbG9h
dCBhc2NlbnQgPSB0ZXh0TWV0cmljcy50bUFzY2VudCAqIG1ldHJpY3NNdWx0aXBsaWVyOwogICAg
IGZsb2F0IGRlc2NlbnQgPSB0ZXh0TWV0cmljcy50bURlc2NlbnQgKiBtZXRyaWNzTXVsdGlwbGll
cjsKICAgICBmbG9hdCB4SGVpZ2h0ID0gYXNjZW50ICogMC41NmY7IC8vIEJlc3QgZ3Vlc3MgZm9y
IHhIZWlnaHQgZm9yIG5vbi1UcnVldHlwZSBmb250cy4KICAgICBmbG9hdCBsaW5lR2FwID0gdGV4
dE1ldHJpY3MudG1FeHRlcm5hbExlYWRpbmcgKiBtZXRyaWNzTXVsdGlwbGllcjsKIAotICAgIGlu
dCBmYWNlTGVuZ3RoID0gOjpHZXRUZXh0RmFjZShoZGMsIDAsIDApOworICAgIGludCBmYWNlTGVu
Z3RoID0gOjpHZXRUZXh0RmFjZShkYywgMCwgMCk7CiAgICAgVmVjdG9yPFdDSEFSPiBmYWNlTmFt
ZShmYWNlTGVuZ3RoKTsKLSAgICA6OkdldFRleHRGYWNlKGhkYywgZmFjZUxlbmd0aCwgZmFjZU5h
bWUuZGF0YSgpKTsKKyAgICA6OkdldFRleHRGYWNlKGRjLCBmYWNlTGVuZ3RoLCBmYWNlTmFtZS5k
YXRhKCkpOwogICAgIG1faXNTeXN0ZW1Gb250ID0gIXdjc2NtcChmYWNlTmFtZS5kYXRhKCksIEwi
THVjaWRhIEdyYW5kZSIpOwogIAogICAgIGFzY2VudCA9IGFzY2VudENvbnNpZGVyaW5nTWFjQXNj
ZW50SGFjayhmYWNlTmFtZS5kYXRhKCksIGFzY2VudCwgZGVzY2VudCk7CkBAIC04NywyMSArOTEs
MTcgQEAgdm9pZCBTaW1wbGVGb250RGF0YTo6cGxhdGZvcm1Jbml0KCkKICAgICBtX2F2Z0NoYXJX
aWR0aCA9IHRleHRNZXRyaWNzLnRtQXZlQ2hhcldpZHRoICogbWV0cmljc011bHRpcGxpZXI7CiAg
ICAgbV9tYXhDaGFyV2lkdGggPSB0ZXh0TWV0cmljcy50bU1heENoYXJXaWR0aCAqIG1ldHJpY3NN
dWx0aXBsaWVyOwogCi0gICAgT1VUTElORVRFWFRNRVRSSUMgbWV0cmljczsKLSAgICBpZiAoR2V0
T3V0bGluZVRleHRNZXRyaWNzKGhkYywgc2l6ZW9mKG1ldHJpY3MpLCAmbWV0cmljcykgPiAwKSB7
Ci0gICAgICAgIC8vIFRoaXMgaXMgYSBUcnVlVHlwZSBmb250LiAgV2UgbWlnaHQgYmUgYWJsZSB0
byBnZXQgYW4gYWNjdXJhdGUgeEhlaWdodAotICAgICAgICBHTFlQSE1FVFJJQ1MgZ207Ci0gICAg
ICAgIE1BVDIgbWF0ID0geyAxLCAwLCAwLCAxIH07Ci0gICAgICAgIERXT1JEIGxlbiA9IEdldEds
eXBoT3V0bGluZShoZGMsICd4JywgR0dPX01FVFJJQ1MsICZnbSwgMCwgMCwgJm1hdCk7Ci0gICAg
ICAgIGlmIChsZW4gIT0gR0RJX0VSUk9SICYmIGdtLmdtcHRHbHlwaE9yaWdpbi55ID4gMCkKLSAg
ICAgICAgICAgIHhIZWlnaHQgPSBnbS5nbXB0R2x5cGhPcmlnaW4ueSAqIG1ldHJpY3NNdWx0aXBs
aWVyOwotICAgIH0KKyAgICBjYWlyb190ZXh0X2V4dGVudHNfdCBleHRlbnRzOworICAgIGNhaXJv
X3NjYWxlZF9mb250X3RleHRfZXh0ZW50cyhzY2FsZWRGb250LCAieCIsICZleHRlbnRzKTsKKyAg
ICB4SGVpZ2h0ID0gLWV4dGVudHMueV9iZWFyaW5nOwogCiAgICAgbV9mb250TWV0cmljcy5zZXRY
SGVpZ2h0KHhIZWlnaHQpOwogICAgIGNhaXJvX3dpbjMyX3NjYWxlZF9mb250X2RvbmVfZm9udChz
Y2FsZWRGb250KTsKIAotICAgIFJlc3RvcmVEQyhoZGMsIC0xKTsKLSAgICBSZWxlYXNlREMoMCwg
aGRjKTsKKyAgICBtX3NjcmlwdENhY2hlID0gMDsKKyAgICBtX3NjcmlwdEZvbnRQcm9wZXJ0aWVz
ID0gMDsKKworICAgIFJlc3RvcmVEQyhkYywgLTEpOwogfQogCiBGbG9hdFJlY3QgU2ltcGxlRm9u
dERhdGE6OnBsYXRmb3JtQm91bmRzRm9yR2x5cGgoR2x5cGggZ2x5cGgpIGNvbnN0CkBAIC0xMjAs
MTkgKzEyMCwxOCBAQCBmbG9hdCBTaW1wbGVGb250RGF0YTo6cGxhdGZvcm1XaWR0aEZvckdsCiAg
ICAgaWYgKCFtX3BsYXRmb3JtRGF0YS5zaXplKCkpCiAgICAgICAgIHJldHVybiAwOwogCi0gICAg
SERDIGhkYyA9IEdldERDKDApOwotICAgIFNhdmVEQyhoZGMpOworICAgIEhXbmREQyBkYygwKTsK
KyAgICBTYXZlREMoZGMpOwogCiAgICAgY2Fpcm9fc2NhbGVkX2ZvbnRfdCogc2NhbGVkRm9udCA9
IG1fcGxhdGZvcm1EYXRhLnNjYWxlZEZvbnQoKTsKLSAgICBjYWlyb193aW4zMl9zY2FsZWRfZm9u
dF9zZWxlY3RfZm9udChzY2FsZWRGb250LCBoZGMpOworICAgIGNhaXJvX3dpbjMyX3NjYWxlZF9m
b250X3NlbGVjdF9mb250KHNjYWxlZEZvbnQsIGRjKTsKIAogICAgIGludCB3aWR0aDsKLSAgICBH
ZXRDaGFyV2lkdGhJKGhkYywgZ2x5cGgsIDEsIDAsICZ3aWR0aCk7CisgICAgR2V0Q2hhcldpZHRo
SShkYywgZ2x5cGgsIDEsIDAsICZ3aWR0aCk7CiAKICAgICBjYWlyb193aW4zMl9zY2FsZWRfZm9u
dF9kb25lX2ZvbnQoc2NhbGVkRm9udCk7CiAKLSAgICBSZXN0b3JlREMoaGRjLCAtMSk7Ci0gICAg
UmVsZWFzZURDKDAsIGhkYyk7CisgICAgUmVzdG9yZURDKGRjLCAtMSk7CiAKICAgICBjb25zdCBk
b3VibGUgbWV0cmljc011bHRpcGxpZXIgPSBjYWlyb193aW4zMl9zY2FsZWRfZm9udF9nZXRfbWV0
cmljc19mYWN0b3Ioc2NhbGVkRm9udCkgKiBtX3BsYXRmb3JtRGF0YS5zaXplKCk7CiAgICAgcmV0
dXJuIHdpZHRoICogbWV0cmljc011bHRpcGxpZXI7Cg==
</data>
<flag name="review"
          id="131279"
          type_id="1"
          status="+"
          setter="aroben"
    />
          </attachment>
      

    </bug>

</bugzilla>