<?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>99990</bug_id>
          
          <creation_ts>2012-10-22 06:16:58 -0700</creation_ts>
          <short_desc>sCurrentPaintTimeStamp is not initialized when FrameView::paintContents returns in the middle</short_desc>
          <delta_ts>2012-11-02 23:29:53 -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>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>Performance</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="KyungTae Kim">ktf.kim</reporter>
          <assigned_to name="KyungTae Kim">ktf.kim</assigned_to>
          <cc>beidson</cc>
    
    <cc>darin</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>koivisto</cc>
    
    <cc>laszlo.gombos</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>747482</commentid>
    <comment_count>0</comment_count>
    <who name="KyungTae Kim">ktf.kim</who>
    <bug_when>2012-10-22 06:16:58 -0700</bug_when>
    <thetext>If it is TopLevelPainter, sCurrentPaintTimeStamp is set as currentTime() in the top of FrameView::paintContents,
and is reset as 0 in the bottom of the same function.
But, when the FrameView::paintContents returns in the middle, it is not reset as 0, and the value will be not updated anymore.

That value is used for MemoryCache and there was a bug that the MemoryCache is not pruned because that value is not reset.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>748035</commentid>
    <comment_count>1</comment_count>
      <attachid>170014</attachid>
    <who name="KyungTae Kim">ktf.kim</who>
    <bug_when>2012-10-22 16:14:07 -0700</bug_when>
    <thetext>Created attachment 170014
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>748154</commentid>
    <comment_count>2</comment_count>
      <attachid>170014</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2012-10-22 18:22:05 -0700</bug_when>
    <thetext>Comment on attachment 170014
Patch

(Not your fault, but why is sCurrentPaintTimeStamp a time instead of just a boolean?)

Seems to me that a better fix is to set up isTopLevelPainter after the early returns, rather than adding these two new exit sequences.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>748163</commentid>
    <comment_count>3</comment_count>
    <who name="KyungTae Kim">ktf.kim</who>
    <bug_when>2012-10-22 18:37:33 -0700</bug_when>
    <thetext>For example, sCurrentPaintTimeStamp is referenced with currentPaintTimeStamp() in MemoryCache::::pruneLiveResourcesToSize to measure elapsedTime.

void MemoryCache::pruneLiveResourcesToSize(unsigned targetSize)
{
    double currentTime = FrameView::currentPaintTimeStamp();
...
    double elapsedTime = currentTime - current-&gt;m_lastDecodedAccessTime;
    if (elapsedTime &lt; cMinDelayBeforeLiveDecodedPrune)
        return;
    current-&gt;destroyDecodedData();

So, this value need to be a time, 
and this value should not be initialized before the paintContents is exited.
(because it can be accessed by other functions during painting)

I considered using some constructor/destructor for initializing it automatically on exit, but It will become too complex.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>755985</commentid>
    <comment_count>4</comment_count>
      <attachid>171793</attachid>
    <who name="KyungTae Kim">ktf.kim</who>
    <bug_when>2012-11-01 01:40:08 -0700</bug_when>
    <thetext>Created attachment 171793
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>757908</commentid>
    <comment_count>5</comment_count>
      <attachid>171793</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-02 23:29:48 -0700</bug_when>
    <thetext>Comment on attachment 171793
Patch

Clearing flags on attachment: 171793

Committed r133391: &lt;http://trac.webkit.org/changeset/133391&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>757909</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-02 23:29:53 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>170014</attachid>
            <date>2012-10-22 16:14:07 -0700</date>
            <delta_ts>2012-11-01 01:40:02 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-99990-20121023081245.patch</filename>
            <type>text/plain</type>
            <size>1644</size>
            <attacher name="KyungTae Kim">ktf.kim</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMyMDY0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODIwNjgwYjAzZWFhMTc3
YTAyNDkxODJkODAxOTc5M2EzNTI5ZGRmNC4uYmNhMTVmODUyODNlOTkwOTJjM2NjZmRkYzE3YmZj
ZDU0MWQ0NjExMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDEyLTEwLTIyICBLeXVu
Z1RhZSBLaW0gIDxrdGYua2ltQHNhbXN1bmcuY29tPgorCisgICAgICAgIHNDdXJyZW50UGFpbnRU
aW1lU3RhbXAgaXMgbm90IGluaXRpYWxpemVkIHdoZW4gRnJhbWVWaWV3OjpwYWludENvbnRlbnRz
IHJldHVybnMgaW4gdGhlIG1pZGRsZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9OTk5OTAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBBZGQgaW5pdGlhbGl6YXRpb24gY29kZSBmb3Igc0N1cnJlbnRQYWludFRp
bWVTdGFtcAorICAgICAgICB3aGVuIHRoZSBGcmFtZVZpZXc6OnBhaW50Q29udGVudHMgaXMgcmV0
dXJuZWQgaW4gdGhlIG1pZGRsZSBvZiB0aGUgZnVuY3Rpb24uCisKKyAgICAgICAgKiBwYWdlL0Zy
YW1lVmlldy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVZpZXc6OnBhaW50Q29udGVudHMp
OgorCiAyMDEyLTEwLTIyICBLZWlzaGkgSGF0dG9yaSAgPGtlaXNoaUB3ZWJraXQub3JnPgogCiAg
ICAgICAgIFJlbW92ZSBtb250aEZvcm1hdEluTERNTApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGFnZS9GcmFtZVZpZXcuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3Bw
CmluZGV4IDJkMzEyYTMxYTJkNjEwOGY3NGU2YWZmMzM4MzRhZGE3MDgyMTliNWEuLjMwMGI4YzQy
MjhiZGRhMDUwOWE1OTRiOWUzZjM2ZTkyOGU1MjM0MWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmll
dy5jcHAKQEAgLTMyMDMsMTIgKzMyMDMsMTcgQEAgdm9pZCBGcmFtZVZpZXc6OnBhaW50Q29udGVu
dHMoR3JhcGhpY3NDb250ZXh0KiBwLCBjb25zdCBJbnRSZWN0JiByZWN0KQogICAgIFJlbmRlclZp
ZXcqIHJvb3QgPSByb290UmVuZGVyZXIodGhpcyk7CiAgICAgaWYgKCFyb290KSB7CiAgICAgICAg
IExPR19FUlJPUigiY2FsbGVkIEZyYW1lVmlldzo6cGFpbnQgd2l0aCBuaWwgcmVuZGVyZXIiKTsK
KyAgICAgICAgaWYgKGlzVG9wTGV2ZWxQYWludGVyKQorICAgICAgICAgICAgc0N1cnJlbnRQYWlu
dFRpbWVTdGFtcCA9IDA7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKICAgICBBU1NFUlQoIW5l
ZWRzTGF5b3V0KCkpOwotICAgIGlmIChuZWVkc0xheW91dCgpKQorICAgIGlmIChuZWVkc0xheW91
dCgpKSB7CisgICAgICAgIGlmIChpc1RvcExldmVsUGFpbnRlcikKKyAgICAgICAgICAgIHNDdXJy
ZW50UGFpbnRUaW1lU3RhbXAgPSAwOwogICAgICAgICByZXR1cm47CisgICAgfQogCiAgICAgRm9u
dENhY2hlUHVyZ2VQcmV2ZW50ZXIgZm9udENhY2hlUHVyZ2VQcmV2ZW50ZXI7CiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>171793</attachid>
            <date>2012-11-01 01:40:08 -0700</date>
            <delta_ts>2012-11-02 23:29:48 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-99990-20121101173830.patch</filename>
            <type>text/plain</type>
            <size>1896</size>
            <attacher name="KyungTae Kim">ktf.kim</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMzMTM2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTY3M2EyNGM0YjVjNjg4
NmZjMTdmZDM4MjUwNzlkZmM2YWU4YzZkNC4uZTQ1MTRmZGQ4YjhiMjQxMzFlNzkwYzk3ZTQ0Zjgx
ZjIyZDlkNTI4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDEyLTExLTAxICBLeXVu
Z1RhZSBLaW0gIDxrdGYua2ltQHNhbXN1bmcuY29tPgorCisgICAgICAgIHNDdXJyZW50UGFpbnRU
aW1lU3RhbXAgaXMgbm90IGluaXRpYWxpemVkIHdoZW4gRnJhbWVWaWV3OjpwYWludENvbnRlbnRz
IHJldHVybnMgaW4gdGhlIG1pZGRsZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9OTk5OTAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBNb3ZlIGluaXRpYWxpemF0aW9uIGNvZGUgZm9yIHNDdXJyZW50UGFpbnRU
aW1lU3RhbXAgdG8gdGhlIGJlbG93IG9mIGVhcmx5IHJldHVybnMsCisgICAgICAgIGJlY2F1c2Ug
aXQgd2FzIG5vdCByZXNldCBhZnRlciBlYXJseSByZXR1cm4uCisKKyAgICAgICAgKiBwYWdlL0Zy
YW1lVmlldy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVZpZXc6OnBhaW50Q29udGVudHMp
OgorCiAyMDEyLTExLTAxICBLZW50IFRhbXVyYSAgPHRrZW50QGNocm9taXVtLm9yZz4KIAogICAg
ICAgICBSZW1vdmUgdW51c2VkIExvY2FsZTo6cGFyc2VEYXRlVGltZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFt
ZVZpZXcuY3BwCmluZGV4IGM4ZjljYjIxM2QxNmNkNzkyMTVjNTI1OWRkYWRkYWY0N2IzOTUzNGYu
LjU0OWRkN2U2YzY0MGMxZTQ1NjdhOGI5OWZlNWNiZjJjMjI1YzQ1NGIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0ZyYW1lVmlldy5jcHAKQEAgLTMxODMsMTAgKzMxODMsNiBAQCB2b2lkIEZyYW1lVmlldzo6cGFp
bnRDb250ZW50cyhHcmFwaGljc0NvbnRleHQqIHAsIGNvbnN0IEludFJlY3QmIHJlY3QpCiAgICAg
ICAgIHAtPmZpbGxSZWN0KHJlY3QsIENvbG9yKDB4RkYsIDAsIDApLCBDb2xvclNwYWNlRGV2aWNl
UkdCKTsKICNlbmRpZgogCi0gICAgYm9vbCBpc1RvcExldmVsUGFpbnRlciA9ICFzQ3VycmVudFBh
aW50VGltZVN0YW1wOwotICAgIGlmIChpc1RvcExldmVsUGFpbnRlcikKLSAgICAgICAgc0N1cnJl
bnRQYWludFRpbWVTdGFtcCA9IGN1cnJlbnRUaW1lKCk7Ci0gICAgCiAgICAgUmVuZGVyVmlldyog
cm9vdCA9IHJvb3RSZW5kZXJlcih0aGlzKTsKICAgICBpZiAoIXJvb3QpIHsKICAgICAgICAgTE9H
X0VSUk9SKCJjYWxsZWQgRnJhbWVWaWV3OjpwYWludCB3aXRoIG5pbCByZW5kZXJlciIpOwpAQCAt
MzE5Nyw2ICszMTkzLDEwIEBAIHZvaWQgRnJhbWVWaWV3OjpwYWludENvbnRlbnRzKEdyYXBoaWNz
Q29udGV4dCogcCwgY29uc3QgSW50UmVjdCYgcmVjdCkKICAgICBpZiAobmVlZHNMYXlvdXQoKSkK
ICAgICAgICAgcmV0dXJuOwogCisgICAgYm9vbCBpc1RvcExldmVsUGFpbnRlciA9ICFzQ3VycmVu
dFBhaW50VGltZVN0YW1wOworICAgIGlmIChpc1RvcExldmVsUGFpbnRlcikKKyAgICAgICAgc0N1
cnJlbnRQYWludFRpbWVTdGFtcCA9IGN1cnJlbnRUaW1lKCk7CisKICAgICBGb250Q2FjaGVQdXJn
ZVByZXZlbnRlciBmb250Q2FjaGVQdXJnZVByZXZlbnRlcjsKIAogI2lmIFVTRShBQ0NFTEVSQVRF
RF9DT01QT1NJVElORykK
</data>

          </attachment>
      

    </bug>

</bugzilla>