<?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>156349</bug_id>
          
          <creation_ts>2016-04-07 11:06:40 -0700</creation_ts>
          <short_desc>Assertions in FrameView::scheduleRelayoutOfSubtree() in some layout tests after fix to https://bugs.webkit.org/show_bug.cgi?id=156245</short_desc>
          <delta_ts>2016-04-22 08:39:16 -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>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=156381</see_also>
          <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="Ada Chan">adachan</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>ap</cc>
    
    <cc>ryanhaddad</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1181742</commentid>
    <comment_count>0</comment_count>
    <who name="Ada Chan">adachan</who>
    <bug_when>2016-04-07 11:06:40 -0700</bug_when>
    <thetext>A number of layout tests ran into assertions in FrameView::scheduleRelayoutOfSubtree() after fix to MediaControlsApple.css changes in https://bugs.webkit.org/show_bug.cgi?id=156245

It looks like the style change that changes the test result is the addition of

overflow: hidden

in ::-webkit-media-controls in mediaControlsApple.css.

The tests are:
http/tests/appcache/video.html
media/track/track-active-cues.html
media/track/track-in-band.html
media/track/video-track-alternate-groups.html
media/track/video-track.html
media/video-src-empty.html

It looks like it&apos;s asserting in FrameView::scheduleRelayoutOfSubtree() on this line:
ASSERT(!newRelayoutRoot.container() || !newRelayoutRoot.container()-&gt;needsLayout());

Here&apos;s the call stack of the assertion:

Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
0   com.apple.JavaScriptCore      	0x0000000102639497 WTFCrash + 39
1   com.apple.WebCore             	0x0000000107e2e211 WebCore::FrameView::scheduleRelayoutOfSubtree(WebCore::RenderElement&amp;) + 465 (FrameView.cpp:2704)
2   com.apple.WebCore             	0x0000000109074a69 WebCore::scheduleRelayoutForSubtree(WebCore::RenderElement&amp;) + 121 (RenderObject.cpp:585)
3   com.apple.WebCore             	0x00000001090745ef WebCore::RenderObject::markContainingBlocksForLayout(WebCore::ScheduleRelayout, WebCore::RenderElement*) + 1151 (RenderObject.cpp:642)
4   com.apple.WebCore             	0x00000001073d7650 WebCore::RenderObject::setNeedsLayout(WebCore::MarkingBehavior) + 176 (RenderObject.h:1108)
5   com.apple.WebCore             	0x0000000107a4550e WebCore::RenderObject::setNeedsLayoutAndPrefWidthsRecalc() + 30 (RenderObject.h:593)
6   com.apple.WebCore             	0x0000000108f2cabf WebCore::RenderElement::insertChildInternal(WebCore::RenderObject*, WebCore::RenderObject*, WebCore::RenderElement::NotifyChildrenType) + 847 (RenderElement.cpp:594)
7   com.apple.WebCore             	0x0000000108f2c6d5 WebCore::RenderElement::addChild(WebCore::RenderObject*, WebCore::RenderObject*) + 293 (RenderElement.cpp:515)
8   com.apple.WebCore             	0x0000000108e5a33f WebCore::RenderBlock::addChildIgnoringContinuation(WebCore::RenderObject*, WebCore::RenderObject*) + 1327 (RenderBlock.cpp:498)
9   com.apple.WebCore             	0x0000000108e59e08 WebCore::RenderBlock::addChild(WebCore::RenderObject*, WebCore::RenderObject*) + 120 (RenderBlock.cpp:412)
10  com.apple.WebCore             	0x000000010880f6e1 WebCore::RenderTreePosition::insert(WebCore::RenderObject&amp;) + 129 (RenderTreePosition.h:93)
11  com.apple.WebCore             	0x000000010880e340 WebCore::RenderTreeUpdater::createRenderer(WebCore::Element&amp;, WebCore::RenderStyle&amp;) + 800 (RenderTreeUpdater.cpp:338)
12  com.apple.WebCore             	0x000000010880d73e WebCore::RenderTreeUpdater::updateElementRenderer(WebCore::Element&amp;, WebCore::Style::ElementUpdate const&amp;) + 302 (RenderTreeUpdater.cpp:252)
13  com.apple.WebCore             	0x000000010880d228 WebCore::RenderTreeUpdater::updateRenderTree(WebCore::ContainerNode&amp;) + 808 (RenderTreeUpdater.cpp:154)
14  com.apple.WebCore             	0x000000010880ccd6 WebCore::RenderTreeUpdater::commit(std::__1::unique_ptr&lt;WebCore::Style::Update const, std::__1::default_delete&lt;WebCore::Style::Update const&gt; &gt;) + 854 (RenderTreeUpdater.cpp:99)
15  com.apple.WebCore             	0x0000000107a2781d WebCore::Document::recalcStyle(WebCore::Style::Change) + 1565 (Document.cpp:1943)
16  com.apple.WebCore             	0x0000000107a1cb91 WebCore::Document::updateStyleIfNeeded() + 305 (Document.cpp:1990)
17  com.apple.WebCore             	0x0000000107a23c2e WebCore::Document::updateLayout() + 238 (Document.cpp:2008)
18  com.apple.WebCore             	0x0000000107a2839f WebCore::Document::updateLayoutIgnorePendingStylesheets(WebCore::Document::RunPostLayoutTasks) + 207 (Document.cpp:2048)
19  com.apple.WebCore             	0x0000000107bf1bc0 WebCore::Element::getBoundingClientRect() + 64 (Element.cpp:1096)
20  com.apple.WebCore             	0x0000000108563c1d WebCore::jsElementPrototypeFunctionGetBoundingClientRect(JSC::ExecState*) + 429 (JSElement.cpp:4823)
21  ???                           	0x00005809dfa01028 0 + 96799429759016
22  ???                           	0x00005809dfa10a54 0 + 96799429823060
23  com.apple.JavaScriptCore      	0x000000010225bf47 llint_entry + 26835
24  com.apple.JavaScriptCore      	0x000000010225becd llint_entry + 26713
25  com.apple.JavaScriptCore      	0x000000010225becd llint_entry + 26713
26  com.apple.JavaScriptCore      	0x000000010225bf47 llint_entry + 26835
27  com.apple.JavaScriptCore      	0x000000010225bf47 llint_entry + 26835
28  com.apple.JavaScriptCore      	0x000000010225545e vmEntryToJavaScript + 334
29  com.apple.JavaScriptCore      	0x00000001020681da JSC::JITCode::execute(JSC::VM*, JSC::ProtoCallFrame*) + 218
30  com.apple.JavaScriptCore      	0x0000000101fff5ac JSC::Interpreter::executeCall(JSC::ExecState*, JSC::JSObject*, JSC::CallType, JSC::CallData const&amp;, JSC::JSValue, JSC::ArgList const&amp;) + 1100
31  com.apple.JavaScriptCore      	0x00000001018ed86e JSC::call(JSC::ExecState*, JSC::JSValue, JSC::CallType, JSC::CallData const&amp;, JSC::JSValue, JSC::ArgList const&amp;) + 190
32  com.apple.JavaScriptCore      	0x00000001018ed8d3 JSC::call(JSC::ExecState*, JSC::JSValue, JSC::CallType, JSC::CallData const&amp;, JSC::JSValue, JSC::ArgList const&amp;, WTF::NakedPtr&lt;JSC::Exception&gt;&amp;) + 83
33  com.apple.JavaScriptCore      	0x00000001018edacb JSC::profiledCall(JSC::ExecState*, JSC::ProfilingReason, JSC::JSValue, JSC::CallType, JSC::CallData const&amp;, JSC::JSValue, JSC::ArgList const&amp;, WTF::NakedPtr&lt;JSC::Exception&gt;&amp;) + 139
34  com.apple.WebCore             	0x00000001083c6d4b WebCore::JSMainThreadExecState::profiledCall(JSC::ExecState*, JSC::ProfilingReason, JSC::JSValue, JSC::CallType, JSC::CallData const&amp;, JSC::JSValue, JSC::ArgList const&amp;, WTF::NakedPtr&lt;JSC::Exception&gt;&amp;) + 139 (JSMainThreadExecState.h:75)
35  com.apple.WebCore             	0x0000000108580510 WebCore::JSEventListener::handleEvent(WebCore::ScriptExecutionContext*, WebCore::Event*) + 1504 (JSEventListener.cpp:133)
36  com.apple.WebCore             	0x0000000107c4af67 WebCore::EventTarget::fireEventListeners(WebCore::Event&amp;, WebCore::EventTargetData*, WTF::Vector&lt;WebCore::RegisteredEventListener, 1ul, WTF::CrashOnOverflow, 16ul&gt;&amp;) + 1463 (EventTarget.cpp:260)
37  com.apple.WebCore             	0x0000000107c4a798 WebCore::EventTarget::fireEventListeners(WebCore::Event&amp;) + 312 (EventTarget.cpp:212)
38  com.apple.WebCore             	0x0000000108d1d191 WebCore::Node::handleLocalEvents(WebCore::Event&amp;) + 177 (Node.cpp:2124)
39  com.apple.WebCore             	0x0000000107c205e1 WebCore::EventContext::handleLocalEvents(WebCore::Event&amp;) const + 177 (EventContext.cpp:55)
40  com.apple.WebCore             	0x0000000107c2122c WebCore::dispatchEventInDOM(WebCore::Event&amp;, WebCore::EventPath const&amp;, WebCore::WindowEventContext&amp;) + 348 (EventDispatcher.cpp:127)
41  com.apple.WebCore             	0x0000000107c20f48 WebCore::EventDispatcher::dispatchEvent(WebCore::Node*, WebCore::Event&amp;) + 680 (EventDispatcher.cpp:184)
42  com.apple.WebCore             	0x0000000108d1d1ed WebCore::Node::dispatchEvent(WebCore::Event&amp;) + 29 (Node.cpp:2138)
43  com.apple.WebCore             	0x0000000107e67a35 WebCore::GenericEventQueue::dispatchOneEvent() + 245 (GenericEventQueue.cpp:103)
44  com.apple.WebCore             	0x0000000107e678e3 WebCore::GenericEventQueue::sharedTimerFired() + 243 (GenericEventQueue.cpp:83)
45  com.apple.WebCore             	0x0000000107e6aeda void std::__1::__invoke_void_return_wrapper&lt;void&gt;::__call&lt;void (*&amp;)()&gt;(void (*&amp;&amp;&amp;)()) + 42 (__functional_base:441)
46  com.apple.WebCore             	0x0000000107e6ae7c std::__1::__function::__func&lt;void (*)(), std::__1::allocator&lt;void (*)()&gt;, void ()&gt;::operator()() + 44 (functional:1407)
47  com.apple.WebCore             	0x00000001073c891a std::__1::function&lt;void ()&gt;::operator()() const + 26 (functional:1793)
48  com.apple.WebCore             	0x00000001073c882c WebCore::Timer::fired() + 28 (Timer.h:142)
49  com.apple.WebCore             	0x000000010975a99a WebCore::ThreadTimers::sharedTimerFiredInternal() + 394 (ThreadTimers.cpp:124)
50  com.apple.WebCore             	0x000000010975bbe1 WebCore::ThreadTimers::setSharedTimer(WebCore::SharedTimer*)::$_0::operator()() const + 33 (ThreadTimers.cpp:73)
51  com.apple.WebCore             	0x000000010975bbad void std::__1::__invoke_void_return_wrapper&lt;void&gt;::__call&lt;WebCore::ThreadTimers::setSharedTimer(WebCore::SharedTimer*)::$_0&amp;&gt;(WebCore::ThreadTimers::setSharedTimer(WebCore::SharedTimer*)::$_0&amp;&amp;&amp;) + 45 (__functional_base:441)
52  com.apple.WebCore             	0x000000010975bb4c std::__1::__function::__func&lt;WebCore::ThreadTimers::setSharedTimer(WebCore::SharedTimer*)::$_0, std::__1::allocator&lt;WebCore::ThreadTimers::setSharedTimer(WebCore::SharedTimer*)::$_0&gt;, void ()&gt;::operator()() + 44 (functional:1407)
53  com.apple.WebCore             	0x00000001073c891a std::__1::function&lt;void ()&gt;::operator()() const + 26 (functional:1793)
54  com.apple.WebCore             	0x0000000108af1cbf WebCore::MainThreadSharedTimer::fired() + 111 (MainThreadSharedTimer.cpp:53)
55  com.apple.WebCore             	0x0000000108af20b9 WebCore::timerFired(__CFRunLoopTimer*, void*) + 41 (MainThreadSharedTimerCF.cpp:74)
56  com.apple.CoreFoundation      	0x00007fff846b62e4 __CFRUNLOOP_IS_CALLING_OUT_TO_A_TIMER_CALLBACK_FUNCTION__ + 20
57  com.apple.CoreFoundation      	0x00007fff846b5f73 __CFRunLoopDoTimer + 1059
58  com.apple.CoreFoundation      	0x00007fff8472953d __CFRunLoopDoTimers + 301
59  com.apple.CoreFoundation      	0x00007fff84671608 __CFRunLoopRun + 2024
60  com.apple.CoreFoundation      	0x00007fff84670bd8 CFRunLoopRunSpecific + 296
61  ???                           	0x00000001011d6c0c 0 + 4313672716
62  ???                           	0x00000001011d52ed 0 + 4313666285
63  ???                           	0x00000001011d4872 0 + 4313663602
64  ???                           	0x00000001011d750d 0 + 4313675021
65  ???                           	0x000000010122e702 0 + 4314031874
66  libdyld.dylib                 	0x00007fff85ddc5c9 start + 1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1181930</commentid>
    <comment_count>1</comment_count>
    <who name="Ada Chan">adachan</who>
    <bug_when>2016-04-07 15:26:10 -0700</bug_when>
    <thetext>Looks like there are two more tests with the same assertion firing:

media/media-controls-invalid-url.html
plugins/quicktime-plugin-replacement.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1181990</commentid>
    <comment_count>2</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2016-04-07 17:19:31 -0700</bug_when>
    <thetext>Ada is going to roll out the part of the patch that&apos;s making these assertions fail, and to unskip the tests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1182009</commentid>
    <comment_count>3</comment_count>
    <who name="Ada Chan">adachan</who>
    <bug_when>2016-04-07 18:29:23 -0700</bug_when>
    <thetext>The rollout has been addressed in https://bugs.webkit.org/show_bug.cgi?id=156381.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1186253</commentid>
    <comment_count>4</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2016-04-22 08:39:16 -0700</bug_when>
    <thetext>This is addressed by http://trac.webkit.org/changeset/199856</thetext>
  </long_desc>
      
      

    </bug>

</bugzilla>