<?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>74618</bug_id>
          
          <creation_ts>2011-12-15 09:57:09 -0800</creation_ts>
          <short_desc>[Qt][WK2] QWebDownloadItems are leaking</short_desc>
          <delta_ts>2011-12-19 16:13:00 -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>WebKit Qt</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>Qt, QtTriaged</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Jesus Sanchez-Palencia">jesus</reporter>
          <assigned_to name="Jesus Sanchez-Palencia">jesus</assigned_to>
          <cc>hausmann</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>zoltan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>521990</commentid>
    <comment_count>0</comment_count>
    <who name="Jesus Sanchez-Palencia">jesus</who>
    <bug_when>2011-12-15 09:57:09 -0800</bug_when>
    <thetext>QWebDownloadItems are leaking when WebProcess raises a download failure before sending didReceiveResponse back to UIProcess.

This can happen when QtFileDownloader fails in determineFilename(), for instance.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>522035</commentid>
    <comment_count>1</comment_count>
      <attachid>119457</attachid>
    <who name="Jesus Sanchez-Palencia">jesus</who>
    <bug_when>2011-12-15 10:38:42 -0800</bug_when>
    <thetext>Created attachment 119457
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>522167</commentid>
    <comment_count>2</comment_count>
      <attachid>119457</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2011-12-15 12:57:21 -0800</bug_when>
    <thetext>Comment on attachment 119457
Patch

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

Wouldn&apos;t it be easier to ref the download item instead and then transfer ownership when parenting it?

&gt; Source/WebKit2/UIProcess/qt/QtDownloadManager.cpp:98
&gt; +    // If this function is ever reached with an &quot;empty&quot; downloadItem
&gt; +    // then it means WebProcess raised a download failure even before
&gt; +    // we reached downloadReceivedResponse(). At this point
&gt; +    // QQuickWebView::downloadRequested() signal hasn&apos;t been emitted and
&gt; +    // the downloadItem will have null parent. Therefore, it will leak
&gt; +    // unless we delete it.

This could be more compact

// If the url is empty at this point, the download failed before it received a response and downloadRequested
// was emitted. Due to this the item will not be parented and we have to delete it manually at this point.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>522745</commentid>
    <comment_count>3</comment_count>
    <who name="Jesus Sanchez-Palencia">jesus</who>
    <bug_when>2011-12-16 07:19:48 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; Wouldn&apos;t it be easier to ref the download item instead and then transfer ownership when parenting it?

But then we might end up with a bunch of (failed) download items during the entire life cycle of whoever is keeping the RefPtr, right? Those objects are useless since they never got to the &quot;client&quot; (the browser, let&apos;s say) and will just be kept in memory for no reason. I would rather delete them straight away. Plus, if we ever decide do to expose setDownloadEnabled API (https://bugs.webkit.org/show_bug.cgi?id=73318) we will have a similar situation in which we will need to delete downloadItems as well.


&gt; This could be more compact
&gt; 
&gt; // If the url is empty at this point, the download failed before it received a response and downloadRequested
&gt; // was emitted. Due to this the item will not be parented and we have to delete it manually at this point.


Yes, sure, thanks! I will update the patch later as soon as we reach a conclusion about deleting the the download items or to ref them.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>523872</commentid>
    <comment_count>4</comment_count>
      <attachid>119457</attachid>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2011-12-19 06:02:58 -0800</bug_when>
    <thetext>Comment on attachment 119457
Patch

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

&gt; Source/WebKit2/UIProcess/qt/QtDownloadManager.cpp:103
&gt; +

According to your comment the item will have a null parent, so wouldn&apos;t it be easier and more readable to simply write:

if (!downloadItem-&gt;parent()) {
    delete downloadItem;
    return;
}</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>524199</commentid>
    <comment_count>5</comment_count>
      <attachid>119920</attachid>
    <who name="Jesus Sanchez-Palencia">jesus</who>
    <bug_when>2011-12-19 14:43:29 -0800</bug_when>
    <thetext>Created attachment 119920
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>524255</commentid>
    <comment_count>6</comment_count>
      <attachid>119920</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-12-19 16:12:56 -0800</bug_when>
    <thetext>Comment on attachment 119920
Patch

Clearing flags on attachment: 119920

Committed r103278: &lt;http://trac.webkit.org/changeset/103278&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>524256</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-12-19 16:13:00 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>119457</attachid>
            <date>2011-12-15 10:38:42 -0800</date>
            <delta_ts>2011-12-19 14:43:19 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-74618-20111215153828.patch</filename>
            <type>text/plain</type>
            <size>2489</size>
            <attacher name="Jesus Sanchez-Palencia">jesus</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAyOTUzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggZjFhZTdjY2JkNDVmNTVl
YjZhOWI4YmU3YjM3MDVkYWRlOTlhNmRkNC4uNmJhODVlNzFmYzM0YWJhNmE4MDQ1NzM4OGJkODVm
YjliYTE2NDYzYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDExLTEyLTE1ICBKZXN1
cyBTYW5jaGV6LVBhbGVuY2lhICA8amVzdXMucGFsZW5jaWFAb3BlbmJvc3NhLm9yZz4KKworICAg
ICAgICBbUXRdW1dLMl0gUVdlYkRvd25sb2FkSXRlbXMgYXJlIGxlYWtpbmcKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc0NjE4CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUVdlYkRvd25sb2FkSXRlbXMgYXJl
IGxlYWtpbmcgd2hlbiBXZWJQcm9jZXNzIHJhaXNlcyBhCisgICAgICAgIGRvd25sb2FkIGZhaWx1
cmUgYmVmb3JlIHNlbmRpbmcgZGlkUmVjZWl2ZVJlc3BvbnNlIGJhY2sgdG8gVUlQcm9jZXNzLgor
ICAgICAgICBUaGlzIGNhbiBoYXBwZW4gd2hlbiBRdEZpbGVEb3dubG9hZGVyIGZhaWxzIGluIGRl
dGVybWluZUZpbGVuYW1lKCksIGZvciBpbnN0YW5jZS4KKyAgICAgICAgSXQgaGFwcGVucyB3aGVu
IFF0RG93bmxvYWRNYW5hZ2VyOjpkb3dubG9hZEZhaWxlZCgpIGlzIHJlYWNoZWQKKyAgICAgICAg
YW5kIGhhcyBhbiAiZW1wdHkiIGRvd25sb2FkSXRlbSwgd2hpY2ggbWVhbnMgd2UgbmV2ZXIgZ290
IHRvCisgICAgICAgIFF0RG93bmxvYWRNYW5hZ2VyOjpkb3dubG9hZFJlY2VpdmVkUmVzcG9uc2Uo
KS4gQXQgdGhpcyBwb2ludAorICAgICAgICBRUXVpY2tXZWJWaWV3Ojpkb3dubG9hZFJlcXVlc3Rl
ZCgpIHNpZ25hbCBoYXNuJ3QgYmVlbiBlbWl0dGVkIGFuZAorICAgICAgICB0aGUgZG93bmxvYWRJ
dGVtIHdpbGwgaGF2ZSBudWxsIHBhcmVudC4gVGhlcmVmb3JlLCBpdCB3aWxsIGxlYWsKKyAgICAg
ICAgdW5sZXNzIHdlIGRlbGV0ZSBpdCBvdXJzZWx2ZXMuCisKKyAgICAgICAgKiBVSVByb2Nlc3Mv
cXQvUXREb3dubG9hZE1hbmFnZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpRdERvd25sb2FkTWFu
YWdlcjo6ZG93bmxvYWRGYWlsZWQpOgorCiAyMDExLTEyLTE0ICBBbmRlcnMgQ2FybHNzb24gIDxh
bmRlcnNjYUBhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIFdURjo6RnVuY3Rpb24gdG8gd3RmL0Zv
cndhcmQuaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1F0RG93bmxv
YWRNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9RdERvd25sb2FkTWFu
YWdlci5jcHAKaW5kZXggNjg4M2NjNDI5MjNlZjVlZmU1MThlZTFmNzExNjc3YzMyYzQzM2UxOC4u
ODU2NjdiYTg0Mzg4NTNhNTA0YjEwZTBlNWMzYmE3M2FjZGJkZjUyZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1F0RG93bmxvYWRNYW5hZ2VyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvUXREb3dubG9hZE1hbmFnZXIuY3BwCkBAIC04OSw2ICs4
OSwxOCBAQCB2b2lkIFF0RG93bmxvYWRNYW5hZ2VyOjpkb3dubG9hZEZhaWxlZChEb3dubG9hZFBy
b3h5KiBkb3dubG9hZCwgY29uc3QgUXRXZWJFcnJvcgogICAgIC8vIFdpbGwgYmUgY2FsbGVkIHdo
ZW4gZG93bmxvYWQgZmFpbHMgb3IgaXMgYWJvcnRlZC4KICAgICBRV2ViRG93bmxvYWRJdGVtKiBk
b3dubG9hZEl0ZW0gPSBtX2Rvd25sb2Fkcy50YWtlKGRvd25sb2FkLT5kb3dubG9hZElEKCkpOwog
ICAgIEFTU0VSVChkb3dubG9hZEl0ZW0pOworCisgICAgLy8gSWYgdGhpcyBmdW5jdGlvbiBpcyBl
dmVyIHJlYWNoZWQgd2l0aCBhbiAiZW1wdHkiIGRvd25sb2FkSXRlbQorICAgIC8vIHRoZW4gaXQg
bWVhbnMgV2ViUHJvY2VzcyByYWlzZWQgYSBkb3dubG9hZCBmYWlsdXJlIGV2ZW4gYmVmb3JlCisg
ICAgLy8gd2UgcmVhY2hlZCBkb3dubG9hZFJlY2VpdmVkUmVzcG9uc2UoKS4gQXQgdGhpcyBwb2lu
dAorICAgIC8vIFFRdWlja1dlYlZpZXc6OmRvd25sb2FkUmVxdWVzdGVkKCkgc2lnbmFsIGhhc24n
dCBiZWVuIGVtaXR0ZWQgYW5kCisgICAgLy8gdGhlIGRvd25sb2FkSXRlbSB3aWxsIGhhdmUgbnVs
bCBwYXJlbnQuIFRoZXJlZm9yZSwgaXQgd2lsbCBsZWFrCisgICAgLy8gdW5sZXNzIHdlIGRlbGV0
ZSBpdC4KKyAgICBpZiAoZG93bmxvYWRJdGVtLT51cmwoKS5pc0VtcHR5KCkpIHsKKyAgICAgICAg
ZGVsZXRlIGRvd25sb2FkSXRlbTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKwogICAgIGVtaXQg
ZG93bmxvYWRJdGVtLT5mYWlsZWQoZXJyb3IuZXJyb3JDb2RlQXNEb3dubG9hZEVycm9yKCksIGVy
cm9yLnVybCgpLCBlcnJvci5kZXNjcmlwdGlvbigpKTsKIH0KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>119920</attachid>
            <date>2011-12-19 14:43:29 -0800</date>
            <delta_ts>2011-12-19 16:12:56 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-74618-20111219194317.patch</filename>
            <type>text/plain</type>
            <size>2348</size>
            <attacher name="Jesus Sanchez-Palencia">jesus</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAzMjY0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggMTdjMTZjNzk2ZjNkYzg1
YTA0NzgzNzdhZDE0MzY0MTA5NDZlMTc0Ni4uODQ0NjIwYzcxNzcxODhjMmMyNzRmMDBmNDY3ZjJk
YThhMWQ4NTg5NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDExLTEyLTE5ICBKZXN1
cyBTYW5jaGV6LVBhbGVuY2lhICA8amVzdXMucGFsZW5jaWFAb3BlbmJvc3NhLm9yZz4KKworICAg
ICAgICBbUXRdW1dLMl0gUVdlYkRvd25sb2FkSXRlbXMgYXJlIGxlYWtpbmcKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc0NjE4CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUVdlYkRvd25sb2FkSXRlbXMgYXJl
IGxlYWtpbmcgd2hlbiBXZWJQcm9jZXNzIHJhaXNlcyBhCisgICAgICAgIGRvd25sb2FkIGZhaWx1
cmUgYmVmb3JlIHNlbmRpbmcgZGlkUmVjZWl2ZVJlc3BvbnNlIGJhY2sgdG8gVUlQcm9jZXNzLgor
ICAgICAgICBUaGlzIGNhbiBoYXBwZW4gd2hlbiBRdEZpbGVEb3dubG9hZGVyIGZhaWxzIGluIGRl
dGVybWluZUZpbGVuYW1lKCksIGZvciBpbnN0YW5jZS4KKyAgICAgICAgSXQgaGFwcGVucyB3aGVu
IFF0RG93bmxvYWRNYW5hZ2VyOjpkb3dubG9hZEZhaWxlZCgpIGlzIHJlYWNoZWQKKyAgICAgICAg
YW5kIGhhcyBhbiAiZW1wdHkiIGRvd25sb2FkSXRlbSwgd2hpY2ggbWVhbnMgd2UgbmV2ZXIgZ290
IHRvCisgICAgICAgIFF0RG93bmxvYWRNYW5hZ2VyOjpkb3dubG9hZFJlY2VpdmVkUmVzcG9uc2Uo
KS4gQXQgdGhpcyBwb2ludAorICAgICAgICBRUXVpY2tXZWJWaWV3Ojpkb3dubG9hZFJlcXVlc3Rl
ZCgpIHNpZ25hbCBoYXNuJ3QgYmVlbiBlbWl0dGVkIGFuZAorICAgICAgICB0aGUgZG93bmxvYWRJ
dGVtIHdpbGwgaGF2ZSBudWxsIHBhcmVudC4gVGhlcmVmb3JlLCBpdCB3aWxsIGxlYWsKKyAgICAg
ICAgdW5sZXNzIHdlIGRlbGV0ZSBpdCBvdXJzZWx2ZXMuCisKKyAgICAgICAgKiBVSVByb2Nlc3Mv
cXQvUXREb3dubG9hZE1hbmFnZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpRdERvd25sb2FkTWFu
YWdlcjo6ZG93bmxvYWRGYWlsZWQpOgorCiAyMDExLTEyLTE5ICBFcmljIENhcmxzb24gIDxlcmlj
LmNhcmxzb25AYXBwbGUuY29tPgogCiAgICAgICAgIEVuYWJsZSA8dHJhY2s+IGZvciBNYWMgYnVp
bGQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9RdERvd25sb2FkTWFu
YWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvUXREb3dubG9hZE1hbmFnZXIu
Y3BwCmluZGV4IDY4ODNjYzQyOTIzZWY1ZWZlNTE4ZWUxZjcxMTY3N2MzMmM0MzNlMTguLjk5YzRk
YzU4ZThmY2FkNmQ4YjJhM2QzYzU2YTMyNGNlMTczNTk1YmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9xdC9RdERvd25sb2FkTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL3F0L1F0RG93bmxvYWRNYW5hZ2VyLmNwcApAQCAtODksNiArODksMTYg
QEAgdm9pZCBRdERvd25sb2FkTWFuYWdlcjo6ZG93bmxvYWRGYWlsZWQoRG93bmxvYWRQcm94eSog
ZG93bmxvYWQsIGNvbnN0IFF0V2ViRXJyb3IKICAgICAvLyBXaWxsIGJlIGNhbGxlZCB3aGVuIGRv
d25sb2FkIGZhaWxzIG9yIGlzIGFib3J0ZWQuCiAgICAgUVdlYkRvd25sb2FkSXRlbSogZG93bmxv
YWRJdGVtID0gbV9kb3dubG9hZHMudGFrZShkb3dubG9hZC0+ZG93bmxvYWRJRCgpKTsKICAgICBB
U1NFUlQoZG93bmxvYWRJdGVtKTsKKworICAgIC8vIElmIHRoZSBwYXJlbnQgaXMgbnVsbCBhdCB0
aGlzIHBvaW50LCB0aGUgZG93bmxvYWQgZmFpbGVkIGJlZm9yZSBpdAorICAgIC8vIHJlY2VpdmVk
IGEgcmVzcG9uc2UgYW5kIGRvd25sb2FkUmVxdWVzdGVkIHdhcyBlbWl0dGVkLgorICAgIC8vIER1
ZSB0byB0aGlzIHRoZSBpdGVtIHdpbGwgbmV2ZXIgYmUgcGFyZW50ZWQgYW5kIHdlIGhhdmUgdG8g
ZGVsZXRlIGl0CisgICAgLy8gbWFudWFsbHkgYXQgdGhpcyBwb2ludC4KKyAgICBpZiAoIWRvd25s
b2FkSXRlbS0+cGFyZW50KCkpIHsKKyAgICAgICAgZGVsZXRlIGRvd25sb2FkSXRlbTsKKyAgICAg
ICAgcmV0dXJuOworICAgIH0KKwogICAgIGVtaXQgZG93bmxvYWRJdGVtLT5mYWlsZWQoZXJyb3Iu
ZXJyb3JDb2RlQXNEb3dubG9hZEVycm9yKCksIGVycm9yLnVybCgpLCBlcnJvci5kZXNjcmlwdGlv
bigpKTsKIH0KIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>