<?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>47166</bug_id>
          
          <creation_ts>2010-10-05 03:29:48 -0700</creation_ts>
          <short_desc>querySelectorAll(&apos;body&gt;:last-child&apos;) does not work unless HTML file ends with &apos;new-line&apos;.</short_desc>
          <delta_ts>2010-11-02 12:15:49 -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>DOM</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>OS X 10.5</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="Hayato Ito">hayato</reporter>
          <assigned_to name="Adam Barth">abarth</assigned_to>
          <cc>abarth</cc>
    
    <cc>ap</cc>
    
    <cc>eric</cc>
    
    <cc>hamaji</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>289523</commentid>
    <comment_count>0</comment_count>
      <attachid>69768</attachid>
    <who name="Hayato Ito">hayato</who>
    <bug_when>2010-10-05 03:29:48 -0700</bug_when>
    <thetext>Created attachment 69768
test1.html

Please see attachment files, test1.html and test2.html. The only difference between them is whether there is a &apos;new-line&apos; at the end of file or not.

- test1.html ends with &apos;new-line&apos;, like &apos;... &lt;/html&gt;\n&lt;EOF&gt;&apos;
- test2.html does not end with &apos;new-line&apos;, like &apos;.... &lt;/html&gt;&lt;EOF&gt;&apos;.

Open each files, then try the following JavaScript code in JavaScript console.

 &gt; document.querySelectorAll(&apos;body&gt;:last-child&apos;)

The results differs in test1.html and test2.html:
  - In test1.html, querySelectorAll returns a correct result, [&apos;&lt;div id=&quot;last&quot;&gt;last&lt;/div&gt;].
  - In test2.html, querySelectorAll returns an empty list, [], which is wrong result.

This might be a regression because Safari Version 5.0 (6533.16) returns the same correct results for both test1.html and test2.html.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>289524</commentid>
    <comment_count>1</comment_count>
      <attachid>69769</attachid>
    <who name="Hayato Ito">hayato</who>
    <bug_when>2010-10-05 03:30:27 -0700</bug_when>
    <thetext>Created attachment 69769
test2.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>289818</commentid>
    <comment_count>2</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-10-05 12:59:44 -0700</bug_when>
    <thetext>We had trouble with the last-child selector early on when developing the new tree builder.  There&apos;s some API we need to call on an element when it&apos;s received its last child (as I recall).  I&apos;ll possible we&apos;re screwing that up in this case.

The newline at the end of the file gets moved to just inside the body element, which might be confusing something.

Thanks for the report.  I&apos;ll take a look.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>300886</commentid>
    <comment_count>3</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-10-27 22:32:42 -0700</bug_when>
    <thetext>Looking now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>300890</commentid>
    <comment_count>4</comment_count>
      <attachid>72148</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-10-27 23:03:52 -0700</bug_when>
    <thetext>Created attachment 72148
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>301299</commentid>
    <comment_count>5</comment_count>
      <attachid>72148</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-10-28 13:41:31 -0700</bug_when>
    <thetext>Comment on attachment 72148
Patch

OK.  Your test case is really subtle.  It should document that it&apos;s important to not have a newline at the end.

Would probably be clearer if you document.wrote the contnet into an ifram.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>301300</commentid>
    <comment_count>6</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-10-28 13:41:49 -0700</bug_when>
    <thetext>You mentioned there was a spec bug?  What&apos;s the bug?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>301318</commentid>
    <comment_count>7</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-10-28 14:00:59 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; You mentioned there was a spec bug?  What&apos;s the bug?

It&apos;s for one of the FIXME cases.  It&apos;s just a typo in the spec.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>303544</commentid>
    <comment_count>8</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-11-02 12:15:49 -0700</bug_when>
    <thetext>Committed r71147: &lt;http://trac.webkit.org/changeset/71147&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>69768</attachid>
            <date>2010-10-05 03:29:48 -0700</date>
            <delta_ts>2010-10-05 03:29:48 -0700</delta_ts>
            <desc>test1.html</desc>
            <filename>test1.html</filename>
            <type>text/html</type>
            <size>208</size>
            <attacher name="Hayato Ito">hayato</attacher>
            
              <data encoding="base64">PCFET0NUWVBFIGh0bWw+CjxodG1sPgogIDxoZWFkPgogICAgPG1ldGEgaHR0cC1lcXVpdj0iY29u
dGVudC10eXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9dXRmLTgiIC8+CiAgICA8dGl0
bGU+bGFzdC1jaGlsZCB0ZXN0PC90aXRsZT4KICA8L2hlYWQ+CiAgPGJvZHk+CiAgICA8ZGl2IGlk
PSdsYXN0Jz5sYXN0PC9kaXY+CiAgPC9ib2R5Pgo8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>69769</attachid>
            <date>2010-10-05 03:30:27 -0700</date>
            <delta_ts>2010-10-05 03:30:27 -0700</delta_ts>
            <desc>test2.html</desc>
            <filename>test2.html</filename>
            <type>text/html</type>
            <size>207</size>
            <attacher name="Hayato Ito">hayato</attacher>
            
              <data encoding="base64">PCFET0NUWVBFIGh0bWw+CjxodG1sPgogIDxoZWFkPgogICAgPG1ldGEgaHR0cC1lcXVpdj0iY29u
dGVudC10eXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9dXRmLTgiIC8+CiAgICA8dGl0
bGU+bGFzdC1jaGlsZCB0ZXN0PC90aXRsZT4KICA8L2hlYWQ+CiAgPGJvZHk+CiAgICA8ZGl2IGlk
PSdsYXN0Jz5sYXN0PC9kaXY+CiAgPC9ib2R5Pgo8L2h0bWw+
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>72148</attachid>
            <date>2010-10-27 23:03:52 -0700</date>
            <delta_ts>2010-10-28 13:41:31 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-47166-20101027230350.patch</filename>
            <type>text/plain</type>
            <size>4144</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBmM2Y3ZWIzMjg1ZmVmNzNmYjI2NDFiZGU3MTQ0MTQ1YzExOTYwNTZiLi5kN2Y3NGMz
NTYwMDkzN2Q1MWU1YjdjMmYxNTAxYzg0NDg5MTc4ZWRmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAK
KzIwMTAtMTAtMjcgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBxdWVyeVNlbGVjdG9yQWxsKCdi
b2R5PjpsYXN0LWNoaWxkJykgZG9lcyBub3Qgd29yayB1bmxlc3MgSFRNTCBmaWxlIGVuZHMgd2l0
aCAnbmV3LWxpbmUnLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9NDcxNjYKKworICAgICAgICBUZXN0IHRoYXQgOmxhc3QtY2hpbGQgd29ya3Mgd2hlbiB3
ZSBlbmQgdGhlIGRvY3VtZW50IGluIHRoZQorICAgICAgICBBZnRlckFmdGVyQm9keSBzdGF0ZS4K
KworICAgICAgICAqIGZhc3QvcGFyc2VyL3BvcC1hbGwtYWZ0ZXItYWZ0ZXItYm9keS1leHBlY3Rl
ZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvcGFyc2VyL3BvcC1hbGwtYWZ0ZXItYWZ0ZXIt
Ym9keS5odG1sOiBBZGRlZC4KKwogMjAxMC0xMC0yNyAgS2ludWtvIFlhc3VkYSAgPGtpbnVrb0Bj
aHJvbWl1bS5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgdXBkYXRpbmcgZHJ0X2V4cGVjdGF0
aW9ucy50eHQuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3BhcnNlci9wb3AtYWxsLWFm
dGVyLWFmdGVyLWJvZHktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9wYXJzZXIvcG9w
LWFsbC1hZnRlci1hZnRlci1ib2R5LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44YjAyYmI4MmUw
OWFhMzM3OTMyNDUzOWVmMTExN2E4ZDJjOWU3NGJmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvZmFzdC9wYXJzZXIvcG9wLWFsbC1hZnRlci1hZnRlci1ib2R5LWV4cGVjdGVkLnR4dApA
QCAtMCwwICsxLDIgQEAKK0FMRVJUOiBQQVNTCitsYXN0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L3BhcnNlci9wb3AtYWxsLWFmdGVyLWFmdGVyLWJvZHkuaHRtbCBiL0xheW91dFRlc3Rz
L2Zhc3QvcGFyc2VyL3BvcC1hbGwtYWZ0ZXItYWZ0ZXItYm9keS5odG1sCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJi
MTEzMjIzY2NkN2JlYmEyYTAwNWVmOWJjYzJhODIwY2I2YjljM2EKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9mYXN0L3BhcnNlci9wb3AtYWxsLWFmdGVyLWFmdGVyLWJvZHkuaHRtbApA
QCAtMCwwICsxLDE5IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorICA8aGVhZD4KKyAgICA8
bWV0YSBodHRwLWVxdWl2PSJjb250ZW50LXR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNl
dD11dGYtOCIgLz4KKyAgICA8dGl0bGU+bGFzdC1jaGlsZCB0ZXN0PC90aXRsZT4KKyAgICA8c2Ny
aXB0PgorICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAgIGxheW91
dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKworICAgIHdpbmRvdy5vbmxvYWQgPSBmdW5j
dGlvbigpIHsKKyAgICAgICAgaWYgKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2JvZHk+Omxh
c3QtY2hpbGQnKS5sZW5ndGggPT0gMSkgeworICAgICAgICAgICAgYWxlcnQoJ1BBU1MnKTsKKyAg
ICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGFsZXJ0KCdGQUlMJyk7CisgICAgICAgIH0KKyAg
ICB9CisgICAgPC9zY3JpcHQ+CisgIDwvaGVhZD4KKyAgPGJvZHk+PGRpdiBpZD0nbGFzdCc+bGFz
dDwvZGl2PjwvYm9keT48L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBiNDViNjVi
YzgyMmZlYjI5NzJjNTUzOTg4ZDMzMWY4MDEwZDIyMmI0Li41MTc3NzU0OGEyYjQ5ODI1ZTBhYTdj
YjQ0ODE2YmI1NDc5MzNjZTUzIDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9X
ZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDEwLTEwLTI3ICBBZGFtIEJhcnRo
ICA8YWJhcnRoQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgcXVlcnlTZWxlY3RvckFsbCgnYm9keT46bGFzdC1jaGlsZCcpIGRvZXMg
bm90IHdvcmsgdW5sZXNzIEhUTUwgZmlsZSBlbmRzIHdpdGggJ25ldy1saW5lJy4KKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ3MTY2CisKKyAgICAgICAg
V2UgbmVlZCB0byBwb3AgYWxsIHRoZSBvcGVuIGVsZW1lbnRzIHdoZW4gd2UgZW5kIHRoZSBkb2N1
bWVudCBpbiB0aGUKKyAgICAgICAgQWZ0ZXJBZnRlckJvZHkgc3RhdGUuCisKKyAgICAgICAgVGVz
dDogZmFzdC9wYXJzZXIvcG9wLWFsbC1hZnRlci1hZnRlci1ib2R5Lmh0bWwKKworICAgICAgICAq
IGh0bWwvcGFyc2VyL0hUTUxUcmVlQnVpbGRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1M
VHJlZUJ1aWxkZXI6OnByb2Nlc3NFbmRPZkZpbGUpOgorCiAyMDEwLTEwLTI3ICBFcmljIFVocmhh
bmUgIDxlcmljdUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGF2aWQgTGV2
aW4uCmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxUcmVlQnVpbGRlci5jcHAg
Yi9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxUcmVlQnVpbGRlci5jcHAKaW5kZXggMzEwZmY2MDEy
MTNhYTAwYTFjNDA5ZTRkYTk0ZGYyOTE4MDIwYTgxMC4uYzM4NTQzNzUyNDc3OTMzNDQ2NGZkMzQy
MWZiYzdlMTVlOGU5YzMwNyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MVHJl
ZUJ1aWxkZXIuY3BwCisrKyBiL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFRyZWVCdWlsZGVyLmNw
cApAQCAtMjU4MCw3ICsyNTgwLDcgQEAgdm9pZCBIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NFbmRP
ZkZpbGUoQXRvbWljSFRNTFRva2VuJiB0b2tlbikKICAgICBjYXNlIEFmdGVyQm9keU1vZGU6CiAg
ICAgY2FzZSBBZnRlckFmdGVyQm9keU1vZGU6CiAgICAgICAgIEFTU0VSVChpbnNlcnRpb25Nb2Rl
KCkgPT0gQWZ0ZXJCb2R5TW9kZSB8fCBpbnNlcnRpb25Nb2RlKCkgPT0gQWZ0ZXJBZnRlckJvZHlN
b2RlKTsKLSAgICAgICAgcmV0dXJuOworICAgICAgICBicmVhazsKICAgICBjYXNlIEluSGVhZE5v
c2NyaXB0TW9kZToKICAgICAgICAgQVNTRVJUKGluc2VydGlvbk1vZGUoKSA9PSBJbkhlYWROb3Nj
cmlwdE1vZGUpOwogICAgICAgICBkZWZhdWx0Rm9ySW5IZWFkTm9zY3JpcHQoKTsKQEAgLTI2MDIs
MTEgKzI2MDIsMTEgQEAgdm9pZCBIVE1MVHJlZUJ1aWxkZXI6OnByb2Nlc3NFbmRPZkZpbGUoQXRv
bWljSFRNTFRva2VuJiB0b2tlbikKICAgICBjYXNlIEluQ29sdW1uR3JvdXBNb2RlOgogICAgICAg
ICBpZiAobV90cmVlLmN1cnJlbnRFbGVtZW50KCkgPT0gbV90cmVlLm9wZW5FbGVtZW50cygpLT5o
dG1sRWxlbWVudCgpKSB7CiAgICAgICAgICAgICBBU1NFUlQoaXNQYXJzaW5nRnJhZ21lbnQoKSk7
Ci0gICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICByZXR1cm47IC8vIEZJWE1FOiBTaG91
bGQgd2UgYnJlYWsgaGVyZSBpbnN0ZWFkIG9mIHJldHVybmluZz8KICAgICAgICAgfQogICAgICAg
ICBpZiAoIXByb2Nlc3NDb2xncm91cEVuZFRhZ0ZvckluQ29sdW1uR3JvdXAoKSkgewogICAgICAg
ICAgICAgQVNTRVJUKGlzUGFyc2luZ0ZyYWdtZW50KCkpOwotICAgICAgICAgICAgcmV0dXJuOwor
ICAgICAgICAgICAgcmV0dXJuOyAvLyBGSVhNRTogU2hvdWxkIHdlIGJyZWFrIGhlcmUgaW5zdGVh
ZCBvZiByZXR1cm5pbmc/CiAgICAgICAgIH0KICAgICAgICAgcHJlcGFyZVRvUmVwcm9jZXNzVG9r
ZW4oKTsKICAgICAgICAgcHJvY2Vzc0VuZE9mRmlsZSh0b2tlbik7Cg==
</data>
<flag name="review"
          id="62351"
          type_id="1"
          status="+"
          setter="eric"
    />
    <flag name="commit-queue"
          id="62352"
          type_id="3"
          status="-"
          setter="eric"
    />
          </attachment>
      

    </bug>

</bugzilla>