RESOLVED FIXED Bug 151097
ASSERTION FAILED: willBeComposited == needsToBeComposited(layer) in WebCore::RenderLayerCompositor::computeCompositingRequirements
https://bugs.webkit.org/show_bug.cgi?id=151097
Summary ASSERTION FAILED: willBeComposited == needsToBeComposited(layer) in WebCore::...
Renata Hodovan
Reported 2015-11-10 08:40:35 PST
Created attachment 265181 [details] Test Load the attached test with debug MiniBrowser: <style> * { will-change:-webkit-transform } * { overflow: hidden; z-index: -40; -webkit-appearance: discrete-capacity-level-indicator; position: relative; } ruby { display: table-row-group } </style> <ruby> <mark></mark> </ruby> OS: Ubuntu 15.04 x86_64 Checked build: debug EFL Checked version: 29ae33c Backtrace: ASSERTION FAILED: willBeComposited == needsToBeComposited(layer) ../../Source/WebCore/rendering/RenderLayerCompositor.cpp(1466) : void WebCore::RenderLayerCompositor::computeCompositingRequirements(WebCore::RenderLayer*, WebCore::RenderLayer&, WebCore::RenderLayerCompositor::OverlapMap&, WebCore::RenderLayerCompositor::CompositingState&, bool&, bool&) 1 0x7f227fa1389f WTFCrash 2 0x7f228645dbd9 WebCore::RenderLayerCompositor::computeCompositingRequirements(WebCore::RenderLayer*, WebCore::RenderLayer&, WebCore::RenderLayerCompositor::OverlapMap&, WebCore::RenderLayerCompositor::CompositingState&, bool&, bool&) 3 0x7f228645da1e WebCore::RenderLayerCompositor::computeCompositingRequirements(WebCore::RenderLayer*, WebCore::RenderLayer&, WebCore::RenderLayerCompositor::OverlapMap&, WebCore::RenderLayerCompositor::CompositingState&, bool&, bool&) 4 0x7f228645d89b WebCore::RenderLayerCompositor::computeCompositingRequirements(WebCore::RenderLayer*, WebCore::RenderLayer&, WebCore::RenderLayerCompositor::OverlapMap&, WebCore::RenderLayerCompositor::CompositingState&, bool&, bool&) 5 0x7f228645d89b WebCore::RenderLayerCompositor::computeCompositingRequirements(WebCore::RenderLayer*, WebCore::RenderLayer&, WebCore::RenderLayerCompositor::OverlapMap&, WebCore::RenderLayerCompositor::CompositingState&, bool&, bool&) 6 0x7f228645aded WebCore::RenderLayerCompositor::updateCompositingLayers(WebCore::CompositingUpdateType, WebCore::RenderLayer*) 7 0x7f22860ead41 WebCore::FrameView::updateCompositingLayersAfterLayout() 8 0x7f22860ec9ed WebCore::FrameView::layout(bool) 9 0x7f2285b49f3c WebCore::Document::implicitClose() 10 0x7f2285faf827 WebCore::FrameLoader::checkCallImplicitClose() 11 0x7f2285faf55e WebCore::FrameLoader::checkCompleted() 12 0x7f2285faf2ce WebCore::FrameLoader::finishedParsing() 13 0x7f2285b53f6c WebCore::Document::finishedParsing() 14 0x7f2286ebf349 WebCore::HTMLConstructionSite::finishedParsing() 15 0x7f2285ea8064 WebCore::HTMLTreeBuilder::finished() 16 0x7f2285e78708 WebCore::HTMLDocumentParser::end() 17 0x7f2285e787e1 WebCore::HTMLDocumentParser::attemptToRunDeferredScriptsAndEnd() 18 0x7f2285e774c3 WebCore::HTMLDocumentParser::prepareToStopParsing() 19 0x7f2285e78824 WebCore::HTMLDocumentParser::attemptToEnd() 20 0x7f2285e788db WebCore::HTMLDocumentParser::finish() 21 0x7f2285f9a702 WebCore::DocumentWriter::end() 22 0x7f2285f83fd8 WebCore::DocumentLoader::finishedLoading(double) 23 0x7f2285f83d36 WebCore::DocumentLoader::notifyFinished(WebCore::CachedResource*) 24 0x7f228602f143 WebCore::CachedResource::checkNotify() 25 0x7f228602f252 WebCore::CachedResource::finishLoading(WebCore::SharedBuffer*) 26 0x7f228602b446 WebCore::CachedRawResource::finishLoading(WebCore::SharedBuffer*) 27 0x7f2285ff3e74 WebCore::SubresourceLoader::didFinishLoading(double) 28 0x7f2285fee953 WebCore::ResourceLoader::didFinishLoading(WebCore::ResourceHandle*, double) 29 0x7f22867e219a 30 0x7f227c0035a6 31 0x7f227c029b74 Aborted (core dumped) Program terminated with signal SIGSEGV, Segmentation fault. #0 0x00007f227fa138a4 in WTFCrash () at ../../Source/WTF/wtf/Assertions.cpp:321 321 *(int *)(uintptr_t)0xbbadbeef = 0; #0 0x00007f227fa138a4 in WTFCrash () at ../../Source/WTF/wtf/Assertions.cpp:321 #1 0x00007f228645dbd9 in WebCore::RenderLayerCompositor::computeCompositingRequirements (this=0x7f2266edb230, ancestorLayer=0x7f2266efe900, layer=..., overlapMap=..., compositingState=..., layersChanged=@0x7fff2d8f7eda: false, descendantHas3DTransform=@0x7fff2d8f7b34: false) at ../../Source/WebCore/rendering/RenderLayerCompositor.cpp:1466 #2 0x00007f228645da1e in WebCore::RenderLayerCompositor::computeCompositingRequirements (this=0x7f2266edb230, ancestorLayer=0x7f2266efe7e0, layer=..., overlapMap=..., compositingState=..., layersChanged=@0x7fff2d8f7eda: false, descendantHas3DTransform=@0x7fff2d8f7c74: false) at ../../Source/WebCore/rendering/RenderLayerCompositor.cpp:1447 #3 0x00007f228645d89b in WebCore::RenderLayerCompositor::computeCompositingRequirements (this=0x7f2266edb230, ancestorLayer=0x7f2266efe5a0, layer=..., overlapMap=..., compositingState=..., layersChanged=@0x7fff2d8f7eda: false, descendantHas3DTransform=@0x7fff2d8f7db4: false) at ../../Source/WebCore/rendering/RenderLayerCompositor.cpp:1418 #4 0x00007f228645d89b in WebCore::RenderLayerCompositor::computeCompositingRequirements (this=0x7f2266edb230, ancestorLayer=0x0, layer=..., overlapMap=..., compositingState=..., layersChanged=@0x7fff2d8f7eda: false, descendantHas3DTransform=@0x7fff2d8f7ef0: false) at ../../Source/WebCore/rendering/RenderLayerCompositor.cpp:1418 #5 0x00007f228645aded in WebCore::RenderLayerCompositor::updateCompositingLayers (this=0x7f2266edb230, updateType=WebCore::CompositingUpdateAfterLayout, updateRoot=0x7f2266efe5a0) at ../../Source/WebCore/rendering/RenderLayerCompositor.cpp:751 #6 0x00007f22860ead41 in WebCore::FrameView::updateCompositingLayersAfterLayout (this=0x7f2266c25540) at ../../Source/WebCore/page/FrameView.cpp:853 #7 0x00007f22860ec9ed in WebCore::FrameView::layout (this=0x7f2266c25540, allowSubtree=true) at ../../Source/WebCore/page/FrameView.cpp:1451 #8 0x00007f2285b49f3c in WebCore::Document::implicitClose (this=0x7f2266c26a40) at ../../Source/WebCore/dom/Document.cpp:2704 #9 0x00007f2285faf827 in WebCore::FrameLoader::checkCallImplicitClose (this=0x7f2266ee4098) at ../../Source/WebCore/loader/FrameLoader.cpp:889 #10 0x00007f2285faf55e in WebCore::FrameLoader::checkCompleted (this=0x7f2266ee4098) at ../../Source/WebCore/loader/FrameLoader.cpp:835 #11 0x00007f2285faf2ce in WebCore::FrameLoader::finishedParsing (this=0x7f2266ee4098) at ../../Source/WebCore/loader/FrameLoader.cpp:756 #12 0x00007f2285b53f6c in WebCore::Document::finishedParsing (this=0x7f2266c26a40) at ../../Source/WebCore/dom/Document.cpp:4897 #13 0x00007f2286ebf349 in WebCore::HTMLConstructionSite::finishedParsing (this=0x7f2266efe6e0) at ../../Source/WebCore/html/parser/HTMLConstructionSite.cpp:403 #14 0x00007f2285ea8064 in WebCore::HTMLTreeBuilder::finished (this=0x7f2266efe6c0) at ../../Source/WebCore/html/parser/HTMLTreeBuilder.cpp:2937 #15 0x00007f2285e78708 in WebCore::HTMLDocumentParser::end (this=0x7f2266c2e840) at ../../Source/WebCore/html/parser/HTMLDocumentParser.cpp:393 #16 0x00007f2285e787e1 in WebCore::HTMLDocumentParser::attemptToRunDeferredScriptsAndEnd (this=0x7f2266c2e840) at ../../Source/WebCore/html/parser/HTMLDocumentParser.cpp:402 #17 0x00007f2285e774c3 in WebCore::HTMLDocumentParser::prepareToStopParsing (this=0x7f2266c2e840) at ../../Source/WebCore/html/parser/HTMLDocumentParser.cpp:132 #18 0x00007f2285e78824 in WebCore::HTMLDocumentParser::attemptToEnd (this=0x7f2266c2e840) at ../../Source/WebCore/html/parser/HTMLDocumentParser.cpp:414 #19 0x00007f2285e788db in WebCore::HTMLDocumentParser::finish (this=0x7f2266c2e840) at ../../Source/WebCore/html/parser/HTMLDocumentParser.cpp:442 #20 0x00007f2285f9a702 in WebCore::DocumentWriter::end (this=0x7f2266c249e0) at ../../Source/WebCore/loader/DocumentWriter.cpp:247 #21 0x00007f2285f83fd8 in WebCore::DocumentLoader::finishedLoading (this=0x7f2266c24940, finishTime=0) at ../../Source/WebCore/loader/DocumentLoader.cpp:437 #22 0x00007f2285f83d36 in WebCore::DocumentLoader::notifyFinished (this=0x7f2266c24940, resource=0x7f2266c36000) at ../../Source/WebCore/loader/DocumentLoader.cpp:384 #23 0x00007f228602f143 in WebCore::CachedResource::checkNotify (this=0x7f2266c36000) at ../../Source/WebCore/loader/cache/CachedResource.cpp:297 #24 0x00007f228602f252 in WebCore::CachedResource::finishLoading (this=0x7f2266c36000) at ../../Source/WebCore/loader/cache/CachedResource.cpp:313 #25 0x00007f228602b446 in WebCore::CachedRawResource::finishLoading (this=0x7f2266c36000, data=0x7f2266fbb680) at ../../Source/WebCore/loader/cache/CachedRawResource.cpp:103 #26 0x00007f2285ff3e74 in WebCore::SubresourceLoader::didFinishLoading (this=0x7f2266c2fa80, finishTime=0) at ../../Source/WebCore/loader/SubresourceLoader.cpp:372 #27 0x00007f2285fee953 in WebCore::ResourceLoader::didFinishLoading (this=0x7f2266c2fa80, finishTime=0) at ../../Source/WebCore/loader/ResourceLoader.cpp:638 #28 0x00007f22867e219a in WebCore::readCallback (asyncResult=0xcfb9d0, data=0x7f2266fbc680) at ../../Source/WebCore/platform/network/soup/ResourceHandleSoup.cpp:1341 #29 0x00007f227c0035a6 in async_ready_callback_wrapper (source_object=0xc439b0, res=0xcfb9d0, user_data=0x7f2266fbc680) at ginputstream.c:523 #30 0x00007f227c029b74 in g_task_return_now (task=0xcfb9d0) at gtask.c:1077 #31 0x00007f227c029b99 in complete_in_idle_cb (task=0xcfb9d0) at gtask.c:1086 #32 0x00007f227ba61add in g_main_dispatch (context=0xc3dba0) at gmain.c:3064 #33 g_main_context_dispatch (context=context@entry=0xc3dba0) at gmain.c:3663 #34 0x00007f227d3cde58 in _ecore_glib_select__locked (ecore_timeout=<optimized out>, efds=0x7fff2d8f8dd0, wfds=0x7fff2d8f8d50, rfds=0x7fff2d8f8cd0, ecore_fds=<optimized out>, ctx=<optimized out>) at lib/ecore/ecore_glib.c:172 #35 _ecore_glib_select (ecore_fds=<optimized out>, rfds=0x7fff2d8f8cd0, wfds=0x7fff2d8f8d50, efds=0x7fff2d8f8dd0, ecore_timeout=<optimized out>) at lib/ecore/ecore_glib.c:204 #36 0x00007f227d3d14a4 in _ecore_main_select (timeout=9.532824124368238e-130) at lib/ecore/ecore_main.c:1459 #37 0x00007f227d3d1ed4 in _ecore_main_loop_iterate_internal (once_only=once_only@entry=0) at lib/ecore/ecore_main.c:1893 #38 0x00007f227d3d1fc7 in ecore_main_loop_begin () at lib/ecore/ecore_main.c:983 #39 0x00007f227fa6e795 in WTF::RunLoop::run () at ../../Source/WTF/wtf/efl/RunLoopEfl.cpp:49 #40 0x00007f22858ce87d in WebKit::ChildProcessMain<WebKit::WebProcess, WebKit::WebProcessMain> (argc=2, argv=0x7fff2d8f9208) at ../../Source/WebKit2/Shared/unix/ChildProcessMain.h:61 #41 0x00007f22858ce48b in WebKit::WebProcessMainUnix (argc=2, argv=0x7fff2d8f9208) at ../../Source/WebKit2/WebProcess/efl/WebProcessMainEfl.cpp:161 #42 0x00000000004008ea in main (argc=2, argv=0x7fff2d8f9208) at ../../Source/WebKit2/WebProcess/EntryPoint/unix/WebProcessMain.cpp:44
Attachments
Test (256 bytes, text/html)
2015-11-10 08:40 PST, Renata Hodovan
no flags
Patch (7.53 KB, patch)
2016-09-15 13:48 PDT, zalan
no flags
Patch (7.53 KB, patch)
2016-09-15 14:22 PDT, zalan
no flags
Brent Fulgham
Comment 1 2016-08-04 18:19:47 PDT
This reproduces in r204037.
Radar WebKit Bug Importer
Comment 2 2016-08-04 18:20:10 PDT
zalan
Comment 3 2016-09-15 13:48:46 PDT
Simon Fraser (smfr)
Comment 4 2016-09-15 13:55:04 PDT
Comment on attachment 288993 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=288993&action=review > Source/WebCore/ChangeLog:9 > + This patch ensures that when will-change property triggers stacking context, we make the associated layer a non normal flow layer. non-normal flow > Source/WebCore/ChangeLog:10 > + (This is similar to what any other stacking context triggering CSS property does.) context-triggering > LayoutTests/compositing/assert-on-will-change-transform-with-composited-descendant.html:16 > + z-index: -2; -1 should be enough?
zalan
Comment 5 2016-09-15 14:22:13 PDT
WebKit Commit Bot
Comment 6 2016-09-15 15:15:21 PDT
Comment on attachment 288998 [details] Patch Clearing flags on attachment: 288998 Committed r205999: <http://trac.webkit.org/changeset/205999>
WebKit Commit Bot
Comment 7 2016-09-15 15:15:27 PDT
All reviewed patches have been landed. Closing bug.
David Kilzer (:ddkilzer)
Comment 8 2016-09-17 03:47:50 PDT
(In reply to comment #6) > Comment on attachment 288998 [details] > Patch > > Clearing flags on attachment: 288998 > > Committed r205999: <http://trac.webkit.org/changeset/205999> Why are the changes to Source/WebCore/rendering/style/WillChangeData.{cpp|h} not described in the ChangeLog? Was this an accidental change that removed code?
zalan
Comment 9 2016-09-17 08:22:57 PDT
(In reply to comment #8) > (In reply to comment #6) > > Comment on attachment 288998 [details] > > Patch > > > > Clearing flags on attachment: 288998 > > > > Committed r205999: <http://trac.webkit.org/changeset/205999> > > Why are the changes to Source/WebCore/rendering/style/WillChangeData.{cpp|h} > not described in the ChangeLog? > > Was this an accidental change that removed code? Those functions/member are not used anymore. I must have run prepare-changelog before I realized they were not needed anymore. :(
Note You need to log in before you can comment on or make changes to this bug.