Bug 150231

Summary: ASSERTION FAILED: !child.isOutOfFlowPositioned() in WebCore::RenderGrid::updateAutoMarginsInColumnAxisIfNeeded
Product: WebKit Reporter: Renata Hodovan <rhodovan.u-szeged>
Component: Layout and RenderingAssignee: Manuel Rego Casasnovas <rego>
Status: RESOLVED FIXED    
Severity: Normal CC: jfernandez, rego, svillar
Priority: P2    
Version: WebKit Local Build   
Hardware: Unspecified   
OS: Unspecified   
Bug Depends on: 150837    
Bug Blocks: 116980    
Attachments:
Description Flags
Test none

Renata Hodovan
Reported 2015-10-16 08:37:00 PDT
Created attachment 263269 [details] Test Load the following with debug WebKit: <style> * { display: -webkit-grid; position: fixed; } </style> Backtrace: ASSERTION FAILED: !child.isOutOfFlowPositioned() ../../Source/WebCore/rendering/RenderGrid.cpp(1550) : void WebCore::RenderGrid::updateAutoMarginsInColumnAxisIfNeeded(WebCore::RenderBox&) Program terminated with signal SIGSEGV, Segmentation fault. #0 0x00007f11e86b4eda in WTFCrash () at ../../Source/WTF/wtf/Assertions.cpp:321 321 *(int *)(uintptr_t)0xbbadbeef = 0; (gdb) bt #0 0x00007f11e86b4eda in WTFCrash () at ../../Source/WTF/wtf/Assertions.cpp:321 #1 0x00007f11ef58d992 in WebCore::RenderGrid::updateAutoMarginsInColumnAxisIfNeeded (this=0x7f11d1af29d8, child=...) at ../../Source/WebCore/rendering/RenderGrid.cpp:1550 #2 0x00007f11ef58bfe9 in WebCore::RenderGrid::layoutGridItems (this=0x7f11d1af29d8) at ../../Source/WebCore/rendering/RenderGrid.cpp:1310 #3 0x00007f11ef586642 in WebCore::RenderGrid::layoutBlock (this=0x7f11d1af29d8, relayoutChildren=false) at ../../Source/WebCore/rendering/RenderGrid.cpp:315 #4 0x00007f11ef495d70 in WebCore::RenderBlock::layout (this=0x7f11d1af29d8) at ../../Source/WebCore/rendering/RenderBlock.cpp:926 #5 0x00007f11ef45dd57 in WebCore::RenderElement::layoutIfNeeded (this=0x7f11d1af29d8) at ../../Source/WebCore/rendering/RenderElement.h:135 #6 0x00007f11ef5886b6 in WebCore::RenderGrid::logicalContentHeightForChild (this=0x7f11d1af28c0, child=..., columnTracks=...) at ../../Source/WebCore/rendering/RenderGrid.cpp:602 #7 0x00007f11ef588a97 in WebCore::RenderGrid::minContentForChild (this=0x7f11d1af28c0, child=..., direction=WebCore::ForRows, columnTracks=...) at ../../Source/WebCore/rendering/RenderGrid.cpp:643 #8 0x00007f11ef588833 in WebCore::RenderGrid::minSizeForChild (this=0x7f11d1af28c0, child=..., direction=WebCore::ForRows, columnTracks=...) at ../../Source/WebCore/rendering/RenderGrid.cpp:616 #9 0x00007f11ef589497 in WebCore::RenderGrid::resolveContentBasedTrackSizingFunctionsForNonSpanningItems (this=0x7f11d1af28c0, direction=WebCore::ForRows, coordinate=..., gridItem=..., track=..., columnTracks=...) at ../../Source/WebCore/rendering/RenderGrid.cpp:765 #10 0x00007f11ef588fdf in WebCore::RenderGrid::resolveContentBasedTrackSizingFunctions (this=0x7f11d1af28c0, direction=WebCore::ForRows, sizingData=...) at ../../Source/WebCore/rendering/RenderGrid.cpp:728 #11 0x00007f11ef586f6e in WebCore::RenderGrid::computeUsedBreadthOfGridTracks (this=0x7f11d1af28c0, direction=WebCore::ForRows, sizingData=...) at ../../Source/WebCore/rendering/RenderGrid.cpp:417 #12 0x00007f11ef58bc86 in WebCore::RenderGrid::layoutGridItems (this=0x7f11d1af28c0) at ../../Source/WebCore/rendering/RenderGrid.cpp:1276 #13 0x00007f11ef586642 in WebCore::RenderGrid::layoutBlock (this=0x7f11d1af28c0, relayoutChildren=false) at ../../Source/WebCore/rendering/RenderGrid.cpp:315 #14 0x00007f11ef495d70 in WebCore::RenderBlock::layout (this=0x7f11d1af28c0) at ../../Source/WebCore/rendering/RenderBlock.cpp:926 #15 0x00007f11ef45dd57 in WebCore::RenderElement::layoutIfNeeded (this=0x7f11d1af28c0) at ../../Source/WebCore/rendering/RenderElement.h:135 #16 0x00007f11ef497b6c in WebCore::RenderBlock::layoutPositionedObject (this=0x7f11d1ae7228, r=..., relayoutChildren=true, fixedPositionObjectsOnly=false) at ../../Source/WebCore/rendering/RenderBlock.cpp:1340 #17 0x00007f11ef497cb4 in WebCore::RenderBlock::layoutPositionedObjects (this=0x7f11d1ae7228, relayoutChildren=true, fixedPositionObjectsOnly=false) at ../../Source/WebCore/rendering/RenderBlock.cpp:1363 #18 0x00007f11ef4c2b16 in WebCore::RenderBlockFlow::layoutBlock (this=0x7f11d1ae7228, relayoutChildren=true, pageLogicalHeight=...) at ../../Source/WebCore/rendering/RenderBlockFlow.cpp:524 #19 0x00007f11ef495d70 in WebCore::RenderBlock::layout (this=0x7f11d1ae7228) at ../../Source/WebCore/rendering/RenderBlock.cpp:926 #20 0x00007f11ef6afb21 in WebCore::RenderView::layoutContent (this=0x7f11d1ae7228, state=...) at ../../Source/WebCore/rendering/RenderView.cpp:253 #21 0x00007f11ef6b0214 in WebCore::RenderView::layout (this=0x7f11d1ae7228) at ../../Source/WebCore/rendering/RenderView.cpp:378 #22 0x00007f11ef1c1861 in WebCore::FrameView::layout (this=0x7f11d180d000, allowSubtree=true) at ../../Source/WebCore/page/FrameView.cpp:1414 #23 0x00007f11eeaf39fa in WebCore::Document::implicitClose (this=0x7f11d182c980) at ../../Source/WebCore/dom/Document.cpp:2704 #24 0x00007f11ef055d3d in WebCore::FrameLoader::checkCallImplicitClose (this=0x7f11d1aef098) at ../../Source/WebCore/loader/FrameLoader.cpp:890 #25 0x00007f11ef055a74 in WebCore::FrameLoader::checkCompleted (this=0x7f11d1aef098) at ../../Source/WebCore/loader/FrameLoader.cpp:836 #26 0x00007f11ef0557e4 in WebCore::FrameLoader::finishedParsing (this=0x7f11d1aef098) at ../../Source/WebCore/loader/FrameLoader.cpp:757 #27 0x00007f11eeafda2a in WebCore::Document::finishedParsing (this=0x7f11d182c980) at ../../Source/WebCore/dom/Document.cpp:4897 #28 0x00007f11eeead211 in WebCore::HTMLConstructionSite::finishedParsing (this=0x7f11d1af7920) at ../../Source/WebCore/html/parser/HTMLConstructionSite.cpp:403 #29 0x00007f11eeeecaf8 in WebCore::HTMLTreeBuilder::finished (this=0x7f11d1af7900) at ../../Source/WebCore/html/parser/HTMLTreeBuilder.cpp:2937 #30 0x00007f11eeeb636e in WebCore::HTMLDocumentParser::end (this=0x7f11d1827200) at ../../Source/WebCore/html/parser/HTMLDocumentParser.cpp:402 #31 0x00007f11eeeb643c in WebCore::HTMLDocumentParser::attemptToRunDeferredScriptsAndEnd (this=0x7f11d1827200) at ../../Source/WebCore/html/parser/HTMLDocumentParser.cpp:411 #32 0x00007f11eeeb5059 in WebCore::HTMLDocumentParser::prepareToStopParsing (this=0x7f11d1827200) at ../../Source/WebCore/html/parser/HTMLDocumentParser.cpp:132 #33 0x00007f11eeeb6473 in WebCore::HTMLDocumentParser::attemptToEnd (this=0x7f11d1827200) at ../../Source/WebCore/html/parser/HTMLDocumentParser.cpp:423 #34 0x00007f11eeeb6521 in WebCore::HTMLDocumentParser::finish (this=0x7f11d1827200) at ../../Source/WebCore/html/parser/HTMLDocumentParser.cpp:451 #35 0x00007f11ef045342 in WebCore::DocumentWriter::end (this=0x7f11d18030a0) at ../../Source/WebCore/loader/DocumentWriter.cpp:247 #36 0x00007f11ef02ee3a in WebCore::DocumentLoader::finishedLoading (this=0x7f11d1803000, finishTime=0) at ../../Source/WebCore/loader/DocumentLoader.cpp:437 #37 0x00007f11ef02eb98 in WebCore::DocumentLoader::notifyFinished (this=0x7f11d1803000, resource=0x7f11d180b980) at ../../Source/WebCore/loader/DocumentLoader.cpp:384 #38 0x00007f11ef0ed183 in WebCore::CachedResource::checkNotify (this=0x7f11d180b980) at ../../Source/WebCore/loader/cache/CachedResource.cpp:297 #39 0x00007f11ef0ed292 in WebCore::CachedResource::finishLoading (this=0x7f11d180b980) at ../../Source/WebCore/loader/cache/CachedResource.cpp:313 #40 0x00007f11ef0e9490 in WebCore::CachedRawResource::finishLoading (this=0x7f11d180b980, data=0x7f11d1bfdf00) at ../../Source/WebCore/loader/cache/CachedRawResource.cpp:103 #41 0x00007f11ef099ece in WebCore::SubresourceLoader::didFinishLoading (this=0x7f11d182f800, finishTime=0) at ../../Source/WebCore/loader/SubresourceLoader.cpp:372 #42 0x00007f11ef094ad3 in WebCore::ResourceLoader::didFinishLoading (this=0x7f11d182f800, finishTime=0) at ../../Source/WebCore/loader/ResourceLoader.cpp:631 #43 0x00007f11efacc082 in WebCore::readCallback (asyncResult=0x21c89b0, data=0x7f11d1bc26c0) at ../../Source/WebCore/platform/network/soup/ResourceHandleSoup.cpp:1340 #44 0x00007f11e540095a in async_ready_callback_wrapper (source_object=0x218adb0, res=0x21c89b0, user_data=0x7f11d1bc26c0) at ginputstream.c:529 #45 0x00007f11e5426433 in g_task_return_now (task=0x21c89b0) at gtask.c:1088 #46 0x00007f11e5426469 in complete_in_idle_cb (task=0x21c89b0) at gtask.c:1102 #47 0x00007f11e4e60d9d in g_main_dispatch (context=0x1b998d0) at gmain.c:3122 #48 g_main_context_dispatch (context=context@entry=0x1b998d0) at gmain.c:3737 #49 0x00007f11e4e61170 in g_main_context_iterate (context=0x1b998d0, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at gmain.c:3808 #50 0x00007f11e4e61492 in g_main_loop_run (loop=0x1c6a370) at gmain.c:4002 #51 0x00007f11e870fda3 in WTF::RunLoop::run () at ../../Source/WTF/wtf/glib/RunLoopGLib.cpp:67 #52 0x00007f11ee49000d in WebKit::ChildProcessMain<WebKit::WebProcess, WebKit::WebProcessMain> (argc=2, argv=0x7ffd8360ee18) at ../../Source/WebKit2/Shared/unix/ChildProcessMain.h:61 #53 0x00007f11ee48fe6a in WebKit::WebProcessMainUnix (argc=2, argv=0x7ffd8360ee18) at ../../Source/WebKit2/WebProcess/gtk/WebProcessMainGtk.cpp:77 #54 0x00000000004008fa in main (argc=2, argv=0x7ffd8360ee18) at ../../Source/WebKit2/WebProcess/EntryPoint/unix/WebProcessMain.cpp:44
Attachments
Test (70 bytes, text/html)
2015-10-16 08:37 PDT, Renata Hodovan
no flags
Manuel Rego Casasnovas
Comment 1 2015-10-16 09:07:37 PDT
I guess that the problem is that positioned items support hasn't been ported yet to WebKit. We've an almost finished implementation on Blink, but we're waiting for CSS WG to be sure it's 100% fine, and then we'll port it to WebKit. The problem is that we're not skipping the positioned items during grid layout and probably those ASSERTs come from the patch in Blink. We might remove the ASSERTs or start doing the basic stuff for positioned items, like skipping them as they don't affect the layout of the grid. And in the future we could make them work properly according to the spec.
Manuel Rego Casasnovas
Comment 2 2015-11-06 02:54:37 PST
Now that support for grid positioned elements has landed (bug #150837) this should be fixed. At least it's not crashing for me, could you verify it?
Renata Hodovan
Comment 3 2015-11-06 03:03:12 PST
(In reply to comment #2) > Now that support for grid positioned elements has landed (bug #150837) this > should be fixed. > > At least it's not crashing for me, could you verify it? Yeah, it works fine indeed. Thanks! Closing bug.
Note You need to log in before you can comment on or make changes to this bug.