<?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>147758</bug_id>
          
          <creation_ts>2015-08-06 17:18:15 -0700</creation_ts>
          <short_desc>Shadows don&apos;t draw on fillText when using a gradient fill</short_desc>
          <delta_ts>2015-08-07 12:44:41 -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>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>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Dean Jackson">dino</reporter>
          <assigned_to name="Dean Jackson">dino</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>gyuyoung.kim</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1115563</commentid>
    <comment_count>0</comment_count>
    <who name="Dean Jackson">dino</who>
    <bug_when>2015-08-06 17:18:15 -0700</bug_when>
    <thetext>Shadows don&apos;t draw on fillText when using a gradient fill</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1115566</commentid>
    <comment_count>1</comment_count>
      <attachid>258426</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2015-08-06 17:25:45 -0700</bug_when>
    <thetext>Created attachment 258426
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1115567</commentid>
    <comment_count>2</comment_count>
    <who name="Dean Jackson">dino</who>
    <bug_when>2015-08-06 17:27:32 -0700</bug_when>
    <thetext>        &lt;rdar://problem/20860912&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1115578</commentid>
    <comment_count>3</comment_count>
      <attachid>258426</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2015-08-06 18:18:46 -0700</bug_when>
    <thetext>Comment on attachment 258426
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=258426&amp;action=review

&gt; Source/WebCore/html/canvas/CanvasRenderingContext2D.cpp:2384
&gt; +            c-&gt;setLegacyShadow(shadowOffset, shadowRadius, shadowColor, shadowColorSpace);

In some cases, can&apos;t this shadow be drawn at the same time as the real text, simply by setting some state on the context? We should do that if it&apos;s possible.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1115584</commentid>
    <comment_count>4</comment_count>
      <attachid>258426</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2015-08-06 18:26:48 -0700</bug_when>
    <thetext>Comment on attachment 258426
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=258426&amp;action=review

&gt;&gt; Source/WebCore/html/canvas/CanvasRenderingContext2D.cpp:2384
&gt;&gt; +            c-&gt;setLegacyShadow(shadowOffset, shadowRadius, shadowColor, shadowColorSpace);
&gt; 
&gt; In some cases, can&apos;t this shadow be drawn at the same time as the real text, simply by setting some state on the context? We should do that if it&apos;s possible.

That&apos;s what we normally do. But in this case the real text is drawn just after here, into a mask, and then the mask applies to a pattern or gradient. So this is why we need to draw the shadow separately, before.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1115845</commentid>
    <comment_count>5</comment_count>
    <who name="Dean Jackson">dino</who>
    <bug_when>2015-08-07 12:44:41 -0700</bug_when>
    <thetext>Committed r188148: &lt;http://trac.webkit.org/changeset/188148&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>258426</attachid>
            <date>2015-08-06 17:25:45 -0700</date>
            <delta_ts>2015-08-06 18:18:46 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-147758-20150807102534.patch</filename>
            <type>text/plain</type>
            <size>6104</size>
            <attacher name="Dean Jackson">dino</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg3OTkxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWE2ZTgwMTFhYWJkZTdl
YjRhODBjNjllYzQxZmMyOThlODQ5NjM1Zi4uZDk5MTAxNDk5Yzg1MDFkMWUwOWM1ZjZlNThlODgw
YWIwMmJlMGRlZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDE1LTA4LTA2ICBEZWFu
IEphY2tzb24gIDxkaW5vQGFwcGxlLmNvbT4KKworICAgICAgICBTaGFkb3dzIGRvbid0IGRyYXcg
b24gZmlsbFRleHQgd2hlbiB1c2luZyBhIGdyYWRpZW50IGZpbGwKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0Nzc1OAorICAgICAgICA8cmRhcjovL3By
b2JsZW0vMjA4NjA5MTI+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgU2luY2Ugd2UgdXNlIGEgbWFzayB0byByZW5kZXIgYSBwYXR0ZXJuIG9yIGdyYWRp
ZW50CisgICAgICAgIGludG8gdGV4dCwgYW55IHNoYWRvdyB3YXMgYmVpbmcgY2xpcHBlZCBvdXQu
IENoYW5nZQorICAgICAgICB0aGlzIHRvIGRyYXcgdGhlIHNoYWRvdyBiZWZvcmUgdGhlIG1hc2sg
KyBmaWxsIG9wZXJhdGlvbiwKKyAgICAgICAgdXNpbmcgYSB0ZWNobmlxdWUgc2ltaWxhciB0byB0
ZXh0LXNoYWRvdy4KKworICAgICAgICBUZXN0OiBmYXN0L2NhbnZhcy9ncmFkaWVudC10ZXh0LXdp
dGgtc2hhZG93Lmh0bWwKKworICAgICAgICAqIGh0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0Nv
bnRleHQyRC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6
OmRyYXdUZXh0SW50ZXJuYWwpOiBHZXQgdGhlIGN1cnJlbnQgc2hhZG93CisgICAgICAgIHN0eWxl
LCBwYWludCB0aGUgdGV4dCB3aXRoIGEgdHJhbnNmb3JtZWQgc2hhZG93IG9mZnNldCBzbyB0aGF0
IHdlIG9ubHkKKyAgICAgICAgc2VlIHRoZSBzaGFkb3cgYW5kIG5vdCB0aGUgdGV4dCwgdGhlbiBj
b21iaW5lIHdpdGggdGhlIGV4aXN0aW5nIHBhdHRlcm4vZ3JhZGllbnQKKyAgICAgICAgZmlsbC4K
KwogMjAxNS0wOC0wNSAgQW5kZXJzIENhcmxzc29uICA8YW5kZXJzY2FAYXBwbGUuY29tPgogCiAg
ICAgICAgIEZpeCBidWlsZC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFz
L0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZh
cy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuY3BwCmluZGV4IDkxN2VmN2JlOTJiZGZjMDE1MzQy
MDQxNDVlNmJhYjEyMTI0NDg4MWQuLmNlZWJlNWNlNGZkOGM2ZjE4NTE0Y2E5NjUwNGU5NDdjNmMw
MWEzNjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRl
cmluZ0NvbnRleHQyRC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFz
UmVuZGVyaW5nQ29udGV4dDJELmNwcApAQCAtMjM1Nyw4ICsyMzU3LDQwIEBAIHZvaWQgQ2FudmFz
UmVuZGVyaW5nQ29udGV4dDJEOjpkcmF3VGV4dEludGVybmFsKGNvbnN0IFN0cmluZyYgdGV4dCwg
ZmxvYXQgeCwgZmxvCiAjaWYgVVNFKENHKQogICAgIGNvbnN0IENhbnZhc1N0eWxlJiBkcmF3U3R5
bGUgPSBmaWxsID8gc3RhdGUoKS5tX2ZpbGxTdHlsZSA6IHN0YXRlKCkubV9zdHJva2VTdHlsZTsK
ICAgICBpZiAoZHJhd1N0eWxlLmNhbnZhc0dyYWRpZW50KCkgfHwgZHJhd1N0eWxlLmNhbnZhc1Bh
dHRlcm4oKSkgeworCiAgICAgICAgIEludFJlY3QgbWFza1JlY3QgPSBlbmNsb3NpbmdJbnRSZWN0
KHRleHRSZWN0KTsKIAorICAgICAgICAvLyBJZiB3ZSBoYXZlIGEgc2hhZG93LCB3ZSBuZWVkIHRv
IGRyYXcgaXQgYmVmb3JlIHRoZSBtYXNrIG9wZXJhdGlvbi4KKyAgICAgICAgLy8gRm9sbG93IGEg
cHJvY2VkdXJlIHNpbWlsYXIgdG8gcGFpbnRUZXh0V2l0aFNoYWRvd3MgaW4gVGV4dFBhaW50ZXIu
CisKKyAgICAgICAgaWYgKHNob3VsZERyYXdTaGFkb3dzKCkpIHsKKyAgICAgICAgICAgIEdyYXBo
aWNzQ29udGV4dFN0YXRlU2F2ZXIgc3RhdGVTYXZlcigqYyk7CisKKyAgICAgICAgICAgIEZsb2F0
U2l6ZSBvZmZzZXQgPSBGbG9hdFNpemUoMCwgMiAqIG1hc2tSZWN0LmhlaWdodCgpKTsKKworICAg
ICAgICAgICAgRmxvYXRTaXplIHNoYWRvd09mZnNldDsKKyAgICAgICAgICAgIGZsb2F0IHNoYWRv
d1JhZGl1czsKKyAgICAgICAgICAgIENvbG9yIHNoYWRvd0NvbG9yOworICAgICAgICAgICAgQ29s
b3JTcGFjZSBzaGFkb3dDb2xvclNwYWNlOworICAgICAgICAgICAgYy0+Z2V0U2hhZG93KHNoYWRv
d09mZnNldCwgc2hhZG93UmFkaXVzLCBzaGFkb3dDb2xvciwgc2hhZG93Q29sb3JTcGFjZSk7CisK
KyAgICAgICAgICAgIEZsb2F0UmVjdCBzaGFkb3dSZWN0KG1hc2tSZWN0KTsKKyAgICAgICAgICAg
IHNoYWRvd1JlY3QuaW5mbGF0ZShzaGFkb3dSYWRpdXMgKiAxLjQpOworICAgICAgICAgICAgc2hh
ZG93UmVjdC5tb3ZlKHNoYWRvd09mZnNldCAqIC0xKTsKKyAgICAgICAgICAgIGMtPmNsaXAoc2hh
ZG93UmVjdCk7CisKKyAgICAgICAgICAgIHNoYWRvd09mZnNldCArPSBvZmZzZXQ7CisKKyAgICAg
ICAgICAgIGMtPnNldExlZ2FjeVNoYWRvdyhzaGFkb3dPZmZzZXQsIHNoYWRvd1JhZGl1cywgc2hh
ZG93Q29sb3IsIHNoYWRvd0NvbG9yU3BhY2UpOworCisgICAgICAgICAgICBpZiAoZmlsbCkKKyAg
ICAgICAgICAgICAgICBjLT5zZXRGaWxsQ29sb3IoQ29sb3I6OmJsYWNrLCBDb2xvclNwYWNlRGV2
aWNlUkdCKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBjLT5zZXRTdHJva2VD
b2xvcihDb2xvcjo6YmxhY2ssIENvbG9yU3BhY2VEZXZpY2VSR0IpOworCisgICAgICAgICAgICBj
LT5kcmF3QmlkaVRleHQoZm9udCwgdGV4dFJ1biwgbG9jYXRpb24gKyBvZmZzZXQsIEZvbnRDYXNj
YWRlOjpVc2VGYWxsYmFja0lmRm9udE5vdFJlYWR5KTsKKyAgICAgICAgfQorCiAgICAgICAgIHN0
ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1ZmZlcj4gbWFza0ltYWdlID0gYy0+Y3JlYXRlQ29tcGF0aWJs
ZUJ1ZmZlcihtYXNrUmVjdC5zaXplKCkpOwogCiAgICAgICAgIEdyYXBoaWNzQ29udGV4dCogbWFz
a0ltYWdlQ29udGV4dCA9IG1hc2tJbWFnZS0+Y29udGV4dCgpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDJlOGZlMWYzMjA1
NjlkZGU4ODVkMjE3NzdhZTkwMzJkZTJjYzYyM2EuLjQ4NjdiYzViY2JkZmZlYTAwYzIyY2RlNjYx
NDk4ODM5YzBiOGNiMWMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOSBAQAorMjAxNS0wOC0wNiAgRGVhbiBK
YWNrc29uICA8ZGlub0BhcHBsZS5jb20+CisKKyAgICAgICAgU2hhZG93cyBkb24ndCBkcmF3IG9u
IGZpbGxUZXh0IHdoZW4gdXNpbmcgYSBncmFkaWVudCBmaWxsCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDc3NTgKKyAgICAgICAgPHJkYXI6Ly9wcm9i
bGVtLzIwODYwOTEyPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIE5ldyB0ZXN0IHRoYXQgZXhlcmNpc2VzIHNoYWRvd3Mgb24gZ3JhZGllbnQgZmlsbHMu
IFRoaXMgcmVhbGx5CisgICAgICAgIHNob3VsZCBiZSBhIHJlZiB0ZXN0LCBidXQgdGhlcmUgaXMg
YSB2ZXJ5IHNtYWxsIHJlbmRlcmluZyBkaWZmZXJlbmNlCisgICAgICAgIGNhdXNlZCBieSBtYXNr
aW5nLCBzbyBpbnN0ZWFkIGl0IHVzZXMgSlMgdG8gbG9vayBmb3IgcGl4ZWxzIG9mCisgICAgICAg
IHRoZSBjb3JyZWN0IGNvbG9yLgorCisgICAgICAgICogZmFzdC9jYW52YXMvZ3JhZGllbnQtdGV4
dC13aXRoLXNoYWRvdy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvY2FudmFz
L2dyYWRpZW50LXRleHQtd2l0aC1zaGFkb3cuaHRtbDogQWRkZWQuCisKIDIwMTUtMDgtMDUgIFNp
bW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CiAKICAgICAgICAgTW92ZSBwbGF0
Zm9ybS9pb3Mtc2ltdWxhdG9yL2lvcy9mYXN0L2V2ZW50cy90b3VjaCB0ZXN0cyB0byBmYXN0L2V2
ZW50cy90b3VjaApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvZ3JhZGllbnQt
dGV4dC13aXRoLXNoYWRvdy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy9n
cmFkaWVudC10ZXh0LXdpdGgtc2hhZG93LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41M2NkZjFl
OTM5MzJjYTE3NDI1YTM0ZWMxYTYxNWE4M2RmMzhiYWQ5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvZmFzdC9jYW52YXMvZ3JhZGllbnQtdGV4dC13aXRoLXNoYWRvdy1leHBlY3RlZC50
eHQKQEAgLTAsMCArMSBAQAorUEFTU0VECmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Nh
bnZhcy9ncmFkaWVudC10ZXh0LXdpdGgtc2hhZG93Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Nh
bnZhcy9ncmFkaWVudC10ZXh0LXdpdGgtc2hhZG93Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTc0MWYxZmQ3
MThkNWU5NjUwMTE5NWRkYzhhNjdkZjFhNzE0NGI4MgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2Zhc3QvY2FudmFzL2dyYWRpZW50LXRleHQtd2l0aC1zaGFkb3cuaHRtbApAQCAtMCww
ICsxLDQzIEBACis8c2NyaXB0PgorCitpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgdGVzdFJ1
bm5lci5kdW1wQXNUZXh0KCk7CisKK2Z1bmN0aW9uIHJ1blRlc3QoKSB7CisKKyAgICB2YXIgY2Fu
dmFzID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiY2FudmFzIik7CisgICAgdmFyIGNvbnRleHQg
PSBjYW52YXMuZ2V0Q29udGV4dCgnMmQnKTsKKworICAgIGNvbnRleHQuc2hhZG93T2Zmc2V0WCA9
IDA7CisgICAgY29udGV4dC5zaGFkb3dPZmZzZXRZID0gMTA7CisgICAgY29udGV4dC5zaGFkb3dC
bHVyID0gMDsKKyAgICBjb250ZXh0LnNoYWRvd0NvbG9yID0gInJnYigyNTUsIDAsIDApIjsKKwor
ICAgIGNvbnRleHQuZm9udCA9ICI4MHB4IHNhbnMtc2VyaWYiOworCisgICAgdmFyIGdyYWRpZW50
ID0gY29udGV4dC5jcmVhdGVMaW5lYXJHcmFkaWVudCgwLCAwLCAwLCAxMDApOworICAgIGdyYWRp
ZW50LmFkZENvbG9yU3RvcCgwLCAiYmx1ZSIpOworICAgIGdyYWRpZW50LmFkZENvbG9yU3RvcCgx
LCAiYmx1ZSIpOworCisgICAgY29udGV4dC5maWxsU3R5bGUgPSBncmFkaWVudDsKKyAgICBjb250
ZXh0LmZpbGxUZXh0KCJoZWxsbyIsIDEwLCA5NSk7CisKKyAgICAvLyBJZiB3ZSBjb3JyZWN0bHkg
ZHJldyB0aGUgc2hhZG93LCB0aGVyZSB3aWxsIGJlIHNvbWUKKyAgICAvLyByZWQgcGl4ZWxzIGFs
b25nIHRoZSBib3R0b20gbGluZSBvZiB0aGUgY2FudmFzLgorCisgICAgdmFyIGJ1ZmZlciA9IGNv
bnRleHQuZ2V0SW1hZ2VEYXRhKDAsIGNhbnZhcy5oZWlnaHQgLSAxLCBjYW52YXMud2lkdGgsIDEp
OworICAgIHZhciBwYXNzZWQgPSBmYWxzZTsKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IGNhbnZh
cy53aWR0aDsgKytpKSB7CisgICAgICAgIGlmIChidWZmZXIuZGF0YVtpICogNF0gPiAwKSB7Cisg
ICAgICAgICAgICBwYXNzZWQgPSB0cnVlOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0K
KyAgICB9CisgICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvcigicCIpLnRleHRDb250ZW50ID0gcGFz
c2VkID8gIlBBU1NFRCIgOiAiRkFJTEVEIjsKK30KKword2luZG93LmFkZEV2ZW50TGlzdGVuZXIo
ImxvYWQiLCBydW5UZXN0LCBmYWxzZSk7CisKKzwvc2NyaXB0PgorPGNhbnZhcyB3aWR0aD0iMjAw
IiBoZWlnaHQ9IjEwMCI+PC9jYW52YXM+Cis8cD48L3A+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2Yg
ZmlsZQo=
</data>
<flag name="review"
          id="283608"
          type_id="1"
          status="+"
          setter="mmaxfield"
    />
          </attachment>
      

    </bug>

</bugzilla>