<?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>145310</bug_id>
          
          <creation_ts>2015-05-22 10:41:20 -0700</creation_ts>
          <short_desc>[CG] Regression(r78652): Partially decoded images are not properly removed from MemoryCache when pruning</short_desc>
          <delta_ts>2015-05-22 13:48:10 -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>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=53281</see_also>
          <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="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>kling</cc>
    
    <cc>koivisto</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1096888</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-05-22 10:41:20 -0700</bug_when>
    <thetext>r78652 added partially decoded images to the MemoryCache&apos;s list of live decoded resources so that they can be pruned on memory pressure. This was needed because CG decodes part of the image to determine its properties (e.g. size). On memory pressure, we call BitmapImage::destroyDecodedData() which clears the ImageSource and frees up this extra decoded data.

However, we currently fail to remove such partially decoded images from the MemoryCache&apos;s list of live resources when pruning. This is because BitmapImage::destroyMetadataAndNotify() fails to take into account the decoded properties size when no frames have been cleared. We thus fail to detect a decoded size change and do not call CachedImage::decodedSizeChanged(). As a result, the CachedImage&apos;s decoded size is not reset to 0 and we don&apos;t remove it from live decoded resources.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1096910</commentid>
    <comment_count>1</comment_count>
      <attachid>253597</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-05-22 11:54:07 -0700</bug_when>
    <thetext>Created attachment 253597
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1096941</commentid>
    <comment_count>2</comment_count>
      <attachid>253597</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-05-22 13:48:05 -0700</bug_when>
    <thetext>Comment on attachment 253597
Patch

Clearing flags on attachment: 253597

Committed r184793: &lt;http://trac.webkit.org/changeset/184793&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1096942</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-05-22 13:48:10 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>253597</attachid>
            <date>2015-05-22 11:54:07 -0700</date>
            <delta_ts>2015-05-22 13:48:05 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-145310-20150522115401.patch</filename>
            <type>text/plain</type>
            <size>5644</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg0NzIwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZmIzZTcwZmE1MzU4MzJj
MGI0MjdkN2E1NjcxMzRmMzgwYWFkNWIxNC4uOGI2NDQ3MGEyM2Q1ZmM1ZmI2ZDgwMTI0ZTc2NzRm
ZjViOTA5MjEyYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM5IEBACisyMDE1LTA1LTIyICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgW0NHXSBSZWdyZXNzaW9uKHI3
ODY1Mik6IFBhcnRpYWxseSBkZWNvZGVkIGltYWdlcyBhcmUgbm90IHByb3Blcmx5IHJlbW92ZWQg
ZnJvbSBNZW1vcnlDYWNoZSB3aGVuIHBydW5pbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NTMxMAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIHI3ODY1MiBhZGRlZCBwYXJ0aWFsbHkgZGVjb2RlZCBpbWFn
ZXMgdG8gdGhlIE1lbW9yeUNhY2hlJ3MgbGlzdCBvZiBsaXZlCisgICAgICAgIGRlY29kZWQgcmVz
b3VyY2VzIHNvIHRoYXQgdGhleSBjYW4gYmUgcHJ1bmVkIG9uIG1lbW9yeSBwcmVzc3VyZS4gVGhp
cworICAgICAgICB3YXMgbmVlZGVkIGJlY2F1c2UgQ0cgZGVjb2RlcyBwYXJ0IG9mIHRoZSBpbWFn
ZSB0byBkZXRlcm1pbmUgaXRzCisgICAgICAgIHByb3BlcnRpZXMgKGUuZy4gaXRzIHNpemUpLiBP
biBtZW1vcnkgcHJlc3N1cmUsIHdlIGNhbGwKKyAgICAgICAgQml0bWFwSW1hZ2U6OmRlc3Ryb3lE
ZWNvZGVkRGF0YSgpIHdoaWNoIGNsZWFycyB0aGUgSW1hZ2VTb3VyY2UgYW5kCisgICAgICAgIGZy
ZWVzIHVwIHRoaXMgZXh0cmEgZGVjb2RlZCBkYXRhLgorCisgICAgICAgIEhvd2V2ZXIsIHdlIHdv
dWxkIGZhaWwgdG8gcmVtb3ZlIHN1Y2ggcGFydGlhbGx5IGRlY29kZWQgaW1hZ2VzIGZyb20gdGhl
CisgICAgICAgIE1lbW9yeUNhY2hlJ3MgbGlzdCBvZiBsaXZlIHJlc291cmNlcyB3aGVuIHBydW5p
bmcuIFRoaXMgaXMgYmVjYXVzZQorICAgICAgICBCaXRtYXBJbWFnZTo6ZGVzdHJveU1ldGFkYXRh
QW5kTm90aWZ5KCkgZmFpbHMgdG8gdGFrZSBpbnRvIGFjY291bnQgdGhlCisgICAgICAgIGRlY29k
ZWQgcHJvcGVydGllcyBzaXplIHdoZW4gbm8gZnJhbWUgaGFzIGJlZW4gY2xlYXJlZC4gV2Ugd291
bGQgdGh1cworICAgICAgICBmYWlsIHRvIGRldGVjdCBhIGRlY29kZWQgc2l6ZSBjaGFuZ2UgYW5k
IG5vdCBjYWxsCisgICAgICAgIENhY2hlZEltYWdlOjpkZWNvZGVkU2l6ZUNoYW5nZWQoKS4gQXMg
YSByZXN1bHQsIHRoZSBDYWNoZWRJbWFnZSdzCisgICAgICAgIGRlY29kZWQgc2l6ZSBpcyBub3Qg
cmVzZXQgdG8gMCBhbmQgd2UgZG9uJ3QgcmVtb3ZlIGl0IGZyb20gbGl2ZSBkZWNvZGVkCisgICAg
ICAgIHJlc291cmNlcy4KKworICAgICAgICBUaGlzIHBhdGNoIHVwZGF0ZXMgQml0bWFwSW1hZ2U6
OmRlc3Ryb3lNZXRhZGF0YUFuZE5vdGlmeSgpIHRvIGFjY291bnQKKyAgICAgICAgZm9yIG1fZGVj
b2RlZFByb3BlcnRpZXNTaXplIGV2ZW4gaWYgZnJhbWVCeXRlc0NsZWFyZWQgaXMgMC4gVGhpcyB3
YXksCisgICAgICAgIGltYWdlcyBmb3Igd2hpY2ggd2UgaGF2ZSd0IGRlY29kZWQgYW55IGZyYW1l
cyB5ZXQgd2lsbCBjb3JyZWN0bHkgcmVwb3J0CisgICAgICAgIHRoYXQgd2UgY2xlYXJlZCB0aGUg
ZGVjb2RlZCBkYXRhIHVzZWQgdG8gZGV0ZXJtaW5lIHRoZSBpbWFnZSBwcm9wZXJ0aWVzCisgICAg
ICAgIGFuZCB0aGVpciBkZWNvZGVkIHNpemUgd2lsbCBiZSBwcm9wZXJseSByZXNldCB0byAwLiBB
cyBhIHJlc3VsdCwgdGhlc2UKKyAgICAgICAgd2lsbCBiZSByZW1vdmVkIGZyb20gdGhlIE1lbW9y
eUNhY2hlJ3MgbGlzdCBvZiBsaXZlIGRlY29kZWQgcmVzb3VyY2VzLgorCisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvQml0bWFwSW1hZ2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Qml0bWFw
SW1hZ2U6OmRlc3Ryb3lEZWNvZGVkRGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpCaXRtYXBJbWFn
ZTo6ZGVzdHJveU1ldGFkYXRhQW5kTm90aWZ5KToKKyAgICAgICAgKFdlYkNvcmU6OkJpdG1hcElt
YWdlOjpkYXRhQ2hhbmdlZCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvQml0bWFwSW1h
Z2UuaDoKKwogMjAxNS0wNS0yMSAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAg
ICAgICAgIFJlZ3Jlc3Npb24ocjE3OTI5Myk6IFdlIG5vIGxvbmdlciBjYWxsIGRlc3Ryb3lEZWNv
ZGVkRGF0YSgpIG9uIENhY2hlZFJlc291cmNlcyBvbiBtZW1vcnkgcHJlc3N1cmUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0JpdG1hcEltYWdlLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0JpdG1hcEltYWdlLmNwcAppbmRleCBkY2Iz
NWQ0YjY4OTg0ZTI4YzIyZDM4M2Q1NzljYmQwOTkwMzA3ODFlLi5hMjgwOGUwYzYzOGQ0MWRmMzY2
ZGY5ZDE1YjE1YzQ5Y2QwNTY0YWI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9CaXRtYXBJbWFnZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvQml0bWFwSW1hZ2UuY3BwCkBAIC0xMzUsMTAgKzEzNSw4IEBAIHZvaWQgQml0bWFw
SW1hZ2U6OmRlc3Ryb3lEZWNvZGVkRGF0YShib29sIGRlc3Ryb3lBbGwpCiAgICAgICAgICAgICBm
cmFtZUJ5dGVzQ2xlYXJlZCArPSBmcmFtZUJ5dGVzOwogICAgIH0KIAotICAgIGRlc3Ryb3lNZXRh
ZGF0YUFuZE5vdGlmeShmcmFtZUJ5dGVzQ2xlYXJlZCk7Ci0KICAgICBtX3NvdXJjZS5jbGVhcihk
ZXN0cm95QWxsLCBjbGVhckJlZm9yZUZyYW1lLCBkYXRhKCksIG1fYWxsRGF0YVJlY2VpdmVkKTsK
LSAgICByZXR1cm47CisgICAgZGVzdHJveU1ldGFkYXRhQW5kTm90aWZ5KGZyYW1lQnl0ZXNDbGVh
cmVkLCBDbGVhcmVkU291cmNlOjpZZXMpOwogfQogCiB2b2lkIEJpdG1hcEltYWdlOjpkZXN0cm95
RGVjb2RlZERhdGFJZk5lY2Vzc2FyeShib29sIGRlc3Ryb3lBbGwpCkBAIC0xNjksNyArMTY3LDcg
QEAgdm9pZCBCaXRtYXBJbWFnZTo6ZGVzdHJveURlY29kZWREYXRhSWZOZWNlc3NhcnkoYm9vbCBk
ZXN0cm95QWxsKQogICAgICAgICBkZXN0cm95RGVjb2RlZERhdGEoZGVzdHJveUFsbCk7CiB9CiAK
LXZvaWQgQml0bWFwSW1hZ2U6OmRlc3Ryb3lNZXRhZGF0YUFuZE5vdGlmeSh1bnNpZ25lZCBmcmFt
ZUJ5dGVzQ2xlYXJlZCkKK3ZvaWQgQml0bWFwSW1hZ2U6OmRlc3Ryb3lNZXRhZGF0YUFuZE5vdGlm
eSh1bnNpZ25lZCBmcmFtZUJ5dGVzQ2xlYXJlZCwgQ2xlYXJlZFNvdXJjZSBjbGVhcmVkU291cmNl
KQogewogICAgIG1faXNTb2xpZENvbG9yID0gZmFsc2U7CiAgICAgbV9jaGVja2VkRm9yU29saWRD
b2xvciA9IGZhbHNlOwpAQCAtMTc3LDEwICsxNzUsMTMgQEAgdm9pZCBCaXRtYXBJbWFnZTo6ZGVz
dHJveU1ldGFkYXRhQW5kTm90aWZ5KHVuc2lnbmVkIGZyYW1lQnl0ZXNDbGVhcmVkKQogCiAgICAg
QVNTRVJUKG1fZGVjb2RlZFNpemUgPj0gZnJhbWVCeXRlc0NsZWFyZWQpOwogICAgIG1fZGVjb2Rl
ZFNpemUgLT0gZnJhbWVCeXRlc0NsZWFyZWQ7Ci0gICAgaWYgKGZyYW1lQnl0ZXNDbGVhcmVkID4g
MCkgeworCisgICAgLy8gQ2xlYXJpbmcgdGhlIEltYWdlU291cmNlIGRlc3Ryb3lzIHRoZSBleHRy
YSBkZWNvZGVkIGRhdGEgdXNlZCBmb3IgZGV0ZXJtaW5pbmcgaW1hZ2UgcHJvcGVydGllcy4KKyAg
ICBpZiAoY2xlYXJlZFNvdXJjZSA9PSBDbGVhcmVkU291cmNlOjpZZXMpIHsKICAgICAgICAgZnJh
bWVCeXRlc0NsZWFyZWQgKz0gbV9kZWNvZGVkUHJvcGVydGllc1NpemU7CiAgICAgICAgIG1fZGVj
b2RlZFByb3BlcnRpZXNTaXplID0gMDsKICAgICB9CisKICAgICBpZiAoZnJhbWVCeXRlc0NsZWFy
ZWQgJiYgaW1hZ2VPYnNlcnZlcigpKQogICAgICAgICBpbWFnZU9ic2VydmVyKCktPmRlY29kZWRT
aXplQ2hhbmdlZCh0aGlzLCAtc2FmZUNhc3Q8aW50PihmcmFtZUJ5dGVzQ2xlYXJlZCkpOwogfQpA
QCAtMzEzLDcgKzMxNCw3IEBAIGJvb2wgQml0bWFwSW1hZ2U6OmRhdGFDaGFuZ2VkKGJvb2wgYWxs
RGF0YVJlY2VpdmVkKQogICAgICAgICBpZiAobV9mcmFtZXNbaV0ubV9oYXZlTWV0YWRhdGEgJiYg
IW1fZnJhbWVzW2ldLm1faXNDb21wbGV0ZSkKICAgICAgICAgICAgIGZyYW1lQnl0ZXNDbGVhcmVk
ICs9IChtX2ZyYW1lc1tpXS5jbGVhcih0cnVlKSA/IGZyYW1lQnl0ZXMgOiAwKTsKICAgICB9Ci0g
ICAgZGVzdHJveU1ldGFkYXRhQW5kTm90aWZ5KGZyYW1lQnl0ZXNDbGVhcmVkKTsKKyAgICBkZXN0
cm95TWV0YWRhdGFBbmROb3RpZnkoZnJhbWVCeXRlc0NsZWFyZWQsIENsZWFyZWRTb3VyY2U6Ok5v
KTsKICNlbHNlCiAgICAgLy8gRklYTUU6IHdoeSBpcyB0aGlzIGRpZmZlcmVudCBmb3IgaU9TPwog
ICAgIGludCBkZWx0YUJ5dGVzID0gMDsKQEAgLTMyNSw3ICszMjYsNyBAQCBib29sIEJpdG1hcElt
YWdlOjpkYXRhQ2hhbmdlZChib29sIGFsbERhdGFSZWNlaXZlZCkKICAgICAgICAgICAgIG1fZGVj
b2RlZFByb3BlcnRpZXNTaXplID0gMDsKICAgICAgICAgfQogICAgIH0KLSAgICBkZXN0cm95TWV0
YWRhdGFBbmROb3RpZnkoZGVsdGFCeXRlcyk7CisgICAgZGVzdHJveU1ldGFkYXRhQW5kTm90aWZ5
KGRlbHRhQnl0ZXMsIENsZWFyZWRTb3VyY2U6Ok5vKTsKICNlbmRpZgogICAgIAogICAgIC8vIEZl
ZWQgYWxsIHRoZSBkYXRhIHdlJ3ZlIHNlZW4gc28gZmFyIHRvIHRoZSBpbWFnZSBkZWNvZGVyLgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQml0bWFwSW1hZ2Uu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0JpdG1hcEltYWdlLmgKaW5kZXgg
YjNiMmQ1MWYxMTMxZDRiOGNlNjBjNjI3Y2RiMTYyMmFmYmRjYWM3YS4uMjQwNWU0MzJhZDg1ODkw
OWJkZWQwZmRjOWQxMjNkNWVlMDE4OGYzMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvQml0bWFwSW1hZ2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9CaXRtYXBJbWFnZS5oCkBAIC0yNDMsNyArMjQzLDggQEAgcHJvdGVjdGVkOgog
ICAgIC8vIEdlbmVyYWxseSBjYWxsZWQgYnkgZGVzdHJveURlY29kZWREYXRhKCksIGRlc3Ryb3lz
IHdob2xlLWltYWdlIG1ldGFkYXRhCiAgICAgLy8gYW5kIG5vdGlmaWVzIG9ic2VydmVycyB0aGF0
IHRoZSBtZW1vcnkgZm9vdHByaW50IGhhcyAoaG9wZWZ1bGx5KQogICAgIC8vIGRlY3JlYXNlZCBi
eSB8ZnJhbWVCeXRlc0NsZWFyZWR8LgotICAgIHZvaWQgZGVzdHJveU1ldGFkYXRhQW5kTm90aWZ5
KHVuc2lnbmVkIGZyYW1lQnl0ZXNDbGVhcmVkKTsKKyAgICBlbnVtIGNsYXNzIENsZWFyZWRTb3Vy
Y2UgeyBObywgWWVzIH07CisgICAgdm9pZCBkZXN0cm95TWV0YWRhdGFBbmROb3RpZnkodW5zaWdu
ZWQgZnJhbWVCeXRlc0NsZWFyZWQsIENsZWFyZWRTb3VyY2UpOwogCiAgICAgLy8gV2hldGhlciBv
ciBub3Qgc2l6ZSBpcyBhdmFpbGFibGUgeWV0LgogICAgIGJvb2wgaXNTaXplQXZhaWxhYmxlKCk7
Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>