<?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>104830</bug_id>
          
          <creation_ts>2012-12-12 12:06:48 -0800</creation_ts>
          <short_desc>Document is never released when an Image is created inside unload event listener.</short_desc>
          <delta_ts>2012-12-13 10:49:48 -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>Page Loading</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Yongjun Zhang">yongjun_zhang</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>ddkilzer</cc>
    
    <cc>japhet</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>789774</commentid>
    <comment_count>0</comment_count>
    <who name="Yongjun Zhang">yongjun_zhang</who>
    <bug_when>2012-12-12 12:06:48 -0800</bug_when>
    <thetext>If we create an Image object inside unload event listener and set src attribute to it, the Document will never be released.  As shown in the following HTML:

&lt;html&gt; &lt;head&gt; 
&lt;script type=&quot;text/javascript&quot;&gt;
 window.onunload = unloadPage;

p = [];
function unloadPage()
{
 p[0] = new Image;
 p[0].src = &quot;https://www.my_random_testpage.com/image.png&quot;;
}

function reload()
{
    setTimeout(function() {location.reload();}, 500);
}
&lt;/script&gt;
&lt;/head&gt;
 &lt;body onload=&quot;reload()&quot;&gt;
&lt;/body&gt; &lt;/html&gt;

In mac, running &quot;heap&quot; periodically will show the number of HTMLDocument keeps growing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>789785</commentid>
    <comment_count>1</comment_count>
    <who name="Yongjun Zhang">yongjun_zhang</who>
    <bug_when>2012-12-12 12:11:59 -0800</bug_when>
    <thetext>&lt;rdar://problem/12797901&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>789787</commentid>
    <comment_count>2</comment_count>
    <who name="Yongjun Zhang">yongjun_zhang</who>
    <bug_when>2012-12-12 12:12:48 -0800</bug_when>
    <thetext>And this also happens on onbeforeunload and onpagehide listeners too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>789820</commentid>
    <comment_count>3</comment_count>
      <attachid>179107</attachid>
    <who name="Yongjun Zhang">yongjun_zhang</who>
    <bug_when>2012-12-12 12:56:51 -0800</bug_when>
    <thetext>Created attachment 179107
Patch, don&apos;t trigger error event in ImageLoader if the page is being dismissed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>789836</commentid>
    <comment_count>4</comment_count>
      <attachid>179112</attachid>
    <who name="Yongjun Zhang">yongjun_zhang</who>
    <bug_when>2012-12-12 13:05:01 -0800</bug_when>
    <thetext>Created attachment 179112
Don&apos;t trigger error event in ImageLoader if the page is being dismissed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>790216</commentid>
    <comment_count>5</comment_count>
      <attachid>179112</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2012-12-12 19:55:09 -0800</bug_when>
    <thetext>Comment on attachment 179112
Don&apos;t trigger error event in ImageLoader if the page is being dismissed.

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

&gt; Source/WebCore/loader/ImageLoader.cpp:203
&gt; +        Frame* frame = document()-&gt;frame();
&gt; +        bool pageIsBeingDismissed = frame &amp;&amp; frame-&gt;loader()-&gt;pageDismissalEventBeingDispatched() != FrameLoader::NoDismissal;

It seems wasteful to do all this computation when newImage is non-zero. Could you put this into a helper function so it’s only computed when newImage is 0?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>790313</commentid>
    <comment_count>6</comment_count>
    <who name="Yongjun Zhang">yongjun_zhang</who>
    <bug_when>2012-12-12 22:52:25 -0800</bug_when>
    <thetext>(In reply to comment #5)
&gt; (From update of attachment 179112 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=179112&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/loader/ImageLoader.cpp:203
&gt; &gt; +        Frame* frame = document()-&gt;frame();
&gt; &gt; +        bool pageIsBeingDismissed = frame &amp;&amp; frame-&gt;loader()-&gt;pageDismissalEventBeingDispatched() != FrameLoader::NoDismissal;
&gt; 
&gt; It seems wasteful to do all this computation when newImage is non-zero. Could you put this into a helper function so it’s only computed when newImage is 0?

yes that is a good point. I will make it into a help function which only get called when image is 0.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>790735</commentid>
    <comment_count>7</comment_count>
      <attachid>179299</attachid>
    <who name="Yongjun Zhang">yongjun_zhang</who>
    <bug_when>2012-12-13 10:30:10 -0800</bug_when>
    <thetext>Created attachment 179299
Address review comments, add a helper function pageIsBeingDismissed and only call it when image is null.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>790755</commentid>
    <comment_count>8</comment_count>
      <attachid>179299</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-12-13 10:49:44 -0800</bug_when>
    <thetext>Comment on attachment 179299
Address review comments, add a helper function pageIsBeingDismissed and only call it when image is null.

Clearing flags on attachment: 179299

Committed r137615: &lt;http://trac.webkit.org/changeset/137615&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>790756</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-12-13 10:49:48 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>179107</attachid>
            <date>2012-12-12 12:56:51 -0800</date>
            <delta_ts>2012-12-12 13:05:01 -0800</delta_ts>
            <desc>Patch, don&apos;t trigger error event in ImageLoader if the page is being dismissed.</desc>
            <filename>imageloader_leak_doc.patch</filename>
            <type>text/plain</type>
            <size>2706</size>
            <attacher name="Yongjun Zhang">yongjun_zhang</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEzNzQ5OSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIyIEBACisyMDEyLTEyLTEyICBZb25nanVu
IFpoYW5nICA8eW9uZ2p1bl96aGFuZ0BhcHBsZS5jb20+CisKKyAgICAgICAgRG9jdW1lbnQgd2ls
bCBuZXZlciBiZSByZWxlYXNlZCB3aGVuIGFuIEltYWdlIGlzIGNyZWF0ZWQgaW5zaWRlIHVubG9h
ZCBldmVudCBsaXN0ZW5lcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTA0ODMwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgV2hlbiBzZXR0aW5nIHNyYyBhdHRyaWJ1dGUgdG8gYW4gSW1hZ2Ugb2JqZWN0IGlu
c2lkZSB1bmxvYWQgZXZlbnQgbGlzdGVuZXIsIEltYWdlTG9hZGVyIHdpbGwKKyAgICAgICAgbWFy
ayBpdCBhcyBsb2FkIGZhaWx1cmUgKGJ5IHNldHRpbmcgbV9oYXNQZW5kaW5nRXJyb3JFdmVudCB0
byB0cnVlKSBhbmQgdGhlIGZvbGxvd2luZyBjYWxsCisgICAgICAgIHRvIHVwZGF0ZWRIYXNQZW5k
aW5nRXZlbnQgd2lsbCByZWYgdGhlIGVsZW1lbnQgYnV0IHdvbid0IGJlIGRlcmVmLWVkIHNpbmNl
IHRoZSBEb2N1bWVudCBpcworICAgICAgICBiZWluZyBkaXNtaXNzZWQuICBUaGlzIHdhcyBpbnRy
b2R1Y2VkIGluIHIxMzE2NzAuICBUbyBtYXRjaCBwcmUgcjEzMTY3MCBiZWhhdmlvciwgd2Ugc2hv
dWxkbid0CisgICAgICAgIHRyaWdnZXIgZXJyb3IgZXZlbnQgZm9yIGltYWdlIGxvYWRpbmcgd2hl
biB0aGUgcGFnZSBpcyBiZWluZyBkaXNtaXNzZWQuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCB0
aGVyZSBpcyBubyB2aXN1YWwgY2hhbmdlLiAgTWFudWFsbHkgdGVzdGVkIHRvIHZlcmlmeSBkb2N1
bWVudHMgYXJlIHJlbGVhc2VkIGJ5CisgICAgICAgIHVzaW5nIGhlYXAgaW4gTWFjIE9TIFguCisK
KyAgICAgICAgKiBsb2FkZXIvSW1hZ2VMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW1h
Z2VMb2FkZXI6OnVwZGF0ZUZyb21FbGVtZW50KTogZG9uJ3QgdHJpZ2dlciBlcnJvciBldmVudCBp
ZiB0aGUgcGFnZSBpcyBiZWluZyBkaXNtaXNzZWQuCisKIDIwMTItMTItMTIgIE5vJ2FtIFJvc2Vu
dGhhbCAgPG5vYW1Ad2Via2l0Lm9yZz4KIAogICAgICAgICBbVGV4bWFwXSBDb25zb2xpZGF0ZSBy
ZWR1bmRhbnQgY29kZSBmb3IgQVJCX1JFQ1QgdGV4dHVyZQpJbmRleDogU291cmNlL1dlYkNvcmUv
bG9hZGVyL0ltYWdlTG9hZGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvSW1hZ2VMb2FkZXIuY3BwCShyZXZpc2lvbiAxMzc0NzkpCisrKyBTb3VyY2UvV2ViQ29yZS9s
b2FkZXIvSW1hZ2VMb2FkZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMSw2ICszMSw3IEBACiAj
aW5jbHVkZSAiRWxlbWVudFNoYWRvdy5oIgogI2luY2x1ZGUgIkV2ZW50LmgiCiAjaW5jbHVkZSAi
RXZlbnRTZW5kZXIuaCIKKyNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIkhUTUxOYW1lcy5o
IgogI2luY2x1ZGUgIkhUTUxPYmplY3RFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTFBhcnNlcklk
aW9tcy5oIgpAQCAtMTk4LDEwICsxOTksMTQgQEAgdm9pZCBJbWFnZUxvYWRlcjo6dXBkYXRlRnJv
bUVsZW1lbnQoKQogICAgICAgICB9IGVsc2UKICAgICAgICAgICAgIG5ld0ltYWdlID0gZG9jdW1l
bnQoKS0+Y2FjaGVkUmVzb3VyY2VMb2FkZXIoKS0+cmVxdWVzdEltYWdlKHJlcXVlc3QpOwogCisg
ICAgICAgIEZyYW1lKiBmcmFtZSA9IGRvY3VtZW50KCktPmZyYW1lKCk7CisgICAgICAgIGJvb2wg
cGFnZUlzQmVpbmdEaXNtaXNzZWQgPSBmcmFtZSAmJiBmcmFtZS0+bG9hZGVyKCktPnBhZ2VEaXNt
aXNzYWxFdmVudEJlaW5nRGlzcGF0Y2hlZCgpICE9IEZyYW1lTG9hZGVyOjpOb0Rpc21pc3NhbDsK
KyAgICAgICAgcGFnZUlzQmVpbmdEaXNtaXNzZWQgPSBmYWxzZTsKICAgICAgICAgLy8gSWYgd2Ug
ZG8gbm90IGhhdmUgYW4gaW1hZ2UgaGVyZSwgaXQgbWVhbnMgdGhhdCBhIGNyb3NzLXNpdGUKICAg
ICAgICAgLy8gdmlvbGF0aW9uIG9jY3VycmVkLCBvciB0aGF0IHRoZSBpbWFnZSB3YXMgYmxvY2tl
ZCB2aWEgQ29udGVudAotICAgICAgICAvLyBTZWN1cml0eSBQb2xpY3kuIEVpdGhlciB3YXksIHRy
aWdnZXIgYW4gZXJyb3IgZXZlbnQuCi0gICAgICAgIGlmICghbmV3SW1hZ2UpIHsKKyAgICAgICAg
Ly8gU2VjdXJpdHkgUG9saWN5LCBvciB0aGUgcGFnZSBpcyBiZWluZyBkaXNtaXNzZWQuIFRyaWdn
ZXIgYW4KKyAgICAgICAgLy8gZXJyb3IgZXZlbnQgaWYgdGhlIHBhZ2UgaXMgbm90IGJlaW5nIGRp
c21pc3NlZC4KKyAgICAgICAgaWYgKCFuZXdJbWFnZSAmJiAhcGFnZUlzQmVpbmdEaXNtaXNzZWQp
IHsKICAgICAgICAgICAgIG1fZmFpbGVkTG9hZFVSTCA9IGF0dHI7CiAgICAgICAgICAgICBtX2hh
c1BlbmRpbmdFcnJvckV2ZW50ID0gdHJ1ZTsKICAgICAgICAgICAgIGVycm9yRXZlbnRTZW5kZXIo
KS5kaXNwYXRjaEV2ZW50U29vbih0aGlzKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>179112</attachid>
            <date>2012-12-12 13:05:01 -0800</date>
            <delta_ts>2012-12-13 10:30:10 -0800</delta_ts>
            <desc>Don&apos;t trigger error event in ImageLoader if the page is being dismissed.</desc>
            <filename>imageloader_leak_doc.patch</filename>
            <type>text/plain</type>
            <size>2667</size>
            <attacher name="Yongjun Zhang">yongjun_zhang</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEzNzQ5OSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIyIEBACisyMDEyLTEyLTEyICBZb25nanVu
IFpoYW5nICA8eW9uZ2p1bl96aGFuZ0BhcHBsZS5jb20+CisKKyAgICAgICAgRG9jdW1lbnQgd2ls
bCBuZXZlciBiZSByZWxlYXNlZCB3aGVuIGFuIEltYWdlIGlzIGNyZWF0ZWQgaW5zaWRlIHVubG9h
ZCBldmVudCBsaXN0ZW5lcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTA0ODMwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgV2hlbiBzZXR0aW5nIHNyYyBhdHRyaWJ1dGUgdG8gYW4gSW1hZ2Ugb2JqZWN0IGlu
c2lkZSB1bmxvYWQgZXZlbnQgbGlzdGVuZXIsIEltYWdlTG9hZGVyIHdpbGwKKyAgICAgICAgbWFy
ayBpdCBhcyBsb2FkIGZhaWx1cmUgKGJ5IHNldHRpbmcgbV9oYXNQZW5kaW5nRXJyb3JFdmVudCB0
byB0cnVlKSBhbmQgdGhlIGZvbGxvd2luZyBjYWxsCisgICAgICAgIHRvIHVwZGF0ZWRIYXNQZW5k
aW5nRXZlbnQgd2lsbCByZWYgdGhlIGVsZW1lbnQgYnV0IHdvbid0IGJlIGRlcmVmLWVkIHNpbmNl
IHRoZSBEb2N1bWVudCBpcworICAgICAgICBiZWluZyBkaXNtaXNzZWQuICBUaGlzIHdhcyBpbnRy
b2R1Y2VkIGluIHIxMzE2NzAuICBUbyBtYXRjaCBwcmUgcjEzMTY3MCBiZWhhdmlvciwgd2Ugc2hv
dWxkbid0CisgICAgICAgIHRyaWdnZXIgZXJyb3IgZXZlbnQgZm9yIGltYWdlIGxvYWRpbmcgd2hl
biB0aGUgcGFnZSBpcyBiZWluZyBkaXNtaXNzZWQuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCB0
aGVyZSBpcyBubyB2aXN1YWwgY2hhbmdlLiAgTWFudWFsbHkgdGVzdGVkIHRvIHZlcmlmeSBkb2N1
bWVudHMgYXJlIHJlbGVhc2VkIGJ5CisgICAgICAgIHVzaW5nIGhlYXAgaW4gTWFjIE9TIFguCisK
KyAgICAgICAgKiBsb2FkZXIvSW1hZ2VMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW1h
Z2VMb2FkZXI6OnVwZGF0ZUZyb21FbGVtZW50KTogZG9uJ3QgdHJpZ2dlciBlcnJvciBldmVudCBp
ZiB0aGUgcGFnZSBpcyBiZWluZyBkaXNtaXNzZWQuCisKIDIwMTItMTItMTIgIE5vJ2FtIFJvc2Vu
dGhhbCAgPG5vYW1Ad2Via2l0Lm9yZz4KIAogICAgICAgICBbVGV4bWFwXSBDb25zb2xpZGF0ZSBy
ZWR1bmRhbnQgY29kZSBmb3IgQVJCX1JFQ1QgdGV4dHVyZQpJbmRleDogU291cmNlL1dlYkNvcmUv
bG9hZGVyL0ltYWdlTG9hZGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvSW1hZ2VMb2FkZXIuY3BwCShyZXZpc2lvbiAxMzc0NzkpCisrKyBTb3VyY2UvV2ViQ29yZS9s
b2FkZXIvSW1hZ2VMb2FkZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMSw2ICszMSw3IEBACiAj
aW5jbHVkZSAiRWxlbWVudFNoYWRvdy5oIgogI2luY2x1ZGUgIkV2ZW50LmgiCiAjaW5jbHVkZSAi
RXZlbnRTZW5kZXIuaCIKKyNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIkhUTUxOYW1lcy5o
IgogI2luY2x1ZGUgIkhUTUxPYmplY3RFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTFBhcnNlcklk
aW9tcy5oIgpAQCAtMTk4LDEwICsxOTksMTMgQEAgdm9pZCBJbWFnZUxvYWRlcjo6dXBkYXRlRnJv
bUVsZW1lbnQoKQogICAgICAgICB9IGVsc2UKICAgICAgICAgICAgIG5ld0ltYWdlID0gZG9jdW1l
bnQoKS0+Y2FjaGVkUmVzb3VyY2VMb2FkZXIoKS0+cmVxdWVzdEltYWdlKHJlcXVlc3QpOwogCisg
ICAgICAgIEZyYW1lKiBmcmFtZSA9IGRvY3VtZW50KCktPmZyYW1lKCk7CisgICAgICAgIGJvb2wg
cGFnZUlzQmVpbmdEaXNtaXNzZWQgPSBmcmFtZSAmJiBmcmFtZS0+bG9hZGVyKCktPnBhZ2VEaXNt
aXNzYWxFdmVudEJlaW5nRGlzcGF0Y2hlZCgpICE9IEZyYW1lTG9hZGVyOjpOb0Rpc21pc3NhbDsK
ICAgICAgICAgLy8gSWYgd2UgZG8gbm90IGhhdmUgYW4gaW1hZ2UgaGVyZSwgaXQgbWVhbnMgdGhh
dCBhIGNyb3NzLXNpdGUKICAgICAgICAgLy8gdmlvbGF0aW9uIG9jY3VycmVkLCBvciB0aGF0IHRo
ZSBpbWFnZSB3YXMgYmxvY2tlZCB2aWEgQ29udGVudAotICAgICAgICAvLyBTZWN1cml0eSBQb2xp
Y3kuIEVpdGhlciB3YXksIHRyaWdnZXIgYW4gZXJyb3IgZXZlbnQuCi0gICAgICAgIGlmICghbmV3
SW1hZ2UpIHsKKyAgICAgICAgLy8gU2VjdXJpdHkgUG9saWN5LCBvciB0aGUgcGFnZSBpcyBiZWlu
ZyBkaXNtaXNzZWQuIFRyaWdnZXIgYW4KKyAgICAgICAgLy8gZXJyb3IgZXZlbnQgaWYgdGhlIHBh
Z2UgaXMgbm90IGJlaW5nIGRpc21pc3NlZC4KKyAgICAgICAgaWYgKCFuZXdJbWFnZSAmJiAhcGFn
ZUlzQmVpbmdEaXNtaXNzZWQpIHsKICAgICAgICAgICAgIG1fZmFpbGVkTG9hZFVSTCA9IGF0dHI7
CiAgICAgICAgICAgICBtX2hhc1BlbmRpbmdFcnJvckV2ZW50ID0gdHJ1ZTsKICAgICAgICAgICAg
IGVycm9yRXZlbnRTZW5kZXIoKS5kaXNwYXRjaEV2ZW50U29vbih0aGlzKTsK
</data>
<flag name="review"
          id="195849"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>179299</attachid>
            <date>2012-12-13 10:30:10 -0800</date>
            <delta_ts>2012-12-13 10:49:44 -0800</delta_ts>
            <desc>Address review comments, add a helper function pageIsBeingDismissed and only call it when image is null.</desc>
            <filename>imageloader_leak_doc.patch</filename>
            <type>text/plain</type>
            <size>2951</size>
            <attacher name="Yongjun Zhang">yongjun_zhang</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEzNzYwNikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIzIEBACisyMDEyLTEyLTEzICBZb25nanVu
IFpoYW5nICA8eW9uZ2p1bl96aGFuZ0BhcHBsZS5jb20+CisKKyAgICAgICAgRG9jdW1lbnQgd2ls
bCBuZXZlciBiZSByZWxlYXNlZCB3aGVuIGFuIEltYWdlIGlzIGNyZWF0ZWQgaW5zaWRlIHVubG9h
ZCBldmVudCBsaXN0ZW5lcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTA0ODMwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCisKKyAg
ICAgICAgV2hlbiBzZXR0aW5nIHNyYyBhdHRyaWJ1dGUgdG8gYW4gSW1hZ2Ugb2JqZWN0IGluc2lk
ZSB1bmxvYWQgZXZlbnQgbGlzdGVuZXIsIEltYWdlTG9hZGVyIHdpbGwKKyAgICAgICAgbWFyayBp
dCBhcyBsb2FkIGZhaWx1cmUgKGJ5IHNldHRpbmcgbV9oYXNQZW5kaW5nRXJyb3JFdmVudCB0byB0
cnVlKSBhbmQgdGhlIGZvbGxvd2luZyBjYWxsCisgICAgICAgIHRvIHVwZGF0ZWRIYXNQZW5kaW5n
RXZlbnQgd2lsbCByZWYgdGhlIGVsZW1lbnQgYnV0IHdvbid0IGJlIGRlcmVmLWVkIHNpbmNlIHRo
ZSBEb2N1bWVudCBpcworICAgICAgICBiZWluZyBkaXNtaXNzZWQuICBUaGlzIHdhcyBpbnRyb2R1
Y2VkIGluIHIxMzE2NzAuICBUbyBtYXRjaCBwcmUgcjEzMTY3MCBiZWhhdmlvciwgd2Ugc2hvdWxk
bid0CisgICAgICAgIHRyaWdnZXIgZXJyb3IgZXZlbnQgZm9yIGltYWdlIGxvYWRpbmcgd2hlbiB0
aGUgcGFnZSBpcyBiZWluZyBkaXNtaXNzZWQuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCB0aGVy
ZSBpcyBubyB2aXN1YWwgY2hhbmdlLiAgTWFudWFsbHkgdGVzdGVkIHRvIHZlcmlmeSBkb2N1bWVu
dHMgYXJlIHJlbGVhc2VkIGJ5CisgICAgICAgIHVzaW5nIGhlYXAgaW4gTWFjIE9TIFguCisKKyAg
ICAgICAgKiBsb2FkZXIvSW1hZ2VMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6cGFnZUlz
QmVpbmdEaXNtaXNzZWQpOiBhZGQgYSBoZWxwZXIgZnVuY3Rpb24gdG8gdGVzdCB3aGV0aGVyIHRo
ZSBwYWdlIGlzIGJlaW5nIGRpc21pc3NlZC4KKyAgICAgICAgKFdlYkNvcmU6OkltYWdlTG9hZGVy
Ojp1cGRhdGVGcm9tRWxlbWVudCk6IGRvbid0IHRyaWdnZXIgZXJyb3IgZXZlbnQgaWYgdGhlIHBh
Z2UgaXMgYmVpbmcgZGlzbWlzc2VkLgorCiAyMDEyLTEyLTEzICBQcmF0aWsgU29sYW5raSAgPHBz
b2xhbmtpQGFwcGxlLmNvbT4KIAogICAgICAgICBEdXBsaWNhdGUgY29kZSBpbiBHcmFwaGljc0Nv
bnRleHQzRDo6dmFsaWRhdGVBdHRyaWJ1dGVzKCkgYW5kIEdyYXBoaWNzQ29udGV4dDNEOjp2YWxp
ZGF0ZURlcHRoU3RlbmNpbCgpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvSW1hZ2VMb2Fk
ZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9JbWFnZUxvYWRlci5j
cHAJKHJldmlzaW9uIDEzNzQ3OSkKKysrIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9JbWFnZUxvYWRl
ci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJFbGVtZW50
U2hhZG93LmgiCiAjaW5jbHVkZSAiRXZlbnQuaCIKICNpbmNsdWRlICJFdmVudFNlbmRlci5oIgor
I2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCiAjaW5jbHVkZSAiSFRN
TE9iamVjdEVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MUGFyc2VySWRpb21zLmgiCkBAIC04NCw2
ICs4NSwxMiBAQCBzdGF0aWMgSW1hZ2VFdmVudFNlbmRlciYgZXJyb3JFdmVudFNlbmRlCiAgICAg
cmV0dXJuIHNlbmRlcjsKIH0KIAorc3RhdGljIGlubGluZSBib29sIHBhZ2VJc0JlaW5nRGlzbWlz
c2VkKERvY3VtZW50KiBkb2N1bWVudCkKK3sKKyAgICBGcmFtZSogZnJhbWUgPSBkb2N1bWVudC0+
ZnJhbWUoKTsKKyAgICByZXR1cm4gZnJhbWUgJiYgZnJhbWUtPmxvYWRlcigpLT5wYWdlRGlzbWlz
c2FsRXZlbnRCZWluZ0Rpc3BhdGNoZWQoKSAhPSBGcmFtZUxvYWRlcjo6Tm9EaXNtaXNzYWw7Cit9
CisKIEltYWdlTG9hZGVyOjpJbWFnZUxvYWRlcihJbWFnZUxvYWRlckNsaWVudCogY2xpZW50KQog
ICAgIDogbV9jbGllbnQoY2xpZW50KQogICAgICwgbV9pbWFnZSgwKQpAQCAtMjAwLDggKzIwNyw5
IEBAIHZvaWQgSW1hZ2VMb2FkZXI6OnVwZGF0ZUZyb21FbGVtZW50KCkKIAogICAgICAgICAvLyBJ
ZiB3ZSBkbyBub3QgaGF2ZSBhbiBpbWFnZSBoZXJlLCBpdCBtZWFucyB0aGF0IGEgY3Jvc3Mtc2l0
ZQogICAgICAgICAvLyB2aW9sYXRpb24gb2NjdXJyZWQsIG9yIHRoYXQgdGhlIGltYWdlIHdhcyBi
bG9ja2VkIHZpYSBDb250ZW50Ci0gICAgICAgIC8vIFNlY3VyaXR5IFBvbGljeS4gRWl0aGVyIHdh
eSwgdHJpZ2dlciBhbiBlcnJvciBldmVudC4KLSAgICAgICAgaWYgKCFuZXdJbWFnZSkgeworICAg
ICAgICAvLyBTZWN1cml0eSBQb2xpY3ksIG9yIHRoZSBwYWdlIGlzIGJlaW5nIGRpc21pc3NlZC4g
VHJpZ2dlciBhbgorICAgICAgICAvLyBlcnJvciBldmVudCBpZiB0aGUgcGFnZSBpcyBub3QgYmVp
bmcgZGlzbWlzc2VkLgorICAgICAgICBpZiAoIW5ld0ltYWdlICYmICFwYWdlSXNCZWluZ0Rpc21p
c3NlZChkb2N1bWVudCgpKSkgewogICAgICAgICAgICAgbV9mYWlsZWRMb2FkVVJMID0gYXR0cjsK
ICAgICAgICAgICAgIG1faGFzUGVuZGluZ0Vycm9yRXZlbnQgPSB0cnVlOwogICAgICAgICAgICAg
ZXJyb3JFdmVudFNlbmRlcigpLmRpc3BhdGNoRXZlbnRTb29uKHRoaXMpOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>