<?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>114440</bug_id>
          
          <creation_ts>2013-04-11 07:12:03 -0700</creation_ts>
          <short_desc>Dynamically triggered subframe loads are causing tile churn</short_desc>
          <delta_ts>2013-04-15 13:17:58 -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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Antti Koivisto">koivisto</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>andersca</cc>
    
    <cc>commit-queue</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>kling</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>thorton</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>873799</commentid>
    <comment_count>0</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2013-04-11 07:12:03 -0700</bug_when>
    <thetext>We use minimal tile coverage while page is loading. Subframe loads that start after the main load has finishes are causing us to re-enter minimal tiling mode, causing unnecessary churn.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>873800</commentid>
    <comment_count>1</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2013-04-11 07:14:01 -0700</bug_when>
    <thetext>This shows up in the tile map with speculative tiles disappearing and reappearing after end of the load.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>875723</commentid>
    <comment_count>2</comment_count>
      <attachid>198114</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2013-04-15 05:25:34 -0700</bug_when>
    <thetext>Created attachment 198114
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>875729</commentid>
    <comment_count>3</comment_count>
      <attachid>198114</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2013-04-15 05:41:41 -0700</bug_when>
    <thetext>Comment on attachment 198114
patch

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

r=me, good catch. I wonder if there are cases where the window resize optimization is too clever and just causing churn.

&gt; Source/WebCore/ChangeLog:8
&gt; +        In some cases we switch in and out of minimal times multiple times during page loading. This

minimal times -&gt; minimal tiles

&gt; Source/WebCore/ChangeLog:9
&gt; +        creates tile churn where we create speculatively tiles and then throw them out. This can be

speculatively -&gt; speculative

&gt; Source/WebCore/ChangeLog:16
&gt; +            tiles while waiting response for the initial requests.

waiting -&gt; awaiting

&gt; Source/WebCore/ChangeLog:18
&gt; +        (WebCore):

&lt;darin&gt;Please remove this useless line. Better yet, please fix the script to stop generating them!&lt;/darin&gt;

&gt; Source/WebCore/ChangeLog:28
&gt; +                Only switch into minimal coverage mode once per page load.

Indentation is different here.

&gt; Source/WebCore/rendering/RenderLayerBacking.cpp:226
&gt; +        useMinimalTilesDuringLoading = !frameView-&gt;isVisuallyNonEmpty() || (frame-&gt;page()-&gt;progress()-&gt;isLoadProgressing() &amp;&amp; !frameView-&gt;wasScrolledByUser());

&quot;!frameView-&gt;isVisuallyNonEmpty()&quot; :|</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>875733</commentid>
    <comment_count>4</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2013-04-15 05:59:53 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/148432</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>876023</commentid>
    <comment_count>5</comment_count>
      <attachid>198114</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2013-04-15 13:17:58 -0700</bug_when>
    <thetext>Comment on attachment 198114
patch

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

&gt; Source/WebCore/rendering/RenderLayerBacking.h:312
&gt; +    bool m_didSwitchToFullTileCoverageDuringLoading;

Shame to use a bool on every RLB when only the root needs one.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>198114</attachid>
            <date>2013-04-15 05:25:34 -0700</date>
            <delta_ts>2013-04-15 13:17:58 -0700</delta_ts>
            <desc>patch</desc>
            <filename>minimal-tiles-once.patch</filename>
            <type>text/plain</type>
            <size>5957</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE0ODQzMCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM0IEBACisyMDEzLTA0LTE1ICBBbnR0aSBL
b2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KKworICAgICAgICBEeW5hbWljYWxseSB0cmlnZ2Vy
ZWQgc3ViZnJhbWUgbG9hZHMgYXJlIGNhdXNpbmcgdGlsZSBjaHVybgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTE0NDQwCisgICAgICAgIAorICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKyAgICAgICAgCisgICAgICAgIEluIHNvbWUg
Y2FzZXMgd2Ugc3dpdGNoIGluIGFuZCBvdXQgb2YgbWluaW1hbCB0aW1lcyBtdWx0aXBsZSB0aW1l
cyBkdXJpbmcgcGFnZSBsb2FkaW5nLiBUaGlzCisgICAgICAgIGNyZWF0ZXMgdGlsZSBjaHVybiB3
aGVyZSB3ZSBjcmVhdGUgc3BlY3VsYXRpdmVseSB0aWxlcyBhbmQgdGhlbiB0aHJvdyB0aGVtIG91
dC4gVGhpcyBjYW4gYmUKKyAgICAgICAgY2F1c2VkIGJ5IHZhcmlvdXMgcmVhc29ucyBpbmNsdWRp
bmcgZHluYW1pY2FsbHkgY3JlYXRlZCBzdWJmcmFtZXMuCisKKyAgICAgICAgKiBwYWdlL0ZyYW1l
Vmlldy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVZpZXc6OnNldElzVmlzdWFsbHlOb25F
bXB0eSk6CisgICAgICAgIAorICAgICAgICAgICAgU3RheSBpbiBtaW5pbWFsIHRpbGVzIG1vZGVz
IHVudGlsIHRoZXJlIGlzIHNvbWUgdmlzdWFsIGNvbnRlbnRzLiBUaGlzIGF2b2lkcyBzd2l0Y2hp
bmcgb3V0IGZyb20gbWluaW1hbAorICAgICAgICAgICAgdGlsZXMgd2hpbGUgd2FpdGluZyByZXNw
b25zZSBmb3IgdGhlIGluaXRpYWwgcmVxdWVzdHMuCisKKyAgICAgICAgKFdlYkNvcmUpOgorICAg
ICAgICAqIHBhZ2UvRnJhbWVWaWV3Lmg6CisgICAgICAgIChGcmFtZVZpZXcpOgorICAgICAgICAq
IHJlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyTGF5ZXJCYWNraW5nOjpSZW5kZXJMYXllckJhY2tpbmcpOgorICAgICAgICAoV2ViQ29yZTo6
Y29tcHV0ZVRpbGVDb3ZlcmFnZSk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyQmFj
a2luZy5oOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJCYWNraW5nOjpkaWRTd2l0Y2hU
b0Z1bGxUaWxlQ292ZXJhZ2VEdXJpbmdMb2FkaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
ckxheWVyQmFja2luZzo6c2V0RGlkU3dpdGNoVG9GdWxsVGlsZUNvdmVyYWdlRHVyaW5nTG9hZGlu
Zyk6CisgICAgICAgIAorICAgICAgICAgICAgICAgIE9ubHkgc3dpdGNoIGludG8gbWluaW1hbCBj
b3ZlcmFnZSBtb2RlIG9uY2UgcGVyIHBhZ2UgbG9hZC4KKworICAgICAgICAoUmVuZGVyTGF5ZXJC
YWNraW5nKToKKwogMjAxMy0wNC0xNSAgQmFsYXpzIEtlbGVtZW4gIDxrYmFsYXpzQHdlYmtpdC5v
cmc+CiAKICAgICAgICAgW0Nvb3JkR2Z4XSBCYWNrZ3JvdW5kIGNvbG9yIHNob3VsZCBub3QgYmUg
cGFydCBvZiBHcmFwaGljc0xheWVyU3RhdGUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvRnJh
bWVWaWV3LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5j
cHAJKHJldmlzaW9uIDE0ODE5OCkKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMzY2Miw2ICszNjYyLDEyIEBAIHZvaWQgRnJhbWVWaWV3Ojp1
cGRhdGVMYXlvdXRBbmRTdHlsZUlmTmUKICAgICBBU1NFUlQoIW5lZWRzTGF5b3V0KCkpOwogfQog
Cit2b2lkIEZyYW1lVmlldzo6c2V0SXNWaXN1YWxseU5vbkVtcHR5KCkKK3sKKyAgICBtX2lzVmlz
dWFsbHlOb25FbXB0eSA9IHRydWU7CisgICAgYWRqdXN0VGlsZWRCYWNraW5nQ292ZXJhZ2UoKTsK
K30KKwogdm9pZCBGcmFtZVZpZXc6OmVuYWJsZUF1dG9TaXplTW9kZShib29sIGVuYWJsZSwgY29u
c3QgSW50U2l6ZSYgbWluU2l6ZSwgY29uc3QgSW50U2l6ZSYgbWF4U2l6ZSkKIHsKICAgICBBU1NF
UlQoIWVuYWJsZSB8fCAhbWluU2l6ZS5pc0VtcHR5KCkpOwpJbmRleDogU291cmNlL1dlYkNvcmUv
cGFnZS9GcmFtZVZpZXcuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1l
Vmlldy5oCShyZXZpc2lvbiAxNDgxOTgpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmll
dy5oCSh3b3JraW5nIGNvcHkpCkBAIC0yOTAsNyArMjkwLDcgQEAgcHVibGljOgogCiAgICAgdm9p
ZCBpbmNyZW1lbnRWaXN1YWxseU5vbkVtcHR5Q2hhcmFjdGVyQ291bnQodW5zaWduZWQpOwogICAg
IHZvaWQgaW5jcmVtZW50VmlzdWFsbHlOb25FbXB0eVBpeGVsQ291bnQoY29uc3QgSW50U2l6ZSYp
OwotICAgIHZvaWQgc2V0SXNWaXN1YWxseU5vbkVtcHR5KCkgeyBtX2lzVmlzdWFsbHlOb25FbXB0
eSA9IHRydWU7IH0KKyAgICB2b2lkIHNldElzVmlzdWFsbHlOb25FbXB0eSgpOwogICAgIGJvb2wg
aXNWaXN1YWxseU5vbkVtcHR5KCkgY29uc3QgeyByZXR1cm4gbV9pc1Zpc3VhbGx5Tm9uRW1wdHk7
IH0KICAgICB2b2lkIGVuYWJsZUF1dG9TaXplTW9kZShib29sIGVuYWJsZSwgY29uc3QgSW50U2l6
ZSYgbWluU2l6ZSwgY29uc3QgSW50U2l6ZSYgbWF4U2l6ZSk7CiAKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwCShyZXZpc2lvbiAxNDgx
OTgpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMTIwLDYgKzEyMCw3IEBAIFJlbmRlckxheWVyQmFja2luZzo6UmVu
ZGVyTGF5ZXJCYWNraW5nKFIKICAgICAsIG1fY2FuQ29tcG9zaXRlRmlsdGVycyhmYWxzZSkKICNl
bmRpZgogICAgICwgbV9iYWNrZ3JvdW5kTGF5ZXJQYWludHNGaXhlZFJvb3RCYWNrZ3JvdW5kKGZh
bHNlKQorICAgICwgbV9kaWRTd2l0Y2hUb0Z1bGxUaWxlQ292ZXJhZ2VEdXJpbmdMb2FkaW5nKGZh
bHNlKQogewogICAgIGlmIChsYXllci0+aXNSb290TGF5ZXIoKSkgewogICAgICAgICBGcmFtZSog
ZnJhbWUgPSB0b1JlbmRlclZpZXcocmVuZGVyZXIoKSktPmZyYW1lVmlldygpLT5mcmFtZSgpOwpA
QCAtMjA5LDcgKzIxMCw3IEBAIFRpbGVkQmFja2luZyogUmVuZGVyTGF5ZXJCYWNraW5nOjp0aWxl
ZEIKICAgICByZXR1cm4gbV9ncmFwaGljc0xheWVyLT50aWxlZEJhY2tpbmcoKTsKIH0KIAotc3Rh
dGljIFRpbGVkQmFja2luZzo6VGlsZUNvdmVyYWdlIGNvbXB1dGVUaWxlQ292ZXJhZ2UoY29uc3Qg
UmVuZGVyTGF5ZXJCYWNraW5nKiBiYWNraW5nKQorc3RhdGljIFRpbGVkQmFja2luZzo6VGlsZUNv
dmVyYWdlIGNvbXB1dGVUaWxlQ292ZXJhZ2UoUmVuZGVyTGF5ZXJCYWNraW5nKiBiYWNraW5nKQog
ewogICAgIC8vIEZJWE1FOiBXaGVuIHdlIHVzZSBUaWxlZEJhY2tpbmcgZm9yIG92ZXJmbG93LCB0
aGlzIHNob3VsZCBsb29rIGF0IFJlbmRlclZpZXcgc2Nyb2xsYWJpbGl0eS4KICAgICBGcmFtZSog
ZnJhbWUgPSBiYWNraW5nLT5vd25pbmdMYXllcigpLT5yZW5kZXJlcigpLT5mcmFtZSgpOwpAQCAt
MjE5LDcgKzIyMCwxMyBAQCBzdGF0aWMgVGlsZWRCYWNraW5nOjpUaWxlQ292ZXJhZ2UgY29tcHV0
CiAgICAgVGlsZWRCYWNraW5nOjpUaWxlQ292ZXJhZ2UgdGlsZUNvdmVyYWdlID0gVGlsZWRCYWNr
aW5nOjpDb3ZlcmFnZUZvclZpc2libGVBcmVhOwogICAgIEZyYW1lVmlldyogZnJhbWVWaWV3ID0g
ZnJhbWUtPnZpZXcoKTsKICAgICBib29sIHVzZU1pbmltYWxUaWxlc0R1cmluZ0xpdmVSZXNpemUg
PSBmcmFtZVZpZXctPmluTGl2ZVJlc2l6ZSgpOwotICAgIGJvb2wgdXNlTWluaW1hbFRpbGVzRHVy
aW5nTG9hZGluZyA9IGZyYW1lLT5wYWdlKCktPnByb2dyZXNzKCktPmlzTG9hZFByb2dyZXNzaW5n
KCkgJiYgIWZyYW1lVmlldy0+d2FzU2Nyb2xsZWRCeVVzZXIoKTsKKyAgICBib29sIHVzZU1pbmlt
YWxUaWxlc0R1cmluZ0xvYWRpbmcgPSBmYWxzZTsKKyAgICAvLyBBdm9pZCBjaHVybi4KKyAgICBp
ZiAoIWJhY2tpbmctPmRpZFN3aXRjaFRvRnVsbFRpbGVDb3ZlcmFnZUR1cmluZ0xvYWRpbmcoKSkg
eworICAgICAgICB1c2VNaW5pbWFsVGlsZXNEdXJpbmdMb2FkaW5nID0gIWZyYW1lVmlldy0+aXNW
aXN1YWxseU5vbkVtcHR5KCkgfHwgKGZyYW1lLT5wYWdlKCktPnByb2dyZXNzKCktPmlzTG9hZFBy
b2dyZXNzaW5nKCkgJiYgIWZyYW1lVmlldy0+d2FzU2Nyb2xsZWRCeVVzZXIoKSk7CisgICAgICAg
IGlmICghdXNlTWluaW1hbFRpbGVzRHVyaW5nTG9hZGluZykKKyAgICAgICAgICAgIGJhY2tpbmct
PnNldERpZFN3aXRjaFRvRnVsbFRpbGVDb3ZlcmFnZUR1cmluZ0xvYWRpbmcoKTsKKyAgICB9CiAg
ICAgaWYgKCEodXNlTWluaW1hbFRpbGVzRHVyaW5nTG9hZGluZyB8fCB1c2VNaW5pbWFsVGlsZXNE
dXJpbmdMaXZlUmVzaXplKSkgewogICAgICAgICBib29sIGNsaXBzVG9FeHBvc2VkUmVjdCA9IGJh
Y2tpbmctPnRpbGVkQmFja2luZygpLT5jbGlwc1RvRXhwb3NlZFJlY3QoKTsKICAgICAgICAgaWYg
KGZyYW1lVmlldy0+aG9yaXpvbnRhbFNjcm9sbGJhck1vZGUoKSAhPSBTY3JvbGxiYXJBbHdheXNP
ZmYgfHwgY2xpcHNUb0V4cG9zZWRSZWN0KQpJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckxheWVyQmFja2luZy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJMYXllckJhY2tpbmcuaAkocmV2aXNpb24gMTQ4MTk4KQorKysgU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5oCSh3b3JraW5nIGNvcHkpCkBAIC0x
OTIsNiArMTkyLDkgQEAgcHVibGljOgogICAgIC8vIFJldHVybiBhbiBlc3RpbWF0ZSBvZiB0aGUg
YmFja2luZyBzdG9yZSBhcmVhIChpbiBwaXhlbHMpIGFsbG9jYXRlZCBieSB0aGlzIG9iamVjdCdz
IEdyYXBoaWNzTGF5ZXJzLgogICAgIGRvdWJsZSBiYWNraW5nU3RvcmVNZW1vcnlFc3RpbWF0ZSgp
IGNvbnN0OwogCisgICAgYm9vbCBkaWRTd2l0Y2hUb0Z1bGxUaWxlQ292ZXJhZ2VEdXJpbmdMb2Fk
aW5nKCkgY29uc3QgeyByZXR1cm4gbV9kaWRTd2l0Y2hUb0Z1bGxUaWxlQ292ZXJhZ2VEdXJpbmdM
b2FkaW5nOyB9CisgICAgdm9pZCBzZXREaWRTd2l0Y2hUb0Z1bGxUaWxlQ292ZXJhZ2VEdXJpbmdM
b2FkaW5nKCkgeyBtX2RpZFN3aXRjaFRvRnVsbFRpbGVDb3ZlcmFnZUR1cmluZ0xvYWRpbmcgPSB0
cnVlOyB9CisKICNpZiBFTkFCTEUoQ1NTX0NPTVBPU0lUSU5HKQogICAgIHZvaWQgc2V0QmxlbmRN
b2RlKEJsZW5kTW9kZSk7CiAjZW5kaWYKQEAgLTMwNiw2ICszMDksNyBAQCBwcml2YXRlOgogICAg
IGJvb2wgbV9jYW5Db21wb3NpdGVGaWx0ZXJzOwogI2VuZGlmCiAgICAgYm9vbCBtX2JhY2tncm91
bmRMYXllclBhaW50c0ZpeGVkUm9vdEJhY2tncm91bmQ7CisgICAgYm9vbCBtX2RpZFN3aXRjaFRv
RnVsbFRpbGVDb3ZlcmFnZUR1cmluZ0xvYWRpbmc7CiAKICAgICBzdGF0aWMgYm9vbCBtX2NyZWF0
aW5nUHJpbWFyeUdyYXBoaWNzTGF5ZXI7CiB9Owo=
</data>
<flag name="review"
          id="219930"
          type_id="1"
          status="+"
          setter="kling"
    />
          </attachment>
      

    </bug>

</bugzilla>