<?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>141688</bug_id>
          
          <creation_ts>2015-02-16 18:41:01 -0800</creation_ts>
          <short_desc>FrameView::layoutTimerFired() should update style if needed before doing layout</short_desc>
          <delta_ts>2015-03-06 17:38:31 -0800</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>REOPENED</bug_status>
          <resolution></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>
          <dependson>142368</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Simon Fraser (smfr)">simon.fraser</reporter>
          <assigned_to name="Simon Fraser (smfr)">simon.fraser</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>kling</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1069722</commentid>
    <comment_count>0</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2015-02-16 18:41:01 -0800</bug_when>
    <thetext>It&apos;s possible for the style recalc timer to get scheduled after the layout timer (both delay 0). The layout timer fires first, so we do layout, but then the style recalc timer fires and we do style recalc and layout again.

This happens in fast/canvas/webgl/arraybuffer-transfer-of-control.html and likely other content.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1069980</commentid>
    <comment_count>1</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2015-02-17 16:31:42 -0800</bug_when>
    <thetext>Fixing this does reduce the number of layouts slightly, but not the total time spent in layout.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1073082</commentid>
    <comment_count>2</comment_count>
      <attachid>247613</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2015-02-28 14:04:34 -0800</bug_when>
    <thetext>Created attachment 247613
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1073096</commentid>
    <comment_count>3</comment_count>
      <attachid>247613</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2015-02-28 14:52:03 -0800</bug_when>
    <thetext>Comment on attachment 247613
Patch

r=me
This does indeed seem totally reasonable.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1073114</commentid>
    <comment_count>4</comment_count>
      <attachid>247613</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-02-28 17:04:27 -0800</bug_when>
    <thetext>Comment on attachment 247613
Patch

Clearing flags on attachment: 247613

Committed r180846: &lt;http://trac.webkit.org/changeset/180846&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1073115</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-02-28 17:04:40 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1074724</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-03-05 15:54:56 -0800</bug_when>
    <thetext>Re-opened since this is blocked by bug 142368</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1075171</commentid>
    <comment_count>7</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2015-03-06 17:38:31 -0800</bug_when>
    <thetext>Fix for the regression:

diff --git a/Source/WebCore/page/FrameView.cpp b/Source/WebCore/page/FrameView.cpp
index 229c8a910a042486c9991e4785d8a8dd8058d711..484d90ca1f002b43c55abdb76ea17d65b9f395a2 100644
--- a/Source/WebCore/page/FrameView.cpp
+++ b/Source/WebCore/page/FrameView.cpp
@@ -2440,6 +2440,12 @@ void FrameView::layoutTimerFired()
     if (!frame().document()-&gt;ownerElement())
         printf(&quot;Layout timer fired at %lld\n&quot;, frame().document()-&gt;elapsedTime().count());
 #endif
+
+    {
+        TemporaryChange&lt;bool&gt; layoutSchedulingDisabler(m_layoutSchedulingEnabled, false);
+        frame().document()-&gt;updateStyleIfNeeded();
+    }
+
     layout();
 }
 
Needs testcase.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>247613</attachid>
            <date>2015-02-28 14:04:34 -0800</date>
            <delta_ts>2015-02-28 17:04:27 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-141688-20150228140419.patch</filename>
            <type>text/plain</type>
            <size>1733</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTgwODM5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGNiMGVmZmQyM2Q5Nzlj
Y2UzMzJmMDhhMzZmMmY2OTg5YTYxOTk3OS4uM2Y2ZmI3NzQ1NGRkZmUyZDIwYWNhYTI3NDM5N2Mw
NmM1NTc4MjJkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDIzIEBACiAyMDE1LTAyLTI4ICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCisgICAgICAgIEZyYW1lVmlldzo6
bGF5b3V0VGltZXJGaXJlZCgpIHNob3VsZCB1cGRhdGUgc3R5bGUgaWYgbmVlZGVkIGJlZm9yZSBk
b2luZyBsYXlvdXQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE0MTY4OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIElmIHRoZSBzdHlsZSByZWNhbGMgdGltZXIgaGFzIGJlZW4gc2NoZWR1bGVkIHRvIGZpcmUg
YWZ0ZXIgdGhlIGxheW91dCB0aW1lciwKKyAgICAgICAgd2hlbiB0aGUgbGF5b3V0IHRpbWVyIGZp
cmVzLCB3ZSBtaWdodCBhcyB3ZWxsIGp1c3QgZG8gdGhlIHN0eWxlIHJlY2FsYworICAgICAgICB0
b28uIFRoZSBjYWxsIHRvIHVwZGF0ZVN0eWxlSWZOZWVkZWQoKSB3aWxsIGNhbmNlbCB0aGUgcGVu
ZGluZyBzdHlsZQorICAgICAgICByZWNhbGMgdGltZXIuCisgICAgICAgIAorICAgICAgICBUaGlz
IGRvZXNuJ3QgaGF2ZSBtdWNoIGltcGFjdCBvbiB0aGUgbnVtYmVyIG9mIGxheW91dHMgKG1lYXN1
cmVkIHZpYSBQTFQpCisgICAgICAgIGJ1dCBzZWVtcyBsaWtlIGEgcmVhc29uYWJsZSB0aGluZyB0
byBkby4KKworICAgICAgICAqIHBhZ2UvRnJhbWVWaWV3LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkZyYW1lVmlldzo6bGF5b3V0VGltZXJGaXJlZCk6CisKKzIwMTUtMDItMjggIFNpbW9uIEZyYXNl
ciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CisKICAgICAgICAgRnVsbHNjcmVlbiB2aWRlbyBs
YXllcnMgYXJlIG9mZiBieSBvbmUgc29tZXRpbWVzCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDIxMjIKICAgICAgICAgcmRhcjovL3Byb2JsZW0vMTk4
Nzg4MjEKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAppbmRleCA0MzMzOTI1YzJlNDA1MTAzZDgx
YjJkNDJlNjZjYjE0YWVkNDE3YzcwLi5iZTI0N2ViZjIxMDY1YTYzMTA3YzM4NjdiN2NlMTRjNmU3
M2I3ZjkwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCkBAIC0yNDM5LDYgKzI0MzksNyBA
QCB2b2lkIEZyYW1lVmlldzo6bGF5b3V0VGltZXJGaXJlZCgpCiAgICAgaWYgKCFmcmFtZSgpLmRv
Y3VtZW50KCktPm93bmVyRWxlbWVudCgpKQogICAgICAgICBwcmludGYoIkxheW91dCB0aW1lciBm
aXJlZCBhdCAlbGxkXG4iLCBmcmFtZSgpLmRvY3VtZW50KCktPmVsYXBzZWRUaW1lKCkuY291bnQo
KSk7CiAjZW5kaWYKKyAgICBmcmFtZSgpLmRvY3VtZW50KCktPnVwZGF0ZVN0eWxlSWZOZWVkZWQo
KTsKICAgICBsYXlvdXQoKTsKIH0KIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>