<?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>104923</bug_id>
          
          <creation_ts>2012-12-13 09:17:30 -0800</creation_ts>
          <short_desc>Canvas2DRenderingContext::setFont() does not need to be slow when repeatedly setting the same font</short_desc>
          <delta_ts>2012-12-13 12:41:28 -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>Canvas</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="Stephen White">senorblanco</reporter>
          <assigned_to name="Stephen White">senorblanco</assigned_to>
          <cc>eric</cc>
    
    <cc>jamesr</cc>
    
    <cc>ojan.autocc</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>790664</commentid>
    <comment_count>0</comment_count>
    <who name="Stephen White">senorblanco</who>
    <bug_when>2012-12-13 09:17:30 -0800</bug_when>
    <thetext>Canvas2DRenderingContext::setFont() is slow</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>790667</commentid>
    <comment_count>1</comment_count>
      <attachid>179284</attachid>
    <who name="Stephen White">senorblanco</who>
    <bug_when>2012-12-13 09:19:21 -0800</bug_when>
    <thetext>Created attachment 179284
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>790679</commentid>
    <comment_count>2</comment_count>
      <attachid>179284</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-12-13 09:29:02 -0800</bug_when>
    <thetext>Comment on attachment 179284
Patch

Seems sound, but do we have any way to validate + track changes like this?  Maybe something under PerformanceTests/ ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>790712</commentid>
    <comment_count>3</comment_count>
      <attachid>179284</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-12-13 10:05:06 -0800</bug_when>
    <thetext>Comment on attachment 179284
Patch

Lgtm too</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>790774</commentid>
    <comment_count>4</comment_count>
    <who name="Stephen White">senorblanco</who>
    <bug_when>2012-12-13 11:15:28 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 179284 [details])
&gt; Seems sound, but do we have any way to validate + track changes like this?  Maybe something under PerformanceTests/ ?

For now, I&apos;ve added a ManualTest.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>790775</commentid>
    <comment_count>5</comment_count>
      <attachid>179304</attachid>
    <who name="Stephen White">senorblanco</who>
    <bug_when>2012-12-13 11:16:12 -0800</bug_when>
    <thetext>Created attachment 179304
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>790787</commentid>
    <comment_count>6</comment_count>
      <attachid>179304</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-12-13 11:33:24 -0800</bug_when>
    <thetext>Comment on attachment 179304
Patch for landing

Clearing flags on attachment: 179304

Committed r137630: &lt;http://trac.webkit.org/changeset/137630&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>790788</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-12-13 11:33:28 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>790822</commentid>
    <comment_count>8</comment_count>
    <who name="Stephen White">senorblanco</who>
    <bug_when>2012-12-13 12:41:28 -0800</bug_when>
    <thetext>Good point about the bug rename.  CanvasRenderingContext2D::setFont() is still slow when actually setting fonts.  As a (somewhat more involved) followup, it would be nice to cache the mapping between unparsed strings and fonts, if possible.  The CSS parser is really slow.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>179284</attachid>
            <date>2012-12-13 09:19:21 -0800</date>
            <delta_ts>2012-12-13 11:16:08 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-104923-20121213121651.patch</filename>
            <type>text/plain</type>
            <size>1841</size>
            <attacher name="Stephen White">senorblanco</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM3MzI5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmU4MTg0NjFmNDc3OTAy
MDc0ODAxYTY0NDk2ZDg5YzAyZGY5YjUwYi4uOGQ4OTEzMTQzZGFhZGRhYzE2NWNmNzE5ODBkYjZh
ZjU1NTFiMDQwYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDEyLTEyLTEzICBTdGVw
aGVuIFdoaXRlICA8c2Vub3JibGFuY29AY2hyb21pdW0ub3JnPgorCisgICAgICAgIENhbnZhc1Jl
bmRlcmluZ0NvbnRleHQyRDo6c2V0Rm9udCgpIGlzIHNsb3cuCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDQ5MjMKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIHNwZW5kcyBtb3N0IG9mIGl0cyB0aW1l
IGluIHRoZSBDU1MgcGFyc2VyLiAgQXMgYSBmaXJzdCBzdGVwLAorICAgICAgICBlYXJseS1vdXQg
aWYgdGhlIG5ldyB2YWx1ZSBpcyB0aGUgc2FtZSBhcyB1bnBhcnNlZCBzdHJpbmcgZm9yIHRoZSBj
dXJyZW50IGZvbnQuCisgICAgICAgIFNlZSBhbHNvIGh0dHA6Ly9jb2RlLmdvb2dsZS5jb20vcC9j
aHJvbWl1bS9pc3N1ZXMvZGV0YWlsP2lkPTE2NDAxNi4KKworICAgICAgICBDb3ZlcmVkIGJ5IGV4
aXN0aW5nIHRlc3RzIGluIGNhbnZhcy8gYW5kIGZhc3QvY2FudmFzLgorCisgICAgICAgICogaHRt
bC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6c2V0Rm9udCk6CisKIDIwMTItMTItMTEgIENhcmxv
cyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtHVEtdIElu
c3RhbGwgR09iamVjdCBET00gYmluZGluZ3MgaGVhZGVycyBpbiBpdHMgb3duIGRpcmVjdG9yeQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29u
dGV4dDJELmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0Nv
bnRleHQyRC5jcHAKaW5kZXggOWYxYWM4YjMyNzljYjU3M2FmMTU2MWI2ZWZjYWY2NTY2ZWU0ODdl
Mi4uMWEyODc1NWQ1MGY5NWVjZmU3YWQ5MDYwN2E3ZjBmMjAyNWZkYWYxNSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQu
Y3BwCkBAIC0yMDcyLDYgKzIwNzIsOSBAQCBTdHJpbmcgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJE
Ojpmb250KCkgY29uc3QKIAogdm9pZCBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6OnNldEZvbnQo
Y29uc3QgU3RyaW5nJiBuZXdGb250KQogeworICAgIGlmIChuZXdGb250ID09IHN0YXRlKCkubV91
bnBhcnNlZEZvbnQgJiYgc3RhdGUoKS5tX3JlYWxpemVkRm9udCkKKyAgICAgICAgcmV0dXJuOwor
CiAgICAgUmVmUHRyPFN0eWxlUHJvcGVydHlTZXQ+IHBhcnNlZFN0eWxlID0gU3R5bGVQcm9wZXJ0
eVNldDo6Y3JlYXRlKCk7CiAgICAgQ1NTUGFyc2VyOjpwYXJzZVZhbHVlKHBhcnNlZFN0eWxlLmdl
dCgpLCBDU1NQcm9wZXJ0eUZvbnQsIG5ld0ZvbnQsIHRydWUsIHN0cmljdFRvQ1NTUGFyc2VyTW9k
ZSghbV91c2VzQ1NTQ29tcGF0aWJpbGl0eVBhcnNlTW9kZSksIDApOwogICAgIGlmIChwYXJzZWRT
dHlsZS0+aXNFbXB0eSgpKQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>179304</attachid>
            <date>2012-12-13 11:16:12 -0800</date>
            <delta_ts>2012-12-13 11:33:24 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-104923-20121213141342.patch</filename>
            <type>text/plain</type>
            <size>3229</size>
            <attacher name="Stephen White">senorblanco</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM3MzI5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmU4MTg0NjFmNDc3OTAy
MDc0ODAxYTY0NDk2ZDg5YzAyZGY5YjUwYi4uYTc3NDRjYzIwNGNkNWM1NTcyYjFmM2NlMjBkNzhk
ZmJiOTlkYjhkNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDEyLTEyLTEzICBTdGVw
aGVuIFdoaXRlICA8c2Vub3JibGFuY29AY2hyb21pdW0ub3JnPgorCisgICAgICAgIENhbnZhc1Jl
bmRlcmluZ0NvbnRleHQyRDo6c2V0Rm9udCgpIGlzIHNsb3cuCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDQ5MjMKKworICAgICAgICBSZXZpZXdlZCBi
eSBKYW1lcyBSb2JpbnNvbi4KKworICAgICAgICBUaGlzIHNwZW5kcyBtb3N0IG9mIGl0cyB0aW1l
IGluIHRoZSBDU1MgcGFyc2VyLiAgQXMgYSBmaXJzdCBzdGVwLAorICAgICAgICBlYXJseS1vdXQg
aWYgdGhlIG5ldyB2YWx1ZSBpcyB0aGUgc2FtZSBhcyB1bnBhcnNlZCBzdHJpbmcgZm9yIHRoZSBj
dXJyZW50IGZvbnQuCisgICAgICAgIFNlZSBhbHNvIGh0dHA6Ly9jb2RlLmdvb2dsZS5jb20vcC9j
aHJvbWl1bS9pc3N1ZXMvZGV0YWlsP2lkPTE2NDAxNi4KKworICAgICAgICBDb3ZlcmVkIGJ5IGV4
aXN0aW5nIHRlc3RzIGluIGNhbnZhcy8gYW5kIGZhc3QvY2FudmFzLCBhbmQgTWFudWFsVGVzdHMv
Y2FudmFzLWZvbnQtc3BlZWQuaHRtbC4KKworICAgICAgICAqIGh0bWwvY2FudmFzL0NhbnZhc1Jl
bmRlcmluZ0NvbnRleHQyRC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDYW52YXNSZW5kZXJpbmdD
b250ZXh0MkQ6OnNldEZvbnQpOgorCiAyMDEyLTEyLTExICBDYXJsb3MgR2FyY2lhIENhbXBvcyAg
PGNnYXJjaWFAaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1RLXSBJbnN0YWxsIEdPYmplY3QgRE9N
IGJpbmRpbmdzIGhlYWRlcnMgaW4gaXRzIG93biBkaXJlY3RvcnkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuY3BwCmluZGV4
IDlmMWFjOGIzMjc5Y2I1NzNhZjE1NjFiNmVmY2FmNjU2NmVlNDg3ZTIuLjFhMjg3NTVkNTBmOTVl
Y2ZlN2FkOTA2MDdhN2YwZjIwMjVmZGFmMTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmNwcApAQCAtMjA3Miw2ICsy
MDcyLDkgQEAgU3RyaW5nIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6Zm9udCgpIGNvbnN0CiAK
IHZvaWQgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOjpzZXRGb250KGNvbnN0IFN0cmluZyYgbmV3
Rm9udCkKIHsKKyAgICBpZiAobmV3Rm9udCA9PSBzdGF0ZSgpLm1fdW5wYXJzZWRGb250ICYmIHN0
YXRlKCkubV9yZWFsaXplZEZvbnQpCisgICAgICAgIHJldHVybjsKKwogICAgIFJlZlB0cjxTdHls
ZVByb3BlcnR5U2V0PiBwYXJzZWRTdHlsZSA9IFN0eWxlUHJvcGVydHlTZXQ6OmNyZWF0ZSgpOwog
ICAgIENTU1BhcnNlcjo6cGFyc2VWYWx1ZShwYXJzZWRTdHlsZS5nZXQoKSwgQ1NTUHJvcGVydHlG
b250LCBuZXdGb250LCB0cnVlLCBzdHJpY3RUb0NTU1BhcnNlck1vZGUoIW1fdXNlc0NTU0NvbXBh
dGliaWxpdHlQYXJzZU1vZGUpLCAwKTsKICAgICBpZiAocGFyc2VkU3R5bGUtPmlzRW1wdHkoKSkK
ZGlmZiAtLWdpdCBhL0NoYW5nZUxvZyBiL0NoYW5nZUxvZwppbmRleCA4MmVkNWUzMGFlNzkyYzNk
NDk3ZmJkNGUxZTI3NzIxMDI4NGMwZThiLi4yYWMxNGZkYzUxZmYyYjYwYzkxMDZmMzRhMjA3NmEx
ZDM5ZjIzZjgzIDEwMDY0NAotLS0gYS9DaGFuZ2VMb2cKKysrIGIvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMTIgQEAKKzIwMTItMTItMTMgIFN0ZXBoZW4gV2hpdGUgIDxzZW5vcmJsYW5jb0BjaHJvbWl1
bS5vcmc+CisKKyAgICAgICAgQWRkZWQgbWFudWFsIHRlc3QgZm9yIGNhbnZhcyBzZXRGb250IHNw
ZWVkLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA0
OTIzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgSmFtZXMgUm9iaW5zb24uCisKKyAgICAgICAgKiBN
YW51YWxUZXN0cy9jYW52YXMtZm9udC1zcGVlZC5odG1sOiBBZGRlZC4KKwogMjAxMi0xMi0xMSAg
Q2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dU
S10gSW5zdGFsbCBHT2JqZWN0IERPTSBiaW5kaW5ncyBoZWFkZXJzIGluIGl0cyBvd24gZGlyZWN0
b3J5CmRpZmYgLS1naXQgYS9NYW51YWxUZXN0cy9jYW52YXMtZm9udC1zcGVlZC5odG1sIGIvTWFu
dWFsVGVzdHMvY2FudmFzLWZvbnQtc3BlZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mYmE2YmNlMDcwYTJh
NWRmYmM5NDhhOGIzZWQyMTgyMjAwMmI2NTczCi0tLSAvZGV2L251bGwKKysrIGIvTWFudWFsVGVz
dHMvY2FudmFzLWZvbnQtc3BlZWQuaHRtbApAQCAtMCwwICsxLDE4IEBACis8IURPQ1RZUEUgSFRN
TCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPHRpdGxl
PkNhbnZhcyAyZCBDb250ZXh0IEZvbnQgUHJvcGVydHkgU3BlZWQ8L3RpdGxlPgorPC9oZWFkPgor
PGJvZHk+CisgIDxjYW52YXMgaWQ9J3RoZWNhbnZhcycgaGVpZ2h0PTEwMCB3aWR0aD0xMDAvPgor
ICA8c2NyaXB0PgorICAgIHZhciBjYW52YXMgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGhl
Y2FudmFzJyk7CisgICAgdmFyIGNvbnRleHQgPSBjYW52YXMuZ2V0Q29udGV4dCgnMmQnKTsKKyAg
ICB2YXIgdDAgPSBEYXRlLm5vdygpOworICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDsgaSsr
KSB7CisgICAgICBjb250ZXh0LmZvbnQgPSAnYm9sZCAxM3B4IEFyaWFsJzsKKyAgICB9CisgICAg
YWxlcnQoJ0VsYXBzZWQgZm9yIDEwMDAgZm9udCBzZXR0aW5nczogJyArIChEYXRlLm5vdygpIC0g
dDApKTsKKyAgPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>