<?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>27281</bug_id>
          
          <creation_ts>2009-07-14 16:11:52 -0700</creation_ts>
          <short_desc>Fails to save document state when navigating away from a page with a reference fragment</short_desc>
          <delta_ts>2009-07-14 22:10:46 -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>History</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</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="Darin Fisher (:fishd, Google)">fishd</reporter>
          <assigned_to name="Darin Fisher (:fishd, Google)">fishd</assigned_to>
          <cc>adele</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>131738</commentid>
    <comment_count>0</comment_count>
      <attachid>32746</attachid>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2009-07-14 16:11:52 -0700</bug_when>
    <thetext>Created attachment 32746
testcase

Fails to save document state when navigating away from a page
with a reference fragment

Note: This only impacts WebKit when the page also has an unload
handler causing the page cache to be suppressed.

See the attached testcase, but roughly here&apos;s the repro steps:

1- Load an HTML page with empty input field
2- Load the same URL, but add a reference fragment to the URL
3- Type in the input field
4- Navigate to another host
5- Navigate back

The values you typed in the input field should be restored, but
if the page had an unload handler, then the values will not be
restored.

The bug is with HistoryItem::isCurrentDocument.  I believe that
it should be using equalIgnoringRef instead of operator== to
compare URLs.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>131740</commentid>
    <comment_count>1</comment_count>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2009-07-14 16:15:26 -0700</bug_when>
    <thetext>Patch coming up...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>131754</commentid>
    <comment_count>2</comment_count>
      <attachid>32748</attachid>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2009-07-14 17:07:09 -0700</bug_when>
    <thetext>Created attachment 32748
v1 patch

Simple patch.  Use equalIgnoringRef to compare the HistoryItem&apos;s URL the URL of a document.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>131756</commentid>
    <comment_count>3</comment_count>
      <attachid>32748</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2009-07-14 17:09:38 -0700</bug_when>
    <thetext>Comment on attachment 32748
v1 patch

&gt; -    return urlString() == doc-&gt;url();
&gt; +    return equalIgnoringRef(KURL(urlString()), doc-&gt;url());

I would write url() instead of KURL(urlString()).

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>131760</commentid>
    <comment_count>4</comment_count>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2009-07-14 17:20:23 -0700</bug_when>
    <thetext>&gt; I would write url() instead of KURL(urlString()).
&gt; 
&gt; r=me

Oh, good catch.  I forgot about that accessor.  Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>131807</commentid>
    <comment_count>5</comment_count>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2009-07-14 22:10:46 -0700</bug_when>
    <thetext>Landed as http://trac.webkit.org/changeset/45890</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>32746</attachid>
            <date>2009-07-14 16:11:52 -0700</date>
            <delta_ts>2009-07-14 16:11:52 -0700</delta_ts>
            <desc>testcase</desc>
            <filename>histbug.html</filename>
            <type>text/html</type>
            <size>765</size>
            <attacher name="Darin Fisher (:fishd, Google)">fishd</attacher>
            
              <data encoding="base64">PEhUTUw+CjxCT0RZIG9udW5sb2FkPSIvKnN1cHByZXNzIHBhZ2UgY2FjaGUqLyI+CiAgPEgyPlRl
c3QgUHJvY2VkdXJlOjwvSDI+CiAgPE9MPgogICAgPExJPkxvYWQgdGhpcyBwYWdlIGluIGEgbmV3
IHRhYiBhbmQgbWFrZSBzdXJlIHRoZSBkb2N1bWVudCB1cmwgaGFzIG5vCiAgICBoYXNoLjwvTEk+
CiAgICA8TEk+Q2xpY2sgPEEgaHJlZj0iamF2YXNjcmlwdDpsb2NhdGlvbi5oYXNoPSdoYXNoJyI+
dGhpcyBsaW5rPC9BPiB0byBjaGFuZ2UgdGhlCiAgICB1cmwgaGFzaC48L0xJPgogICAgPExJPlR5
cGUgc29tZXRoaW5nIGludG8gdGhpcyB0ZXh0IGlucHV0OjxJTlBVVCB0eXBlPSJ0ZXh0Ij48L0xJ
PgogICAgPExJPkNsaWNrIDxBIGhyZWY9Imh0dHA6Ly93d3cuZ29vZ2xlLmNvbS8iPnRoaXMgbGlu
azwvQT4gdG8gYnJvd3NlIHRvCiAgICBnb29nbGUuY29tLjwvTEk+CiAgICA8TEk+Q2xpY2sgdGhl
IGJyb3dzZXIgYmFjayBidXR0b24uPC9MST4KICA8L09MPgogIDxIMj5FeHBlY3RlZCBSZXN1bHRz
OjwvSDI+CiAgPHA+CiAgV2hlbiBwcmVzc2luZyB0aGUgYmFjayBidXR0b24sIHRoZSB0ZXh0IGlu
cHV0IHNob3VsZCBtYWludGFpbiB0aGUgdmFsdWUgeW91CiAgdHlwZWQuCiAgPHA+IAogIFRoaXMg
cHJvYmxlbSBtYWtlcyBoaXN0b3J5IGdlbmVyYWxseSB1bnVzYWJsZSB3aXRoIHVybCBoYXNoZXMg
YW5kCiAgYnJlYWtzIEFKQVggaGlzdG9yeSBtYW5hZ2VycyB0aGF0IGRlcGVuZCBvbiBoaWRkZW4g
aW5wdXRzLgo8L0JPRFk+CjwvSFRNTD4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>32748</attachid>
            <date>2009-07-14 17:07:09 -0700</date>
            <delta_ts>2009-07-14 17:09:38 -0700</delta_ts>
            <desc>v1 patch</desc>
            <filename>hist_1.txt</filename>
            <type>text/plain</type>
            <size>4123</size>
            <attacher name="Darin Fisher (:fishd, Google)">fishd</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0NTg4MikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTcgQEAKKzIwMDktMDctMTQgIERhcmluIEZpc2hlciAgPGRhcmluQGNocm9taXVt
Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBG
YWlscyB0byBzYXZlIGRvY3VtZW50IHN0YXRlIHdoZW4gbmF2aWdhdGluZyBhd2F5IGZyb20gYSBw
YWdlIHdpdGggYQorICAgICAgICByZWZlcmVuY2UgZnJhZ21lbnQuCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNzI4MQorCisgICAgICAgIFRlc3Q6IGZh
c3QvaGlzdG9yeS9zYXZlcy1zdGF0ZS1hZnRlci1mcmFnbWVudC1uYXYuaHRtbAorCisgICAgICAg
ICogaGlzdG9yeS9IaXN0b3J5SXRlbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIaXN0b3J5SXRl
bTo6aXNDdXJyZW50RG9jdW1lbnQpOiBVc2UgZXF1YWxJZ25vcmluZ1JlZgorICAgICAgICB0byBj
b21wYXJlIFVSTHMuCisKIDIwMDktMDctMTQgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9y
Zz4KIAogICAgICAgICBSZXZpZXdlZCBieSBEaW1pdHJpIEdsYXprb3YuCkluZGV4OiBXZWJDb3Jl
L2hpc3RvcnkvSGlzdG9yeUl0ZW0uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvaGlzdG9yeS9I
aXN0b3J5SXRlbS5jcHAJKHJldmlzaW9uIDQ1ODYxKQorKysgV2ViQ29yZS9oaXN0b3J5L0hpc3Rv
cnlJdGVtLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDgwLDcgKzQ4MCw3IEBAIEZvcm1EYXRhKiBI
aXN0b3J5SXRlbTo6Zm9ybURhdGEoKQogYm9vbCBIaXN0b3J5SXRlbTo6aXNDdXJyZW50RG9jdW1l
bnQoRG9jdW1lbnQqIGRvYykgY29uc3QKIHsKICAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIGZpbmQg
YSBiZXR0ZXIgd2F5IHRvIGNoZWNrIGlmIHRoaXMgaXMgdGhlIGN1cnJlbnQgZG9jdW1lbnQuCi0g
ICAgcmV0dXJuIHVybFN0cmluZygpID09IGRvYy0+dXJsKCk7CisgICAgcmV0dXJuIGVxdWFsSWdu
b3JpbmdSZWYoS1VSTCh1cmxTdHJpbmcoKSksIGRvYy0+dXJsKCkpOwogfQogCiB2b2lkIEhpc3Rv
cnlJdGVtOjptZXJnZUF1dG9Db21wbGV0ZUhpbnRzKEhpc3RvcnlJdGVtKiBvdGhlckl0ZW0pCklu
ZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCShyZXZpc2lvbiA0NTg4MikKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDE0IEBACisyMDA5LTA3LTE0ICBEYXJpbiBGaXNoZXIgIDxkYXJp
bkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgRmFpbHMgdG8gc2F2ZSBkb2N1bWVudCBzdGF0ZSB3aGVuIG5hdmlnYXRpbmcgYXdh
eSBmcm9tIGEgcGFnZSB3aXRoIGEKKyAgICAgICAgcmVmZXJlbmNlIGZyYWdtZW50LgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjcyODEKKworICAgICAg
ICAqIGZhc3QvaGlzdG9yeS9zYXZlcy1zdGF0ZS1hZnRlci1mcmFnbWVudC1uYXYtZXhwZWN0ZWQu
dHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2hpc3Rvcnkvc2F2ZXMtc3RhdGUtYWZ0ZXItZnJh
Z21lbnQtbmF2Lmh0bWw6IEFkZGVkLgorCiAyMDA5LTA3LTE0ICBEYXJpbiBBZGxlciAgPGRhcmlu
QGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYW4gQmVybnN0ZWluLgpJbmRleDog
TGF5b3V0VGVzdHMvZmFzdC9oaXN0b3J5L3NhdmVzLXN0YXRlLWFmdGVyLWZyYWdtZW50LW5hdi1l
eHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9oaXN0b3J5L3NhdmVz
LXN0YXRlLWFmdGVyLWZyYWdtZW50LW5hdi1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBM
YXlvdXRUZXN0cy9mYXN0L2hpc3Rvcnkvc2F2ZXMtc3RhdGUtYWZ0ZXItZnJhZ21lbnQtbmF2LWV4
cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwzIEBACittYWluIGZyYW1lIC0gaGFz
IDEgb251bmxvYWQgaGFuZGxlcihzKQorbWFpbiBmcmFtZSAtIGhhcyAxIG9udW5sb2FkIGhhbmRs
ZXIocykKK1BBU1MKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvaGlzdG9yeS9zYXZlcy1zdGF0ZS1h
ZnRlci1mcmFnbWVudC1uYXYuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2hp
c3Rvcnkvc2F2ZXMtc3RhdGUtYWZ0ZXItZnJhZ21lbnQtbmF2Lmh0bWwJKHJldmlzaW9uIDApCisr
KyBMYXlvdXRUZXN0cy9mYXN0L2hpc3Rvcnkvc2F2ZXMtc3RhdGUtYWZ0ZXItZnJhZ21lbnQtbmF2
Lmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNDcgQEAKKzxodG1sPgorPHNjcmlwdD4KKwor
Ly8gTmF2aWdhdGlvbiBzdGVwczoKKy8vIDEtIGxvYWRzIHRoaXMgcGFnZQorLy8gMi0gbG9hZHMg
dGhpcyBwYWdlICsgaGFzaCAoZG9lc24ndCBjYWxsIG9ubG9hZCkKKy8vIDMtIGxvYWRzIGEgZGF0
YSBVUkwgdGhhdCBqdXN0IG5hdmlnYXRlcyBiYWNrCisvLyA0LSBsb2FkcyB0aGlzIHBhZ2UgKyBo
YXNoIChjYWxscyBvbmxvYWQsIHRyaWdnZXJpbmcgY29tcGxldGlvbikKKworZnVuY3Rpb24gbmF2
aWdhdGVUb0hhc2goZmllbGQpIHsKKyAgbG9jYXRpb24uaGFzaCA9ICdoYXNoJzsKKyAgZmllbGQu
dmFsdWUgPSAndGVzdCc7Cit9CisKK2Z1bmN0aW9uIG5hdmlnYXRlQXdheUFuZEJhY2soKSB7Cisg
IC8vIEFzc2lnbmluZyB0byBsb2NhdGlvbiBkb2VzIG5vdCBjcmVhdGUgYSBoaXN0b3J5IGVudHJ5
LCBzbworICAvLyBpbnN0ZWFkIHdlIHNpbXVsYXRlIGEgbGluayBjbGljay4KKyAgdmFyIGV2dCA9
IGRvY3VtZW50LmNyZWF0ZUV2ZW50KCJNb3VzZUV2ZW50cyIpOyAKKyAgZXZ0LmluaXRNb3VzZUV2
ZW50KCJjbGljayIsIHRydWUsIHRydWUsIHdpbmRvdywKKyAgICAgIDAsIDAsIDAsIDAsIDAsIGZh
bHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCAwLCBudWxsKTsgCisgIGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCdhbmNob3InKS5kaXNwYXRjaEV2ZW50KGV2dCk7Cit9CisKK2Z1bmN0aW9uIHJ1blRl
c3RTdGVwKCkgeworICB2YXIgaGFzaCA9IGxvY2F0aW9uLmhhc2g7CisgIHZhciBmaWVsZCA9IGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCdmaWVsZCcpOworCisgIGlmIChoYXNoID09ICIiKSB7Cisg
ICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworICAgICAgbGF5b3V0VGVzdENv
bnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVu
dGlsRG9uZSgpOworICAgIH0KKyAgICBuYXZpZ2F0ZVRvSGFzaChmaWVsZCk7CisgICAgbmF2aWdh
dGVBd2F5QW5kQmFjaygpOworICB9IGVsc2UgeworICAgIGRvY3VtZW50LmJvZHkuaW5uZXJIVE1M
ID0gKGZpZWxkLnZhbHVlID09ICcnKSA/ICdGQUlMJyA6ICdQQVNTJzsKKyAgICBpZiAod2luZG93
LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5
RG9uZSgpOworICB9Cit9CisKKzwvc2NyaXB0PgorPGJvZHkgb25sb2FkPSdydW5UZXN0U3RlcCgp
JyBvbnVubG9hZD0nLypzdXBwcmVzcyBwYWdlIGNhY2hlKi8nPgorICA8aW5wdXQgaWQ9J2ZpZWxk
Jz48L2lucHV0PgorICA8YSBpZD0nYW5jaG9yJyBocmVmPSdkYXRhOnRleHQvaHRtbCw8Ym9keSBv
bmxvYWQ9Imhpc3RvcnkuYmFjaygpIj48L2JvZHk+Jz5nbyBhd2F5IGFuZCBjb21lIGJhY2s8L2E+
Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>
<flag name="review"
          id="17125"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>