<?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>24651</bug_id>
          
          <creation_ts>2009-03-17 13:12:56 -0700</creation_ts>
          <short_desc>Skia does not always render text fill/stroke pattern/gradient/color correctly</short_desc>
          <delta_ts>2009-03-17 15:17:45 -0700</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>PC</rep_platform>
          <op_sys>Windows XP</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="Scott Violet">sky</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>brettw</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>114083</commentid>
    <comment_count>0</comment_count>
    <who name="Scott Violet">sky</who>
    <bug_when>2009-03-17 13:12:56 -0700</bug_when>
    <thetext>Skia&apos;s text rendering gives preference to the gradient, then the pattern. This is problematic though in that once a gradient has been set the gradient getter always returns non-null. Skia needs to only use the gradient/pattern if the fill/strokecolorspace indicates the gradients/pattern should be used.

This can be seen when using the test case LayoutTests/fast/canvas/canvas-text-alignment.html.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>114087</commentid>
    <comment_count>1</comment_count>
      <attachid>28697</attachid>
    <who name="Scott Violet">sky</who>
    <bug_when>2009-03-17 13:17:23 -0700</bug_when>
    <thetext>Created attachment 28697
Fix for 24651</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>114092</commentid>
    <comment_count>2</comment_count>
      <attachid>28697</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-03-17 14:06:36 -0700</bug_when>
    <thetext>Comment on attachment 28697
Fix for 24651

OK.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>114107</commentid>
    <comment_count>3</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-03-17 15:17:45 -0700</bug_when>
    <thetext>Committing to http://svn.webkit.org/repository/webkit/trunk ...
	M	WebCore/ChangeLog
	M	WebCore/platform/graphics/GraphicsContext.cpp
	M	WebCore/platform/graphics/GraphicsContext.h
	M	WebCore/platform/graphics/GraphicsContextPrivate.h
	M	WebCore/platform/graphics/skia/SkiaFontWin.cpp
Committed r41789
</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>28697</attachid>
            <date>2009-03-17 13:17:23 -0700</date>
            <delta_ts>2009-03-17 14:06:36 -0700</delta_ts>
            <desc>Fix for 24651</desc>
            <filename>24651.patch</filename>
            <type>text/plain</type>
            <size>6565</size>
            <attacher name="Scott Violet">sky</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0MTc4NCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjMgQEAKKzIwMDktMDMtMTcgIFNjb3R0IFZpb2xldCAgPHNreUBnb29nbGUuY29t
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNDY1MQorICAgICAgICBTa2lhIGRv
ZXMgbm90IGFsd2F5cyByZW5kZXIgdGV4dCBmaWxsL3N0cm9rZSBwYXR0ZXJuL2dyYWRpZW50L2Nv
bG9yIGNvcnJlY3RseQorCisgICAgICAgIENoYW5nZXMgU2tpYSdzIGZvbnQgcmVuZGVyaW5nIHRv
IG9ubHkgcmVuZGVyIGdyYWRpZW50L3BhdHRlcm4gaWYgY3VycmVudAorICAgICAgICBjb2xvciBz
cGFjZSBpbmRpY2F0ZXMgdGhlIGdyYWRpZW50L3BhdHRlcm4gc2hvdWxkIGJlIHVzZWQuCisgICAg
ICAgIFRoaXMgaXMgY292ZXJlZCBieSBMYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy9jYW52YXMtdGV4
dC1hbGlnbm1lbnQuaHRtbCAuCisJCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhp
Y3NDb250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6c3Ryb2tl
Q29sb3JTcGFjZSk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ6OmZpbGxDb2xv
clNwYWNlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuaDoK
KyAgICAgICAgKFdlYkNvcmU6Oik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhp
Y3NDb250ZXh0UHJpdmF0ZS5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3NraWEvU2tp
YUZvbnRXaW4uY3BwOgorICAgICAgICAoV2ViQ29yZTo6cGFpbnRTa2lhVGV4dCk6CisKIDIwMDkt
MDMtMTcgIERhcmluIEFkbGVyICA8ZGFyaW5AYXBwbGUuY29tPgogCiAgICAgICAgIEVhcmxpZXIg
dmVyc2lvbiByZXZpZXdlZCBieSBBZGVsZSBQZXRlcnNvbi4KSW5kZXg6IFdlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5jcHAJKHJldmlzaW9uIDQxNzc3KQorKysg
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0xMjgsNiArMTI4LDExIEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpzZXRTdHJva2VD
b2xvcihjb24KICAgICBzZXRQbGF0Zm9ybVN0cm9rZUNvbG9yKGNvbG9yKTsKIH0KIAorQ29sb3JT
cGFjZSBHcmFwaGljc0NvbnRleHQ6OnN0cm9rZUNvbG9yU3BhY2UoKSBjb25zdAoreworICAgIHJl
dHVybiBtX2NvbW1vbi0+c3RhdGUuc3Ryb2tlQ29sb3JTcGFjZTsKK30KKwogdm9pZCBHcmFwaGlj
c0NvbnRleHQ6OnNldFNoYWRvdyhjb25zdCBJbnRTaXplJiBzaXplLCBpbnQgYmx1ciwgY29uc3Qg
Q29sb3ImIGNvbG9yKQogewogICAgIG1fY29tbW9uLT5zdGF0ZS5zaGFkb3dTaXplID0gc2l6ZTsK
QEAgLTI1MCw2ICsyNTUsMTEgQEAgR3JhZGllbnQqIEdyYXBoaWNzQ29udGV4dDo6ZmlsbEdyYWRp
ZW50KAogICAgIHJldHVybiBtX2NvbW1vbi0+c3RhdGUuZmlsbEdyYWRpZW50LmdldCgpOwogfQog
CitDb2xvclNwYWNlIEdyYXBoaWNzQ29udGV4dDo6ZmlsbENvbG9yU3BhY2UoKSBjb25zdAorewor
ICAgIHJldHVybiBtX2NvbW1vbi0+c3RhdGUuZmlsbENvbG9yU3BhY2U7Cit9CisKIEdyYWRpZW50
KiBHcmFwaGljc0NvbnRleHQ6OnN0cm9rZUdyYWRpZW50KCkgY29uc3QKIHsKICAgICByZXR1cm4g
bV9jb21tb24tPnN0YXRlLnN0cm9rZUdyYWRpZW50LmdldCgpOwpJbmRleDogV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5oCShyZXZpc2lvbiA0MTc3NykKKysrIFdl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmgJKHdvcmtpbmcgY29weSkK
QEAgLTExNyw2ICsxMTcsMTggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBEYXNoZWRT
dHJva2UKICAgICB9OwogCisvLyBGSVhNRTogVGhpcyBpcyBhIHBsYWNlLWhvbGRlciB1bnRpbCB3
ZSBkZWNpZGUgdG8gYWRkCisvLyByZWFsIGNvbG9yIHNwYWNlIHN1cHBvcnQgdG8gV2ViQ29yZS4g
IEF0IHRoYXQgdGltZSwgQ29sb3JTcGFjZSB3aWxsIGJlIGEKKy8vIGNsYXNzIGFuZCBpbnN0YW5j
ZXMgd2lsbCBiZSBoZWxkICBvZmYgb2YgQ29sb3JzLiAgIFRoZXJlIHdpbGwgYmUKKy8vIHNwZWNp
YWwgc2luZ2xldG9uIEdyYWRpZW50IGFuZCBQYXR0ZXJuIGNvbG9yIHNwYWNlcyB0byBtYXJrIHdo
ZW4KKy8vIGEgZmlsbCBvciBzdHJva2UgaXMgdXNpbmcgYSBncmFkaWVudCBvciBwYXR0ZXJuIGlu
c3RlYWQgb2YgYSBzb2xpZCBjb2xvci4KKy8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMDU1OAorICAgIGVudW0gQ29sb3JTcGFjZSB7CisgICAgICAgIFNvbGlkQ29s
b3JTcGFjZSwKKyAgICAgICAgUGF0dGVybkNvbG9yU3BhY2UsCisgICAgICAgIEdyYWRpZW50Q29s
b3JTcGFjZQorICAgIH07CisKICAgICBlbnVtIEludGVycG9sYXRpb25RdWFsaXR5IHsKICAgICAg
ICAgSW50ZXJwb2xhdGlvbkRlZmF1bHQsCiAgICAgICAgIEludGVycG9sYXRpb25Ob25lLApAQCAt
MTM5LDYgKzE1MSw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgQ29sb3Igc3Ryb2tl
Q29sb3IoKSBjb25zdDsKICAgICAgICAgdm9pZCBzZXRTdHJva2VDb2xvcihjb25zdCBDb2xvciYp
OwogCisgICAgICAgIENvbG9yU3BhY2Ugc3Ryb2tlQ29sb3JTcGFjZSgpIGNvbnN0OworCiAgICAg
ICAgIHZvaWQgc2V0U3Ryb2tlUGF0dGVybihQYXNzUmVmUHRyPFBhdHRlcm4+KTsKICAgICAgICAg
UGF0dGVybiogc3Ryb2tlUGF0dGVybigpIGNvbnN0OwogCkBAIC0xNTYsNiArMTcwLDggQEAgbmFt
ZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB2b2lkIHNldEZpbGxHcmFkaWVudChQYXNzUmVmUHRy
PEdyYWRpZW50Pik7CiAgICAgICAgIEdyYWRpZW50KiBmaWxsR3JhZGllbnQoKSBjb25zdDsKIAor
ICAgICAgICBDb2xvclNwYWNlIGZpbGxDb2xvclNwYWNlKCkgY29uc3Q7CisKICAgICAgICAgdm9p
ZCBzZXRTaGFkb3dzSWdub3JlVHJhbnNmb3Jtcyhib29sKTsKIAogICAgICAgICB2b2lkIHNldFNo
b3VsZEFudGlhbGlhcyhib29sKTsKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3Jh
cGhpY3NDb250ZXh0UHJpdmF0ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvR3JhcGhpY3NDb250ZXh0UHJpdmF0ZS5oCShyZXZpc2lvbiA0MTc3NykKKysrIFdlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0UHJpdmF0ZS5oCSh3b3JraW5nIGNv
cHkpCkBAIC0zMywxOCArMzMsNiBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLS8vIEZJWE1F
OiBUaGlzIGlzIGEgcGxhY2UtaG9sZGVyIHVudGlsIHdlIGRlY2lkZSB0byBhZGQKLS8vIHJlYWwg
Y29sb3Igc3BhY2Ugc3VwcG9ydCB0byBXZWJDb3JlLiAgQXQgdGhhdCB0aW1lLCBDb2xvclNwYWNl
IHdpbGwgYmUgYQotLy8gY2xhc3MgYW5kIGluc3RhbmNlcyB3aWxsIGJlIGhlbGQgIG9mZiBvZiBD
b2xvcnMuICAgVGhlcmUgd2lsbCBiZQotLy8gc3BlY2lhbCBzaW5nbGV0b24gR3JhZGllbnQgYW5k
IFBhdHRlcm4gY29sb3Igc3BhY2VzIHRvIG1hcmsgd2hlbgotLy8gYSBmaWxsIG9yIHN0cm9rZSBp
cyB1c2luZyBhIGdyYWRpZW50IG9yIHBhdHRlcm4gaW5zdGVhZCBvZiBhIHNvbGlkIGNvbG9yLgot
Ly8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNTU4Ci0gICAgZW51
bSBDb2xvclNwYWNlIHsKLSAgICAgICAgU29saWRDb2xvclNwYWNlLAotICAgICAgICBQYXR0ZXJu
Q29sb3JTcGFjZSwKLSAgICAgICAgR3JhZGllbnRDb2xvclNwYWNlCi0gICAgfTsKLQogICAgIHN0
cnVjdCBHcmFwaGljc0NvbnRleHRTdGF0ZSB7CiAgICAgICAgIEdyYXBoaWNzQ29udGV4dFN0YXRl
KCkKICAgICAgICAgICAgIDogdGV4dERyYXdpbmdNb2RlKGNUZXh0RmlsbCkKSW5kZXg6IFdlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc2tpYS9Ta2lhRm9udFdpbi5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9za2lhL1NraWFGb250V2luLmNwcAkocmV2aXNpb24g
NDE3NzcpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3NraWEvU2tpYUZvbnRXaW4uY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0zMzQsMTAgKzMzNCwxNSBAQCBib29sIHBhaW50U2tpYVRleHQo
R3JhcGhpY3NDb250ZXh0KiBjb250CiAgICAgYm9vbCBkaWRGaWxsID0gZmFsc2U7CiAKICAgICBp
ZiAoKHRleHRNb2RlICYgY1RleHRGaWxsKSAmJiBTa0NvbG9yR2V0QShwYWludC5nZXRDb2xvcigp
KSkgeworICAgICAgICBHcmFkaWVudCogZmlsbEdyYWRpZW50ID0gMDsKKyAgICAgICAgUGF0dGVy
biogZmlsbFBhdHRlcm4gPSAwOworICAgICAgICBpZiAoY29udGV4dC0+ZmlsbENvbG9yU3BhY2Uo
KSA9PSBHcmFkaWVudENvbG9yU3BhY2UpCisgICAgICAgICAgICBmaWxsR3JhZGllbnQgPSBjb250
ZXh0LT5maWxsR3JhZGllbnQoKTsKKyAgICAgICAgZWxzZSBpZiAoY29udGV4dC0+ZmlsbENvbG9y
U3BhY2UoKSA9PSBQYXR0ZXJuQ29sb3JTcGFjZSkKKyAgICAgICAgICAgIGZpbGxQYXR0ZXJuID0g
Y29udGV4dC0+ZmlsbFBhdHRlcm4oKTsKICAgICAgICAgaWYgKCFza2lhRHJhd1RleHQoaGZvbnQs
IGRjLCBwbGF0Zm9ybUNvbnRleHQtPmNhbnZhcygpLCAqb3JpZ2luLCAmcGFpbnQsCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgIGNvbnRleHQtPmdldENUTSgpLCBjb250ZXh0LT5maWxsR3JhZGll
bnQoKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGV4dC0+ZmlsbFBhdHRlcm4oKSwg
JmdseXBoc1swXSwgJmFkdmFuY2VzWzBdLAotICAgICAgICAgICAgICAgICAgICAgICAgICAmb2Zm
c2V0c1swXSwgbnVtR2x5cGhzKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGV4dC0+
Z2V0Q1RNKCksIGZpbGxHcmFkaWVudCwgZmlsbFBhdHRlcm4sCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICZnbHlwaHNbMF0sICZhZHZhbmNlc1swXSwgJm9mZnNldHNbMF0sIG51bUdseXBocykp
CiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIGRpZEZpbGwgPSB0cnVlOwogICAg
IH0KQEAgLTM2MywxMCArMzY4LDE1IEBAIGJvb2wgcGFpbnRTa2lhVGV4dChHcmFwaGljc0NvbnRl
eHQqIGNvbnQKICAgICAgICAgICAgIHBhaW50LnNldExvb3BlcigwKS0+c2FmZVVucmVmKCk7CiAg
ICAgICAgIH0KIAorICAgICAgICBHcmFkaWVudCogc3Ryb2tlR3JhZGllbnQgPSAwOworICAgICAg
ICBQYXR0ZXJuKiBzdHJva2VQYXR0ZXJuID0gMDsKKyAgICAgICAgaWYgKGNvbnRleHQtPnN0cm9r
ZUNvbG9yU3BhY2UoKSA9PSBHcmFkaWVudENvbG9yU3BhY2UpCisgICAgICAgICAgICBzdHJva2VH
cmFkaWVudCA9IGNvbnRleHQtPnN0cm9rZUdyYWRpZW50KCk7CisgICAgICAgIGVsc2UgaWYgKGNv
bnRleHQtPnN0cm9rZUNvbG9yU3BhY2UoKSA9PSBQYXR0ZXJuQ29sb3JTcGFjZSkKKyAgICAgICAg
ICAgIHN0cm9rZVBhdHRlcm4gPSBjb250ZXh0LT5zdHJva2VQYXR0ZXJuKCk7CiAgICAgICAgIGlm
ICghc2tpYURyYXdUZXh0KGhmb250LCBkYywgcGxhdGZvcm1Db250ZXh0LT5jYW52YXMoKSwgKm9y
aWdpbiwgJnBhaW50LAotICAgICAgICAgICAgICAgICAgICAgICAgICBjb250ZXh0LT5nZXRDVE0o
KSwgY29udGV4dC0+c3Ryb2tlR3JhZGllbnQoKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
Y29udGV4dC0+c3Ryb2tlUGF0dGVybigpLCAmZ2x5cGhzWzBdLCAmYWR2YW5jZXNbMF0sCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICZvZmZzZXRzWzBdLCBudW1HbHlwaHMpKQorICAgICAgICAg
ICAgICAgICAgICAgICAgICBjb250ZXh0LT5nZXRDVE0oKSwgc3Ryb2tlR3JhZGllbnQsIHN0cm9r
ZVBhdHRlcm4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICZnbHlwaHNbMF0sICZhZHZhbmNl
c1swXSwgJm9mZnNldHNbMF0sIG51bUdseXBocykpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7
CiAgICAgfQogCg==
</data>
<flag name="review"
          id="14137"
          type_id="1"
          status="+"
          setter="eric"
    />
          </attachment>
      

    </bug>

</bugzilla>