<?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>115792</bug_id>
          
          <creation_ts>2013-05-08 03:34:11 -0700</creation_ts>
          <short_desc>Coalesce WKView visibleRect changes</short_desc>
          <delta_ts>2013-05-08 13:02: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>WebKit2</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="Tim Horton">thorton</assigned_to>
          <cc>andersca</cc>
    
    <cc>darin</cc>
    
    <cc>sam</cc>
    
    <cc>simon.fraser</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>886270</commentid>
    <comment_count>0</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2013-05-08 03:34:11 -0700</bug_when>
    <thetext>AppKit can fiddle with the visibleRect a *lot* and call renewGState a *lot* during autolayout. We need to wait until it&apos;s settled down to inform the WebProcess of the new visibleRect, especially because in some particular cases, waiting until autolayout is done means the visibleRect doesn&apos;t change *at all*, and we can skip tons and tons of work that we would previously have done.

&lt;rdar://problem/13776842&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>886417</commentid>
    <comment_count>1</comment_count>
      <attachid>201091</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2013-05-08 12:10:18 -0700</bug_when>
    <thetext>Created attachment 201091
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>886420</commentid>
    <comment_count>2</comment_count>
      <attachid>201091</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2013-05-08 12:15:13 -0700</bug_when>
    <thetext>Comment on attachment 201091
patch

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

&gt; Source/WebKit2/UIProcess/WebPageProxy.cpp:637
&gt; +    if (m_sendViewExposedRectChangedTimer.isActive())
&gt; +        m_sendViewExposedRectChangedTimer.stop();

Can&apos;t you unconditionally call stop?

&gt; Source/WebKit2/UIProcess/WebPageProxy.h:1272
&gt; +    WebCore::Timer&lt;WebPageProxy&gt; m_sendViewExposedRectChangedTimer;

Hard to parse this name. How about m_exposedRectChangedTimer?

&gt; Source/WebKit2/UIProcess/WebPageProxy.h:1274
&gt; +    WebCore::FloatRect m_lastSentViewExposedRect;

m_lastExposedRect?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>886444</commentid>
    <comment_count>3</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2013-05-08 13:02:10 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/149761</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>201091</attachid>
            <date>2013-05-08 12:10:18 -0700</date>
            <delta_ts>2013-05-08 12:15:12 -0700</delta_ts>
            <desc>patch</desc>
            <filename>visiblerect.diff</filename>
            <type>text/plain</type>
            <size>5304</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCAxNjRmODIyLi43MDNlM2JkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzYg
QEAKKzIwMTMtMDUtMDggIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CisK
KyAgICAgICAgQ29hbGVzY2UgV0tWaWV3IHZpc2libGVSZWN0IGNoYW5nZXMKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExNTc5MgorICAgICAgICA8cmRh
cjovL3Byb2JsZW0vMTM3NzY4NDI+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgVGhlIHN5c3RlbSBjYW4gY2FsbCByZW5ld0dTdGF0ZSBtdWNoIG1vcmUg
b2Z0ZW4gdGhhbiB3ZSBhY3R1YWxseSB3YW50CisgICAgICAgIHRvIHVwZGF0ZSB0aGUgV2ViUHJv
Y2Vzcycgbm90aW9uIG9mIHRoZSBleHBvc2VkIHJlY3QuIE1vc3QgaW1wb3J0YW50bHksCisgICAg
ICAgIHdpdGhpbiBhbiBhdXRvbGF5b3V0IHBhc3MgaXQgaXMgY2FsbGVkIG1hbnkgdGltZXMsIGFu
ZCBvZnRlbiBzZWVzCisgICAgICAgIFtXS1ZpZXcgdmlzaWJsZVJlY3RdIGJlIGFuIGludGVybWVk
aWF0ZSB2YWx1ZSB3aGljaCB3aWxsIG5ldmVyIGJlCisgICAgICAgIGZsdXNoZWQgdG8gdGhlIHNj
cmVlbi4gV2Ugb25seSBjYXJlIGFib3V0IHRoZSBmaW5hbCB2YWx1ZSwgc28gd2Ugc2hvdWxkCisg
ICAgICAgIHdhaXQgdW50aWwgQXBwS2l0IGhhcyBmaW5pc2hlZCAtIHdpdGggYSB6ZXJvLWRlbGF5
IHRpbWVyIC0gdG8gaW5mb3JtIHRoZQorICAgICAgICBXZWJQcm9jZXNzIG9mIGV4cG9zZWQgcmVj
dCBjaGFuZ2VzLgorCisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6V2ViUGFnZVByb3h5KToKKyAgICAgICAgQWRkIHNl
bmRWaWV3RXhwb3NlZFJlY3RDaGFuZ2VkVGltZXIuCisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQ
cm94eTo6Y2xvc2UpOgorICAgICAgICBDYW5jZWwgc2VuZFZpZXdFeHBvc2VkUmVjdENoYW5nZWRU
aW1lciB3aGVuIHRlYXJpbmcgZG93biB0aGUgV2ViUGFnZVByb3h5LgorICAgICAgICAqIFVJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuaDoKKyAgICAgICAgKFdlYlBhZ2VQcm94eSk6CisgICAgICAgIEFk
ZCBzZW5kVmlld0V4cG9zZWRSZWN0Q2hhbmdlZFRpbWVyRmlyZWQsIHRoZSB0aW1lciBpdHNlbGYs
IGFuZCB0d28gcmVjdHM6CisgICAgICAgIHRoZSBtb3N0IHJlY2VudCBleHBvc2VkIHJlY3QgZnJv
bSB0aGUgV0tWaWV3LCBhbmQgdGhlIGxhc3Qgb25lIHdlIGFjdHVhbGx5CisgICAgICAgIHNlbnQg
YWNyb3NzIHRvIHRoZSBXZWJQcm9jZXNzLgorICAgICAgICAqIFVJUHJvY2Vzcy9tYWMvV2ViUGFn
ZVByb3h5TWFjLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnZpZXdFeHBvc2Vk
UmVjdENoYW5nZWQpOgorICAgICAgICBJbnN0ZWFkIG9mIGltbWVkaWF0ZWx5IHNlbmRpbmcgZXhw
b3NlZCByZWN0IGNoYW5nZXMgdG8gdGhlIFdlYlByb2Nlc3MsCisgICAgICAgIHN0YXJ0IGEgemVy
by1kZWxheSB0aW1lciB0byBkbyBzby4KKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojpz
ZW5kVmlld0V4cG9zZWRSZWN0Q2hhbmdlZFRpbWVyRmlyZWQpOgorICAgICAgICBPbmNlIHRoZSB6
ZXJvLWRlbGF5IHRpbWVyIGZpcmVzLCBzZW5kIHRoZSBuZXcgZXhwb3NlZCByZWN0IHRvIHRoZSBX
ZWJQcm9jZXNzLgorCiAyMDEzLTA1LTA2ICBTYW0gV2VpbmlnICA8c2FtQHdlYmtpdC5vcmc+CiAK
ICAgICAgICAgQWRkIFNQSSB0byBnZXQgYW4gYXJyYXkgb2YgYWxsIHRoZSBpbnN0YWxsZWQgcGx1
Zy1pbnMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHku
Y3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5kZXggOTJh
OWI1My4uMmI5MzVkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5j
cHAKQEAgLTMwOSw2ICszMDksOSBAQCBXZWJQYWdlUHJveHk6OldlYlBhZ2VQcm94eShQYWdlQ2xp
ZW50KiBwYWdlQ2xpZW50LCBQYXNzUmVmUHRyPFdlYlByb2Nlc3NQcm94eT4gcAogICAgICwgbV9t
ZWRpYVZvbHVtZSgxKQogICAgICwgbV9tYXlTdGFydE1lZGlhV2hlbkluV2luZG93KHRydWUpCiAg
ICAgLCBtX3dhaXRpbmdGb3JEaWRVcGRhdGVJbldpbmRvd1N0YXRlKGZhbHNlKQorI2lmIFBMQVRG
T1JNKE1BQykKKyAgICAsIG1fc2VuZFZpZXdFeHBvc2VkUmVjdENoYW5nZWRUaW1lcih0aGlzLCAm
V2ViUGFnZVByb3h5OjpzZW5kVmlld0V4cG9zZWRSZWN0Q2hhbmdlZFRpbWVyRmlyZWQpCisjZW5k
aWYKICNpZiBFTkFCTEUoUEFHRV9WSVNJQklMSVRZX0FQSSkKICAgICAsIG1fdmlzaWJpbGl0eVN0
YXRlKFBhZ2VWaXNpYmlsaXR5U3RhdGVWaXNpYmxlKQogI2VuZGlmCkBAIC02MjksNiArNjMyLDEx
IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpjbG9zZSgpCiAKICAgICBtX2RyYXdpbmdBcmVhID0gbnVs
bHB0cjsKIAorI2lmIFBMQVRGT1JNKE1BQykKKyAgICBpZiAobV9zZW5kVmlld0V4cG9zZWRSZWN0
Q2hhbmdlZFRpbWVyLmlzQWN0aXZlKCkpCisgICAgICAgIG1fc2VuZFZpZXdFeHBvc2VkUmVjdENo
YW5nZWRUaW1lci5zdG9wKCk7CisjZW5kaWYKKwogICAgIG1fcHJvY2Vzcy0+c2VuZChNZXNzYWdl
czo6V2ViUGFnZTo6Q2xvc2UoKSwgbV9wYWdlSUQpOwogICAgIG1fcHJvY2Vzcy0+cmVtb3ZlV2Vi
UGFnZShtX3BhZ2VJRCk7CiAgICAgbV9wcm9jZXNzLT5yZW1vdmVNZXNzYWdlUmVjZWl2ZXIoTWVz
c2FnZXM6OldlYlBhZ2VQcm94eTo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCBtX3BhZ2VJRCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmggYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKaW5kZXggNzFiZjM1OC4uOThmYWY3
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApAQCAtMzg4LDYgKzM4
OCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHVwZGF0ZVdpbmRvd0lzVmlzaWJsZShib29sIHdpbmRv
d0lzVmlzaWJsZSk7CiAgICAgdm9pZCB3aW5kb3dBbmRWaWV3RnJhbWVzQ2hhbmdlZChjb25zdCBX
ZWJDb3JlOjpGbG9hdFJlY3QmIHZpZXdGcmFtZUluV2luZG93Q29vcmRpbmF0ZXMsIGNvbnN0IFdl
YkNvcmU6OkZsb2F0UG9pbnQmIGFjY2Vzc2liaWxpdHlWaWV3Q29vcmRpbmF0ZXMpOwogICAgIHZv
aWQgdmlld0V4cG9zZWRSZWN0Q2hhbmdlZChjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIGV4cG9z
ZWRSZWN0KTsKKyAgICB2b2lkIHNlbmRWaWV3RXhwb3NlZFJlY3RDaGFuZ2VkVGltZXJGaXJlZChX
ZWJDb3JlOjpUaW1lcjxXZWJQYWdlUHJveHk+Kik7CiAgICAgdm9pZCBzZXRNYWluRnJhbWVJc1Nj
cm9sbGFibGUoYm9vbCk7CiAKICAgICB2b2lkIHNldENvbXBvc2l0aW9uKGNvbnN0IFN0cmluZyYg
dGV4dCwgVmVjdG9yPFdlYkNvcmU6OkNvbXBvc2l0aW9uVW5kZXJsaW5lPiB1bmRlcmxpbmVzLCB1
aW50NjRfdCBzZWxlY3Rpb25TdGFydCwgdWludDY0X3Qgc2VsZWN0aW9uRW5kLCB1aW50NjRfdCBy
ZXBsYWNlbWVudFJhbmdlU3RhcnQsIHVpbnQ2NF90IHJlcGxhY2VtZW50UmFuZ2VFbmQpOwpAQCAt
MTI2Nyw2ICsxMjY4LDEyIEBAIHByaXZhdGU6CiAKICAgICBib29sIG1fd2FpdGluZ0ZvckRpZFVw
ZGF0ZUluV2luZG93U3RhdGU7CiAKKyNpZiBQTEFURk9STShNQUMpCisgICAgV2ViQ29yZTo6VGlt
ZXI8V2ViUGFnZVByb3h5PiBtX3NlbmRWaWV3RXhwb3NlZFJlY3RDaGFuZ2VkVGltZXI7CisgICAg
V2ViQ29yZTo6RmxvYXRSZWN0IG1fdmlld0V4cG9zZWRSZWN0OworICAgIFdlYkNvcmU6OkZsb2F0
UmVjdCBtX2xhc3RTZW50Vmlld0V4cG9zZWRSZWN0OworI2VuZGlmCisKICNpZiBQTEFURk9STShR
VCkKICAgICBXVEY6Okhhc2hTZXQ8UmVmUHRyPFF0UmVmQ291bnRlZE5ldHdvcmtSZXF1ZXN0RGF0
YT4gPiBtX2FwcGxpY2F0aW9uU2NoZW1lUmVxdWVzdHM7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvV2ViUGFnZVByb3h5TWFjLm1tIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL21hYy9XZWJQYWdlUHJveHlNYWMubW0KaW5kZXggZDk0Y2VkYy4uZWU1
YzAzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9XZWJQYWdlUHJv
eHlNYWMubW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9XZWJQYWdlUHJveHlN
YWMubW0KQEAgLTE1NSw3ICsxNTUsMjIgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnZpZXdFeHBvc2Vk
UmVjdENoYW5nZWQoY29uc3QgRmxvYXRSZWN0JiBleHBvc2VkUmVjdCkKICAgICBpZiAoIWlzVmFs
aWQoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgcHJvY2VzcygpLT5zZW5kKE1lc3NhZ2VzOjpX
ZWJQYWdlOjpWaWV3RXhwb3NlZFJlY3RDaGFuZ2VkKGV4cG9zZWRSZWN0KSwgbV9wYWdlSUQpOwor
ICAgIG1fdmlld0V4cG9zZWRSZWN0ID0gZXhwb3NlZFJlY3Q7CisKKyAgICBpZiAoIW1fc2VuZFZp
ZXdFeHBvc2VkUmVjdENoYW5nZWRUaW1lci5pc0FjdGl2ZSgpKQorICAgICAgICBtX3NlbmRWaWV3
RXhwb3NlZFJlY3RDaGFuZ2VkVGltZXIuc3RhcnRPbmVTaG90KDApOworfQorCit2b2lkIFdlYlBh
Z2VQcm94eTo6c2VuZFZpZXdFeHBvc2VkUmVjdENoYW5nZWRUaW1lckZpcmVkKFRpbWVyPFdlYlBh
Z2VQcm94eT4qKQoreworICAgIGlmICghaXNWYWxpZCgpKQorICAgICAgICByZXR1cm47CisKKyAg
ICBpZiAobV92aWV3RXhwb3NlZFJlY3QgPT0gbV9sYXN0U2VudFZpZXdFeHBvc2VkUmVjdCkKKyAg
ICAgICAgcmV0dXJuOworCisgICAgcHJvY2VzcygpLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpW
aWV3RXhwb3NlZFJlY3RDaGFuZ2VkKG1fdmlld0V4cG9zZWRSZWN0KSwgbV9wYWdlSUQpOworICAg
IG1fbGFzdFNlbnRWaWV3RXhwb3NlZFJlY3QgPSBtX3ZpZXdFeHBvc2VkUmVjdDsKIH0KIAogdm9p
ZCBXZWJQYWdlUHJveHk6OnNldE1haW5GcmFtZUlzU2Nyb2xsYWJsZShib29sIGlzU2Nyb2xsYWJs
ZSkK
</data>
<flag name="review"
          id="222431"
          type_id="1"
          status="+"
          setter="simon.fraser"
    />
          </attachment>
      

    </bug>

</bugzilla>