<?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>86651</bug_id>
          
          <creation_ts>2012-05-16 10:23:40 -0700</creation_ts>
          <short_desc>FrameView::scrollContentsFastPath should use painted area to determine whether to drop out of the fast path</short_desc>
          <delta_ts>2012-05-16 13:54:52 -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>Layout and Rendering</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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Tim Horton">thorton</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>andersca</cc>
    
    <cc>benjamin</cc>
    
    <cc>enne</cc>
    
    <cc>manyoso</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>tonikitoo</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>625600</commentid>
    <comment_count>0</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2012-05-16 10:23:40 -0700</bug_when>
    <thetext>&lt;rdar://problem/11459243&gt;

FrameView::scrollContentsFastPath has a fixedObjectThreshold of 5: if there are more than 5 fixed-positioning elements on the page, it will fall out of the fast (blit) path and repaint everything.

This doesn&apos;t make sense - causing repaints of the whole page just because someone used 5 (or 10, or whatever) tiny fixed-position elements is wasteful (and vice versa, blitting the whole window and then just going ahead and redrawing it all because someone used only one enormous fixed-position element also doesn&apos;t make sense).

We can make trivial use of regions and threshold based on percentage of the view that will need to be repainted by fixed-position elements.

I&apos;ve tested a few different thresholds with an internal test; 50% seems to work relatively well, but the ideal value is hard to determine and likely depends on hardware.

I have a patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>625607</commentid>
    <comment_count>1</comment_count>
      <attachid>142292</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2012-05-16 10:29:48 -0700</bug_when>
    <thetext>Created attachment 142292
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>625691</commentid>
    <comment_count>2</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2012-05-16 11:41:47 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/117313</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>625731</commentid>
    <comment_count>3</comment_count>
    <who name="Adrienne Walker">enne</who>
    <bug_when>2012-05-16 12:23:10 -0700</bug_when>
    <thetext>Ooh, that&apos;s excellent.  That seems like a much better heuristic.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>142292</attachid>
            <date>2012-05-16 10:29:48 -0700</date>
            <delta_ts>2012-05-16 10:54:46 -0700</delta_ts>
            <desc>patch</desc>
            <filename>scrolling.diff</filename>
            <type>text/plain</type>
            <size>5764</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCAyNjQ1Y2VmLi5kOWRhNzNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjYg
QEAKKzIwMTItMDUtMTYgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CisK
KyAgICAgICAgRnJhbWVWaWV3OjpzY3JvbGxDb250ZW50c0Zhc3RQYXRoIHNob3VsZCB1c2UgcGFp
bnRlZCBhcmVhIHRvIGRldGVybWluZSB3aGV0aGVyIHRvIGRyb3Agb3V0IG9mIHRoZSBmYXN0IHBh
dGgKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg2NjUx
CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8xMTQ1OTI0Mz4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBQcmV2aW91c2x5LCB3ZSBkZWNpZGVkIHRvIGZh
bGwgb3V0IG9mIHRoZSBmYXN0IHNjcm9sbGluZyBwYXRoIGJ5IHRoZSBudW1iZXIgb2YgZml4ZWQt
cG9zaXRpb24gZWxlbWVudHMKKyAgICAgICAgb24gdGhlIHBhZ2UuIFRoaXMgd2FzIGxlc3MgdGhh
biBpZGVhbCBpZiBhIHNpbmdsZSBmaXhlZCBwb3NpdGlvbiBlbGVtZW50IHRvb2sgdXAgYSBzaWdu
aWZpY2FudCBwb3J0aW9uCisgICAgICAgIG9mIHRoZSBwYWdlLCBvciBpZiB0aGVyZSB3ZXJlIG1h
bnkgc21hbGwsIGNoZWFwLXRvLXBhaW50IGZpeGVkIGVsZW1lbnRzLgorCisgICAgICAgIEluc3Rl
YWQsIHdlIHNob3VsZCB1c2UgdGhlIGZhc3QgcGF0aCBpZiBsZXNzIHRoYW4gNTAlIG9mIHRoZSBw
YWdlIHdpbGwgYmUgcmVwYWludGVkIGJ5IGZpeGVkLXBvc2l0aW9uCisgICAgICAgIGVsZW1lbnRz
LCBhbmQgb3RoZXJ3aXNlIGZhbGwgYmFjayB0byB0aGUgc2xvdyBwYXRoLgorCisgICAgICAgIEkn
dmUgdGVzdGVkIGEgZmV3IGRpZmZlcmVudCB0aHJlc2hvbGRzIHdpdGggYW4gaW50ZXJuYWwgdGVz
dDsgNTAlIHNlZW1zIHRvIHdvcmsgcmVsYXRpdmVseSB3ZWxsLAorICAgICAgICBidXQgdGhlIGlk
ZWFsIHZhbHVlIGlzIGhhcmQgdG8gZGV0ZXJtaW5lIGFuZCBsaWtlbHkgZGVwZW5kcyBvbiBoYXJk
d2FyZS4KKworICAgICAgICBObyBuZXcgdGVzdHMsIHBlcmZvcm1hbmNlIGltcHJvdmVtZW50IHdp
dGggZmV3IGxhcmdlIGZpeGVkLXBvc2l0aW9uIG9iamVjdHMgb3IgbWFueSBzbWFsbCBvbmVzLgor
CisgICAgICAgICogcGFnZS9GcmFtZVZpZXcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVW
aWV3OjpzY3JvbGxDb250ZW50c0Zhc3RQYXRoKToKKwogMjAxMi0wNS0xNSAgSWdvciBPbGl2ZWly
YSAgPGlnb3Iub0BzaXNhLnNhbXN1bmcuY29tPgogCiAgICAgICAgIHJlZ3Jlc3Npb24oMTExNjM5
KTogSXNzdWUgd2l0aCBzaW11bHRhbmVvdXMgQ1NTIGFuaW1hdGlvbnMKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJh
bWVWaWV3LmNwcAppbmRleCA3NGVkZDMzLi4wZjNmYzZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZp
ZXcuY3BwCkBAIC0xNDU0LDggKzE0NTQsNiBAQCBJbnRQb2ludCBGcmFtZVZpZXc6OmN1cnJlbnRN
b3VzZVBvc2l0aW9uKCkgY29uc3QKIAogYm9vbCBGcmFtZVZpZXc6OnNjcm9sbENvbnRlbnRzRmFz
dFBhdGgoY29uc3QgSW50U2l6ZSYgc2Nyb2xsRGVsdGEsIGNvbnN0IEludFJlY3QmIHJlY3RUb1Nj
cm9sbCwgY29uc3QgSW50UmVjdCYgY2xpcFJlY3QpCiB7Ci0gICAgY29uc3Qgc2l6ZV90IGZpeGVk
T2JqZWN0VGhyZXNob2xkID0gNTsKLQogICAgIFJlbmRlckJsb2NrOjpQb3NpdGlvbmVkT2JqZWN0
c0xpc3RIYXNoU2V0KiBwb3NpdGlvbmVkT2JqZWN0cyA9IDA7CiAgICAgaWYgKFJlbmRlclZpZXcq
IHJvb3QgPSByb290UmVuZGVyZXIodGhpcykpCiAgICAgICAgIHBvc2l0aW9uZWRPYmplY3RzID0g
cm9vdC0+cG9zaXRpb25lZE9iamVjdHMoKTsKQEAgLTE0NjgsOCArMTQ2Niw3IEBAIGJvb2wgRnJh
bWVWaWV3OjpzY3JvbGxDb250ZW50c0Zhc3RQYXRoKGNvbnN0IEludFNpemUmIHNjcm9sbERlbHRh
LCBjb25zdCBJbnRSZWN0CiAgICAgY29uc3QgYm9vbCBpc0NvbXBvc2l0ZWRDb250ZW50TGF5ZXIg
PSBjb250ZW50c0luQ29tcG9zaXRlZExheWVyKCk7CiAKICAgICAvLyBHZXQgdGhlIHJlY3RzIG9m
IHRoZSBmaXhlZCBvYmplY3RzIHZpc2libGUgaW4gdGhlIHJlY3RUb1Njcm9sbAotICAgIFZlY3Rv
cjxJbnRSZWN0LCBmaXhlZE9iamVjdFRocmVzaG9sZD4gc3ViUmVjdFRvVXBkYXRlOwotICAgIGJv
b2wgdXBkYXRlSW52YWxpZGF0ZWRTdWJSZWN0ID0gdHJ1ZTsKKyAgICBSZWdpb24gcmVnaW9uVG9V
cGRhdGU7CiAgICAgUmVuZGVyQmxvY2s6OlBvc2l0aW9uZWRPYmplY3RzTGlzdEhhc2hTZXQ6OmNv
bnN0X2l0ZXJhdG9yIGVuZCA9IHBvc2l0aW9uZWRPYmplY3RzLT5lbmQoKTsKICAgICBmb3IgKFJl
bmRlckJsb2NrOjpQb3NpdGlvbmVkT2JqZWN0c0xpc3RIYXNoU2V0Ojpjb25zdF9pdGVyYXRvciBp
dCA9IHBvc2l0aW9uZWRPYmplY3RzLT5iZWdpbigpOyBpdCAhPSBlbmQ7ICsraXQpIHsKICAgICAg
ICAgUmVuZGVyQm94KiByZW5kZXJCb3ggPSAqaXQ7CkBAIC0xNDgzLDQ1ICsxNDgwLDQwIEBAIGJv
b2wgRnJhbWVWaWV3OjpzY3JvbGxDb250ZW50c0Zhc3RQYXRoKGNvbnN0IEludFNpemUmIHNjcm9s
bERlbHRhLCBjb25zdCBJbnRSZWN0CiAgICAgICAgIHVwZGF0ZVJlY3QgPSBjb250ZW50c1RvUm9v
dFZpZXcodXBkYXRlUmVjdCk7CiAgICAgICAgIGlmICghaXNDb21wb3NpdGVkQ29udGVudExheWVy
ICYmIGNsaXBzUmVwYWludHMoKSkKICAgICAgICAgICAgIHVwZGF0ZVJlY3QuaW50ZXJzZWN0KHJl
Y3RUb1Njcm9sbCk7Ci0gICAgICAgIGlmICghdXBkYXRlUmVjdC5pc0VtcHR5KCkpIHsKLSAgICAg
ICAgICAgIGlmIChzdWJSZWN0VG9VcGRhdGUuc2l6ZSgpID49IGZpeGVkT2JqZWN0VGhyZXNob2xk
KSB7Ci0gICAgICAgICAgICAgICAgdXBkYXRlSW52YWxpZGF0ZWRTdWJSZWN0ID0gZmFsc2U7Ci0g
ICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBzdWJSZWN0
VG9VcGRhdGUuYXBwZW5kKHVwZGF0ZVJlY3QpOwotICAgICAgICB9CisgICAgICAgIGlmICghdXBk
YXRlUmVjdC5pc0VtcHR5KCkpCisgICAgICAgICAgICByZWdpb25Ub1VwZGF0ZS51bml0ZSh1cGRh
dGVSZWN0KTsKICAgICB9CiAKLSAgICAvLyBTY3JvbGwgdGhlIHZpZXcKLSAgICBpZiAodXBkYXRl
SW52YWxpZGF0ZWRTdWJSZWN0KSB7Ci0gICAgICAgIC8vIDEpIHNjcm9sbAotICAgICAgICBob3N0
V2luZG93KCktPnNjcm9sbChzY3JvbGxEZWx0YSwgcmVjdFRvU2Nyb2xsLCBjbGlwUmVjdCk7Cisg
ICAgLy8gVGhlIGFyZWEgdG8gYmUgcGFpbnRlZCBieSBmaXhlZCBvYmplY3RzIGV4Y2VlZHMgNTAl
IG9mIHRoZSBhcmVhIG9mIHRoZSB2aWV3LCB3ZSBjYW5ub3QgdXNlIHRoZSBmYXN0IHBhdGguCisg
ICAgaWYgKHJlZ2lvblRvVXBkYXRlLnRvdGFsQXJlYSgpID4gKGNsaXBSZWN0LndpZHRoKCkgKiBj
bGlwUmVjdC5oZWlnaHQoKSAqIDAuNSkpCisgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgICAg
ICAvLyAyKSB1cGRhdGUgdGhlIGFyZWEgb2YgZml4ZWQgb2JqZWN0cyB0aGF0IGhhcyBiZWVuIGlu
dmFsaWRhdGVkCi0gICAgICAgIHNpemVfdCBmaXhPYmplY3RzQ291bnQgPSBzdWJSZWN0VG9VcGRh
dGUuc2l6ZSgpOwotICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGZpeE9iamVjdHNDb3Vu
dDsgKytpKSB7Ci0gICAgICAgICAgICBJbnRSZWN0IHVwZGF0ZVJlY3QgPSBzdWJSZWN0VG9VcGRh
dGVbaV07Ci0gICAgICAgICAgICBJbnRSZWN0IHNjcm9sbGVkUmVjdCA9IHVwZGF0ZVJlY3Q7Ci0g
ICAgICAgICAgICBzY3JvbGxlZFJlY3QubW92ZShzY3JvbGxEZWx0YSk7Ci0gICAgICAgICAgICB1
cGRhdGVSZWN0LnVuaXRlKHNjcm9sbGVkUmVjdCk7CisgICAgLy8gMSkgc2Nyb2xsCisgICAgaG9z
dFdpbmRvdygpLT5zY3JvbGwoc2Nyb2xsRGVsdGEsIHJlY3RUb1Njcm9sbCwgY2xpcFJlY3QpOwor
CisgICAgLy8gMikgdXBkYXRlIHRoZSBhcmVhIG9mIGZpeGVkIG9iamVjdHMgdGhhdCBoYXMgYmVl
biBpbnZhbGlkYXRlZAorICAgIFZlY3RvcjxJbnRSZWN0PiBzdWJSZWN0c1RvVXBkYXRlID0gcmVn
aW9uVG9VcGRhdGUucmVjdHMoKTsKKyAgICBzaXplX3QgZml4T2JqZWN0c0NvdW50ID0gc3ViUmVj
dHNUb1VwZGF0ZS5zaXplKCk7CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBmaXhPYmplY3Rz
Q291bnQ7ICsraSkgeworICAgICAgICBJbnRSZWN0IHVwZGF0ZVJlY3QgPSBzdWJSZWN0c1RvVXBk
YXRlW2ldOworICAgICAgICBJbnRSZWN0IHNjcm9sbGVkUmVjdCA9IHVwZGF0ZVJlY3Q7CisgICAg
ICAgIHNjcm9sbGVkUmVjdC5tb3ZlKHNjcm9sbERlbHRhKTsKKyAgICAgICAgdXBkYXRlUmVjdC51
bml0ZShzY3JvbGxlZFJlY3QpOwogI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKLSAg
ICAgICAgICAgIGlmIChpc0NvbXBvc2l0ZWRDb250ZW50TGF5ZXIpIHsKLSAgICAgICAgICAgICAg
ICB1cGRhdGVSZWN0ID0gcm9vdFZpZXdUb0NvbnRlbnRzKHVwZGF0ZVJlY3QpOwotICAgICAgICAg
ICAgICAgIFJlbmRlclZpZXcqIHJvb3QgPSByb290UmVuZGVyZXIodGhpcyk7Ci0gICAgICAgICAg
ICAgICAgQVNTRVJUKHJvb3QpOwotICAgICAgICAgICAgICAgIHJvb3QtPmxheWVyKCktPnNldEJh
Y2tpbmdOZWVkc1JlcGFpbnRJblJlY3QodXBkYXRlUmVjdCk7Ci0gICAgICAgICAgICAgICAgY29u
dGludWU7Ci0gICAgICAgICAgICB9Ci0jZW5kaWYKLSAgICAgICAgICAgIGlmIChjbGlwc1JlcGFp
bnRzKCkpCi0gICAgICAgICAgICAgICAgdXBkYXRlUmVjdC5pbnRlcnNlY3QocmVjdFRvU2Nyb2xs
KTsKLSAgICAgICAgICAgIGhvc3RXaW5kb3coKS0+aW52YWxpZGF0ZUNvbnRlbnRzQW5kUm9vdFZp
ZXcodXBkYXRlUmVjdCwgZmFsc2UpOworICAgICAgICBpZiAoaXNDb21wb3NpdGVkQ29udGVudExh
eWVyKSB7CisgICAgICAgICAgICB1cGRhdGVSZWN0ID0gcm9vdFZpZXdUb0NvbnRlbnRzKHVwZGF0
ZVJlY3QpOworICAgICAgICAgICAgUmVuZGVyVmlldyogcm9vdCA9IHJvb3RSZW5kZXJlcih0aGlz
KTsKKyAgICAgICAgICAgIEFTU0VSVChyb290KTsKKyAgICAgICAgICAgIHJvb3QtPmxheWVyKCkt
PnNldEJhY2tpbmdOZWVkc1JlcGFpbnRJblJlY3QodXBkYXRlUmVjdCk7CisgICAgICAgICAgICBj
b250aW51ZTsKICAgICAgICAgfQotICAgICAgICByZXR1cm4gdHJ1ZTsKKyNlbmRpZgorICAgICAg
ICBpZiAoY2xpcHNSZXBhaW50cygpKQorICAgICAgICAgICAgdXBkYXRlUmVjdC5pbnRlcnNlY3Qo
cmVjdFRvU2Nyb2xsKTsKKyAgICAgICAgaG9zdFdpbmRvdygpLT5pbnZhbGlkYXRlQ29udGVudHNB
bmRSb290Vmlldyh1cGRhdGVSZWN0LCBmYWxzZSk7CiAgICAgfQogCi0gICAgLy8gdGhlIG51bWJl
ciBvZiBmaXhlZCBvYmplY3RzIGV4Y2VlZCB0aGUgdGhyZXNob2xkLCB3ZSBjYW5ub3QgdXNlIHRo
ZSBmYXN0IHBhdGgKLSAgICByZXR1cm4gZmFsc2U7CisgICAgcmV0dXJuIHRydWU7CiB9CiAKIHZv
aWQgRnJhbWVWaWV3OjpzY3JvbGxDb250ZW50c1Nsb3dQYXRoKGNvbnN0IEludFJlY3QmIHVwZGF0
ZVJlY3QpCg==
</data>
<flag name="review"
          id="148574"
          type_id="1"
          status="+"
          setter="simon.fraser"
    />
          </attachment>
      

    </bug>

</bugzilla>