<?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>24306</bug_id>
          
          <creation_ts>2009-03-02 16:46:52 -0800</creation_ts>
          <short_desc>Add a way to figure-out if a ResourceRequest requires upload progress notifications</short_desc>
          <delta_ts>2009-04-27 23:18:04 -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>WebCore Misc.</component>
          <version>420+</version>
          <rep_platform>All</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="Jay Campan">jcampan</reporter>
          <assigned_to name="Jay Campan">jcampan</assigned_to>
          <cc>abarth</cc>
    
    <cc>ap</cc>
    
    <cc>fishd</cc>
    
    <cc>sam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>111931</commentid>
    <comment_count>0</comment_count>
    <who name="Jay Campan">jcampan</who>
    <bug_when>2009-03-02 16:46:52 -0800</bug_when>
    <thetext>ResourceLoader::didSendData() must be called for the XMLHttpRequest update callbacks to be invoked.
It would be good for the request to indicate whether such callbacks are registered so the loader does not have to call didSendData if there are no consumers.
This would be especially useful in the Chromium case to limit the number of notifications sent as they are sent over IPC.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>111932</commentid>
    <comment_count>1</comment_count>
      <attachid>28204</attachid>
    <who name="Jay Campan">jcampan</who>
    <bug_when>2009-03-02 16:49:14 -0800</bug_when>
    <thetext>Created attachment 28204
Patch that adds a flag to ResourceRequest to indicate whether upload progress notifications are needed. 

Adding a flag to ResourceRequest to indicate whether or not upload progress notifications are needed. This is useful to avoid sending these notifications when there are no consumers (especially in the Chromium case where IPC are involved).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>111935</commentid>
    <comment_count>2</comment_count>
      <attachid>28204</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2009-03-02 17:15:45 -0800</bug_when>
    <thetext>Comment on attachment 28204
Patch that adds a flag to ResourceRequest to indicate whether upload progress notifications are needed. 

I believe this will break all non-chromium platforms.

Also, what if a progress handler gets added during the load?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>111955</commentid>
    <comment_count>3</comment_count>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2009-03-02 20:01:56 -0800</bug_when>
    <thetext>Yeah, good point.  We should always send upload events to XMLHttpRequest.

Sam, is a #ifdef PLATFORM(CHROMIUM) desirable for the setReportUploadProgress call, or would it be better to move that property down to ResourceRequestBase?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>112063</commentid>
    <comment_count>4</comment_count>
      <attachid>28235</attachid>
    <who name="Jay Campan">jcampan</who>
    <bug_when>2009-03-03 12:28:10 -0800</bug_when>
    <thetext>Created attachment 28235
Moving the repotUploadProgress to ResourceRequestBase

I moved the reportUploadProgress property to the ResourceRequestBase class.
Let me know if you prefer having an #ifdef CHROMIUM in XMLHttpRequest.cpp instead, as Darin suggested.
I now always set the property to true for XMLHttpRequest to make sure that upload progress notifications will happen even if registered after the load has started.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>112639</commentid>
    <comment_count>5</comment_count>
      <attachid>28235</attachid>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2009-03-06 11:54:02 -0800</bug_when>
    <thetext>Comment on attachment 28235
Moving the repotUploadProgress to ResourceRequestBase

&gt;Index: WebCore/ChangeLog
...
&gt;+        Adding a flag to ResourceRequest to indicate whether or not upload
&gt;+        progress notifications are needed for a resource. This is useful to
&gt;+        avoid sending these notifications when there are no consumers
&gt;+        (especially in the Chromium case where IPC are involved). 

the comment should say ResourceRequestBase instead. 

nit: &quot;where IPC _is_ involved&quot;


&gt;+        WARNING: NO TEST CASES ADDED OR CHANGED

This line should be removed from the ChangeLog.


&gt;Index: WebCore/platform/network/ResourceRequestBase.h
...
&gt;+        bool reportUploadProgress() const { return m_reportUploadProgress; }
&gt;+        void setReportUploadProgress(bool reportUploadProgress)
&gt;+        {
&gt;+            m_reportUploadProgress = reportUploadProgress;
&gt;+        }    

nit: this file seems to put the implementation for short methods like this
all on one line.  it might be nice to the original author to maintain that
style.


&gt;     private:
&gt;         const ResourceRequest&amp; asResourceRequest() const;
&gt;+        bool m_reportUploadProgress;
&gt;     };

I think this new member should be protected like all of the other data
members.


Otherwise, this all LG to me.  Please post a cleaned up patch and re-request
review.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>112647</commentid>
    <comment_count>6</comment_count>
      <attachid>28370</attachid>
    <who name="Jay Campan">jcampan</who>
    <bug_when>2009-03-06 13:06:13 -0800</bug_when>
    <thetext>Created attachment 28370
New patch with ChangeLog fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>112648</commentid>
    <comment_count>7</comment_count>
      <attachid>28370</attachid>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2009-03-06 13:12:49 -0800</bug_when>
    <thetext>Comment on attachment 28370
New patch with ChangeLog fixed.

&gt;Index: WebCore/platform/network/ResourceRequestBase.h
...
&gt;+        void setReportUploadProgress(bool reportUploadProgress) { m_reportUploadProgress = reportUploadProgress;  }

nit: extra whitespace before the &quot;}&quot;

otherwise LGTM</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>112649</commentid>
    <comment_count>8</comment_count>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2009-03-06 13:33:01 -0800</bug_when>
    <thetext>Landed as http://trac.webkit.org/changeset/41500

Please remember to put a bug link in the ChangeLog next time :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>119061</commentid>
    <comment_count>9</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2009-04-27 23:14:09 -0700</bug_when>
    <thetext>&gt; Also, what if a progress handler gets added during the load?

Looks like this was not addressed, after all.

More importantly, it is wrong to have m_reportUploadProgress in ResourceResponseBase. On platforms that let a client override a request via a delegate call (like Mac), it will be simply lost. See e.g. WebFrameLoaderClient::dispatchWillSendRequest() in WebFrameLoaderClient.mm:

    if (implementations-&gt;willSendRequestFunc)
        request = (NSURLRequest *)CallResourceLoadDelegate(implementations-&gt;willSendRequestFunc, webView, @selector(webView:resource:willSendRequest:redirectResponse:fromDataSource:), [webView _objectForIdentifier:identifier], request.nsURLRequest(), redirectResponse.nsURLResponse(), dataSource(loader));

So, the boolean in ResourceRequestBase is useless for cross-platform code, but it adds confusion and increases the size of request objects.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>119062</commentid>
    <comment_count>10</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2009-04-27 23:18:04 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; More importantly, it is wrong to have m_reportUploadProgress in
&gt; ResourceResponseBase. On platforms that let a client override a request via a
&gt; delegate call (like Mac), it will be simply lost.

This design constraint keeps coming up.  It seems like we need some generalized way to handle these use cases.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>28204</attachid>
            <date>2009-03-02 16:49:14 -0800</date>
            <delta_ts>2009-03-03 12:28:10 -0800</delta_ts>
            <desc>Patch that adds a flag to ResourceRequest to indicate whether upload progress notifications are needed. </desc>
            <filename>xmlhttp.patch</filename>
            <type>text/plain</type>
            <size>4142</size>
            <attacher name="Jay Campan">jcampan</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0MTM3MikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjEgQEAKKzIwMDktMDMtMDIgIEpheSBDYW1wYW4gIDxqY2FtcGFuQGdvb2dsZS5j
b20+CisKKyAgICAgICAgQWRkaW5nIGEgZmxhZyB0byBSZXNvdXJjZVJlcXVlc3QgdG8gaW5kaWNh
dGUgd2hldGhlciBvciBub3QgdXBsb2FkCisgICAgICAgIHByb2dyZXNzIG5vdGlmaWNhdGlvbnMg
YXJlIG5lZWRlZC4gVGhpcyBpcyB1c2VmdWwgdG8gYXZvaWQgc2VuZGluZworICAgICAgICB0aGVz
ZSBub3RpZmljYXRpb25zIHdoZW4gdGhlcmUgYXJlIG5vIGNvbnN1bWVycyAoZXNwZWNpYWxseSBp
biB0aGUKKyAgICAgICAgQ2hyb21pdW0gY2FzZSB3aGVyZSBJUEMgYXJlIGludm9sdmVkKS4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXQVJOSU5HOiBO
TyBURVNUIENBU0VTIEFEREVEIE9SIENIQU5HRUQKKworICAgICAgICAqIHBsYXRmb3JtL25ldHdv
cmsvY2hyb21pdW0vUmVzb3VyY2VSZXF1ZXN0Lmg6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJj
ZVJlcXVlc3Q6OlJlc291cmNlUmVxdWVzdCk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZVJl
cXVlc3Q6OnJlcG9ydFVwbG9hZFByb2dyZXNzKToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNl
UmVxdWVzdDo6c2V0UmVwb3J0VXBsb2FkUHJvZ3Jlc3MpOgorICAgICAgICAqIHhtbC9YTUxIdHRw
UmVxdWVzdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpYTUxIdHRwUmVxdWVzdDo6bG9hZFJlcXVl
c3RBc3luY2hyb25vdXNseSk6CisKIDIwMDktMDMtMDIgIEtldmluIE9sbGl2aWVyICA8a2V2aW5v
QHRoZW9sbGl2aWVycy5jb20+CiAKICAgICAgICAgQnVpbGQgZml4ZXMgZm9yIHd4V2lkZ2V0cyBN
YWMgdHJ1bmsgYnVpbGQuCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2hyb21pdW0v
UmVzb3VyY2VSZXF1ZXN0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L2Nocm9taXVtL1Jlc291cmNlUmVxdWVzdC5oCShyZXZpc2lvbiA0MTM3MSkKKysrIFdlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9jaHJvbWl1bS9SZXNvdXJjZVJlcXVlc3QuaAkod29ya2luZyBjb3B5
KQpAQCAtNTAsNiArNTAsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgICAgICAsIG1f
ZnJhbWUoMCkKICAgICAgICAgICAgICwgbV9vcmlnaW5QaWQoMCkKICAgICAgICAgICAgICwgbV90
YXJnZXRUeXBlKFRhcmdldElzU3ViUmVzb3VyY2UpCisgICAgICAgICAgICAsIG1fcmVwb3J0VXBs
b2FkUHJvZ3Jlc3MoZmFsc2UpCiAgICAgICAgIHsKICAgICAgICAgfQogCkBAIC01OSw2ICs2MCw3
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgICAgICwgbV9vcmlnaW5QaWQoMCkKICAg
ICAgICAgICAgICwgbV90YXJnZXRUeXBlKFRhcmdldElzU3ViUmVzb3VyY2UpCiAgICAgICAgICAg
ICAsIG1fc2VjdXJpdHlJbmZvKHNlY3VyaXR5SW5mbykKKyAgICAgICAgICAgICwgbV9yZXBvcnRV
cGxvYWRQcm9ncmVzcyhmYWxzZSkKICAgICAgICAgewogICAgICAgICB9CiAKQEAgLTY3LDYgKzY5
LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICAgICAgLCBtX2ZyYW1lKDApCiAgICAg
ICAgICAgICAsIG1fb3JpZ2luUGlkKDApCiAgICAgICAgICAgICAsIG1fdGFyZ2V0VHlwZShUYXJn
ZXRJc1N1YlJlc291cmNlKQorICAgICAgICAgICAgLCBtX3JlcG9ydFVwbG9hZFByb2dyZXNzKGZh
bHNlKQogICAgICAgICB7CiAgICAgICAgIH0KIApAQCAtNzUsNiArNzgsNyBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAgICAgICAgICAgICAsIG1fZnJhbWUoMCkKICAgICAgICAgICAgICwgbV9vcmln
aW5QaWQoMCkKICAgICAgICAgICAgICwgbV90YXJnZXRUeXBlKFRhcmdldElzU3ViUmVzb3VyY2Up
CisgICAgICAgICAgICAsIG1fcmVwb3J0VXBsb2FkUHJvZ3Jlc3MoZmFsc2UpCiAgICAgICAgIHsK
ICAgICAgICAgICAgIHNldEhUVFBSZWZlcnJlcihyZWZlcnJlcik7CiAgICAgICAgIH0KQEAgLTg0
LDYgKzg4LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICAgICAgLCBtX2ZyYW1lKDAp
CiAgICAgICAgICAgICAsIG1fb3JpZ2luUGlkKDApCiAgICAgICAgICAgICAsIG1fdGFyZ2V0VHlw
ZShUYXJnZXRJc1N1YlJlc291cmNlKQorICAgICAgICAgICAgLCBtX3JlcG9ydFVwbG9hZFByb2dy
ZXNzKGZhbHNlKQogICAgICAgICB7CiAgICAgICAgIH0KIApAQCAtMTEwLDYgKzExNSwxNCBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIC8vIHN0cmluZyBpZiBub3QgYSBzZWN1cmUgY29u
bmVjdGlvbi4KICAgICAgICAgQ1N0cmluZyBzZWN1cml0eUluZm8oKSBjb25zdCB7IHJldHVybiBt
X3NlY3VyaXR5SW5mbzsgfQogICAgICAgICB2b2lkIHNldFNlY3VyaXR5SW5mbyhjb25zdCBDU3Ry
aW5nJiB2YWx1ZSkgeyBtX3NlY3VyaXR5SW5mbyA9IHZhbHVlOyB9CisgICAgICAgIAorICAgICAg
ICAvLyBXaGV0aGVyIHRoZSBhc3NvY2lhdGVkIFJlc291cmNlSGFuZGxlQ2xpZW50IG5lZWRzIHRv
IGJlIG5vdGlmaWVkIG9mCisgICAgICAgIC8vIHVwbG9hZCBwcm9ncmVzcyBtYWRlIGZvciB0aGF0
IHJlc291cmNlLgorICAgICAgICBib29sIHJlcG9ydFVwbG9hZFByb2dyZXNzKCkgY29uc3QgeyBy
ZXR1cm4gbV9yZXBvcnRVcGxvYWRQcm9ncmVzczsgfQorICAgICAgICB2b2lkIHNldFJlcG9ydFVw
bG9hZFByb2dyZXNzKGJvb2wgcmVwb3J0VXBsb2FkUHJvZ3Jlc3MpCisgICAgICAgIHsKKyAgICAg
ICAgICAgIG1fcmVwb3J0VXBsb2FkUHJvZ3Jlc3MgPSByZXBvcnRVcGxvYWRQcm9ncmVzczsKKyAg
ICAgICAgfSAgICAKIAogICAgIHByaXZhdGU6CiAgICAgICAgIGZyaWVuZCBjbGFzcyBSZXNvdXJj
ZVJlcXVlc3RCYXNlOwpAQCAtMTIxLDYgKzEzNCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAg
ICAgICAgaW50IG1fb3JpZ2luUGlkOwogICAgICAgICBUYXJnZXRUeXBlIG1fdGFyZ2V0VHlwZTsK
ICAgICAgICAgQ1N0cmluZyBtX3NlY3VyaXR5SW5mbzsKKyAgICAgICAgYm9vbCBtX3JlcG9ydFVw
bG9hZFByb2dyZXNzOwogICAgIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFdl
YkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3htbC9Y
TUxIdHRwUmVxdWVzdC5jcHAJKHJldmlzaW9uIDQxMzcxKQorKysgV2ViQ29yZS94bWwvWE1MSHR0
cFJlcXVlc3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC04MzAsNiArODMwLDkgQEAgdm9pZCBYTUxI
dHRwUmVxdWVzdDo6bG9hZFJlcXVlc3RBc3luY2hybwogICAgIC8vIGZvciBsb2NhbCBmaWxlcyBv
dGhlcndpc2UsIDxyZGFyOi8vcHJvYmxlbS81NjcxODEzPi4KICAgICBMb2FkQ2FsbGJhY2tzIGNh
bGxiYWNrcyA9IG1faW5QcmVmbGlnaHQgPyBEb05vdFNlbmRMb2FkQ2FsbGJhY2tzIDogU2VuZExv
YWRDYWxsYmFja3M7CiAgICAgQ29udGVudFNuaWZmIGNvbnRlbnRTbmlmZiA9IHJlcXVlc3QudXJs
KCkuaXNMb2NhbEZpbGUoKSA/IFNuaWZmQ29udGVudCA6IERvTm90U25pZmZDb250ZW50OworICAg
IC8vIFdlIHJlbHkgb24gdGhlIHByb2dyZXNzIG5vdGlmaWNhdGlvbnMgZm9yIGNhbGxpbmcgdGhl
IG9ubG9hZCBjYWxsYmFjay4KKyAgICBpZiAobV91cGxvYWQgJiYgKG1fdXBsb2FkLT5vbmxvYWQo
KSB8fCBtX3VwbG9hZC0+b25wcm9ncmVzcygpKSkKKyAgICAgICAgcmVxdWVzdC5zZXRSZXBvcnRV
cGxvYWRQcm9ncmVzcyh0cnVlKTsKICAgICBtX2xvYWRlciA9IFRocmVhZGFibGVMb2FkZXI6OmNy
ZWF0ZShzY3JpcHRFeGVjdXRpb25Db250ZXh0KCksIHRoaXMsIHJlcXVlc3QsIGNhbGxiYWNrcywg
Y29udGVudFNuaWZmKTsKIAogICAgIGlmIChtX2xvYWRlcikgewo=
</data>
<flag name="review"
          id="13785"
          type_id="1"
          status="-"
          setter="sam"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>28235</attachid>
            <date>2009-03-03 12:28:10 -0800</date>
            <delta_ts>2009-03-06 11:54:02 -0800</delta_ts>
            <desc>Moving the repotUploadProgress to ResourceRequestBase</desc>
            <filename>xmlhttp.patch</filename>
            <type>text/plain</type>
            <size>3340</size>
            <attacher name="Jay Campan">jcampan</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0MTQwMikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjEgQEAKKzIwMDktMDMtMDMgIEpheSBDYW1wYW4gIDxqY2FtcGFuQGdvb2dsZS5j
b20+CisKKyAgICAgICAgQWRkaW5nIGEgZmxhZyB0byBSZXNvdXJjZVJlcXVlc3QgdG8gaW5kaWNh
dGUgd2hldGhlciBvciBub3QgdXBsb2FkCisgICAgICAgIHByb2dyZXNzIG5vdGlmaWNhdGlvbnMg
YXJlIG5lZWRlZCBmb3IgYSByZXNvdXJjZS4gVGhpcyBpcyB1c2VmdWwgdG8KKyAgICAgICAgYXZv
aWQgc2VuZGluZyB0aGVzZSBub3RpZmljYXRpb25zIHdoZW4gdGhlcmUgYXJlIG5vIGNvbnN1bWVy
cworICAgICAgICAoZXNwZWNpYWxseSBpbiB0aGUgQ2hyb21pdW0gY2FzZSB3aGVyZSBJUEMgYXJl
IGludm9sdmVkKS4gCisJCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIFdBUk5JTkc6IE5PIFRFU1QgQ0FTRVMgQURERUQgT1IgQ0hBTkdFRAorCisgICAgICAg
ICogcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZVJlcXVlc3RCYXNlLmg6CisgICAgICAgIChXZWJD
b3JlOjpSZXNvdXJjZVJlcXVlc3RCYXNlOjpyZXBvcnRVcGxvYWRQcm9ncmVzcyk6CisgICAgICAg
IChXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3RCYXNlOjpzZXRSZXBvcnRVcGxvYWRQcm9ncmVzcyk6
CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3RCYXNlOjpSZXNvdXJjZVJlcXVlc3RC
YXNlKToKKyAgICAgICAgKiB4bWwvWE1MSHR0cFJlcXVlc3QuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6WE1MSHR0cFJlcXVlc3Q6OmxvYWRSZXF1ZXN0QXN5bmNocm9ub3VzbHkpOgorCiAyMDA5LTAz
LTAzICBKdW5nc2hpayBTaGluIDxqc2hpbkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3
ZWQgYnkgRXJpYyBTZWlkZWwuCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3Vy
Y2VSZXF1ZXN0QmFzZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9S
ZXNvdXJjZVJlcXVlc3RCYXNlLmgJKHJldmlzaW9uIDQxMzc2KQorKysgV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL1Jlc291cmNlUmVxdWVzdEJhc2UuaAkod29ya2luZyBjb3B5KQpAQCAtMTA3LDEy
ICsxMDcsMjEgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB2b2lkIHNldEFsbG93SFRU
UENvb2tpZXMoYm9vbCBhbGxvd0hUVFBDb29raWVzKTsKIAogICAgICAgICBib29sIGlzQ29uZGl0
aW9uYWwoKSBjb25zdDsKKworICAgICAgICAvLyBXaGV0aGVyIHRoZSBhc3NvY2lhdGVkIFJlc291
cmNlSGFuZGxlQ2xpZW50IG5lZWRzIHRvIGJlIG5vdGlmaWVkIG9mCisgICAgICAgIC8vIHVwbG9h
ZCBwcm9ncmVzcyBtYWRlIGZvciB0aGF0IHJlc291cmNlLgorICAgICAgICBib29sIHJlcG9ydFVw
bG9hZFByb2dyZXNzKCkgY29uc3QgeyByZXR1cm4gbV9yZXBvcnRVcGxvYWRQcm9ncmVzczsgfQor
ICAgICAgICB2b2lkIHNldFJlcG9ydFVwbG9hZFByb2dyZXNzKGJvb2wgcmVwb3J0VXBsb2FkUHJv
Z3Jlc3MpCisgICAgICAgIHsKKyAgICAgICAgICAgIG1fcmVwb3J0VXBsb2FkUHJvZ3Jlc3MgPSBy
ZXBvcnRVcGxvYWRQcm9ncmVzczsKKyAgICAgICAgfSAgICAKICAgICAgICAgCiAgICAgcHJvdGVj
dGVkOgogICAgICAgICAvLyBVc2VkIHdoZW4gUmVzb3VyY2VSZXF1ZXN0IGlzIGluaXRpYWxpemVk
IGZyb20gYSBwbGF0Zm9ybSByZXByZXNlbnRhdGlvbiBvZiB0aGUgcmVxdWVzdAogICAgICAgICBS
ZXNvdXJjZVJlcXVlc3RCYXNlKCkKICAgICAgICAgICAgIDogbV9yZXNvdXJjZVJlcXVlc3RVcGRh
dGVkKGZhbHNlKQogICAgICAgICAgICAgLCBtX3BsYXRmb3JtUmVxdWVzdFVwZGF0ZWQodHJ1ZSkK
KyAgICAgICAgICAgICwgbV9yZXBvcnRVcGxvYWRQcm9ncmVzcyhmYWxzZSkKICAgICAgICAgewog
ICAgICAgICB9CiAKQEAgLTEyNCw2ICsxMzMsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAg
ICAgICAgICAsIG1fYWxsb3dIVFRQQ29va2llcyh0cnVlKQogICAgICAgICAgICAgLCBtX3Jlc291
cmNlUmVxdWVzdFVwZGF0ZWQodHJ1ZSkKICAgICAgICAgICAgICwgbV9wbGF0Zm9ybVJlcXVlc3RV
cGRhdGVkKGZhbHNlKQorICAgICAgICAgICAgLCBtX3JlcG9ydFVwbG9hZFByb2dyZXNzKGZhbHNl
KQogICAgICAgICB7CiAgICAgICAgIH0KIApAQCAtMTQ1LDYgKzE1NSw3IEBAIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAogICAgIHByaXZhdGU6CiAgICAgICAgIGNvbnN0IFJlc291cmNlUmVxdWVzdCYg
YXNSZXNvdXJjZVJlcXVlc3QoKSBjb25zdDsKKyAgICAgICAgYm9vbCBtX3JlcG9ydFVwbG9hZFBy
b2dyZXNzOwogICAgIH07CiAKICAgICBib29sIGVxdWFsSWdub3JpbmdIZWFkZXJGaWVsZHMoY29u
c3QgUmVzb3VyY2VSZXF1ZXN0QmFzZSYsIGNvbnN0IFJlc291cmNlUmVxdWVzdEJhc2UmKTsKSW5k
ZXg6IFdlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3Jl
L3htbC9YTUxIdHRwUmVxdWVzdC5jcHAJKHJldmlzaW9uIDQxMzc2KQorKysgV2ViQ29yZS94bWwv
WE1MSHR0cFJlcXVlc3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC04MzAsNiArODMwLDEwIEBAIHZv
aWQgWE1MSHR0cFJlcXVlc3Q6OmxvYWRSZXF1ZXN0QXN5bmNocm8KICAgICAvLyBmb3IgbG9jYWwg
ZmlsZXMgb3RoZXJ3aXNlLCA8cmRhcjovL3Byb2JsZW0vNTY3MTgxMz4uCiAgICAgTG9hZENhbGxi
YWNrcyBjYWxsYmFja3MgPSBtX2luUHJlZmxpZ2h0ID8gRG9Ob3RTZW5kTG9hZENhbGxiYWNrcyA6
IFNlbmRMb2FkQ2FsbGJhY2tzOwogICAgIENvbnRlbnRTbmlmZiBjb250ZW50U25pZmYgPSByZXF1
ZXN0LnVybCgpLmlzTG9jYWxGaWxlKCkgPyBTbmlmZkNvbnRlbnQgOiBEb05vdFNuaWZmQ29udGVu
dDsKKworICAgIGlmIChtX3VwbG9hZCkKKyAgICAgICAgcmVxdWVzdC5zZXRSZXBvcnRVcGxvYWRQ
cm9ncmVzcyh0cnVlKTsKKwogICAgIG1fbG9hZGVyID0gVGhyZWFkYWJsZUxvYWRlcjo6Y3JlYXRl
KHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSwgdGhpcywgcmVxdWVzdCwgY2FsbGJhY2tzLCBjb250
ZW50U25pZmYpOwogCiAgICAgaWYgKG1fbG9hZGVyKSB7Cg==
</data>
<flag name="review"
          id="13894"
          type_id="1"
          status="-"
          setter="fishd"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>28370</attachid>
            <date>2009-03-06 13:06:13 -0800</date>
            <delta_ts>2009-03-06 13:12:49 -0800</delta_ts>
            <desc>New patch with ChangeLog fixed.</desc>
            <filename>xmlhttp.patch</filename>
            <type>text/plain</type>
            <size>3282</size>
            <attacher name="Jay Campan">jcampan</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0MTQ5OCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTkgQEAKKzIwMDktMDMtMDYgIEpheSBDYW1wYW4gIDxqY2FtcGFuQGdvb2dsZS5j
b20+CisKKyAgICAgICAgQWRkaW5nIGEgZmxhZyB0byBSZXNvdXJjZVJlcXVlc3RCYXNlIHRvIGlu
ZGljYXRlIHdoZXRoZXIgb3Igbm90IHVwbG9hZAorICAgICAgICBwcm9ncmVzcyBub3RpZmljYXRp
b25zIGFyZSBuZWVkZWQgZm9yIGEgcmVzb3VyY2UuIFRoaXMgaXMgdXNlZnVsIHRvCisgICAgICAg
IGF2b2lkIHNlbmRpbmcgdGhlc2Ugbm90aWZpY2F0aW9ucyB3aGVuIHRoZXJlIGFyZSBubyBjb25z
dW1lcnMKKyAgICAgICAgKGVzcGVjaWFsbHkgaW4gdGhlIENocm9taXVtIGNhc2Ugd2hlcmUgSVBD
IGlzIGludm9sdmVkKS4gCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlUmVxdWVzdEJhc2UuaDoKKyAgICAg
ICAgKFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdEJhc2U6OnJlcG9ydFVwbG9hZFByb2dyZXNzKToK
KyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdEJhc2U6OnNldFJlcG9ydFVwbG9hZFBy
b2dyZXNzKToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdEJhc2U6OlJlc291cmNl
UmVxdWVzdEJhc2UpOgorICAgICAgICAqIHhtbC9YTUxIdHRwUmVxdWVzdC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpYTUxIdHRwUmVxdWVzdDo6bG9hZFJlcXVlc3RBc3luY2hyb25vdXNseSk6CisK
IDIwMDktMDMtMDYgIFBldGVyIEthc3RpbmcgIDxwa2FzdGluZ0Bnb29nbGUuY29tPgogCiAgICAg
ICAgIEJ1aWxkIGJ1c3RhZ2UgZml4LgpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jl
c291cmNlUmVxdWVzdEJhc2UuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvUmVzb3VyY2VSZXF1ZXN0QmFzZS5oCShyZXZpc2lvbiA0MTQ5OCkKKysrIFdlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9SZXNvdXJjZVJlcXVlc3RCYXNlLmgJKHdvcmtpbmcgY29weSkKQEAgLTEw
NywxMiArMTA3LDE4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgdm9pZCBzZXRBbGxv
d0hUVFBDb29raWVzKGJvb2wgYWxsb3dIVFRQQ29va2llcyk7CiAKICAgICAgICAgYm9vbCBpc0Nv
bmRpdGlvbmFsKCkgY29uc3Q7Ci0gICAgICAgIAorCisgICAgICAgIC8vIFdoZXRoZXIgdGhlIGFz
c29jaWF0ZWQgUmVzb3VyY2VIYW5kbGVDbGllbnQgbmVlZHMgdG8gYmUgbm90aWZpZWQgb2YKKyAg
ICAgICAgLy8gdXBsb2FkIHByb2dyZXNzIG1hZGUgZm9yIHRoYXQgcmVzb3VyY2UuCisgICAgICAg
IGJvb2wgcmVwb3J0VXBsb2FkUHJvZ3Jlc3MoKSBjb25zdCB7IHJldHVybiBtX3JlcG9ydFVwbG9h
ZFByb2dyZXNzOyB9CisgICAgICAgIHZvaWQgc2V0UmVwb3J0VXBsb2FkUHJvZ3Jlc3MoYm9vbCBy
ZXBvcnRVcGxvYWRQcm9ncmVzcykgeyBtX3JlcG9ydFVwbG9hZFByb2dyZXNzID0gcmVwb3J0VXBs
b2FkUHJvZ3Jlc3M7ICB9CisKICAgICBwcm90ZWN0ZWQ6CiAgICAgICAgIC8vIFVzZWQgd2hlbiBS
ZXNvdXJjZVJlcXVlc3QgaXMgaW5pdGlhbGl6ZWQgZnJvbSBhIHBsYXRmb3JtIHJlcHJlc2VudGF0
aW9uIG9mIHRoZSByZXF1ZXN0CiAgICAgICAgIFJlc291cmNlUmVxdWVzdEJhc2UoKQogICAgICAg
ICAgICAgOiBtX3Jlc291cmNlUmVxdWVzdFVwZGF0ZWQoZmFsc2UpCiAgICAgICAgICAgICAsIG1f
cGxhdGZvcm1SZXF1ZXN0VXBkYXRlZCh0cnVlKQorICAgICAgICAgICAgLCBtX3JlcG9ydFVwbG9h
ZFByb2dyZXNzKGZhbHNlKQogICAgICAgICB7CiAgICAgICAgIH0KIApAQCAtMTI0LDYgKzEzMCw3
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgICAgICwgbV9hbGxvd0hUVFBDb29raWVz
KHRydWUpCiAgICAgICAgICAgICAsIG1fcmVzb3VyY2VSZXF1ZXN0VXBkYXRlZCh0cnVlKQogICAg
ICAgICAgICAgLCBtX3BsYXRmb3JtUmVxdWVzdFVwZGF0ZWQoZmFsc2UpCisgICAgICAgICAgICAs
IG1fcmVwb3J0VXBsb2FkUHJvZ3Jlc3MoZmFsc2UpCiAgICAgICAgIHsKICAgICAgICAgfQogCkBA
IC0xNDIsNiArMTQ5LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBib29sIG1fYWxs
b3dIVFRQQ29va2llczsKICAgICAgICAgbXV0YWJsZSBib29sIG1fcmVzb3VyY2VSZXF1ZXN0VXBk
YXRlZDsKICAgICAgICAgbXV0YWJsZSBib29sIG1fcGxhdGZvcm1SZXF1ZXN0VXBkYXRlZDsKKyAg
ICAgICAgYm9vbCBtX3JlcG9ydFVwbG9hZFByb2dyZXNzOwogCiAgICAgcHJpdmF0ZToKICAgICAg
ICAgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiBhc1Jlc291cmNlUmVxdWVzdCgpIGNvbnN0OwpJbmRl
eDogV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUv
eG1sL1hNTEh0dHBSZXF1ZXN0LmNwcAkocmV2aXNpb24gNDE0OTgpCisrKyBXZWJDb3JlL3htbC9Y
TUxIdHRwUmVxdWVzdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTgzMCw2ICs4MzAsMTAgQEAgdm9p
ZCBYTUxIdHRwUmVxdWVzdDo6bG9hZFJlcXVlc3RBc3luY2hybwogICAgIC8vIGZvciBsb2NhbCBm
aWxlcyBvdGhlcndpc2UsIDxyZGFyOi8vcHJvYmxlbS81NjcxODEzPi4KICAgICBMb2FkQ2FsbGJh
Y2tzIGNhbGxiYWNrcyA9IG1faW5QcmVmbGlnaHQgPyBEb05vdFNlbmRMb2FkQ2FsbGJhY2tzIDog
U2VuZExvYWRDYWxsYmFja3M7CiAgICAgQ29udGVudFNuaWZmIGNvbnRlbnRTbmlmZiA9IHJlcXVl
c3QudXJsKCkuaXNMb2NhbEZpbGUoKSA/IFNuaWZmQ29udGVudCA6IERvTm90U25pZmZDb250ZW50
OworCisgICAgaWYgKG1fdXBsb2FkKQorICAgICAgICByZXF1ZXN0LnNldFJlcG9ydFVwbG9hZFBy
b2dyZXNzKHRydWUpOworCiAgICAgbV9sb2FkZXIgPSBUaHJlYWRhYmxlTG9hZGVyOjpjcmVhdGUo
c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLCB0aGlzLCByZXF1ZXN0LCBjYWxsYmFja3MsIGNvbnRl
bnRTbmlmZik7CiAKICAgICBpZiAobV9sb2FkZXIpIHsK
</data>
<flag name="review"
          id="13897"
          type_id="1"
          status="+"
          setter="fishd"
    />
          </attachment>
      

    </bug>

</bugzilla>