<?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>102843</bug_id>
          
          <creation_ts>2012-11-20 15:03:21 -0800</creation_ts>
          <short_desc>HTMLCollection&apos;s cache should not be invalidated when id or name attributes are changed</short_desc>
          <delta_ts>2012-11-21 15:15:51 -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>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>78909</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Ryosuke Niwa">rniwa</reporter>
          <assigned_to name="Ryosuke Niwa">rniwa</assigned_to>
          <cc>eric</cc>
    
    <cc>koivisto</cc>
    
    <cc>ojan</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>772200</commentid>
    <comment_count>0</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-11-20 15:03:21 -0800</bug_when>
    <thetext>HTMLCollection&apos;s cache should not be invalidated when id or name attributes are changed</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>772202</commentid>
    <comment_count>1</comment_count>
      <attachid>175286</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-11-20 15:09:52 -0800</bug_when>
    <thetext>Created attachment 175286
Fixes the bug</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>772215</commentid>
    <comment_count>2</comment_count>
      <attachid>175286</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-11-20 15:22:14 -0800</bug_when>
    <thetext>Comment on attachment 175286
Fixes the bug

YES.  This is easy to test though.  Just iterate over table.rows and set a name on each.  It will be O(N^2) w/o this fix.  Ojan&apos;s order-of-magnitude framework makes this trivial.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>772220</commentid>
    <comment_count>3</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-11-20 15:29:22 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 175286 [details])
&gt; YES.  This is easy to test though.  Just iterate over table.rows and set a name on each.  It will be O(N^2) w/o this fix.  Ojan&apos;s order-of-magnitude framework makes this trivial.

I&apos;ve tried that but my test was consistently flaky.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>772224</commentid>
    <comment_count>4</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-11-20 15:35:23 -0800</bug_when>
    <thetext>I didn&apos;t have that trouble with his framework, but I guess YMMV?  Sadly the tests I wrote in this style are on a different machine I may not have access to for a week.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>772226</commentid>
    <comment_count>5</comment_count>
      <attachid>175286</attachid>
    <who name="Rafael Brandao">rafael.lobo</who>
    <bug_when>2012-11-20 15:35:55 -0800</bug_when>
    <thetext>Comment on attachment 175286
Fixes the bug

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

&gt; Source/WebCore/dom/DynamicNodeList.h:83
&gt; +    void invalididateIdNameCacheMaps() const;

Typo on &quot;invalididate&quot;, should be &quot;invalidate&quot;, right?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>772230</commentid>
    <comment_count>6</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-11-20 15:41:20 -0800</bug_when>
    <thetext>Committed r135321: &lt;http://trac.webkit.org/changeset/135321&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>772255</commentid>
    <comment_count>7</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-11-20 16:08:09 -0800</bug_when>
    <thetext>Fixed typos in http://trac.webkit.org/changeset/135323 and http://trac.webkit.org/changeset/135327.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>175286</attachid>
            <date>2012-11-20 15:09:52 -0800</date>
            <delta_ts>2012-11-20 15:35:55 -0800</delta_ts>
            <desc>Fixes the bug</desc>
            <filename>bug-102843-20121120150740.patch</filename>
            <type>text/plain</type>
            <size>4822</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEzNTMxNykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI2IEBACisyMDEyLTExLTIwICBSeW9zdWtl
IE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgorCisgICAgICAgIEhUTUxDb2xsZWN0aW9uJ3MgY2Fj
aGUgc2hvdWxkIG5vdCBiZSBpbnZhbGlkYXRlZCB3aGVuIGlkIG9yIG5hbWUgYXR0cmlidXRlcyBh
cmUgY2hhbmdlZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTAyODQzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgV2hlbiBhbiBpZCBvciBuYW1lIGF0dHJpYnV0ZSBjaGFuZ2VzLCBvbmx5IGludmFsaWF0ZSBp
ZCBhbmQgbmFtZSBjYWNoZSBtYXBzIHdoZW4gdGhlIGNvbGxlY3Rpb24KKyAgICAgICAgZG9lc24n
dCBkZXBlbmQgb24gaWQgYW5kIG5hbWUgYXR0cmlidXRlcyAoZS5nLiBkb2N1bWVudC5pbWFnZXMp
LgorCisgICAgICAgIFVuZm9ydHVuYXRlbHksIEkgY291bGQgbm90IGNyZWF0ZSBhIHJlbGlhYmxl
IHRlc3QgZm9yIHRoaXMgcGVyZm9ybWFuY2UgcHJvYmxlbS4KKworICAgICAgICAqIGRvbS9EeW5h
bWljTm9kZUxpc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RHluYW1pY05vZGVMaXN0Q2FjaGVC
YXNlOjppbnZhbGlkaWRhdGVJZE5hbWVDYWNoZU1hcHMpOgorICAgICAgICAoV2ViQ29yZSk6Cisg
ICAgICAgICogZG9tL0R5bmFtaWNOb2RlTGlzdC5oOgorICAgICAgICAoV2ViQ29yZTo6RHluYW1p
Y05vZGVMaXN0Q2FjaGVCYXNlOjppbnZhbGlkYXRlQ2FjaGUpOgorICAgICAgICAoRHluYW1pY05v
ZGVMaXN0Q2FjaGVCYXNlKToKKyAgICAgICAgKiBkb20vRWxlbWVudFJhcmVEYXRhLmg6CisgICAg
ICAgIChXZWJDb3JlOjpFbGVtZW50UmFyZURhdGE6OmNsZWFySFRNTENvbGxlY3Rpb25DYWNoZXMp
OgorICAgICAgICAqIGh0bWwvSFRNTENvbGxlY3Rpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6
aW52YWxpZGF0aW9uVHlwZUV4Y2x1ZGluZ0lkQW5kTmFtZUF0dHJpYnV0ZXMpOgorCiAyMDEyLTEx
LTIwICBCcmVudCBGdWxnaGFtICA8YmZ1bGdoYW1Ad2Via2l0Lm9yZz4KIAogICAgICAgICBbV2lu
Q2Fpcm9dIEJ1aWxkIGZpeCBhZnRlciByMTM1MzE2CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20v
RHluYW1pY05vZGVMaXN0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vRHlu
YW1pY05vZGVMaXN0LmNwcAkocmV2aXNpb24gMTM1MTg3KQorKysgU291cmNlL1dlYkNvcmUvZG9t
L0R5bmFtaWNOb2RlTGlzdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTcxLDYgKzcxLDE0IEBAIHZv
aWQgRHluYW1pY05vZGVMaXN0Q2FjaGVCYXNlOjppbnZhbGlkYXQKICNlbmRpZgogfQogCit2b2lk
IER5bmFtaWNOb2RlTGlzdENhY2hlQmFzZTo6aW52YWxpZGlkYXRlSWROYW1lQ2FjaGVNYXBzKCkg
Y29uc3QKK3sKKyAgICBBU1NFUlQoaXNOb2RlQ29sbGVjdGlvblR5cGUodHlwZSgpKSk7CisgICAg
Y29uc3QgSFRNTENvbGxlY3Rpb25DYWNoZUJhc2UqIGNhY2hlQmFzZSA9IHN0YXRpY19jYXN0PGNv
bnN0IEhUTUxDb2xsZWN0aW9uQ2FjaGVCYXNlKj4odGhpcyk7CisgICAgY2FjaGVCYXNlLT5tX2lk
Q2FjaGUuY2xlYXIoKTsKKyAgICBjYWNoZUJhc2UtPm1fbmFtZUNhY2hlLmNsZWFyKCk7Cit9CisK
IHVuc2lnbmVkIER5bmFtaWNOb2RlTGlzdDo6bGVuZ3RoKCkgY29uc3QKIHsKICAgICByZXR1cm4g
bGVuZ3RoQ29tbW9uKCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vRHluYW1pY05vZGVMaXN0
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL0R5bmFtaWNOb2RlTGlzdC5oCShy
ZXZpc2lvbiAxMzUxODcpCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vRHluYW1pY05vZGVMaXN0LmgJ
KHdvcmtpbmcgY29weSkKQEAgLTc2LDggKzc2LDExIEBAIHB1YmxpYzoKICAgICB7CiAgICAgICAg
IGlmICghYXR0ck5hbWUgfHwgc2hvdWxkSW52YWxpZGF0ZVR5cGVPbkF0dHJpYnV0ZUNoYW5nZShp
bnZhbGlkYXRpb25UeXBlKCksICphdHRyTmFtZSkpCiAgICAgICAgICAgICBpbnZhbGlkYXRlQ2Fj
aGUoKTsKKyAgICAgICAgZWxzZSBpZiAoaXNOb2RlQ29sbGVjdGlvblR5cGUodHlwZSgpKSAmJiAo
KmF0dHJOYW1lID09IEhUTUxOYW1lczo6aWRBdHRyIHx8ICphdHRyTmFtZSA9PSBIVE1MTmFtZXM6
Om5hbWVBdHRyKSkKKyAgICAgICAgICAgIGludmFsaWRpZGF0ZUlkTmFtZUNhY2hlTWFwcygpOwog
ICAgIH0KICAgICB2b2lkIGludmFsaWRhdGVDYWNoZSgpIGNvbnN0OworICAgIHZvaWQgaW52YWxp
ZGlkYXRlSWROYW1lQ2FjaGVNYXBzKCkgY29uc3Q7CiAKICAgICBzdGF0aWMgYm9vbCBzaG91bGRJ
bnZhbGlkYXRlVHlwZU9uQXR0cmlidXRlQ2hhbmdlKE5vZGVMaXN0SW52YWxpZGF0aW9uVHlwZSwg
Y29uc3QgUXVhbGlmaWVkTmFtZSYpOwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVu
dFJhcmVEYXRhLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnRSYXJl
RGF0YS5oCShyZXZpc2lvbiAxMzUxODcpCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudFJh
cmVEYXRhLmgJKHdvcmtpbmcgY29weSkKQEAgLTgwLDEzICs4MCw5IEBAIHB1YmxpYzoKICAgICAg
ICAgaWYgKCFtX2NhY2hlZENvbGxlY3Rpb25zKQogICAgICAgICAgICAgcmV0dXJuOwogCi0gICAg
ICAgIGJvb2wgc2hvdWxkSWdub3JlVHlwZSA9ICFhdHRyTmFtZSB8fCAqYXR0ck5hbWUgPT0gSFRN
TE5hbWVzOjppZEF0dHIgfHwgKmF0dHJOYW1lID09IEhUTUxOYW1lczo6bmFtZUF0dHI7Ci0KICAg
ICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8ICgqbV9jYWNoZWRDb2xsZWN0aW9ucykuc2l6
ZSgpOyBpKyspIHsKLSAgICAgICAgICAgIGlmIChIVE1MQ29sbGVjdGlvbiogY29sbGVjdGlvbiA9
ICgqbV9jYWNoZWRDb2xsZWN0aW9ucylbaV0pIHsKLSAgICAgICAgICAgICAgICBpZiAoc2hvdWxk
SWdub3JlVHlwZSB8fCBEeW5hbWljTm9kZUxpc3RDYWNoZUJhc2U6OnNob3VsZEludmFsaWRhdGVU
eXBlT25BdHRyaWJ1dGVDaGFuZ2UoY29sbGVjdGlvbi0+aW52YWxpZGF0aW9uVHlwZSgpLCAqYXR0
ck5hbWUpKQotICAgICAgICAgICAgICAgICAgICBjb2xsZWN0aW9uLT5pbnZhbGlkYXRlQ2FjaGUo
KTsKLSAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChIVE1MQ29sbGVjdGlvbiogY29sbGVj
dGlvbiA9ICgqbV9jYWNoZWRDb2xsZWN0aW9ucylbaV0pCisgICAgICAgICAgICAgICAgY29sbGVj
dGlvbi0+aW52YWxpZGF0ZUNhY2hlKGF0dHJOYW1lKTsKICAgICAgICAgfQogICAgIH0KIApJbmRl
eDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ29sbGVjdGlvbi5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ29sbGVjdGlvbi5jcHAJKHJldmlzaW9uIDEzNTE4NykK
KysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENvbGxlY3Rpb24uY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0xMTYsMTEgKzExNiw4IEBAIHN0YXRpYyBOb2RlTGlzdEludmFsaWRhdGlvblR5cGUgaW52
YWxpZGEKICAgICBjYXNlIERvY0ltYWdlczoKICAgICBjYXNlIERvY0VtYmVkczoKICAgICBjYXNl
IERvY0Zvcm1zOgotICAgIGNhc2UgRG9jQW5jaG9yczogLy8gRGVwZW5kcyBvbiBuYW1lIGF0dHJp
YnV0ZS4KICAgICBjYXNlIERvY1NjcmlwdHM6CiAgICAgY2FzZSBEb2NBbGw6Ci0gICAgY2FzZSBX
aW5kb3dOYW1lZEl0ZW1zOiAvLyBEZXBlbmRzIG9uIGlkIGFuZCBuYW1lIGF0dHJpYnV0ZXMuCi0g
ICAgY2FzZSBEb2N1bWVudE5hbWVkSXRlbXM6IC8vIERpdHRvLgogICAgIGNhc2UgTm9kZUNoaWxk
cmVuOgogICAgIGNhc2UgVGFibGVUQm9kaWVzOgogICAgIGNhc2UgVFNlY3Rpb25Sb3dzOgpAQCAt
MTM0LDggKzEzMSwxNCBAQCBzdGF0aWMgTm9kZUxpc3RJbnZhbGlkYXRpb25UeXBlIGludmFsaWRh
CiAgICAgY2FzZSBEYXRhTGlzdE9wdGlvbnM6CiAgICAgICAgIC8vIEZJWE1FOiBXZSBjYW4gZG8g
YmV0dGVyIHNvbWUgZGF5LgogICAgICAgICByZXR1cm4gSW52YWxpZGF0ZU9uQW55QXR0ckNoYW5n
ZTsKKyAgICBjYXNlIERvY0FuY2hvcnM6CisgICAgICAgIHJldHVybiBJbnZhbGlkYXRlT25OYW1l
QXR0ckNoYW5nZTsKICAgICBjYXNlIERvY0xpbmtzOgogICAgICAgICByZXR1cm4gSW52YWxpZGF0
ZU9uSFJlZkF0dHJDaGFuZ2U7CisgICAgY2FzZSBXaW5kb3dOYW1lZEl0ZW1zOgorICAgICAgICBy
ZXR1cm4gSW52YWxpZGF0ZU9uSWROYW1lQXR0ckNoYW5nZTsKKyAgICBjYXNlIERvY3VtZW50TmFt
ZWRJdGVtczoKKyAgICAgICAgcmV0dXJuIEludmFsaWRhdGVPbklkTmFtZUF0dHJDaGFuZ2U7CiAj
aWYgRU5BQkxFKE1JQ1JPREFUQSkKICAgICBjYXNlIEl0ZW1Qcm9wZXJ0aWVzOgogICAgICAgICBy
ZXR1cm4gSW52YWxpZGF0ZU9uSXRlbUF0dHJDaGFuZ2U7Cg==
</data>
<flag name="review"
          id="190685"
          type_id="1"
          status="+"
          setter="eric"
    />
          </attachment>
      

    </bug>

</bugzilla>