<?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>54118</bug_id>
          
          <creation_ts>2011-02-09 10:23:04 -0800</creation_ts>
          <short_desc>XMLHttpRequest::abort() doesn&apos;t clear response data</short_desc>
          <delta_ts>2011-02-15 11:10:32 -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>XML</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>P4</priority>
          <bug_severity>Minor</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Jarred Nicholls">jarred</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>ap</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>348350</commentid>
    <comment_count>0</comment_count>
    <who name="Jarred Nicholls">jarred</who>
    <bug_when>2011-02-09 10:23:04 -0800</bug_when>
    <thetext>In the case of ArrayBuffer responses, abort() will not clear the binary buffer.  So it just wastes space.  Subsequent open() calls (which must come before send(), since abort() resets the state to UNSENT) will clear the buffer properly, but that&apos;s not necessarily going to happen.  So this is just more memory efficient.

clearResponse() can replace the code in abort(), because it&apos;s accomplishing the same thing, it&apos;s neater, and it&apos;s one function to maintain; an omission like the above can be better avoided.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>348354</commentid>
    <comment_count>1</comment_count>
      <attachid>81831</attachid>
    <who name="Jarred Nicholls">jarred</who>
    <bug_when>2011-02-09 10:26:52 -0800</bug_when>
    <thetext>Created attachment 81831
Proposed patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>348360</commentid>
    <comment_count>2</comment_count>
      <attachid>81831</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-02-09 10:30:42 -0800</bug_when>
    <thetext>Comment on attachment 81831
Proposed patch

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

&gt; Source/WebCore/ChangeLog:6
&gt; +        XMLHttpRequest::abort() should call clearResponse()
&gt; +        https://bugs.webkit.org/show_bug.cgi?id=54118

This change log entry is not sufficient. It doesn’t state why this is a good change. As you do in your bug, but more briefly, you need to state the benefit of the change: Less memory used after an abort(), presumably.

&gt; Source/WebCore/ChangeLog:8
&gt; +        No new tests. (OOPS!)

We can’t land a patch with a line like this. You need to change this line into an explanation of why it’s OK to make this change without adding any new tests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>348361</commentid>
    <comment_count>3</comment_count>
    <who name="Jarred Nicholls">jarred</who>
    <bug_when>2011-02-09 10:31:26 -0800</bug_when>
    <thetext>I honestly dont&apos; know what I was thinking, I totally meant to type a description in the changelog.  One sec...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>348367</commentid>
    <comment_count>4</comment_count>
      <attachid>81833</attachid>
    <who name="Jarred Nicholls">jarred</who>
    <bug_when>2011-02-09 10:38:07 -0800</bug_when>
    <thetext>Created attachment 81833
Proposed patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>348368</commentid>
    <comment_count>5</comment_count>
      <attachid>81834</attachid>
    <who name="Jarred Nicholls">jarred</who>
    <bug_when>2011-02-09 10:39:50 -0800</bug_when>
    <thetext>Created attachment 81834
Proposed patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>348380</commentid>
    <comment_count>6</comment_count>
      <attachid>81834</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-02-09 10:49:31 -0800</bug_when>
    <thetext>Comment on attachment 81834
Proposed patch

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

&gt; Source/WebCore/ChangeLog:16
&gt; +        abort() is not properly clearing ArrayBuffer binary buffered data. This
&gt; +        change will remove the cleanup code from abort() and instead call
&gt; +        clearResponse() to do the cleanup, which not only does the original abort()
&gt; +        cleanup, but also covers the binary response buffer as well. Future cleanup
&gt; +        omissions can be avoided by only having to maintain clearResponse().
&gt; +        
&gt; +        Clearing the data on abort() is more memory efficient.  By not clearing
&gt; +        this data, it will remain in memory until the XHR object is cleaned up or
&gt; +        until a subsequent call to open().

This comment is too long. It would be better to say something like this:

    Calling clearResponse frees more memory at abort time.

    No new tests because there is no observable effect except for less memory used.

The longer paragraph is something people probably won’t read.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>348381</commentid>
    <comment_count>7</comment_count>
    <who name="Jarred Nicholls">jarred</who>
    <bug_when>2011-02-09 10:50:26 -0800</bug_when>
    <thetext>Ok fair enough, I&apos;ll change it for another review.  Thanks Darin.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>348384</commentid>
    <comment_count>8</comment_count>
      <attachid>81836</attachid>
    <who name="Jarred Nicholls">jarred</who>
    <bug_when>2011-02-09 10:53:18 -0800</bug_when>
    <thetext>Created attachment 81836
Proposed patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>348600</commentid>
    <comment_count>9</comment_count>
      <attachid>81836</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-02-09 14:53:05 -0800</bug_when>
    <thetext>Comment on attachment 81836
Proposed patch

One hidden change here is that m_response is now cleared. This has observable consequences - for example, XMLHttpRequest.status is lost after aborting.

How did you verify that this is OK?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>348619</commentid>
    <comment_count>10</comment_count>
    <who name="Jarred Nicholls">jarred</who>
    <bug_when>2011-02-09 15:07:33 -0800</bug_when>
    <thetext>You are right, that behavior is changed.  But the current behavior of status is against the W3 standard as it is.  Resetting the ResourceResponse is the appropriate action, because status should return 0 when the error flag is true, which abort sets.  See http://dev.w3.org/2006/webapi/XMLHttpRequest-2/#the-abort-method and http://dev.w3.org/2006/webapi/XMLHttpRequest-2/#the-status-attribute.  We are actually fixing two things at once here...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>348640</commentid>
    <comment_count>11</comment_count>
      <attachid>81836</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-02-09 15:22:32 -0800</bug_when>
    <thetext>Comment on attachment 81836
Proposed patch

Thanks, that&apos;s convincing. I only picked one example, for a case where I could quickly tell that there is a behavior change. Can you go over uses of m_response in the file and check that it is always expected to have null response after abort()?

&gt; We are actually fixing two things at once here...

I think that this needs a regression test then. Please add one (setting r- to that effect). It would be nice to know if the test passes in both IE and Firefox.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>348664</commentid>
    <comment_count>12</comment_count>
    <who name="Jarred Nicholls">jarred</who>
    <bug_when>2011-02-09 15:45:48 -0800</bug_when>
    <thetext>Yes I agree, thanks.  I&apos;ll create tests and see how other browsers behave, and I&apos;ll survey the code affected code thoroughly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>348667</commentid>
    <comment_count>13</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-02-09 15:47:30 -0800</bug_when>
    <thetext>(In reply to comment #9)
&gt; One hidden change here is that m_response is now cleared. This has observable consequences - for example, XMLHttpRequest.status is lost after aborting.

I tried to review the class to see what effects clearing m_response would have. Somehow I missed that XMLHttpRequest.status effect.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>348713</commentid>
    <comment_count>14</comment_count>
    <who name="Jarred Nicholls">jarred</who>
    <bug_when>2011-02-09 17:08:50 -0800</bug_when>
    <thetext>Ok, I am convinced that clearing the response is the right (i.e. safe) thing to do here.  I was debating on whether to revise this patch and create a clearResponseBuffers() function that was used in both clearResponse() and abort().  However, anytime a response error occurs (abort, network, generic, timeout), all of the response attributes/getters (status, statusText, headers, etc.) are not meant to be accessible according to W3.  Therefore, clearing the response &quot;shouldn&apos;t matter&quot; if we were compliant.  I would even further do checks on m_state and m_error in status/statusText, but it&apos;s technically not necessary since we do proper checks on the response variables; in other words, clearing the response nets the same effect as checking m_state/m_error in status/statusText.

Firefox allows access to status, statusText, and all headers even after an abort.
Opera throws DOM exceptions when accessing any of these fields after a response error/abort.
Haven&apos;t tested IE yet.

WebKit will allow access to status and statusText, but throw INVALID_STATE exceptions if trying to retrieve headers.  WebKit is completely inconsistent, and out of the 3 tested browsers, the only inconsistent one.

W3 says that an abort will both 1) set error flag to true, and 2) change the state to UNSENT.  It also says that for status, statusText, and the header getter functions, that if the error flag is true or the status is &lt; HEADERS_RECEIVED, that these response attributes/getters should return 0/&quot;&quot;/null values.  We don&apos;t follow the standard on status and statusText, and we throw an INVALID_STATE exception on the header getters.  We should make ourselves consistent across the board; but that is a separate issue and we can open another bug for that discussion.

With that said, this patch will get us &quot;one step closer&quot; to the W3 standard by making status and statusText behave according to spec.  We can talk about the header getters and whether an exception is the right thing to do in another conversation.  The spec 

I&apos;ll create the regression test(s) and report my findings in IE 6 &amp; 8.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>348730</commentid>
    <comment_count>15</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-02-09 17:22:08 -0800</bug_when>
    <thetext>If the spec doesn&apos;t match at least one of IE or Firefox, the spec just needs to be fixed. We should also fix our inconsistencies, of course.

Depending on how much historical baggage we uncover, this choices may not be easy to make. Hopefully, sites don&apos;t use XMLHttpRequest.abort() all that much.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>348735</commentid>
    <comment_count>16</comment_count>
    <who name="Jarred Nicholls">jarred</who>
    <bug_when>2011-02-09 17:33:24 -0800</bug_when>
    <thetext>Yes that&apos;s true.  If they do abort(), they apparently don&apos;t care about accessing statuses in Opera.  If IE follows the Firefox approach then we have a hard decision to make.  If IE is like Opera, then Firefox is the odd man out and we&apos;re golden.

In my experience, I rarely abort; and when I do, I&apos;ve never been interested in just the status code.  But that&apos;s just me :)  If I wanted the status code, I would just wait for readyState to be 2 and then get the code, and if later I wanted to abort, fine...I have the status code captured already.  Meh.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>348773</commentid>
    <comment_count>17</comment_count>
    <who name="Jarred Nicholls">jarred</who>
    <bug_when>2011-02-09 19:10:22 -0800</bug_when>
    <thetext>Ok, so IE acts like Opera.  It throws exceptions.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>348776</commentid>
    <comment_count>18</comment_count>
      <attachid>81913</attachid>
    <who name="Jarred Nicholls">jarred</who>
    <bug_when>2011-02-09 19:33:53 -0800</bug_when>
    <thetext>Created attachment 81913
Proposed patch

A different patch that doesn&apos;t change behavior and stays true to this bug.  Will open a new bug regarding behavior (i.e. internal inconsistencies).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>348840</commentid>
    <comment_count>19</comment_count>
      <attachid>81913</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-02-10 00:06:20 -0800</bug_when>
    <thetext>Comment on attachment 81913
Proposed patch

Thanks for testing! I&apos;d be fine with following the spec then, and just going with your original patch here (plus a regression test).

The new function name is not so great, because it&apos;s not just buffers that are cleared. I&apos;m going to say r+ with hope that this function will go away very soon.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>348847</commentid>
    <comment_count>20</comment_count>
    <who name="Jarred Nicholls">jarred</who>
    <bug_when>2011-02-10 00:18:07 -0800</bug_when>
    <thetext>(In reply to comment #19)
&gt; (From update of attachment 81913 [details])
&gt; Thanks for testing! I&apos;d be fine with following the spec then, and just going with your original patch here (plus a regression test).
&gt; 
&gt; The new function name is not so great, because it&apos;s not just buffers that are cleared. I&apos;m going to say r+ with hope that this function will go away very soon.

See https://bugs.webkit.org/show_bug.cgi?id=54162

We could set this bug as depending upon 54162, and use the original patch (proper regression tests are in 54162).

Let me know what you think.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>351027</commentid>
    <comment_count>21</comment_count>
      <attachid>81913</attachid>
    <who name="Jarred Nicholls">jarred</who>
    <bug_when>2011-02-14 18:00:26 -0800</bug_when>
    <thetext>Comment on attachment 81913
Proposed patch

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

Well, might as well get it committed :)

&gt; Source/WebCore/xml/XMLHttpRequest.cpp:687
&gt; +    clearResponseBuffers();

they are all pretty much buffers (hold response data/binary), with the exception of m_createdDocument being a flag.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>351338</commentid>
    <comment_count>22</comment_count>
      <attachid>81913</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-02-15 09:15:57 -0800</bug_when>
    <thetext>Comment on attachment 81913
Proposed patch

I agree with Alexey about the fact that the name isn’t great.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>351414</commentid>
    <comment_count>23</comment_count>
      <attachid>81913</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-02-15 11:10:26 -0800</bug_when>
    <thetext>Comment on attachment 81913
Proposed patch

Clearing flags on attachment: 81913

Committed r78591: &lt;http://trac.webkit.org/changeset/78591&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>351415</commentid>
    <comment_count>24</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-02-15 11:10:32 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>81831</attachid>
            <date>2011-02-09 10:26:52 -0800</date>
            <delta_ts>2011-02-09 10:38:07 -0800</delta_ts>
            <desc>Proposed patch</desc>
            <filename>clearResponse.patch</filename>
            <type>text/plain</type>
            <size>1121</size>
            <attacher name="Jarred Nicholls">jarred</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA0OGM1M2E1Li40OTU0YjIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUg
QEAKKzIwMTEtMDItMDkgIEphcnJlZCBOaWNob2xscyAgPGphcnJlZEBzZW5jaGEuY29tPgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFhNTEh0dHBSZXF1
ZXN0OjphYm9ydCgpIHNob3VsZCBjYWxsIGNsZWFyUmVzcG9uc2UoKQorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTQxMTgKKworICAgICAgICBObyBuZXcg
dGVzdHMuIChPT1BTISkKKworICAgICAgICAqIHhtbC9YTUxIdHRwUmVxdWVzdC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpYTUxIdHRwUmVxdWVzdDo6YWJvcnQpOgorCiAyMDExLTAyLTA5ICBKb2No
ZW4gRWlzaW5nZXIgIDxqb2NoZW5AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5
IEFkYW0gQmFydGguCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVl
c3QuY3BwIGIvU291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmNwcAppbmRleCBhNTQ4
ZWJjLi5jMmFkMjcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVl
c3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5jcHAKQEAgLTY4
NCwxMiArNjg0LDcgQEAgdm9pZCBYTUxIdHRwUmVxdWVzdDo6YWJvcnQoKQogCiAgICAgaW50ZXJu
YWxBYm9ydCgpOwogCi0gICAgbV9yZXNwb25zZUJ1aWxkZXIuY2xlYXIoKTsKLSAgICBtX2NyZWF0
ZWREb2N1bWVudCA9IGZhbHNlOwotICAgIG1fcmVzcG9uc2VYTUwgPSAwOwotI2lmIEVOQUJMRShY
SFJfUkVTUE9OU0VfQkxPQikKLSAgICBtX3Jlc3BvbnNlQmxvYiA9IDA7Ci0jZW5kaWYKKyAgICBj
bGVhclJlc3BvbnNlKCk7CiAKICAgICAvLyBDbGVhciBoZWFkZXJzIGFzIHJlcXVpcmVkIGJ5IHRo
ZSBzcGVjCiAgICAgbV9yZXF1ZXN0SGVhZGVycy5jbGVhcigpOwo=
</data>
<flag name="review"
          id="73443"
          type_id="1"
          status="-"
          setter="darin"
    />
    <flag name="commit-queue"
          id="73444"
          type_id="3"
          status="-"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>81833</attachid>
            <date>2011-02-09 10:38:07 -0800</date>
            <delta_ts>2011-02-09 10:39:50 -0800</delta_ts>
            <desc>Proposed patch</desc>
            <filename>clearResponse.patch</filename>
            <type>text/plain</type>
            <size>1717</size>
            <attacher name="Jarred Nicholls">jarred</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA0OGM1M2E1Li43ZmUxZTA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjQg
QEAKKzIwMTEtMDItMDkgIEphcnJlZCBOaWNob2xscyAgPGphcnJlZEBzZW5jaGEuY29tPgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFhNTEh0dHBSZXF1
ZXN0OjphYm9ydCgpIHNob3VsZCBjYWxsIGNsZWFyUmVzcG9uc2UoKQorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTQxMTgKKworICAgICAgICBhYm9ydCgp
IGlzIG5vdCBwcm9wZXJseSBjbGVhcmluZyBBcnJheUJ1ZmZlciBiaW5hcnkgYnVmZmVyZWQgZGF0
YS4gVGhpcworICAgICAgICBjaGFuZ2Ugd2lsbCByZW1vdmUgdGhlIGNsZWFudXAgY29kZSBmcm9t
IGFib3J0KCkgYW5kIGluc3RlYWQgY2FsbAorICAgICAgICBjbGVhclJlc3BvbnNlKCkgdG8gZG8g
dGhlIGNsZWFudXAsIHdoaWNoIG5vdCBkb2VzIHRoZSBvcmlnaW5hbCBhYm9ydCgpCisgICAgICAg
IGNsZWFudXAsIGJ1dCBhbHNvIGNvdmVycyB0aGUgYmluYXJ5IHJlc3BvbnNlIGJ1ZmZlciBhcyB3
ZWxsLiBGdXR1cmUgY2xlYW51cAorICAgICAgICBvbWlzc2lvbnMgY2FuIGJlIGF2b2lkZWQgYnkg
b25seSBoYXZpbmcgdG8gbWFpbnRhaW4gY2xlYXJSZXNwb25zZSgpLgorICAgICAgICAKKyAgICAg
ICAgQ2xlYXJpbmcgdGhlIGRhdGEgb24gYWJvcnQoKSBpcyBtb3JlIG1lbW9yeSBlZmZpY2llbnQu
ICBCeSBub3QgY2xlYXJpbmcKKyAgICAgICAgdGhpcyBkYXRhLCBpdCB3aWxsIHJlbWFpbiBpbiBt
ZW1vcnkgdW50aWwgdGhlIFhIUiBvYmplY3QgaXMgY2xlYW5lZCB1cCBvcgorICAgICAgICB1bnRp
bCBhIHN1YnNlcXVlbnQgY2FsbCB0byBvcGVuKCkuCisgICAgICAgIAorCisgICAgICAgICogeG1s
L1hNTEh0dHBSZXF1ZXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlhNTEh0dHBSZXF1ZXN0Ojph
Ym9ydCk6CisKIDIwMTEtMDItMDkgIEpvY2hlbiBFaXNpbmdlciAgPGpvY2hlbkBjaHJvbWl1bS5v
cmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQWRhbSBCYXJ0aC4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS94bWwvWE1M
SHR0cFJlcXVlc3QuY3BwCmluZGV4IGE1NDhlYmMuLmMyYWQyNzAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUveG1s
L1hNTEh0dHBSZXF1ZXN0LmNwcApAQCAtNjg0LDEyICs2ODQsNyBAQCB2b2lkIFhNTEh0dHBSZXF1
ZXN0OjphYm9ydCgpCiAKICAgICBpbnRlcm5hbEFib3J0KCk7CiAKLSAgICBtX3Jlc3BvbnNlQnVp
bGRlci5jbGVhcigpOwotICAgIG1fY3JlYXRlZERvY3VtZW50ID0gZmFsc2U7Ci0gICAgbV9yZXNw
b25zZVhNTCA9IDA7Ci0jaWYgRU5BQkxFKFhIUl9SRVNQT05TRV9CTE9CKQotICAgIG1fcmVzcG9u
c2VCbG9iID0gMDsKLSNlbmRpZgorICAgIGNsZWFyUmVzcG9uc2UoKTsKIAogICAgIC8vIENsZWFy
IGhlYWRlcnMgYXMgcmVxdWlyZWQgYnkgdGhlIHNwZWMKICAgICBtX3JlcXVlc3RIZWFkZXJzLmNs
ZWFyKCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>81834</attachid>
            <date>2011-02-09 10:39:50 -0800</date>
            <delta_ts>2011-02-09 10:53:18 -0800</delta_ts>
            <desc>Proposed patch</desc>
            <filename>clearResponse.patch</filename>
            <type>text/plain</type>
            <size>1722</size>
            <attacher name="Jarred Nicholls">jarred</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA0OGM1M2E1Li5kODkzZmYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjQg
QEAKKzIwMTEtMDItMDkgIEphcnJlZCBOaWNob2xscyAgPGphcnJlZEBzZW5jaGEuY29tPgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFhNTEh0dHBSZXF1
ZXN0OjphYm9ydCgpIHNob3VsZCBjYWxsIGNsZWFyUmVzcG9uc2UoKQorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTQxMTgKKworICAgICAgICBhYm9ydCgp
IGlzIG5vdCBwcm9wZXJseSBjbGVhcmluZyBBcnJheUJ1ZmZlciBiaW5hcnkgYnVmZmVyZWQgZGF0
YS4gVGhpcworICAgICAgICBjaGFuZ2Ugd2lsbCByZW1vdmUgdGhlIGNsZWFudXAgY29kZSBmcm9t
IGFib3J0KCkgYW5kIGluc3RlYWQgY2FsbAorICAgICAgICBjbGVhclJlc3BvbnNlKCkgdG8gZG8g
dGhlIGNsZWFudXAsIHdoaWNoIG5vdCBvbmx5IGRvZXMgdGhlIG9yaWdpbmFsIGFib3J0KCkKKyAg
ICAgICAgY2xlYW51cCwgYnV0IGFsc28gY292ZXJzIHRoZSBiaW5hcnkgcmVzcG9uc2UgYnVmZmVy
IGFzIHdlbGwuIEZ1dHVyZSBjbGVhbnVwCisgICAgICAgIG9taXNzaW9ucyBjYW4gYmUgYXZvaWRl
ZCBieSBvbmx5IGhhdmluZyB0byBtYWludGFpbiBjbGVhclJlc3BvbnNlKCkuCisgICAgICAgIAor
ICAgICAgICBDbGVhcmluZyB0aGUgZGF0YSBvbiBhYm9ydCgpIGlzIG1vcmUgbWVtb3J5IGVmZmlj
aWVudC4gIEJ5IG5vdCBjbGVhcmluZworICAgICAgICB0aGlzIGRhdGEsIGl0IHdpbGwgcmVtYWlu
IGluIG1lbW9yeSB1bnRpbCB0aGUgWEhSIG9iamVjdCBpcyBjbGVhbmVkIHVwIG9yCisgICAgICAg
IHVudGlsIGEgc3Vic2VxdWVudCBjYWxsIHRvIG9wZW4oKS4KKyAgICAgICAgCisKKyAgICAgICAg
KiB4bWwvWE1MSHR0cFJlcXVlc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6WE1MSHR0cFJlcXVl
c3Q6OmFib3J0KToKKwogMjAxMS0wMi0wOSAgSm9jaGVuIEVpc2luZ2VyICA8am9jaGVuQGNocm9t
aXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBBZGFtIEJhcnRoLgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3ht
bC9YTUxIdHRwUmVxdWVzdC5jcHAKaW5kZXggYTU0OGViYy4uYzJhZDI3MCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS94bWwvWE1MSHR0cFJlcXVlc3QuY3BwCkBAIC02ODQsMTIgKzY4NCw3IEBAIHZvaWQgWE1MSHR0
cFJlcXVlc3Q6OmFib3J0KCkKIAogICAgIGludGVybmFsQWJvcnQoKTsKIAotICAgIG1fcmVzcG9u
c2VCdWlsZGVyLmNsZWFyKCk7Ci0gICAgbV9jcmVhdGVkRG9jdW1lbnQgPSBmYWxzZTsKLSAgICBt
X3Jlc3BvbnNlWE1MID0gMDsKLSNpZiBFTkFCTEUoWEhSX1JFU1BPTlNFX0JMT0IpCi0gICAgbV9y
ZXNwb25zZUJsb2IgPSAwOwotI2VuZGlmCisgICAgY2xlYXJSZXNwb25zZSgpOwogCiAgICAgLy8g
Q2xlYXIgaGVhZGVycyBhcyByZXF1aXJlZCBieSB0aGUgc3BlYwogICAgIG1fcmVxdWVzdEhlYWRl
cnMuY2xlYXIoKTsK
</data>
<flag name="review"
          id="73446"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>81836</attachid>
            <date>2011-02-09 10:53:18 -0800</date>
            <delta_ts>2011-02-09 19:33:53 -0800</delta_ts>
            <desc>Proposed patch</desc>
            <filename>clearResponse.patch</filename>
            <type>text/plain</type>
            <size>1245</size>
            <attacher name="Jarred Nicholls">jarred</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA0OGM1M2E1Li4xMmVkZmJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcg
QEAKKzIwMTEtMDItMDkgIEphcnJlZCBOaWNob2xscyAgPGphcnJlZEBzZW5jaGEuY29tPgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFhNTEh0dHBSZXF1
ZXN0OjphYm9ydCgpIHNob3VsZCBjYWxsIGNsZWFyUmVzcG9uc2UoKQorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTQxMTgKKworICAgICAgICBDYWxsaW5n
IGNsZWFyUmVzcG9uc2UgZnJlZXMgbW9yZSBtZW1vcnkgYXQgYWJvcnQgdGltZS4KKworICAgICAg
ICBObyBuZXcgdGVzdHMgYmVjYXVzZSB0aGVyZSBpcyBubyBvYnNlcnZhYmxlIGVmZmVjdCBleGNl
cHQgZm9yIGxlc3MgbWVtb3J5IHVzZWQuCisKKyAgICAgICAgKiB4bWwvWE1MSHR0cFJlcXVlc3Qu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6WE1MSHR0cFJlcXVlc3Q6OmFib3J0KToKKwogMjAxMS0w
Mi0wOSAgSm9jaGVuIEVpc2luZ2VyICA8am9jaGVuQGNocm9taXVtLm9yZz4KIAogICAgICAgICBS
ZXZpZXdlZCBieSBBZGFtIEJhcnRoLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUveG1sL1hN
TEh0dHBSZXF1ZXN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5jcHAK
aW5kZXggYTU0OGViYy4uYzJhZDI3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUveG1sL1hN
TEh0dHBSZXF1ZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3Qu
Y3BwCkBAIC02ODQsMTIgKzY4NCw3IEBAIHZvaWQgWE1MSHR0cFJlcXVlc3Q6OmFib3J0KCkKIAog
ICAgIGludGVybmFsQWJvcnQoKTsKIAotICAgIG1fcmVzcG9uc2VCdWlsZGVyLmNsZWFyKCk7Ci0g
ICAgbV9jcmVhdGVkRG9jdW1lbnQgPSBmYWxzZTsKLSAgICBtX3Jlc3BvbnNlWE1MID0gMDsKLSNp
ZiBFTkFCTEUoWEhSX1JFU1BPTlNFX0JMT0IpCi0gICAgbV9yZXNwb25zZUJsb2IgPSAwOwotI2Vu
ZGlmCisgICAgY2xlYXJSZXNwb25zZSgpOwogCiAgICAgLy8gQ2xlYXIgaGVhZGVycyBhcyByZXF1
aXJlZCBieSB0aGUgc3BlYwogICAgIG1fcmVxdWVzdEhlYWRlcnMuY2xlYXIoKTsK
</data>
<flag name="review"
          id="73447"
          type_id="1"
          status="-"
          setter="ap"
    />
    <flag name="commit-queue"
          id="73448"
          type_id="3"
          status="-"
          setter="ap"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>81913</attachid>
            <date>2011-02-09 19:33:53 -0800</date>
            <delta_ts>2011-02-15 11:10:26 -0800</delta_ts>
            <desc>Proposed patch</desc>
            <filename>clearResponse.patch</filename>
            <type>text/plain</type>
            <size>2000</size>
            <attacher name="Jarred Nicholls">jarred</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBhZDZlMDM5Li5lNGE3MjllIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcg
QEAKKzIwMTEtMDItMDkgIEphcnJlZCBOaWNob2xscyAgPGphcnJlZEBzZW5jaGEuY29tPgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFhNTEh0dHBSZXF1
ZXN0OjphYm9ydCgpIGRvZXNuJ3QgY2xlYXIgcmVzcG9uc2UgZGF0YQorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTQxMTgKKworICAgICAgICBQcm9wZXJs
eSBjbGVhciBhbGwgYnVmZmVyIGRhdGEgb24gYWJvcnQsIHNvIG5vIG1lbW9yeSBoYW5ncyBhcm91
bmQgdW5uZWNlc3NhcmlseS4KKworICAgICAgICBObyBuZXcgdGVzdHMgYmVjYXVzZSB0aGVyZSBp
cyBubyBvYnNlcnZhYmxlIGVmZmVjdCBleGNlcHQgZm9yIGxlc3MgbWVtb3J5IHVzZWQuCisKKyAg
ICAgICAgKiB4bWwvWE1MSHR0cFJlcXVlc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6WE1MSHR0
cFJlcXVlc3Q6OmFib3J0KToKKwogMjAxMS0wMi0wOSAgQmV0aCBEYWtpbiAgPGJkYWtpbkBhcHBs
ZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgTWFjaWVqIFN0YWNob3dpYWsuCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuY3BwIGIvU291cmNlL1dlYkNv
cmUveG1sL1hNTEh0dHBSZXF1ZXN0LmNwcAppbmRleCBhNTQ4ZWJjLi4wNDc2YmI0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5jcHAKQEAgLTY4NCwxMiArNjg0LDcgQEAgdm9pZCBY
TUxIdHRwUmVxdWVzdDo6YWJvcnQoKQogCiAgICAgaW50ZXJuYWxBYm9ydCgpOwogCi0gICAgbV9y
ZXNwb25zZUJ1aWxkZXIuY2xlYXIoKTsKLSAgICBtX2NyZWF0ZWREb2N1bWVudCA9IGZhbHNlOwot
ICAgIG1fcmVzcG9uc2VYTUwgPSAwOwotI2lmIEVOQUJMRShYSFJfUkVTUE9OU0VfQkxPQikKLSAg
ICBtX3Jlc3BvbnNlQmxvYiA9IDA7Ci0jZW5kaWYKKyAgICBjbGVhclJlc3BvbnNlQnVmZmVycygp
OwogCiAgICAgLy8gQ2xlYXIgaGVhZGVycyBhcyByZXF1aXJlZCBieSB0aGUgc3BlYwogICAgIG1f
cmVxdWVzdEhlYWRlcnMuY2xlYXIoKTsKQEAgLTczMyw2ICs3MjgsMTEgQEAgdm9pZCBYTUxIdHRw
UmVxdWVzdDo6aW50ZXJuYWxBYm9ydCgpCiB2b2lkIFhNTEh0dHBSZXF1ZXN0OjpjbGVhclJlc3Bv
bnNlKCkKIHsKICAgICBtX3Jlc3BvbnNlID0gUmVzb3VyY2VSZXNwb25zZSgpOworICAgIGNsZWFy
UmVzcG9uc2VCdWZmZXJzKCk7Cit9CisKK3ZvaWQgWE1MSHR0cFJlcXVlc3Q6OmNsZWFyUmVzcG9u
c2VCdWZmZXJzKCkKK3sKICAgICBtX3Jlc3BvbnNlQnVpbGRlci5jbGVhcigpOwogICAgIG1fY3Jl
YXRlZERvY3VtZW50ID0gZmFsc2U7CiAgICAgbV9yZXNwb25zZVhNTCA9IDA7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuaCBiL1NvdXJjZS9XZWJDb3JlL3ht
bC9YTUxIdHRwUmVxdWVzdC5oCmluZGV4IDM4NGE4NDYuLjFmMDc4YTIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3ht
bC9YTUxIdHRwUmVxdWVzdC5oCkBAIC0xNzMsNiArMTczLDcgQEAgcHJpdmF0ZToKICAgICB2b2lk
IGRyb3BQcm90ZWN0aW9uKCk7CiAgICAgdm9pZCBpbnRlcm5hbEFib3J0KCk7CiAgICAgdm9pZCBj
bGVhclJlc3BvbnNlKCk7CisgICAgdm9pZCBjbGVhclJlc3BvbnNlQnVmZmVycygpOwogICAgIHZv
aWQgY2xlYXJSZXF1ZXN0KCk7CiAKICAgICB2b2lkIGNyZWF0ZVJlcXVlc3QoRXhjZXB0aW9uQ29k
ZSYpOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>