<?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>24786</bug_id>
          
          <creation_ts>2009-03-24 14:44:03 -0700</creation_ts>
          <short_desc>WebKitDownload sometimes suggests peculiar filenames</short_desc>
          <delta_ts>2009-05-06 12:39: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>WebKitGTK</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Other</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>Gtk</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Christian Dywan">christian</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>gustavo</cc>
    
    <cc>jobi</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>115051</commentid>
    <comment_count>0</comment_count>
    <who name="Christian Dywan">christian</who>
    <bug_when>2009-03-24 14:44:03 -0700</bug_when>
    <thetext>WebKitDownload provides a &quot;suggested filename&quot;. This works often enough but sometimes it suggests something like &quot;jdk-6u13-windows-i586-p.exe&amp;File=jdk-6u13-windows-i586-p.exe&quot; which is obviously not ideal.
Another phenomenon seems to be URI encoded spaces, ie. %20, which is also not useful.

I think we should try to catch these cases.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>116216</commentid>
    <comment_count>1</comment_count>
      <attachid>29176</attachid>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2009-04-01 14:01:44 -0700</bug_when>
    <thetext>Created attachment 29176
Better handling of the URI that is to be downloaded to figure out a

name suggestion.
---
 WebKit/gtk/ChangeLog                 |   13 +++++++++++++
 WebKit/gtk/webkit/webkitdownload.cpp |    6 +++++-
 2 files changed, 18 insertions(+), 1 deletions(-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>116217</commentid>
    <comment_count>2</comment_count>
      <attachid>29176</attachid>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2009-04-01 14:04:49 -0700</bug_when>
    <thetext>Comment on attachment 29176
Better handling of the URI that is to be downloaded to figure out a

KURL has all we need =). We can even use the KURL the request itself holds in the future, when we have a proper WebKitNetworkRequest implementation committed =).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>116538</commentid>
    <comment_count>3</comment_count>
      <attachid>29254</attachid>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2009-04-04 12:10:35 -0700</bug_when>
    <thetext>Created attachment 29254
Refactor the emission of the download-requested signal so that we have less code duplication.

 WebKit/gtk/ChangeLog                               |   17 +++++++++++++++++
 WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.cpp |   16 +++-------------
 WebKit/gtk/WebCoreSupport/FrameLoaderClientGtk.cpp |   14 ++------------
 WebKit/gtk/webkit/webkitprivate.h                  |    4 ++++
 WebKit/gtk/webkit/webkitwebview.cpp                |   18 ++++++++++++++++++
 5 files changed, 44 insertions(+), 25 deletions(-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>116539</commentid>
    <comment_count>4</comment_count>
      <attachid>29255</attachid>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2009-04-04 12:10:40 -0700</bug_when>
    <thetext>Created attachment 29255
When a download is requested by an ongoing request, use the already

provided response to set the suggested filename for the WebKitDownload
object, if available.
---
 WebKit/gtk/ChangeLog                               |   20 ++++++++++++++++++
 WebKit/gtk/WebCoreSupport/FrameLoaderClientGtk.cpp |    9 ++++++-
 WebKit/gtk/webkit/webkitdownload.cpp               |   22 ++++++++++++++-----
 WebKit/gtk/webkit/webkitprivate.h                  |    5 +++-
 WebKit/gtk/webkit/webkitwebview.cpp                |    7 +++++-
 5 files changed, 53 insertions(+), 10 deletions(-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>116541</commentid>
    <comment_count>5</comment_count>
      <attachid>29257</attachid>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2009-04-04 12:14:15 -0700</bug_when>
    <thetext>Created attachment 29257
When a download is requested by an ongoing request, use the already

provided response to set the suggested filename for the WebKitDownload
object, if available.
---
 WebKit/gtk/ChangeLog                               |   20 +++++++++++++++++
 WebKit/gtk/WebCoreSupport/FrameLoaderClientGtk.cpp |    9 ++++++-
 WebKit/gtk/webkit/webkitdownload.cpp               |   23 +++++++++++++------
 WebKit/gtk/webkit/webkitprivate.h                  |    5 +++-
 WebKit/gtk/webkit/webkitwebview.cpp                |    7 +++++-
 5 files changed, 53 insertions(+), 11 deletions(-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>118119</commentid>
    <comment_count>6</comment_count>
      <attachid>29176</attachid>
    <who name="Xan Lopez">xan.lopez</who>
    <bug_when>2009-04-20 08:25:51 -0700</bug_when>
    <thetext>Comment on attachment 29176
Better handling of the URI that is to be downloaded to figure out a

Looks good to me. Maybe you can briefly say in the changelog how is it better than before (no query, reference, escaping, etc).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>118121</commentid>
    <comment_count>7</comment_count>
      <attachid>29254</attachid>
    <who name="Xan Lopez">xan.lopez</who>
    <bug_when>2009-04-20 09:03:34 -0700</bug_when>
    <thetext>Comment on attachment 29254
Refactor the emission of the download-requested signal so that we have less code duplication.

&gt;  void ContextMenuClient::downloadURL(const KURL&amp; url)
&gt;  {
&gt; -    WebKitNetworkRequest* network_request = webkit_network_request_new(url.string().utf8().data());
&gt; -    WebKitDownload* download = webkit_download_new(network_request);
&gt; -    g_object_unref(network_request);
&gt; +    WebKitNetworkRequest* networkRequest = webkit_network_request_new(url.string().utf8().data());
&gt;  
&gt; -    gboolean handled;
&gt; -    g_signal_emit_by_name(m_webView, &quot;download-requested&quot;, download, &amp;handled);
&gt; -
&gt; -    if (!handled) {
&gt; -        webkit_download_cancel(download);
&gt; -        g_object_unref(download);
&gt; -        return;
&gt; -    }
&gt; -
&gt; -    webkit_download_start(download);
&gt; +    webkit_web_view_request_download(m_webView, networkRequest);
&gt; +    g_object_unref(networkRequest);
&gt;  }


&gt; +void webkit_web_view_request_download(WebKitWebView* webView, WebKitNetworkRequest* request)
&gt; +{
&gt; +    g_return_if_fail(WEBKIT_IS_WEB_VIEW(webView));
&gt; +
&gt; +    WebKitDownload* download = webkit_download_new(request);
&gt; +    g_object_unref(request);
&gt; +


Mmm, aren&apos;t you unrefing the network request twice now? Once in the request_download function, and once in the functions called that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>118128</commentid>
    <comment_count>8</comment_count>
      <attachid>29176</attachid>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2009-04-20 10:17:08 -0700</bug_when>
    <thetext>Comment on attachment 29176
Better handling of the URI that is to be downloaded to figure out a

Landed as r42672 with a more descriptive changelog message.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>118130</commentid>
    <comment_count>9</comment_count>
      <attachid>29617</attachid>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2009-04-20 10:59:11 -0700</bug_when>
    <thetext>Created attachment 29617
refactor download-requested signal emission to avoid code duplication

Xan&apos;s right, I&apos;m not sure why I didn&apos;t get any crashers while testing, though I don&apos;t remember how/if I tested doing the actual downloads.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>118812</commentid>
    <comment_count>10</comment_count>
      <attachid>29617</attachid>
    <who name="Xan Lopez">xan.lopez</who>
    <bug_when>2009-04-25 00:31:06 -0700</bug_when>
    <thetext>Comment on attachment 29617
refactor download-requested signal emission to avoid code duplication

Go for it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>118831</commentid>
    <comment_count>11</comment_count>
      <attachid>29617</attachid>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2009-04-25 07:04:51 -0700</bug_when>
    <thetext>Comment on attachment 29617
refactor download-requested signal emission to avoid code duplication

Landed as r42867.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>120094</commentid>
    <comment_count>12</comment_count>
      <attachid>29257</attachid>
    <who name="Xan Lopez">xan.lopez</who>
    <bug_when>2009-05-06 07:23:15 -0700</bug_when>
    <thetext>Comment on attachment 29257
When a download is requested by an ongoing request, use the already

&gt; +    if (!response.isNull() &amp;&amp; !response.suggestedFilename().isEmpty()) {
&gt; +        g_debug(&quot;suggested filename exists!&quot;);
&gt; +        webkit_download_set_suggested_filename(download, response.suggestedFilename().utf8().data());
&gt; +    }
&gt; +

I guess you want to lose the g_debug. Looks good otherwise.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>120126</commentid>
    <comment_count>13</comment_count>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2009-05-06 12:39:46 -0700</bug_when>
    <thetext>Last patch landed as r43319.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>29176</attachid>
            <date>2009-04-01 14:01:44 -0700</date>
            <delta_ts>2009-04-23 07:26:37 -0700</delta_ts>
            <desc>Better handling of the URI that is to be downloaded to figure out a</desc>
            <filename>Better-handling-of-the-URI-that-is-to-be-downloaded-to-figure-out-a.patch</filename>
            <type>text/plain</type>
            <size>1964</size>
            <attacher name="Gustavo Noronha (kov)">gustavo</attacher>
            
              <data encoding="base64">ZTI2Njg0ZDY2OTRjMmRiYzM2OGZmNDA4NWM4OTFhZmI1M2UxMDYzMApkaWZmIC0tZ2l0IGEvV2Vi
S2l0L2d0ay9DaGFuZ2VMb2cgYi9XZWJLaXQvZ3RrL0NoYW5nZUxvZwppbmRleCBlYTk3OTc5Li4y
MWU3OTRhIDEwMDY0NAotLS0gYS9XZWJLaXQvZ3RrL0NoYW5nZUxvZworKysgYi9XZWJLaXQvZ3Rr
L0NoYW5nZUxvZwpAQCAtMiw2ICsyLDE5IEBACiAKICAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCiAKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTI0Nzg2CisgICAgICAgIFdlYktpdERvd25sb2FkIHNvbWV0aW1lcyBzdWdnZXN0cyBwZWN1
bGlhciBmaWxlbmFtZXMKKworICAgICAgICBCZXR0ZXIgaGFuZGxpbmcgb2YgdGhlIFVSSSB0aGF0
IGlzIHRvIGJlIGRvd25sb2FkZWQgdG8gZmlndXJlIG91dAorICAgICAgICBhIG5hbWUgc3VnZ2Vz
dGlvbi4KKworICAgICAgICAqIHdlYmtpdC93ZWJraXRkb3dubG9hZC5jcHA6CisgICAgICAgIChf
V2ViS2l0RG93bmxvYWRQcml2YXRlOjp3ZWJraXRfZG93bmxvYWRfc2V0X3Byb3BlcnR5KToKKwor
MjAwOS0wNC0wMSAgR3VzdGF2byBOb3JvbmhhIFNpbHZhICA8Z3VzdGF2by5ub3JvbmhhQGNvbGxh
Ym9yYS5jby51az4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwogICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjQ4NDQKICAgICAg
ICAgVW5pdCB0ZXN0IFdlYktpdERvd25sb2FkCiAKZGlmZiAtLWdpdCBhL1dlYktpdC9ndGsvd2Vi
a2l0L3dlYmtpdGRvd25sb2FkLmNwcCBiL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdGRvd25sb2Fk
LmNwcAppbmRleCBhMjhjZDNiLi4xOGI1MmI4IDEwMDY0NAotLS0gYS9XZWJLaXQvZ3RrL3dlYmtp
dC93ZWJraXRkb3dubG9hZC5jcHAKKysrIGIvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0ZG93bmxv
YWQuY3BwCkBAIC0xODUsMTMgKzE4NSwxNyBAQCBzdGF0aWMgdm9pZCB3ZWJraXRfZG93bmxvYWRf
c2V0X3Byb3BlcnR5KEdPYmplY3QqIG9iamVjdCwgZ3VpbnQgcHJvcF9pZCwgY29uc3QgRwogewog
ICAgIFdlYktpdERvd25sb2FkKiBkb3dubG9hZCA9IFdFQktJVF9ET1dOTE9BRChvYmplY3QpOwog
ICAgIFdlYktpdERvd25sb2FkUHJpdmF0ZSogcHJpdiA9IGRvd25sb2FkLT5wcml2OworICAgIEtV
UkwgdXJsOwogCiAgICAgc3dpdGNoKHByb3BfaWQpIHsKICAgICBjYXNlIFBST1BfTkVUV09SS19S
RVFVRVNUOgogICAgICAgICBwcml2LT5uZXR3b3JrUmVxdWVzdCA9IFdFQktJVF9ORVRXT1JLX1JF
UVVFU1QoZ192YWx1ZV9kdXBfb2JqZWN0KHZhbHVlKSk7CiAgICAgICAgIC8vIFRoaXMgaXMgc2Fm
ZSBhcyBuZXR3b3JrLXJlcXVlc3QgaXMgYSBjb25zdHJ1Y3Qgb25seSBwcm9wZXJ0eSBhbmQKICAg
ICAgICAgLy8gc3VnZ2VzdGVkRmlsZW5hbWUgaXMgaW5pdGlhbGx5IG51bGwuCi0gICAgICAgIHBy
aXYtPnN1Z2dlc3RlZEZpbGVuYW1lID0gZ19wYXRoX2dldF9iYXNlbmFtZSh3ZWJraXRfbmV0d29y
a19yZXF1ZXN0X2dldF91cmkocHJpdi0+bmV0d29ya1JlcXVlc3QpKTsKKyAgICAgICAgdXJsID0g
S1VSTChLVVJMKCksIHdlYmtpdF9uZXR3b3JrX3JlcXVlc3RfZ2V0X3VyaShwcml2LT5uZXR3b3Jr
UmVxdWVzdCkpOworICAgICAgICB1cmwuc2V0UXVlcnkoU3RyaW5nKCkpOworICAgICAgICB1cmwu
cmVtb3ZlUmVmKCk7CisgICAgICAgIHByaXYtPnN1Z2dlc3RlZEZpbGVuYW1lID0gZ19zdHJkdXAo
ZGVjb2RlVVJMRXNjYXBlU2VxdWVuY2VzKHVybC5sYXN0UGF0aENvbXBvbmVudCgpKS51dGY4KCku
ZGF0YSgpKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBQUk9QX0RFU1RJTkFUSU9OX1VSSToK
ICAgICAgICAgd2Via2l0X2Rvd25sb2FkX3NldF9kZXN0aW5hdGlvbl91cmkoZG93bmxvYWQsIGdf
dmFsdWVfZ2V0X3N0cmluZyh2YWx1ZSkpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>29254</attachid>
            <date>2009-04-04 12:10:35 -0700</date>
            <delta_ts>2009-04-20 10:59:11 -0700</delta_ts>
            <desc>Refactor the emission of the download-requested signal so that we have less code duplication.</desc>
            <filename>Refactor-the-emission-of-the-download-requested-signal-so-that-we-have-less-code-duplication..patch</filename>
            <type>text/plain</type>
            <size>5016</size>
            <attacher name="Gustavo Noronha (kov)">gustavo</attacher>
            
              <data encoding="base64">NDRiNWQ0MThkN2YzMmQyNWRjN2UxZTBjYTg4MWI2MzMwMjMzYzY1NQpkaWZmIC0tZ2l0IGEvV2Vi
S2l0L2d0ay9DaGFuZ2VMb2cgYi9XZWJLaXQvZ3RrL0NoYW5nZUxvZwppbmRleCBhNzUzNmVmLi5h
MGVjNmI2IDEwMDY0NAotLS0gYS9XZWJLaXQvZ3RrL0NoYW5nZUxvZworKysgYi9XZWJLaXQvZ3Rr
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDA5LTA0LTA0ICBHdXN0YXZvIE5vcm9uaGEg
U2lsdmEgIDxndXN0YXZvLm5vcm9uaGFAY29sbGFib3JhLmNvLnVrPgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yNDc4NgorICAgICAgICBXZWJLaXREb3dubG9hZCBzb21ldGltZXMg
c3VnZ2VzdHMgcGVjdWxpYXIgZmlsZW5hbWVzCisKKyAgICAgICAgUmVmYWN0b3IgdGhlIGVtaXNz
aW9uIG9mIHRoZSBkb3dubG9hZC1yZXF1ZXN0ZWQgc2lnbmFsIHNvIHRoYXQgd2UKKyAgICAgICAg
aGF2ZSBsZXNzIGNvZGUgZHVwbGljYXRpb24uCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9D
b250ZXh0TWVudUNsaWVudEd0ay5jcHA6CisgICAgICAgIChXZWJLaXQ6OkNvbnRleHRNZW51Q2xp
ZW50Ojpkb3dubG9hZFVSTCk6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJD
bGllbnRHdGsuY3BwOgorICAgICAgICAoV2ViS2l0OjpGcmFtZUxvYWRlckNsaWVudDo6c3RhcnRE
b3dubG9hZCk6CisgICAgICAgICogd2Via2l0L3dlYmtpdHByaXZhdGUuaDoKKyAgICAgICAgKiB3
ZWJraXQvd2Via2l0d2Vidmlldy5jcHA6CisKIDIwMDktMDQtMDIgIEd1c3Rhdm8gTm9yb25oYSBT
aWx2YSAgPGd1c3Rhdm8ubm9yb25oYUBjb2xsYWJvcmEuY28udWs+CiAKICAgICAgICAgUmV2aWV3
ZWQgYnkgQWxleGV5ICBQcm9za3VyeWFrb3YuCmRpZmYgLS1naXQgYS9XZWJLaXQvZ3RrL1dlYkNv
cmVTdXBwb3J0L0NvbnRleHRNZW51Q2xpZW50R3RrLmNwcCBiL1dlYktpdC9ndGsvV2ViQ29yZVN1
cHBvcnQvQ29udGV4dE1lbnVDbGllbnRHdGsuY3BwCmluZGV4IDQyZDQ4MTMuLmMyYjI0ZTIgMTAw
NjQ0Ci0tLSBhL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvQ29udGV4dE1lbnVDbGllbnRHdGsu
Y3BwCisrKyBiL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvQ29udGV4dE1lbnVDbGllbnRHdGsu
Y3BwCkBAIC0xNjUsMjAgKzE2NSwxMCBAQCB2b2lkIENvbnRleHRNZW51Q2xpZW50Ojpjb250ZXh0
TWVudUl0ZW1TZWxlY3RlZChDb250ZXh0TWVudUl0ZW0qLCBjb25zdCBDb250ZXh0TQogCiB2b2lk
IENvbnRleHRNZW51Q2xpZW50Ojpkb3dubG9hZFVSTChjb25zdCBLVVJMJiB1cmwpCiB7Ci0gICAg
V2ViS2l0TmV0d29ya1JlcXVlc3QqIG5ldHdvcmtfcmVxdWVzdCA9IHdlYmtpdF9uZXR3b3JrX3Jl
cXVlc3RfbmV3KHVybC5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKLSAgICBXZWJLaXREb3dubG9h
ZCogZG93bmxvYWQgPSB3ZWJraXRfZG93bmxvYWRfbmV3KG5ldHdvcmtfcmVxdWVzdCk7Ci0gICAg
Z19vYmplY3RfdW5yZWYobmV0d29ya19yZXF1ZXN0KTsKKyAgICBXZWJLaXROZXR3b3JrUmVxdWVz
dCogbmV0d29ya1JlcXVlc3QgPSB3ZWJraXRfbmV0d29ya19yZXF1ZXN0X25ldyh1cmwuc3RyaW5n
KCkudXRmOCgpLmRhdGEoKSk7CiAKLSAgICBnYm9vbGVhbiBoYW5kbGVkOwotICAgIGdfc2lnbmFs
X2VtaXRfYnlfbmFtZShtX3dlYlZpZXcsICJkb3dubG9hZC1yZXF1ZXN0ZWQiLCBkb3dubG9hZCwg
JmhhbmRsZWQpOwotCi0gICAgaWYgKCFoYW5kbGVkKSB7Ci0gICAgICAgIHdlYmtpdF9kb3dubG9h
ZF9jYW5jZWwoZG93bmxvYWQpOwotICAgICAgICBnX29iamVjdF91bnJlZihkb3dubG9hZCk7Ci0g
ICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICB3ZWJraXRfZG93bmxvYWRfc3RhcnQoZG93bmxv
YWQpOworICAgIHdlYmtpdF93ZWJfdmlld19yZXF1ZXN0X2Rvd25sb2FkKG1fd2ViVmlldywgbmV0
d29ya1JlcXVlc3QpOworICAgIGdfb2JqZWN0X3VucmVmKG5ldHdvcmtSZXF1ZXN0KTsKIH0KIAog
dm9pZCBDb250ZXh0TWVudUNsaWVudDo6Y29weUltYWdlVG9DbGlwYm9hcmQoY29uc3QgSGl0VGVz
dFJlc3VsdCYpCmRpZmYgLS1naXQgYS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9h
ZGVyQ2xpZW50R3RrLmNwcCBiL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJD
bGllbnRHdGsuY3BwCmluZGV4IDk3YzNlYjIuLjVlYTE2MDEgMTAwNjQ0Ci0tLSBhL1dlYktpdC9n
dGsvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRHdGsuY3BwCisrKyBiL1dlYktpdC9n
dGsvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRHdGsuY3BwCkBAIC05MTUsMjAgKzkx
NSwxMCBAQCB2b2lkIEZyYW1lTG9hZGVyQ2xpZW50OjpzZXRNYWluRG9jdW1lbnRFcnJvcihEb2N1
bWVudExvYWRlciosIGNvbnN0IFJlc291cmNlRXJybwogdm9pZCBGcmFtZUxvYWRlckNsaWVudDo6
c3RhcnREb3dubG9hZChjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCiB7CiAgICAgV2Vi
S2l0TmV0d29ya1JlcXVlc3QqIG5ldHdvcmtSZXF1ZXN0ID0gd2Via2l0X25ldHdvcmtfcmVxdWVz
dF9uZXcocmVxdWVzdC51cmwoKS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKLSAgICBXZWJLaXRE
b3dubG9hZCogZG93bmxvYWQgPSB3ZWJraXRfZG93bmxvYWRfbmV3KG5ldHdvcmtSZXF1ZXN0KTsK
LSAgICBnX29iamVjdF91bnJlZihuZXR3b3JrUmVxdWVzdCk7Ci0KICAgICBXZWJLaXRXZWJWaWV3
KiB2aWV3ID0gZ2V0Vmlld0Zyb21GcmFtZShtX2ZyYW1lKTsKLSAgICBnYm9vbGVhbiBoYW5kbGVk
OwotICAgIGdfc2lnbmFsX2VtaXRfYnlfbmFtZSh2aWV3LCAiZG93bmxvYWQtcmVxdWVzdGVkIiwg
ZG93bmxvYWQsICZoYW5kbGVkKTsKLQotICAgIGlmICghaGFuZGxlZCkgewotICAgICAgICB3ZWJr
aXRfZG93bmxvYWRfY2FuY2VsKGRvd25sb2FkKTsKLSAgICAgICAgZ19vYmplY3RfdW5yZWYoZG93
bmxvYWQpOwotICAgICAgICByZXR1cm47Ci0gICAgfQogCi0gICAgd2Via2l0X2Rvd25sb2FkX3N0
YXJ0KGRvd25sb2FkKTsKKyAgICB3ZWJraXRfd2ViX3ZpZXdfcmVxdWVzdF9kb3dubG9hZCh2aWV3
LCBuZXR3b3JrUmVxdWVzdCk7CisgICAgZ19vYmplY3RfdW5yZWYobmV0d29ya1JlcXVlc3QpOwog
fQogCiB2b2lkIEZyYW1lTG9hZGVyQ2xpZW50Ojp1cGRhdGVHbG9iYWxIaXN0b3J5KCkKZGlmZiAt
LWdpdCBhL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHByaXZhdGUuaCBiL1dlYktpdC9ndGsvd2Vi
a2l0L3dlYmtpdHByaXZhdGUuaAppbmRleCAwYjgzYTExLi5kODIxYzVlIDEwMDY0NAotLS0gYS9X
ZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRwcml2YXRlLmgKKysrIGIvV2ViS2l0L2d0ay93ZWJraXQv
d2Via2l0cHJpdmF0ZS5oCkBAIC0yOSw2ICsyOSw3IEBACiAKICNpbmNsdWRlIDx3ZWJraXQvd2Vi
a2l0ZGVmaW5lcy5oPgogI2luY2x1ZGUgPHdlYmtpdC93ZWJraXRkb3dubG9hZC5oPgorI2luY2x1
ZGUgPHdlYmtpdC93ZWJraXRuZXR3b3JrcmVxdWVzdC5oPgogI2luY2x1ZGUgPHdlYmtpdC93ZWJr
aXR3ZWJ2aWV3Lmg+CiAjaW5jbHVkZSA8d2Via2l0L3dlYmtpdHdlYmZyYW1lLmg+CiAjaW5jbHVk
ZSA8d2Via2l0L3dlYmtpdHdlYnBvbGljeWRlY2lzaW9uLmg+CkBAIC0xNTgsNiArMTU5LDkgQEAg
ZXh0ZXJuICJDIiB7CiAgICAgdm9pZAogICAgIHdlYmtpdF93ZWJfdmlld19ub3RpZnlfcmVhZHkg
KFdlYktpdFdlYlZpZXcqIHdlYl92aWV3KTsKIAorICAgIHZvaWQKKyAgICB3ZWJraXRfd2ViX3Zp
ZXdfcmVxdWVzdF9kb3dubG9hZChXZWJLaXRXZWJWaWV3KiB3ZWJfdmlldywgV2ViS2l0TmV0d29y
a1JlcXVlc3QqIHJlcXVlc3QpOworCiAgICAgV2ViS2l0V2ViUG9saWN5RGVjaXNpb24qCiAgICAg
d2Via2l0X3dlYl9wb2xpY3lfZGVjaXNpb25fbmV3IChXZWJLaXRXZWJGcmFtZSosIFdlYkNvcmU6
OkZyYW1lUG9saWN5RnVuY3Rpb24pOwogCmRpZmYgLS1naXQgYS9XZWJLaXQvZ3RrL3dlYmtpdC93
ZWJraXR3ZWJ2aWV3LmNwcCBiL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYnZpZXcuY3BwCmlu
ZGV4IDc5NmQ4NjYuLjJmODc3ZDMgMTAwNjQ0Ci0tLSBhL1dlYktpdC9ndGsvd2Via2l0L3dlYmtp
dHdlYnZpZXcuY3BwCisrKyBiL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYnZpZXcuY3BwCkBA
IC0yMDQ4LDYgKzIwNDgsMjQgQEAgdm9pZCB3ZWJraXRfd2ViX3ZpZXdfbm90aWZ5X3JlYWR5KFdl
YktpdFdlYlZpZXcqIHdlYlZpZXcpCiAgICAgZ19zaWduYWxfZW1pdCh3ZWJWaWV3LCB3ZWJraXRf
d2ViX3ZpZXdfc2lnbmFsc1tXRUJfVklFV19SRUFEWV0sIDAsICZpc0hhbmRsZWQpOwogfQogCit2
b2lkIHdlYmtpdF93ZWJfdmlld19yZXF1ZXN0X2Rvd25sb2FkKFdlYktpdFdlYlZpZXcqIHdlYlZp
ZXcsIFdlYktpdE5ldHdvcmtSZXF1ZXN0KiByZXF1ZXN0KQoreworICAgIGdfcmV0dXJuX2lmX2Zh
aWwoV0VCS0lUX0lTX1dFQl9WSUVXKHdlYlZpZXcpKTsKKworICAgIFdlYktpdERvd25sb2FkKiBk
b3dubG9hZCA9IHdlYmtpdF9kb3dubG9hZF9uZXcocmVxdWVzdCk7CisgICAgZ19vYmplY3RfdW5y
ZWYocmVxdWVzdCk7CisKKyAgICBnYm9vbGVhbiBoYW5kbGVkOworICAgIGdfc2lnbmFsX2VtaXQo
d2ViVmlldywgd2Via2l0X3dlYl92aWV3X3NpZ25hbHNbRE9XTkxPQURfUkVRVUVTVEVEXSwgMCwg
ZG93bmxvYWQsICZoYW5kbGVkKTsKKworICAgIGlmICghaGFuZGxlZCkgeworICAgICAgICB3ZWJr
aXRfZG93bmxvYWRfY2FuY2VsKGRvd25sb2FkKTsKKyAgICAgICAgZ19vYmplY3RfdW5yZWYoZG93
bmxvYWQpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgd2Via2l0X2Rvd25sb2FkX3N0
YXJ0KGRvd25sb2FkKTsKK30KIAogdm9pZCB3ZWJraXRfd2ViX3ZpZXdfc2V0X3NldHRpbmdzKFdl
YktpdFdlYlZpZXcqIHdlYlZpZXcsIFdlYktpdFdlYlNldHRpbmdzKiB3ZWJTZXR0aW5ncykKIHsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>29255</attachid>
            <date>2009-04-04 12:10:40 -0700</date>
            <delta_ts>2009-04-04 12:13:48 -0700</delta_ts>
            <desc>When a download is requested by an ongoing request, use the already</desc>
            <filename>When-a-download-is-requested-by-an-ongoing-request-use-the-already.patch</filename>
            <type>text/plain</type>
            <size>6354</size>
            <attacher name="Gustavo Noronha (kov)">gustavo</attacher>
            
              <data encoding="base64">N2Q4Mzg3ZGI0ODgxZDJkZWJhMGRmMGQ5YTk4YzA4ZGNmNzkxNzA5ZApkaWZmIC0tZ2l0IGEvV2Vi
S2l0L2d0ay9DaGFuZ2VMb2cgYi9XZWJLaXQvZ3RrL0NoYW5nZUxvZwppbmRleCBhMGVjNmI2Li5h
ZTIxMjIwIDEwMDY0NAotLS0gYS9XZWJLaXQvZ3RrL0NoYW5nZUxvZworKysgYi9XZWJLaXQvZ3Rr
L0NoYW5nZUxvZwpAQCAtNSw2ICs1LDI2IEBACiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yNDc4NgogICAgICAgICBXZWJLaXREb3dubG9hZCBzb21ldGlt
ZXMgc3VnZ2VzdHMgcGVjdWxpYXIgZmlsZW5hbWVzCiAKKyAgICAgICAgV2hlbiBhIGRvd25sb2Fk
IGlzIHJlcXVlc3RlZCBieSBhbiBvbmdvaW5nIHJlcXVlc3QsIHVzZSB0aGUgYWxyZWFkeQorICAg
ICAgICBwcm92aWRlZCByZXNwb25zZSB0byBzZXQgdGhlIHN1Z2dlc3RlZCBmaWxlbmFtZSBmb3Ig
dGhlIFdlYktpdERvd25sb2FkCisgICAgICAgIG9iamVjdCwgaWYgYXZhaWxhYmxlLgorCisgICAg
ICAgICogV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRHdGsuY3BwOgorICAgICAgICAo
V2ViS2l0OjpGcmFtZUxvYWRlckNsaWVudDo6ZG93bmxvYWQpOgorICAgICAgICAqIHdlYmtpdC93
ZWJraXRkb3dubG9hZC5jcHA6CisgICAgICAgIChfV2ViS2l0RG93bmxvYWRQcml2YXRlOjp3ZWJr
aXRfZG93bmxvYWRfc2V0X3Byb3BlcnR5KToKKyAgICAgICAgKF9XZWJLaXREb3dubG9hZFByaXZh
dGU6OndlYmtpdF9kb3dubG9hZF9nZXRfc3VnZ2VzdGVkX2ZpbGVuYW1lKToKKyAgICAgICAgKF9X
ZWJLaXREb3dubG9hZFByaXZhdGU6OndlYmtpdF9kb3dubG9hZF9zZXRfc3VnZ2VzdGVkX2ZpbGVu
YW1lKToKKyAgICAgICAgKiB3ZWJraXQvd2Via2l0cHJpdmF0ZS5oOgorICAgICAgICAqIHdlYmtp
dC93ZWJraXR3ZWJ2aWV3LmNwcDoKKworMjAwOS0wNC0wNCAgR3VzdGF2byBOb3JvbmhhIFNpbHZh
ICA8Z3VzdGF2by5ub3JvbmhhQGNvbGxhYm9yYS5jby51az4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjQ3ODYKKyAgICAgICAgV2ViS2l0RG93bmxvYWQgc29tZXRpbWVzIHN1Z2dl
c3RzIHBlY3VsaWFyIGZpbGVuYW1lcworCiAgICAgICAgIFJlZmFjdG9yIHRoZSBlbWlzc2lvbiBv
ZiB0aGUgZG93bmxvYWQtcmVxdWVzdGVkIHNpZ25hbCBzbyB0aGF0IHdlCiAgICAgICAgIGhhdmUg
bGVzcyBjb2RlIGR1cGxpY2F0aW9uLgogCmRpZmYgLS1naXQgYS9XZWJLaXQvZ3RrL1dlYkNvcmVT
dXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmNwcCBiL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBv
cnQvRnJhbWVMb2FkZXJDbGllbnRHdGsuY3BwCmluZGV4IDVlYTE2MDEuLjVlNmU3ZDIgMTAwNjQ0
Ci0tLSBhL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRHdGsuY3Bw
CisrKyBiL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRHdGsuY3Bw
CkBAIC04MjAsMTMgKzgyMCwxOCBAQCB2b2lkIEZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERp
ZEZhaWxMb2FkKGNvbnN0IFJlc291cmNlRXJyb3ImKQogICAgIGdfc2lnbmFsX2VtaXRfYnlfbmFt
ZShtX2ZyYW1lLCAibG9hZC1kb25lIiwgZmFsc2UpOwogfQogCi12b2lkIEZyYW1lTG9hZGVyQ2xp
ZW50Ojpkb3dubG9hZChSZXNvdXJjZUhhbmRsZSogaGFuZGxlLCBjb25zdCBSZXNvdXJjZVJlcXVl
c3QmIHJlcXVlc3QsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFJlc291cmNlUmVzcG9u
c2UmKQordm9pZCBGcmFtZUxvYWRlckNsaWVudDo6ZG93bmxvYWQoUmVzb3VyY2VIYW5kbGUqIGhh
bmRsZSwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBSZXNvdXJjZVJlcXVl
c3QmLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkKIHsKICAgICAvLyBGSVhNRTog
V2UgY291bGQgcmV1c2UgdGhlIHNhbWUgaGFuZGxlIGhlcmUsIGJ1dCB3aGVuIEkgdHJpZWQKICAg
ICAvLyBpbXBsZW1lbnRpbmcgdGhhdCB0aGUgbWFpbiBsb2FkIHdvdWxkIGZhaWwgYW5kIHN0b3As
IHNvIEkgaGF2ZQogICAgIC8vIHNpbXBsaWZpZWQgdGhpcyBjYXNlIGZvciBub3cuCiAgICAgaGFu
ZGxlLT5jYW5jZWwoKTsKLSAgICBzdGFydERvd25sb2FkKHJlcXVlc3QpOworCisgICAgV2ViS2l0
TmV0d29ya1JlcXVlc3QqIG5ldHdvcmtSZXF1ZXN0ID0gd2Via2l0X25ldHdvcmtfcmVxdWVzdF9u
ZXcocmVxdWVzdC51cmwoKS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKKyAgICBXZWJLaXRXZWJW
aWV3KiB2aWV3ID0gZ2V0Vmlld0Zyb21GcmFtZShtX2ZyYW1lKTsKKworICAgIHdlYmtpdF93ZWJf
dmlld19yZXF1ZXN0X2Rvd25sb2FkKHZpZXcsIG5ldHdvcmtSZXF1ZXN0LCByZXNwb25zZSk7Cisg
ICAgZ19vYmplY3RfdW5yZWYobmV0d29ya1JlcXVlc3QpOwogfQogCiBSZXNvdXJjZUVycm9yIEZy
YW1lTG9hZGVyQ2xpZW50OjpjYW5jZWxsZWRFcnJvcihjb25zdCBSZXNvdXJjZVJlcXVlc3QmKQpk
aWZmIC0tZ2l0IGEvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0ZG93bmxvYWQuY3BwIGIvV2ViS2l0
L2d0ay93ZWJraXQvd2Via2l0ZG93bmxvYWQuY3BwCmluZGV4IDdlMzk5NjkuLmE4MmI5MTAgMTAw
NjQ0Ci0tLSBhL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdGRvd25sb2FkLmNwcAorKysgYi9XZWJL
aXQvZ3RrL3dlYmtpdC93ZWJraXRkb3dubG9hZC5jcHAKQEAgLTE5MCwxMiArMTkwLDYgQEAgc3Rh
dGljIHZvaWQgd2Via2l0X2Rvd25sb2FkX3NldF9wcm9wZXJ0eShHT2JqZWN0KiBvYmplY3QsIGd1
aW50IHByb3BfaWQsIGNvbnN0IEcKICAgICBzd2l0Y2gocHJvcF9pZCkgewogICAgIGNhc2UgUFJP
UF9ORVRXT1JLX1JFUVVFU1Q6CiAgICAgICAgIHByaXYtPm5ldHdvcmtSZXF1ZXN0ID0gV0VCS0lU
X05FVFdPUktfUkVRVUVTVChnX3ZhbHVlX2R1cF9vYmplY3QodmFsdWUpKTsKLSAgICAgICAgLy8g
VGhpcyBpcyBzYWZlIGFzIG5ldHdvcmstcmVxdWVzdCBpcyBhIGNvbnN0cnVjdCBvbmx5IHByb3Bl
cnR5IGFuZAotICAgICAgICAvLyBzdWdnZXN0ZWRGaWxlbmFtZSBpcyBpbml0aWFsbHkgbnVsbC4K
LSAgICAgICAgdXJsID0gS1VSTChLVVJMKCksIHdlYmtpdF9uZXR3b3JrX3JlcXVlc3RfZ2V0X3Vy
aShwcml2LT5uZXR3b3JrUmVxdWVzdCkpOwotICAgICAgICB1cmwuc2V0UXVlcnkoU3RyaW5nKCkp
OwotICAgICAgICB1cmwucmVtb3ZlUmVmKCk7Ci0gICAgICAgIHByaXYtPnN1Z2dlc3RlZEZpbGVu
YW1lID0gZ19zdHJkdXAoZGVjb2RlVVJMRXNjYXBlU2VxdWVuY2VzKHVybC5sYXN0UGF0aENvbXBv
bmVudCgpKS51dGY4KCkuZGF0YSgpKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBQUk9QX0RF
U1RJTkFUSU9OX1VSSToKICAgICAgICAgd2Via2l0X2Rvd25sb2FkX3NldF9kZXN0aW5hdGlvbl91
cmkoZG93bmxvYWQsIGdfdmFsdWVfZ2V0X3N0cmluZyh2YWx1ZSkpOwpAQCAtNTMzLDkgKzUyNywy
NSBAQCBjb25zdCBnY2hhciogd2Via2l0X2Rvd25sb2FkX2dldF9zdWdnZXN0ZWRfZmlsZW5hbWUo
V2ViS2l0RG93bmxvYWQqIGRvd25sb2FkKQogICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJ
VF9JU19ET1dOTE9BRChkb3dubG9hZCksIE5VTEwpOwogCiAgICAgV2ViS2l0RG93bmxvYWRQcml2
YXRlKiBwcml2ID0gZG93bmxvYWQtPnByaXY7CisgICAgaWYgKHByaXYtPnN1Z2dlc3RlZEZpbGVu
YW1lKQorICAgICAgICByZXR1cm4gcHJpdi0+c3VnZ2VzdGVkRmlsZW5hbWU7CisKKyAgICB1cmwg
PSBLVVJMKEtVUkwoKSwgd2Via2l0X25ldHdvcmtfcmVxdWVzdF9nZXRfdXJpKHByaXYtPm5ldHdv
cmtSZXF1ZXN0KSk7CisgICAgdXJsLnNldFF1ZXJ5KFN0cmluZygpKTsKKyAgICB1cmwucmVtb3Zl
UmVmKCk7CisgICAgcHJpdi0+c3VnZ2VzdGVkRmlsZW5hbWUgPSBnX3N0cmR1cChkZWNvZGVVUkxF
c2NhcGVTZXF1ZW5jZXModXJsLmxhc3RQYXRoQ29tcG9uZW50KCkpLnV0ZjgoKS5kYXRhKCkpOwog
ICAgIHJldHVybiBwcml2LT5zdWdnZXN0ZWRGaWxlbmFtZTsKIH0KIAorLy8gZm9yIGludGVybmFs
IHVzZSBvbmx5Cit2b2lkIHdlYmtpdF9kb3dubG9hZF9zZXRfc3VnZ2VzdGVkX2ZpbGVuYW1lKFdl
YktpdERvd25sb2FkKiBkb3dubG9hZCwgY29uc3QgZ2NoYXIqIHN1Z2dlc3RlZEZpbGVuYW1lKQor
eworICAgIFdlYktpdERvd25sb2FkUHJpdmF0ZSogcHJpdiA9IGRvd25sb2FkLT5wcml2OworICAg
IGdfZnJlZShwcml2LT5zdWdnZXN0ZWRGaWxlbmFtZSk7CisgICAgcHJpdi0+c3VnZ2VzdGVkRmls
ZW5hbWUgPSBnX3N0cmR1cChzdWdnZXN0ZWRGaWxlbmFtZSk7Cit9CisKKwogLyoqCiAgKiB3ZWJr
aXRfZG93bmxvYWRfZ2V0X2Rlc3RpbmF0aW9uX3VyaToKICAqIEBkb3dubG9hZDogdGhlICNXZWJL
aXREb3dubG9hZApkaWZmIC0tZ2l0IGEvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0cHJpdmF0ZS5o
IGIvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0cHJpdmF0ZS5oCmluZGV4IGQ4MjFjNWUuLjQyOWI0
ODkgMTAwNjQ0Ci0tLSBhL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHByaXZhdGUuaAorKysgYi9X
ZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRwcml2YXRlLmgKQEAgLTE2MCw3ICsxNjAsMTAgQEAgZXh0
ZXJuICJDIiB7CiAgICAgd2Via2l0X3dlYl92aWV3X25vdGlmeV9yZWFkeSAoV2ViS2l0V2ViVmll
dyogd2ViX3ZpZXcpOwogCiAgICAgdm9pZAotICAgIHdlYmtpdF93ZWJfdmlld19yZXF1ZXN0X2Rv
d25sb2FkKFdlYktpdFdlYlZpZXcqIHdlYl92aWV3LCBXZWJLaXROZXR3b3JrUmVxdWVzdCogcmVx
dWVzdCk7CisgICAgd2Via2l0X3dlYl92aWV3X3JlcXVlc3RfZG93bmxvYWQoV2ViS2l0V2ViVmll
dyogd2ViX3ZpZXcsIFdlYktpdE5ldHdvcmtSZXF1ZXN0KiByZXF1ZXN0LCBjb25zdCBXZWJDb3Jl
OjpSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSA9IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2Uo
KSk7CisKKyAgICB2b2lkCisgICAgd2Via2l0X2Rvd25sb2FkX3NldF9zdWdnZXN0ZWRfZmlsZW5h
bWUoV2ViS2l0RG93bmxvYWQqIGRvd25sb2FkLCBjb25zdCBnY2hhciogc3VnZ2VzdGVkRmlsZW5h
bWUpOwogCiAgICAgV2ViS2l0V2ViUG9saWN5RGVjaXNpb24qCiAgICAgd2Via2l0X3dlYl9wb2xp
Y3lfZGVjaXNpb25fbmV3IChXZWJLaXRXZWJGcmFtZSosIFdlYkNvcmU6OkZyYW1lUG9saWN5RnVu
Y3Rpb24pOwpkaWZmIC0tZ2l0IGEvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2Vidmlldy5jcHAg
Yi9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcAppbmRleCAyZjg3N2QzLi42NTRl
NzE3IDEwMDY0NAotLS0gYS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcAorKysg
Yi9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcApAQCAtMjA0OCwxMyArMjA0OCwx
OCBAQCB2b2lkIHdlYmtpdF93ZWJfdmlld19ub3RpZnlfcmVhZHkoV2ViS2l0V2ViVmlldyogd2Vi
VmlldykKICAgICBnX3NpZ25hbF9lbWl0KHdlYlZpZXcsIHdlYmtpdF93ZWJfdmlld19zaWduYWxz
W1dFQl9WSUVXX1JFQURZXSwgMCwgJmlzSGFuZGxlZCk7CiB9CiAKLXZvaWQgd2Via2l0X3dlYl92
aWV3X3JlcXVlc3RfZG93bmxvYWQoV2ViS2l0V2ViVmlldyogd2ViVmlldywgV2ViS2l0TmV0d29y
a1JlcXVlc3QqIHJlcXVlc3QpCit2b2lkIHdlYmtpdF93ZWJfdmlld19yZXF1ZXN0X2Rvd25sb2Fk
KFdlYktpdFdlYlZpZXcqIHdlYlZpZXcsIFdlYktpdE5ldHdvcmtSZXF1ZXN0KiByZXF1ZXN0LCBj
b25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkKIHsKICAgICBnX3JldHVybl9pZl9mYWls
KFdFQktJVF9JU19XRUJfVklFVyh3ZWJWaWV3KSk7CiAKICAgICBXZWJLaXREb3dubG9hZCogZG93
bmxvYWQgPSB3ZWJraXRfZG93bmxvYWRfbmV3KHJlcXVlc3QpOwogICAgIGdfb2JqZWN0X3VucmVm
KHJlcXVlc3QpOwogCisgICAgaWYgKCFyZXNwb25zZS5pc051bGwoKSAmJiAhcmVzcG9uc2Uuc3Vn
Z2VzdGVkRmlsZW5hbWUoKS5pc0VtcHR5KCkpIHsKKyAgICAgICAgZ19kZWJ1Zygic3VnZ2VzdGVk
IGZpbGVuYW1lIGV4aXN0cyEiKTsKKyAgICAgICAgd2Via2l0X2Rvd25sb2FkX3NldF9zdWdnZXN0
ZWRfZmlsZW5hbWUoZG93bmxvYWQsIHJlc3BvbnNlLnN1Z2dlc3RlZEZpbGVuYW1lKCkudXRmOCgp
LmRhdGEoKSk7CisgICAgfQorCiAgICAgZ2Jvb2xlYW4gaGFuZGxlZDsKICAgICBnX3NpZ25hbF9l
bWl0KHdlYlZpZXcsIHdlYmtpdF93ZWJfdmlld19zaWduYWxzW0RPV05MT0FEX1JFUVVFU1RFRF0s
IDAsIGRvd25sb2FkLCAmaGFuZGxlZCk7CiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>29257</attachid>
            <date>2009-04-04 12:14:15 -0700</date>
            <delta_ts>2009-05-06 07:23:15 -0700</delta_ts>
            <desc>When a download is requested by an ongoing request, use the already</desc>
            <filename>When-a-download-is-requested-by-an-ongoing-request-use-the-already.patch</filename>
            <type>text/plain</type>
            <size>6488</size>
            <attacher name="Gustavo Noronha (kov)">gustavo</attacher>
            
              <data encoding="base64">NDYwN2U3NjkwNDEwNDgwZDA1MjQ4ZTU5OWU4YmYzODc3NmE0NDIyZApkaWZmIC0tZ2l0IGEvV2Vi
S2l0L2d0ay9DaGFuZ2VMb2cgYi9XZWJLaXQvZ3RrL0NoYW5nZUxvZwppbmRleCBhMGVjNmI2Li5h
ZTIxMjIwIDEwMDY0NAotLS0gYS9XZWJLaXQvZ3RrL0NoYW5nZUxvZworKysgYi9XZWJLaXQvZ3Rr
L0NoYW5nZUxvZwpAQCAtNSw2ICs1LDI2IEBACiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yNDc4NgogICAgICAgICBXZWJLaXREb3dubG9hZCBzb21ldGlt
ZXMgc3VnZ2VzdHMgcGVjdWxpYXIgZmlsZW5hbWVzCiAKKyAgICAgICAgV2hlbiBhIGRvd25sb2Fk
IGlzIHJlcXVlc3RlZCBieSBhbiBvbmdvaW5nIHJlcXVlc3QsIHVzZSB0aGUgYWxyZWFkeQorICAg
ICAgICBwcm92aWRlZCByZXNwb25zZSB0byBzZXQgdGhlIHN1Z2dlc3RlZCBmaWxlbmFtZSBmb3Ig
dGhlIFdlYktpdERvd25sb2FkCisgICAgICAgIG9iamVjdCwgaWYgYXZhaWxhYmxlLgorCisgICAg
ICAgICogV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRHdGsuY3BwOgorICAgICAgICAo
V2ViS2l0OjpGcmFtZUxvYWRlckNsaWVudDo6ZG93bmxvYWQpOgorICAgICAgICAqIHdlYmtpdC93
ZWJraXRkb3dubG9hZC5jcHA6CisgICAgICAgIChfV2ViS2l0RG93bmxvYWRQcml2YXRlOjp3ZWJr
aXRfZG93bmxvYWRfc2V0X3Byb3BlcnR5KToKKyAgICAgICAgKF9XZWJLaXREb3dubG9hZFByaXZh
dGU6OndlYmtpdF9kb3dubG9hZF9nZXRfc3VnZ2VzdGVkX2ZpbGVuYW1lKToKKyAgICAgICAgKF9X
ZWJLaXREb3dubG9hZFByaXZhdGU6OndlYmtpdF9kb3dubG9hZF9zZXRfc3VnZ2VzdGVkX2ZpbGVu
YW1lKToKKyAgICAgICAgKiB3ZWJraXQvd2Via2l0cHJpdmF0ZS5oOgorICAgICAgICAqIHdlYmtp
dC93ZWJraXR3ZWJ2aWV3LmNwcDoKKworMjAwOS0wNC0wNCAgR3VzdGF2byBOb3JvbmhhIFNpbHZh
ICA8Z3VzdGF2by5ub3JvbmhhQGNvbGxhYm9yYS5jby51az4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjQ3ODYKKyAgICAgICAgV2ViS2l0RG93bmxvYWQgc29tZXRpbWVzIHN1Z2dl
c3RzIHBlY3VsaWFyIGZpbGVuYW1lcworCiAgICAgICAgIFJlZmFjdG9yIHRoZSBlbWlzc2lvbiBv
ZiB0aGUgZG93bmxvYWQtcmVxdWVzdGVkIHNpZ25hbCBzbyB0aGF0IHdlCiAgICAgICAgIGhhdmUg
bGVzcyBjb2RlIGR1cGxpY2F0aW9uLgogCmRpZmYgLS1naXQgYS9XZWJLaXQvZ3RrL1dlYkNvcmVT
dXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmNwcCBiL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBv
cnQvRnJhbWVMb2FkZXJDbGllbnRHdGsuY3BwCmluZGV4IDVlYTE2MDEuLjVlNmU3ZDIgMTAwNjQ0
Ci0tLSBhL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRHdGsuY3Bw
CisrKyBiL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRHdGsuY3Bw
CkBAIC04MjAsMTMgKzgyMCwxOCBAQCB2b2lkIEZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERp
ZEZhaWxMb2FkKGNvbnN0IFJlc291cmNlRXJyb3ImKQogICAgIGdfc2lnbmFsX2VtaXRfYnlfbmFt
ZShtX2ZyYW1lLCAibG9hZC1kb25lIiwgZmFsc2UpOwogfQogCi12b2lkIEZyYW1lTG9hZGVyQ2xp
ZW50Ojpkb3dubG9hZChSZXNvdXJjZUhhbmRsZSogaGFuZGxlLCBjb25zdCBSZXNvdXJjZVJlcXVl
c3QmIHJlcXVlc3QsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFJlc291cmNlUmVzcG9u
c2UmKQordm9pZCBGcmFtZUxvYWRlckNsaWVudDo6ZG93bmxvYWQoUmVzb3VyY2VIYW5kbGUqIGhh
bmRsZSwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBSZXNvdXJjZVJlcXVl
c3QmLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkKIHsKICAgICAvLyBGSVhNRTog
V2UgY291bGQgcmV1c2UgdGhlIHNhbWUgaGFuZGxlIGhlcmUsIGJ1dCB3aGVuIEkgdHJpZWQKICAg
ICAvLyBpbXBsZW1lbnRpbmcgdGhhdCB0aGUgbWFpbiBsb2FkIHdvdWxkIGZhaWwgYW5kIHN0b3As
IHNvIEkgaGF2ZQogICAgIC8vIHNpbXBsaWZpZWQgdGhpcyBjYXNlIGZvciBub3cuCiAgICAgaGFu
ZGxlLT5jYW5jZWwoKTsKLSAgICBzdGFydERvd25sb2FkKHJlcXVlc3QpOworCisgICAgV2ViS2l0
TmV0d29ya1JlcXVlc3QqIG5ldHdvcmtSZXF1ZXN0ID0gd2Via2l0X25ldHdvcmtfcmVxdWVzdF9u
ZXcocmVxdWVzdC51cmwoKS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKKyAgICBXZWJLaXRXZWJW
aWV3KiB2aWV3ID0gZ2V0Vmlld0Zyb21GcmFtZShtX2ZyYW1lKTsKKworICAgIHdlYmtpdF93ZWJf
dmlld19yZXF1ZXN0X2Rvd25sb2FkKHZpZXcsIG5ldHdvcmtSZXF1ZXN0LCByZXNwb25zZSk7Cisg
ICAgZ19vYmplY3RfdW5yZWYobmV0d29ya1JlcXVlc3QpOwogfQogCiBSZXNvdXJjZUVycm9yIEZy
YW1lTG9hZGVyQ2xpZW50OjpjYW5jZWxsZWRFcnJvcihjb25zdCBSZXNvdXJjZVJlcXVlc3QmKQpk
aWZmIC0tZ2l0IGEvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0ZG93bmxvYWQuY3BwIGIvV2ViS2l0
L2d0ay93ZWJraXQvd2Via2l0ZG93bmxvYWQuY3BwCmluZGV4IDdlMzk5NjkuLjI0OWFmMmMgMTAw
NjQ0Ci0tLSBhL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdGRvd25sb2FkLmNwcAorKysgYi9XZWJL
aXQvZ3RrL3dlYmtpdC93ZWJraXRkb3dubG9hZC5jcHAKQEAgLTE4NSwxNyArMTg1LDEwIEBAIHN0
YXRpYyB2b2lkIHdlYmtpdF9kb3dubG9hZF9zZXRfcHJvcGVydHkoR09iamVjdCogb2JqZWN0LCBn
dWludCBwcm9wX2lkLCBjb25zdCBHCiB7CiAgICAgV2ViS2l0RG93bmxvYWQqIGRvd25sb2FkID0g
V0VCS0lUX0RPV05MT0FEKG9iamVjdCk7CiAgICAgV2ViS2l0RG93bmxvYWRQcml2YXRlKiBwcml2
ID0gZG93bmxvYWQtPnByaXY7Ci0gICAgS1VSTCB1cmw7CiAKICAgICBzd2l0Y2gocHJvcF9pZCkg
ewogICAgIGNhc2UgUFJPUF9ORVRXT1JLX1JFUVVFU1Q6CiAgICAgICAgIHByaXYtPm5ldHdvcmtS
ZXF1ZXN0ID0gV0VCS0lUX05FVFdPUktfUkVRVUVTVChnX3ZhbHVlX2R1cF9vYmplY3QodmFsdWUp
KTsKLSAgICAgICAgLy8gVGhpcyBpcyBzYWZlIGFzIG5ldHdvcmstcmVxdWVzdCBpcyBhIGNvbnN0
cnVjdCBvbmx5IHByb3BlcnR5IGFuZAotICAgICAgICAvLyBzdWdnZXN0ZWRGaWxlbmFtZSBpcyBp
bml0aWFsbHkgbnVsbC4KLSAgICAgICAgdXJsID0gS1VSTChLVVJMKCksIHdlYmtpdF9uZXR3b3Jr
X3JlcXVlc3RfZ2V0X3VyaShwcml2LT5uZXR3b3JrUmVxdWVzdCkpOwotICAgICAgICB1cmwuc2V0
UXVlcnkoU3RyaW5nKCkpOwotICAgICAgICB1cmwucmVtb3ZlUmVmKCk7Ci0gICAgICAgIHByaXYt
PnN1Z2dlc3RlZEZpbGVuYW1lID0gZ19zdHJkdXAoZGVjb2RlVVJMRXNjYXBlU2VxdWVuY2VzKHVy
bC5sYXN0UGF0aENvbXBvbmVudCgpKS51dGY4KCkuZGF0YSgpKTsKICAgICAgICAgYnJlYWs7CiAg
ICAgY2FzZSBQUk9QX0RFU1RJTkFUSU9OX1VSSToKICAgICAgICAgd2Via2l0X2Rvd25sb2FkX3Nl
dF9kZXN0aW5hdGlvbl91cmkoZG93bmxvYWQsIGdfdmFsdWVfZ2V0X3N0cmluZyh2YWx1ZSkpOwpA
QCAtNTMzLDkgKzUyNiwyNSBAQCBjb25zdCBnY2hhciogd2Via2l0X2Rvd25sb2FkX2dldF9zdWdn
ZXN0ZWRfZmlsZW5hbWUoV2ViS2l0RG93bmxvYWQqIGRvd25sb2FkKQogICAgIGdfcmV0dXJuX3Zh
bF9pZl9mYWlsKFdFQktJVF9JU19ET1dOTE9BRChkb3dubG9hZCksIE5VTEwpOwogCiAgICAgV2Vi
S2l0RG93bmxvYWRQcml2YXRlKiBwcml2ID0gZG93bmxvYWQtPnByaXY7CisgICAgaWYgKHByaXYt
PnN1Z2dlc3RlZEZpbGVuYW1lKQorICAgICAgICByZXR1cm4gcHJpdi0+c3VnZ2VzdGVkRmlsZW5h
bWU7CisKKyAgICBLVVJMIHVybCA9IEtVUkwoS1VSTCgpLCB3ZWJraXRfbmV0d29ya19yZXF1ZXN0
X2dldF91cmkocHJpdi0+bmV0d29ya1JlcXVlc3QpKTsKKyAgICB1cmwuc2V0UXVlcnkoU3RyaW5n
KCkpOworICAgIHVybC5yZW1vdmVSZWYoKTsKKyAgICBwcml2LT5zdWdnZXN0ZWRGaWxlbmFtZSA9
IGdfc3RyZHVwKGRlY29kZVVSTEVzY2FwZVNlcXVlbmNlcyh1cmwubGFzdFBhdGhDb21wb25lbnQo
KSkudXRmOCgpLmRhdGEoKSk7CiAgICAgcmV0dXJuIHByaXYtPnN1Z2dlc3RlZEZpbGVuYW1lOwog
fQogCisvLyBmb3IgaW50ZXJuYWwgdXNlIG9ubHkKK3ZvaWQgd2Via2l0X2Rvd25sb2FkX3NldF9z
dWdnZXN0ZWRfZmlsZW5hbWUoV2ViS2l0RG93bmxvYWQqIGRvd25sb2FkLCBjb25zdCBnY2hhciog
c3VnZ2VzdGVkRmlsZW5hbWUpCit7CisgICAgV2ViS2l0RG93bmxvYWRQcml2YXRlKiBwcml2ID0g
ZG93bmxvYWQtPnByaXY7CisgICAgZ19mcmVlKHByaXYtPnN1Z2dlc3RlZEZpbGVuYW1lKTsKKyAg
ICBwcml2LT5zdWdnZXN0ZWRGaWxlbmFtZSA9IGdfc3RyZHVwKHN1Z2dlc3RlZEZpbGVuYW1lKTsK
K30KKworCiAvKioKICAqIHdlYmtpdF9kb3dubG9hZF9nZXRfZGVzdGluYXRpb25fdXJpOgogICog
QGRvd25sb2FkOiB0aGUgI1dlYktpdERvd25sb2FkCmRpZmYgLS1naXQgYS9XZWJLaXQvZ3RrL3dl
YmtpdC93ZWJraXRwcml2YXRlLmggYi9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRwcml2YXRlLmgK
aW5kZXggZDgyMWM1ZS4uNDI5YjQ4OSAxMDA2NDQKLS0tIGEvV2ViS2l0L2d0ay93ZWJraXQvd2Vi
a2l0cHJpdmF0ZS5oCisrKyBiL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHByaXZhdGUuaApAQCAt
MTYwLDcgKzE2MCwxMCBAQCBleHRlcm4gIkMiIHsKICAgICB3ZWJraXRfd2ViX3ZpZXdfbm90aWZ5
X3JlYWR5IChXZWJLaXRXZWJWaWV3KiB3ZWJfdmlldyk7CiAKICAgICB2b2lkCi0gICAgd2Via2l0
X3dlYl92aWV3X3JlcXVlc3RfZG93bmxvYWQoV2ViS2l0V2ViVmlldyogd2ViX3ZpZXcsIFdlYktp
dE5ldHdvcmtSZXF1ZXN0KiByZXF1ZXN0KTsKKyAgICB3ZWJraXRfd2ViX3ZpZXdfcmVxdWVzdF9k
b3dubG9hZChXZWJLaXRXZWJWaWV3KiB3ZWJfdmlldywgV2ViS2l0TmV0d29ya1JlcXVlc3QqIHJl
cXVlc3QsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlID0gV2ViQ29y
ZTo6UmVzb3VyY2VSZXNwb25zZSgpKTsKKworICAgIHZvaWQKKyAgICB3ZWJraXRfZG93bmxvYWRf
c2V0X3N1Z2dlc3RlZF9maWxlbmFtZShXZWJLaXREb3dubG9hZCogZG93bmxvYWQsIGNvbnN0IGdj
aGFyKiBzdWdnZXN0ZWRGaWxlbmFtZSk7CiAKICAgICBXZWJLaXRXZWJQb2xpY3lEZWNpc2lvbioK
ICAgICB3ZWJraXRfd2ViX3BvbGljeV9kZWNpc2lvbl9uZXcgKFdlYktpdFdlYkZyYW1lKiwgV2Vi
Q29yZTo6RnJhbWVQb2xpY3lGdW5jdGlvbik7CmRpZmYgLS1naXQgYS9XZWJLaXQvZ3RrL3dlYmtp
dC93ZWJraXR3ZWJ2aWV3LmNwcCBiL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYnZpZXcuY3Bw
CmluZGV4IDJmODc3ZDMuLjY1NGU3MTcgMTAwNjQ0Ci0tLSBhL1dlYktpdC9ndGsvd2Via2l0L3dl
YmtpdHdlYnZpZXcuY3BwCisrKyBiL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYnZpZXcuY3Bw
CkBAIC0yMDQ4LDEzICsyMDQ4LDE4IEBAIHZvaWQgd2Via2l0X3dlYl92aWV3X25vdGlmeV9yZWFk
eShXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3KQogICAgIGdfc2lnbmFsX2VtaXQod2ViVmlldywgd2Vi
a2l0X3dlYl92aWV3X3NpZ25hbHNbV0VCX1ZJRVdfUkVBRFldLCAwLCAmaXNIYW5kbGVkKTsKIH0K
IAotdm9pZCB3ZWJraXRfd2ViX3ZpZXdfcmVxdWVzdF9kb3dubG9hZChXZWJLaXRXZWJWaWV3KiB3
ZWJWaWV3LCBXZWJLaXROZXR3b3JrUmVxdWVzdCogcmVxdWVzdCkKK3ZvaWQgd2Via2l0X3dlYl92
aWV3X3JlcXVlc3RfZG93bmxvYWQoV2ViS2l0V2ViVmlldyogd2ViVmlldywgV2ViS2l0TmV0d29y
a1JlcXVlc3QqIHJlcXVlc3QsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlKQogewog
ICAgIGdfcmV0dXJuX2lmX2ZhaWwoV0VCS0lUX0lTX1dFQl9WSUVXKHdlYlZpZXcpKTsKIAogICAg
IFdlYktpdERvd25sb2FkKiBkb3dubG9hZCA9IHdlYmtpdF9kb3dubG9hZF9uZXcocmVxdWVzdCk7
CiAgICAgZ19vYmplY3RfdW5yZWYocmVxdWVzdCk7CiAKKyAgICBpZiAoIXJlc3BvbnNlLmlzTnVs
bCgpICYmICFyZXNwb25zZS5zdWdnZXN0ZWRGaWxlbmFtZSgpLmlzRW1wdHkoKSkgeworICAgICAg
ICBnX2RlYnVnKCJzdWdnZXN0ZWQgZmlsZW5hbWUgZXhpc3RzISIpOworICAgICAgICB3ZWJraXRf
ZG93bmxvYWRfc2V0X3N1Z2dlc3RlZF9maWxlbmFtZShkb3dubG9hZCwgcmVzcG9uc2Uuc3VnZ2Vz
dGVkRmlsZW5hbWUoKS51dGY4KCkuZGF0YSgpKTsKKyAgICB9CisKICAgICBnYm9vbGVhbiBoYW5k
bGVkOwogICAgIGdfc2lnbmFsX2VtaXQod2ViVmlldywgd2Via2l0X3dlYl92aWV3X3NpZ25hbHNb
RE9XTkxPQURfUkVRVUVTVEVEXSwgMCwgZG93bmxvYWQsICZoYW5kbGVkKTsKIAo=
</data>
<flag name="review"
          id="14523"
          type_id="1"
          status="+"
          setter="xan.lopez"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>29617</attachid>
            <date>2009-04-20 10:59:11 -0700</date>
            <delta_ts>2009-04-25 07:06:33 -0700</delta_ts>
            <desc>refactor download-requested signal emission to avoid code duplication</desc>
            <filename>0001-Refactor-the-emission-of-the-download-requested-sign.patch</filename>
            <type>text/plain</type>
            <size>5638</size>
            <attacher name="Gustavo Noronha (kov)">gustavo</attacher>
            
              <data encoding="base64">RnJvbSAyMzIxY2Q1N2UyMThmZGY2Yzc1N2MwMzVlZTRiOTA1ZjdhMWRiNzkwIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBHdXN0YXZvIE5vcm9uaGEgU2lsdmEgPGtvdkBrb3YuZXRpLmJy
PgpEYXRlOiBTYXQsIDQgQXByIDIwMDkgMTU6MDQ6MTcgLTAzMDAKU3ViamVjdDogW1BBVENIXSBS
ZWZhY3RvciB0aGUgZW1pc3Npb24gb2YgdGhlIGRvd25sb2FkLXJlcXVlc3RlZCBzaWduYWwgc28g
dGhhdCB3ZSBoYXZlCiBsZXNzIGNvZGUgZHVwbGljYXRpb24uCgotLS0KIFdlYktpdC9ndGsvQ2hh
bmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAxNyArKysrKysrKysrKysr
KysrKwogV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9Db250ZXh0TWVudUNsaWVudEd0ay5jcHAg
fCAgIDE2ICsrKy0tLS0tLS0tLS0tLS0KIFdlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRnJhbWVM
b2FkZXJDbGllbnRHdGsuY3BwIHwgICAxNCArKy0tLS0tLS0tLS0tLQogV2ViS2l0L2d0ay93ZWJr
aXQvd2Via2l0cHJpdmF0ZS5oICAgICAgICAgICAgICAgICAgfCAgICA0ICsrKysKIFdlYktpdC9n
dGsvd2Via2l0L3dlYmtpdHdlYnZpZXcuY3BwICAgICAgICAgICAgICAgIHwgICAxNyArKysrKysr
KysrKysrKysrKwogNSBmaWxlcyBjaGFuZ2VkLCA0MyBpbnNlcnRpb25zKCspLCAyNSBkZWxldGlv
bnMoLSkKCmRpZmYgLS1naXQgYS9XZWJLaXQvZ3RrL0NoYW5nZUxvZyBiL1dlYktpdC9ndGsvQ2hh
bmdlTG9nCmluZGV4IDhhZDg4YWQuLjcwMzFhYmUgMTAwNjQ0Ci0tLSBhL1dlYktpdC9ndGsvQ2hh
bmdlTG9nCisrKyBiL1dlYktpdC9ndGsvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMDkt
MDQtMDYgIEd1c3Rhdm8gTm9yb25oYSBTaWx2YSAgPGd1c3Rhdm8ubm9yb25oYUBjb2xsYWJvcmEu
Y28udWs+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI0Nzg2CisgICAgICAgIFdl
YktpdERvd25sb2FkIHNvbWV0aW1lcyBzdWdnZXN0cyBwZWN1bGlhciBmaWxlbmFtZXMKKworICAg
ICAgICBSZWZhY3RvciB0aGUgZW1pc3Npb24gb2YgdGhlIGRvd25sb2FkLXJlcXVlc3RlZCBzaWdu
YWwgc28gdGhhdCB3ZQorICAgICAgICBoYXZlIGxlc3MgY29kZSBkdXBsaWNhdGlvbi4KKworICAg
ICAgICAqIFdlYkNvcmVTdXBwb3J0L0NvbnRleHRNZW51Q2xpZW50R3RrLmNwcDoKKyAgICAgICAg
KFdlYktpdDo6Q29udGV4dE1lbnVDbGllbnQ6OmRvd25sb2FkVVJMKToKKyAgICAgICAgKiBXZWJD
b3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEd0ay5jcHA6CisgICAgICAgIChXZWJLaXQ6OkZy
YW1lTG9hZGVyQ2xpZW50OjpzdGFydERvd25sb2FkKToKKyAgICAgICAgKiB3ZWJraXQvd2Via2l0
cHJpdmF0ZS5oOgorICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcDoKKwogMjAwOS0w
NC0yMCAgR3VzdGF2byBOb3JvbmhhIFNpbHZhICA8Z3VzdGF2by5ub3JvbmhhQGNvbGxhYm9yYS5j
by51az4KIAogICAgICAgICBSZXZpZXdlZCBieSBYYW4gTG9wZXouCmRpZmYgLS1naXQgYS9XZWJL
aXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0NvbnRleHRNZW51Q2xpZW50R3RrLmNwcCBiL1dlYktpdC9n
dGsvV2ViQ29yZVN1cHBvcnQvQ29udGV4dE1lbnVDbGllbnRHdGsuY3BwCmluZGV4IDExYmY2M2Iu
LjUzNjI0Y2YgMTAwNjQ0Ci0tLSBhL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvQ29udGV4dE1l
bnVDbGllbnRHdGsuY3BwCisrKyBiL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvQ29udGV4dE1l
bnVDbGllbnRHdGsuY3BwCkBAIC0xNjUsMjAgKzE2NSwxMCBAQCB2b2lkIENvbnRleHRNZW51Q2xp
ZW50Ojpjb250ZXh0TWVudUl0ZW1TZWxlY3RlZChDb250ZXh0TWVudUl0ZW0qLCBjb25zdCBDb250
ZXh0TQogCiB2b2lkIENvbnRleHRNZW51Q2xpZW50Ojpkb3dubG9hZFVSTChjb25zdCBLVVJMJiB1
cmwpCiB7Ci0gICAgV2ViS2l0TmV0d29ya1JlcXVlc3QqIG5ldHdvcmtfcmVxdWVzdCA9IHdlYmtp
dF9uZXR3b3JrX3JlcXVlc3RfbmV3KHVybC5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKLSAgICBX
ZWJLaXREb3dubG9hZCogZG93bmxvYWQgPSB3ZWJraXRfZG93bmxvYWRfbmV3KG5ldHdvcmtfcmVx
dWVzdCk7Ci0gICAgZ19vYmplY3RfdW5yZWYobmV0d29ya19yZXF1ZXN0KTsKKyAgICBXZWJLaXRO
ZXR3b3JrUmVxdWVzdCogbmV0d29ya1JlcXVlc3QgPSB3ZWJraXRfbmV0d29ya19yZXF1ZXN0X25l
dyh1cmwuc3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7CiAKLSAgICBnYm9vbGVhbiBoYW5kbGVkOwot
ICAgIGdfc2lnbmFsX2VtaXRfYnlfbmFtZShtX3dlYlZpZXcsICJkb3dubG9hZC1yZXF1ZXN0ZWQi
LCBkb3dubG9hZCwgJmhhbmRsZWQpOwotCi0gICAgaWYgKCFoYW5kbGVkKSB7Ci0gICAgICAgIHdl
YmtpdF9kb3dubG9hZF9jYW5jZWwoZG93bmxvYWQpOwotICAgICAgICBnX29iamVjdF91bnJlZihk
b3dubG9hZCk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICB3ZWJraXRfZG93bmxvYWRf
c3RhcnQoZG93bmxvYWQpOworICAgIHdlYmtpdF93ZWJfdmlld19yZXF1ZXN0X2Rvd25sb2FkKG1f
d2ViVmlldywgbmV0d29ya1JlcXVlc3QpOworICAgIGdfb2JqZWN0X3VucmVmKG5ldHdvcmtSZXF1
ZXN0KTsKIH0KIAogdm9pZCBDb250ZXh0TWVudUNsaWVudDo6Y29weUltYWdlVG9DbGlwYm9hcmQo
Y29uc3QgSGl0VGVzdFJlc3VsdCYpCmRpZmYgLS1naXQgYS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBw
b3J0L0ZyYW1lTG9hZGVyQ2xpZW50R3RrLmNwcCBiL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQv
RnJhbWVMb2FkZXJDbGllbnRHdGsuY3BwCmluZGV4IDhmYmJkYTUuLjgzMjIxMTYgMTAwNjQ0Ci0t
LSBhL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRHdGsuY3BwCisr
KyBiL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRHdGsuY3BwCkBA
IC05MjcsMjAgKzkyNywxMCBAQCB2b2lkIEZyYW1lTG9hZGVyQ2xpZW50OjpzZXRNYWluRG9jdW1l
bnRFcnJvcihEb2N1bWVudExvYWRlciosIGNvbnN0IFJlc291cmNlRXJybwogdm9pZCBGcmFtZUxv
YWRlckNsaWVudDo6c3RhcnREb3dubG9hZChjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3Qp
CiB7CiAgICAgV2ViS2l0TmV0d29ya1JlcXVlc3QqIG5ldHdvcmtSZXF1ZXN0ID0gd2Via2l0X25l
dHdvcmtfcmVxdWVzdF9uZXcocmVxdWVzdC51cmwoKS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsK
LSAgICBXZWJLaXREb3dubG9hZCogZG93bmxvYWQgPSB3ZWJraXRfZG93bmxvYWRfbmV3KG5ldHdv
cmtSZXF1ZXN0KTsKLSAgICBnX29iamVjdF91bnJlZihuZXR3b3JrUmVxdWVzdCk7Ci0KICAgICBX
ZWJLaXRXZWJWaWV3KiB2aWV3ID0gZ2V0Vmlld0Zyb21GcmFtZShtX2ZyYW1lKTsKLSAgICBnYm9v
bGVhbiBoYW5kbGVkOwotICAgIGdfc2lnbmFsX2VtaXRfYnlfbmFtZSh2aWV3LCAiZG93bmxvYWQt
cmVxdWVzdGVkIiwgZG93bmxvYWQsICZoYW5kbGVkKTsKLQotICAgIGlmICghaGFuZGxlZCkgewot
ICAgICAgICB3ZWJraXRfZG93bmxvYWRfY2FuY2VsKGRvd25sb2FkKTsKLSAgICAgICAgZ19vYmpl
Y3RfdW5yZWYoZG93bmxvYWQpOwotICAgICAgICByZXR1cm47Ci0gICAgfQogCi0gICAgd2Via2l0
X2Rvd25sb2FkX3N0YXJ0KGRvd25sb2FkKTsKKyAgICB3ZWJraXRfd2ViX3ZpZXdfcmVxdWVzdF9k
b3dubG9hZCh2aWV3LCBuZXR3b3JrUmVxdWVzdCk7CisgICAgZ19vYmplY3RfdW5yZWYobmV0d29y
a1JlcXVlc3QpOwogfQogCiB2b2lkIEZyYW1lTG9hZGVyQ2xpZW50Ojp1cGRhdGVHbG9iYWxIaXN0
b3J5KCkKZGlmZiAtLWdpdCBhL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHByaXZhdGUuaCBiL1dl
YktpdC9ndGsvd2Via2l0L3dlYmtpdHByaXZhdGUuaAppbmRleCA4MjMwYjg2Li5iM2QwZjAwIDEw
MDY0NAotLS0gYS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRwcml2YXRlLmgKKysrIGIvV2ViS2l0
L2d0ay93ZWJraXQvd2Via2l0cHJpdmF0ZS5oCkBAIC0yOSw2ICsyOSw3IEBACiAKICNpbmNsdWRl
IDx3ZWJraXQvd2Via2l0ZGVmaW5lcy5oPgogI2luY2x1ZGUgPHdlYmtpdC93ZWJraXRkb3dubG9h
ZC5oPgorI2luY2x1ZGUgPHdlYmtpdC93ZWJraXRuZXR3b3JrcmVxdWVzdC5oPgogI2luY2x1ZGUg
PHdlYmtpdC93ZWJraXR3ZWJ2aWV3Lmg+CiAjaW5jbHVkZSA8d2Via2l0L3dlYmtpdHdlYmZyYW1l
Lmg+CiAjaW5jbHVkZSA8d2Via2l0L3dlYmtpdHdlYnBvbGljeWRlY2lzaW9uLmg+CkBAIC0xNTgs
NiArMTU5LDkgQEAgZXh0ZXJuICJDIiB7CiAgICAgdm9pZAogICAgIHdlYmtpdF93ZWJfdmlld19u
b3RpZnlfcmVhZHkgKFdlYktpdFdlYlZpZXcqIHdlYl92aWV3KTsKIAorICAgIHZvaWQKKyAgICB3
ZWJraXRfd2ViX3ZpZXdfcmVxdWVzdF9kb3dubG9hZChXZWJLaXRXZWJWaWV3KiB3ZWJfdmlldywg
V2ViS2l0TmV0d29ya1JlcXVlc3QqIHJlcXVlc3QpOworCiAgICAgV2ViS2l0V2ViUG9saWN5RGVj
aXNpb24qCiAgICAgd2Via2l0X3dlYl9wb2xpY3lfZGVjaXNpb25fbmV3IChXZWJLaXRXZWJGcmFt
ZSosIFdlYkNvcmU6OkZyYW1lUG9saWN5RnVuY3Rpb24pOwogCmRpZmYgLS1naXQgYS9XZWJLaXQv
Z3RrL3dlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcCBiL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdl
YnZpZXcuY3BwCmluZGV4IDE1MjRlYmIuLjgyODkxY2IgMTAwNjQ0Ci0tLSBhL1dlYktpdC9ndGsv
d2Via2l0L3dlYmtpdHdlYnZpZXcuY3BwCisrKyBiL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdl
YnZpZXcuY3BwCkBAIC0yMDg0LDYgKzIwODQsMjMgQEAgdm9pZCB3ZWJraXRfd2ViX3ZpZXdfbm90
aWZ5X3JlYWR5KFdlYktpdFdlYlZpZXcqIHdlYlZpZXcpCiAgICAgZ19zaWduYWxfZW1pdCh3ZWJW
aWV3LCB3ZWJraXRfd2ViX3ZpZXdfc2lnbmFsc1tXRUJfVklFV19SRUFEWV0sIDAsICZpc0hhbmRs
ZWQpOwogfQogCit2b2lkIHdlYmtpdF93ZWJfdmlld19yZXF1ZXN0X2Rvd25sb2FkKFdlYktpdFdl
YlZpZXcqIHdlYlZpZXcsIFdlYktpdE5ldHdvcmtSZXF1ZXN0KiByZXF1ZXN0KQoreworICAgIGdf
cmV0dXJuX2lmX2ZhaWwoV0VCS0lUX0lTX1dFQl9WSUVXKHdlYlZpZXcpKTsKKworICAgIFdlYktp
dERvd25sb2FkKiBkb3dubG9hZCA9IHdlYmtpdF9kb3dubG9hZF9uZXcocmVxdWVzdCk7CisKKyAg
ICBnYm9vbGVhbiBoYW5kbGVkOworICAgIGdfc2lnbmFsX2VtaXQod2ViVmlldywgd2Via2l0X3dl
Yl92aWV3X3NpZ25hbHNbRE9XTkxPQURfUkVRVUVTVEVEXSwgMCwgZG93bmxvYWQsICZoYW5kbGVk
KTsKKworICAgIGlmICghaGFuZGxlZCkgeworICAgICAgICB3ZWJraXRfZG93bmxvYWRfY2FuY2Vs
KGRvd25sb2FkKTsKKyAgICAgICAgZ19vYmplY3RfdW5yZWYoZG93bmxvYWQpOworICAgICAgICBy
ZXR1cm47CisgICAgfQorCisgICAgd2Via2l0X2Rvd25sb2FkX3N0YXJ0KGRvd25sb2FkKTsKK30K
IAogdm9pZCB3ZWJraXRfd2ViX3ZpZXdfc2V0X3NldHRpbmdzKFdlYktpdFdlYlZpZXcqIHdlYlZp
ZXcsIFdlYktpdFdlYlNldHRpbmdzKiB3ZWJTZXR0aW5ncykKIHsKLS0gCjEuNi4yLjIKCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>