Bug 150231 - ASSERTION FAILED: !child.isOutOfFlowPositioned() in WebCore::RenderGrid::updateAutoMarginsInColumnAxisIfNeeded
Summary: ASSERTION FAILED: !child.isOutOfFlowPositioned() in WebCore::RenderGrid::upda...
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: Layout and Rendering (show other bugs)
Version: WebKit Local Build
Hardware: Unspecified Unspecified
: P2 Normal
Assignee: Manuel Rego Casasnovas
URL:
Keywords:
Depends on: 150837
Blocks: 116980
  Show dependency treegraph
 
Reported: 2015-10-16 08:37 PDT by Renata Hodovan
Modified: 2015-11-06 03:03 PST (History)
3 users (show)

See Also:


Attachments
Test (70 bytes, text/html)
2015-10-16 08:37 PDT, Renata Hodovan
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description Renata Hodovan 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
Comment 1 Manuel Rego Casasnovas 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.
Comment 2 Manuel Rego Casasnovas 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?
Comment 3 Renata Hodovan 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.