<?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>110537</bug_id>
          
          <creation_ts>2013-02-21 17:37:58 -0800</creation_ts>
          <short_desc>Invalidate outstanding checkpoints for the background input stream and preload scanner</short_desc>
          <delta_ts>2013-02-21 20:05:30 -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>106127</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Tony Gentilcore">tonyg</reporter>
          <assigned_to name="Tony Gentilcore">tonyg</assigned_to>
          <cc>abarth</cc>
    
    <cc>eric</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ojan.autocc</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>839068</commentid>
    <comment_count>0</comment_count>
    <who name="Tony Gentilcore">tonyg</who>
    <bug_when>2013-02-21 17:37:58 -0800</bug_when>
    <thetext>Invalidate outstanding checkpoints for the background input stream and preload scanner</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>839074</commentid>
    <comment_count>1</comment_count>
      <attachid>189648</attachid>
    <who name="Tony Gentilcore">tonyg</who>
    <bug_when>2013-02-21 17:40:59 -0800</bug_when>
    <thetext>Created attachment 189648
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>839084</commentid>
    <comment_count>2</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2013-02-21 17:46:48 -0800</bug_when>
    <thetext>This patch is probably right, but we should add some tests to ensure that document.writes work correctly in the case of a beforeload event handler on a script tag.

For example, what if the beforeload event handler document.writes a partial entity that&apos;s completed by the actual script?

I guess that shouldn&apos;t block this patch, but we should at least have a bug on file so we remember to test that case.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>839087</commentid>
    <comment_count>3</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2013-02-21 17:48:31 -0800</bug_when>
    <thetext>By the way, the HTMLDocumentParser should send a message to the BackgroundHTMLParser periodically saying that it will never rewind to a given checkpoint so that we can free up the memory that we&apos;re keeping around for those earlier checkpoints.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>839090</commentid>
    <comment_count>4</comment_count>
    <who name="Tony Gentilcore">tonyg</who>
    <bug_when>2013-02-21 17:53:35 -0800</bug_when>
    <thetext>&gt; For example, what if the beforeload event handler document.writes a partial entity that&apos;s completed by the actual script?

I&apos;ll add that test case to this patch tomorrow before landing.

&gt; By the way, the HTMLDocumentParser should send a message to the BackgroundHTMLParser periodically saying that it will never rewind to a given checkpoint so that we can free up the memory that we&apos;re keeping around for those earlier checkpoints.

Isn&apos;t that what my new calls to m_checkpoints.clear() do? Maybe I&apos;m missing something else?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>839100</commentid>
    <comment_count>5</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2013-02-21 18:02:25 -0800</bug_when>
    <thetext>&gt; Isn&apos;t that what my new calls to m_checkpoints.clear() do? Maybe I&apos;m missing something else?

Yes, but that only happens if someone calls document.write.  We should free up the memory even if the page doesn&apos;t call document.write (i.e., when the speculation succeeds).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>839154</commentid>
    <comment_count>6</comment_count>
    <who name="Tony Gentilcore">tonyg</who>
    <bug_when>2013-02-21 19:44:09 -0800</bug_when>
    <thetext>(In reply to comment #4)
&gt; &gt; For example, what if the beforeload event handler document.writes a partial entity that&apos;s completed by the actual script?
&gt; 
&gt; I&apos;ll add that test case to this patch tomorrow before landing.

Actually, it turns out that test case crashes the main thread parser. So it needs to be investigated separately. I filed bug 110546.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>839161</commentid>
    <comment_count>7</comment_count>
    <who name="Tony Gentilcore">tonyg</who>
    <bug_when>2013-02-21 19:57:04 -0800</bug_when>
    <thetext>(In reply to comment #5)
&gt; &gt; Isn&apos;t that what my new calls to m_checkpoints.clear() do? Maybe I&apos;m missing something else?
&gt; 
&gt; Yes, but that only happens if someone calls document.write.  We should free up the memory even if the page doesn&apos;t call document.write (i.e., when the speculation succeeds).

Filed as bug 110547.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>839165</commentid>
    <comment_count>8</comment_count>
      <attachid>189648</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-21 20:05:26 -0800</bug_when>
    <thetext>Comment on attachment 189648
Patch

Clearing flags on attachment: 189648

Committed r143685: &lt;http://trac.webkit.org/changeset/143685&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>839166</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-21 20:05:30 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>189648</attachid>
            <date>2013-02-21 17:40:59 -0800</date>
            <delta_ts>2013-02-21 20:05:26 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-110537-20130221173719.patch</filename>
            <type>text/plain</type>
            <size>4283</size>
            <attacher name="Tony Gentilcore">tonyg</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQzNjcxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjBiMWViNWYzYmM5YjU3
OTczZWE2MDY3ODNmYzBmYjcwNjZkNzlmZC4uODU2ZmRiZDMzZmFhYWE3N2M0MDg5N2VjZmFlYjNh
MjczYjE2ZDdjNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDEzLTAyLTIxICBUb255
IEdlbnRpbGNvcmUgIDx0b255Z0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgSW52YWxpZGF0ZSBv
dXRzdGFuZGluZyBjaGVja3BvaW50cyBmb3IgdGhlIGJhY2tncm91bmQgaW5wdXQgc3RyZWFtIGFu
ZCBwcmVsb2FkIHNjYW5uZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTExMDUzNworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIGZhc3QvdG9rZW5pemVyL3dyaXRlLWJlZm9yZS1sb2FkLmh0bWwgY2F1c2VkIGR1
cGxpY2F0ZSBkaWRGYWlsU3BlY3VsYXRpb24oKSBjYWxscyBmb3IgdGhlIHNhbWUgY2hlY2twb2lu
dC4KKyAgICAgICAgT25lIHdhcyB0cmlnZ2VyZWQgYnkgcHJvY2Vzc1BhcnNlZENodW5rRnJvbUJh
Y2tncm91bmRQYXJzZXIgYW5kIHRoZSBvdGhlciBieSByZXN1bWVQYXJzaW5nQWZ0ZXJTY3JpcHRF
eGVjdXRpb24uCisgICAgICAgIFRoaXMgY2hhbmdlIGVuc3VyZXMgdGhhdCBhZnRlciB3ZSBzZW5k
IGEgY2hlY2twb2ludCwgaXQgaXMgY2xlYXJlZCBzbyBpdCB3b24ndCBiZSBzZW50IGFnYWluIHVu
dGlsIHRoZSBuZXh0CisgICAgICAgIHByb2Nlc3NQYXJzZWRDaHVua0Zyb21CYWNrZ3JvdW5kUGFy
c2VyKCkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzIGJlY2F1c2Ugbm8gbmV3IGZ1bmN0aW9uYWxp
dHkuCisKKyAgICAgICAgKiBodG1sL3BhcnNlci9CYWNrZ3JvdW5kSFRNTElucHV0U3RyZWFtLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkJhY2tncm91bmRIVE1MSW5wdXRTdHJlYW06OnJld2luZFRv
KToKKyAgICAgICAgKiBodG1sL3BhcnNlci9IVE1MRG9jdW1lbnRQYXJzZXIuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6SFRNTERvY3VtZW50UGFyc2VyOjpkaWRGYWlsU3BlY3VsYXRpb24pOgorICAg
ICAgICAqIGh0bWwvcGFyc2VyL0hUTUxQcmVsb2FkU2Nhbm5lci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpUb2tlblByZWxvYWRTY2FubmVyOjpyZXdpbmRUbyk6CisKIDIwMTMtMDItMjEgIEFkYW0g
QmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KIAogICAgICAgICBUaHJlYWRlZCBIVE1MIFBhcnNl
ciBmYWlscyBmYXN0L2RvbS9Eb2N1bWVudC9yZWFkeXN0YXRlLmh0bWwKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0JhY2tncm91bmRIVE1MSW5wdXRTdHJlYW0uY3BwIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvQmFja2dyb3VuZEhUTUxJbnB1dFN0cmVhbS5jcHAK
aW5kZXggMDNmNDNkZDFmNTRiMzEyNmRjNTdmYmI2MGM5YTdjODc3YmYzZmEzNy4uNDI3NDFmZGM3
Yzg4Mjc4ZjljZDY3NzMwMjNjNGRkYzJmZTJjOWRhMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaHRtbC9wYXJzZXIvQmFja2dyb3VuZEhUTUxJbnB1dFN0cmVhbS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9wYXJzZXIvQmFja2dyb3VuZEhUTUxJbnB1dFN0cmVhbS5jcHAKQEAgLTcx
LDEwICs3MSw4IEBAIHZvaWQgQmFja2dyb3VuZEhUTUxJbnB1dFN0cmVhbTo6cmV3aW5kVG8oSFRN
TElucHV0Q2hlY2twb2ludCBjaGVja3BvaW50SW5kZXgsIGNvCiAgICAgaWYgKGlzQ2xvc2VkICYm
ICFtX2N1cnJlbnQuaXNDbG9zZWQoKSkKICAgICAgICAgbV9jdXJyZW50LmNsb3NlKCk7CiAKLSAg
ICAvLyBGSVhNRTogV2Ugc2hvdWxkIGJlIGFibGUgdG8gYWN0aXZlbHkgaW52YWxpZGF0ZSBhbGwg
dGhlIG91dHN0YW5kaW5nIGNoZWNrcG9pbnRzCi0gICAgLy8gYnkgY2xlYXJpbmcgbV9zZWdtZW50
cyBhbmQgbV9jaGVja3BvaW50cywgYnV0IHRoYXQgY2F1c2VzCi0gICAgLy8gZmFzdC90b2tlbml6
ZXIvd3JpdGUtYmVmb3JlLWxvYWQuaHRtbCB0byBoaXQgdGhlIEFTU0VSVCBhdCB0aGUgYmVnaW5u
aW5nIG9mCi0gICAgLy8gdGhpcyBmdW5jdGlvbi4KKyAgICBtX3NlZ21lbnRzLmNsZWFyKCk7Cisg
ICAgbV9jaGVja3BvaW50cy5jbGVhcigpOwogfQogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL3BhcnNlci9IVE1MRG9jdW1lbnRQYXJzZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9wYXJzZXIvSFRNTERvY3VtZW50UGFyc2VyLmNwcAppbmRleCBmZTRhNDBmYjA2NDRhZTg1
OTk1YjAzZWFiMzA2M2Q3Y2M1ZjM3Zjk1Li43M2ExMTNiNGExODRjODQyYzYyODExM2M1MTY1NmRm
NDI5Yzg0YTA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MRG9j
dW1lbnRQYXJzZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxEb2N1
bWVudFBhcnNlci5jcHAKQEAgLTMwOCw2ICszMDgsOSBAQCB2b2lkIEhUTUxEb2N1bWVudFBhcnNl
cjo6Y2hlY2tGb3JTcGVjdWxhdGlvbkZhaWx1cmUoKQogCiB2b2lkIEhUTUxEb2N1bWVudFBhcnNl
cjo6ZGlkRmFpbFNwZWN1bGF0aW9uKFBhc3NPd25QdHI8SFRNTFRva2VuPiB0b2tlbiwgUGFzc093
blB0cjxIVE1MVG9rZW5pemVyPiB0b2tlbml6ZXIpCiB7CisgICAgaWYgKCFtX2N1cnJlbnRDaHVu
aykKKyAgICAgICAgcmV0dXJuOworCiAgICAgbV93ZWFrRmFjdG9yeS5yZXZva2VBbGwoKTsKICAg
ICBtX3NwZWN1bGF0aW9ucy5jbGVhcigpOwogCkBAIC0zMTksNiArMzIyLDcgQEAgdm9pZCBIVE1M
RG9jdW1lbnRQYXJzZXI6OmRpZEZhaWxTcGVjdWxhdGlvbihQYXNzT3duUHRyPEhUTUxUb2tlbj4g
dG9rZW4sIFBhc3NPd24KICAgICBjaGVja3BvaW50LT5wcmVsb2FkU2Nhbm5lckNoZWNrcG9pbnQg
PSBtX2N1cnJlbnRDaHVuay0+cHJlbG9hZFNjYW5uZXJDaGVja3BvaW50OwogICAgIGNoZWNrcG9p
bnQtPnVucGFyc2VkSW5wdXQgPSBtX2lucHV0LmN1cnJlbnQoKS50b1N0cmluZygpLmlzb2xhdGVk
Q29weSgpOwogICAgIG1faW5wdXQuY3VycmVudCgpLmNsZWFyKCk7CisgICAgbV9jdXJyZW50Q2h1
bmsuY2xlYXIoKTsKIAogICAgIEFTU0VSVChjaGVja3BvaW50LT51bnBhcnNlZElucHV0LmlzU2Fm
ZVRvU2VuZFRvQW5vdGhlclRocmVhZCgpKTsKICAgICBIVE1MUGFyc2VyVGhyZWFkOjpzaGFyZWQo
KS0+cG9zdFRhc2soYmluZCgmQmFja2dyb3VuZEhUTUxQYXJzZXI6OnJlc3VtZUZyb20sIG1fYmFj
a2dyb3VuZFBhcnNlciwgY2hlY2twb2ludC5yZWxlYXNlKCkpKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxQcmVsb2FkU2Nhbm5lci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL3BhcnNlci9IVE1MUHJlbG9hZFNjYW5uZXIuY3BwCmluZGV4IDljOTRiOTY5ZDVm
MmQ0NmVjNjllMzgwZmQ4MmY3MWRjNzcyN2UwNjkuLmE1N2M1ZDM4NWUzZTcxZTcxYjU1MWQ0M2Nh
ZWQwNzUyMzgzNWIzMDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hU
TUxQcmVsb2FkU2Nhbm5lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRN
TFByZWxvYWRTY2FubmVyLmNwcApAQCAtMjgzLDEwICsyODMsNyBAQCB2b2lkIFRva2VuUHJlbG9h
ZFNjYW5uZXI6OnJld2luZFRvKFRva2VuUHJlbG9hZFNjYW5uZXJDaGVja3BvaW50IGNoZWNrcG9p
bnRJbmRleAogICAgIG1fdGVtcGxhdGVDb3VudCA9IGNoZWNrcG9pbnQudGVtcGxhdGVDb3VudDsK
ICNlbmRpZgogICAgIG1fY3NzU2Nhbm5lci5yZXNldCgpOwotCi0gICAgLy8gRklYTUU6IFdlIHNo
b3VsZCBiZSBhYmxlIHRvIGFjdGl2ZWx5IGludmFsaWRhdGUgYWxsIHRoZSBvdXRzdGFuZGluZyBj
aGVja3BvaW50cwotICAgIC8vIGJ5IGNsZWFyaW5nIG1fY2hlY2twb2ludHMsIGJ1dCB0aGF0IGNh
dXNlcyBmYXN0L3Rva2VuaXplci93cml0ZS1iZWZvcmUtbG9hZC5odG1sCi0gICAgLy8gdG8gaGl0
IHRoZSBBU1NFUlQgYXQgdGhlIGJlZ2lubmluZyBvZiB0aGlzIGZ1bmN0aW9uLgorICAgIG1fY2hl
Y2twb2ludHMuY2xlYXIoKTsKIH0KIAogdm9pZCBUb2tlblByZWxvYWRTY2FubmVyOjpzY2FuKGNv
bnN0IEhUTUxUb2tlbiYgdG9rZW4sIFZlY3RvcjxPd25QdHI8UHJlbG9hZFJlcXVlc3Q+ID4mIHJl
cXVlc3RzKQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>