[css-flex] ASSERTION FAILED: resolvedMainSize >= 0 |
|||||
Issue descriptionReproduced using latest trunk (r395874) and loading the attached test case. Program received signal SIGSEGV, Segmentation fault. [Switching to Thread 0x7ff761b7b700 (LWP 2529)] 0x0000000004021bce in blink::LayoutFlexibleBox::adjustChildSizeForMinAndMax (this=0x269ed72dc010, child=..., childSize=...) at ../../third_party/WebKit/Source/core/layout/LayoutFlexibleBox.cpp:1093 1093 ASSERT(resolvedMainSize >= 0); (gdb) bt #0 0x0000000004021bce in blink::LayoutFlexibleBox::adjustChildSizeForMinAndMax (this=0x269ed72dc010, child=..., childSize=...) at ../../third_party/WebKit/Source/core/layout/LayoutFlexibleBox.cpp:1093 #1 0x0000000004022704 in blink::LayoutFlexibleBox::computeNextFlexLine (this=0x269ed72dc010, orderedChildren=..., sumFlexBaseSize=..., totalFlexGrow=@0x7ff761b779f0: 0, totalFlexShrink=@0x7ff761b779f8: 0, totalWeightedFlexShrink=@0x7ff761b77a00: 0, sumHypotheticalMainSize=..., relayoutChildren=false) at ../../third_party/WebKit/Source/core/layout/LayoutFlexibleBox.cpp:1252 #2 0x0000000004020720 in blink::LayoutFlexibleBox::layoutFlexItems (this=0x269ed72dc010, relayoutChildren=false, layoutScope=...) at ../../third_party/WebKit/Source/core/layout/LayoutFlexibleBox.cpp:858 #3 0x000000000401e2be in blink::LayoutFlexibleBox::layoutBlock (this=0x269ed72dc010, relayoutChildren=false) at ../../third_party/WebKit/Source/core/layout/LayoutFlexibleBox.cpp:349 #4 0x0000000003fafa95 in blink::LayoutBlock::layout (this=0x269ed72dc010) at ../../third_party/WebKit/Source/core/layout/LayoutBlock.cpp:431 #5 0x0000000003fc3f4d in blink::LayoutBlockFlow::positionAndLayoutOnceIfNeeded (this=0x269ed7218128, child=..., newLogicalTop=..., layoutInfo=...) at ../../third_party/WebKit/Source/core/layout/LayoutBlockFlow.cpp:668 #6 0x0000000003fc41bf in blink::LayoutBlockFlow::layoutBlockChild (this=0x269ed7218128, child=..., layoutInfo=...) at ../../third_party/WebKit/Source/core/layout/LayoutBlockFlow.cpp:718 #7 0x0000000003fc63c8 in blink::LayoutBlockFlow::layoutBlockChildren (this=0x269ed7218128, relayoutChildren=true, layoutScope=..., beforeEdge=..., afterEdge=...) at ../../third_party/WebKit/Source/core/layout/LayoutBlockFlow.cpp:1203 #8 0x0000000003fd6340 in blink::LayoutBlockFlow::layoutBlockFlow (this=0x269ed7218128, relayoutChildren=true, pageLogicalHeight=..., layoutScope=...) at ../../third_party/WebKit/Source/core/layout/LayoutBlockFlow.cpp:489 #9 0x0000000003fc34a3 in blink::LayoutBlockFlow::layoutBlock (this=0x269ed7218128, relayoutChildren=false) at ../../third_party/WebKit/Source/core/layout/LayoutBlockFlow.cpp:396 #10 0x0000000003fafa95 in blink::LayoutBlock::layout (this=0x269ed7218128) at ../../third_party/WebKit/Source/core/layout/LayoutBlock.cpp:431 #11 0x0000000003fc3f4d in blink::LayoutBlockFlow::positionAndLayoutOnceIfNeeded (this=0x269ed7218010, child=..., newLogicalTop=..., layoutInfo=...) at ../../third_party/WebKit/Source/core/layout/LayoutBlockFlow.cpp:668 #12 0x0000000003fc41bf in blink::LayoutBlockFlow::layoutBlockChild (this=0x269ed7218010, child=..., layoutInfo=...) at ../../third_party/WebKit/Source/core/layout/LayoutBlockFlow.cpp:718 #13 0x0000000003fc63c8 in blink::LayoutBlockFlow::layoutBlockChildren (this=0x269ed7218010, relayoutChildren=true, layoutScope=..., beforeEdge=..., afterEdge=...) at ../../third_party/WebKit/Source/core/layout/LayoutBlockFlow.cpp:1203 #14 0x0000000003fd6340 in blink::LayoutBlockFlow::layoutBlockFlow (this=0x269ed7218010, relayoutChildren=true, pageLogicalHeight=..., layoutScope=...) at ../../third_party/WebKit/Source/core/layout/LayoutBlockFlow.cpp:489 #15 0x0000000003fc34a3 in blink::LayoutBlockFlow::layoutBlock (this=0x269ed7218010, relayoutChildren=false) at ../../third_party/WebKit/Source/core/layout/LayoutBlockFlow.cpp:396 #16 0x0000000003fafa95 in blink::LayoutBlock::layout (this=0x269ed7218010) at ../../third_party/WebKit/Source/core/layout/LayoutBlock.cpp:431 #17 0x0000000003fc3f4d in blink::LayoutBlockFlow::positionAndLayoutOnceIfNeeded (this=0x269ed7204010, child=..., newLogicalTop=..., layoutInfo=...) at ../../third_party/WebKit/Source/core/layout/LayoutBlockFlow.cpp:668 #18 0x0000000003fc41bf in blink::LayoutBlockFlow::layoutBlockChild (this=0x269ed7204010, child=..., layoutInfo=...) at ../../third_party/WebKit/Source/core/layout/LayoutBlockFlow.cpp:718 #19 0x0000000003fc63c8 in blink::LayoutBlockFlow::layoutBlockChildren (this=0x269ed7204010, relayoutChildren=true, layoutScope=..., beforeEdge=..., afterEdge=...) at ../../third_party/WebKit/Source/core/layout/LayoutBlockFlow.cpp:1203 #20 0x0000000003fd6340 in blink::LayoutBlockFlow::layoutBlockFlow (this=0x269ed7204010, relayoutChildren=true, pageLogicalHeight=..., layoutScope=...) at ../../third_party/WebKit/Source/core/layout/LayoutBlockFlow.cpp:489 #21 0x0000000003fc34a3 in blink::LayoutBlockFlow::layoutBlock (this=0x269ed7204010, relayoutChildren=false) at ../../third_party/WebKit/Source/core/layout/LayoutBlockFlow.cpp:396 #22 0x0000000003fafa95 in blink::LayoutBlock::layout (this=0x269ed7204010) at ../../third_party/WebKit/Source/core/layout/LayoutBlock.cpp:431 #23 0x00000000040d8669 in blink::LayoutView::layoutContent (this=0x269ed7204010) at ../../third_party/WebKit/Source/core/layout/LayoutView.cpp:190 #24 0x00000000040d8dd1 in blink::LayoutView::layout (this=0x269ed7204010) at ../../third_party/WebKit/Source/core/layout/LayoutView.cpp:290 #25 0x0000000003baa97c in blink::layoutFromRootObject (root=...) at ../../third_party/WebKit/Source/core/frame/FrameView.cpp:818 #26 0x0000000003baafd3 in blink::FrameView::performLayout (this=0x29e797862ca8, inSubtreeLayout=false) at ../../third_party/WebKit/Source/core/frame/FrameView.cpp:887 #27 0x0000000003babd64 in blink::FrameView::layout (this=0x29e797862ca8) at ../../third_party/WebKit/Source/core/frame/FrameView.cpp:1036 #28 0x0000000003bb2a8a in blink::FrameView::updateStyleAndLayoutIfNeededRecursiveInternal (this=0x29e797862ca8) at ../../third_party/WebKit/Source/core/frame/FrameView.cpp:2588 #29 0x0000000003bb2a05 in blink::FrameView::updateStyleAndLayoutIfNeededRecursive (this=0x29e797862ca8) at ../../third_party/WebKit/Source/core/frame/FrameView.cpp:2568 #30 0x0000000003bb1b8e in blink::FrameView::updateLifecyclePhasesInternal (this=0x29e797862ca8, phases=blink::FrameView::AllPhases) at ../../third_party/WebKit/Source/core/frame/FrameView.cpp:2427 #31 0x0000000003bb1971 in blink::FrameView::updateAllLifecyclePhases (this=0x29e797862ca8) at ../../third_party/WebKit/Source/core/frame/FrameView.cpp:2382 #32 0x0000000003d63070 in blink::PageAnimator::updateAllLifecyclePhases (this=0x35af3c1e1870, rootFrame=...) at ../../third_party/WebKit/Source/core/page/PageAnimator.cpp:86 #33 0x0000000002afae66 in blink::PageWidgetDelegate::updateAllLifecyclePhases (page=..., root=...) at ../../third_party/WebKit/Source/web/PageWidgetDelegate.cpp:61 #34 0x0000000002aa4cbe in blink::WebViewImpl::updateAllLifecyclePhases (this=0x26fb8e2ec010) at ../../third_party/WebKit/Source/web/WebViewImpl.cpp:1999 #35 0x00000000057ed21f in content::RenderWidget::UpdateVisualState (this=0x3ddce5858020) at ../../content/renderer/render_widget.cc:900 #36 0x0000000005a3ed2f in content::RenderWidgetCompositor::UpdateLayerTreeHost (this=0x3ddce559f180) at ../../content/renderer/gpu/render_widget_compositor.cc:917 #37 0x0000000006375699 in cc::LayerTreeHost::RequestMainFrameUpdate (this=0x3ddce5a15920) at ../../cc/trees/layer_tree_host.cc:396 #38 0x0000000006401e64 in cc::ProxyMain::BeginMainFrame (this=0x3ddce4d8f320, begin_main_frame_state=...) at ../../cc/trees/proxy_main.cc:202 #39 0x00000000064229d6 in base::internal::RunnableAdapter<void (cc::ProxyMain::*)(std::unique_ptr<cc::BeginMainFrameAndCommitState, std::default_delete<cc::BeginMainFrameAndCommitState> >)>::Run<cc::ProxyMain*, std::unique_ptr<cc::BeginMainFrameAndCommitState, std::default_delete<cc::BeginMainFrameAndCommitState> > >(cc::ProxyMain*&&, std::unique_ptr<cc::BeginMainFrameAndCommitState, std::default_delete<cc::BeginMainFrameAndCommitState> >&&) (this=0x7ff761b79570, receiver_ptr=<unknown type in /home/javi/devel/Chromium/src/out/Debug/content_shell, CU 0x742d8fd3, DIE 0x7435db72>) at ../../base/bind_internal.h:186 #40 0x000000000642256f in base::internal::InvokeHelper<true, void, base::internal::RunnableAdapter<void (cc::ProxyMain::*)(std::unique_ptr<cc::BeginMainFrameAndCommitState, std::default_delete<cc::BeginMainFrameAndCommitState> >)> >::MakeItSo<base::WeakPtr<cc::ProxyMain>, std::unique_ptr<cc::BeginMainFrameAndCommitState, std::default_delete<cc::BeginMainFrameAndCommitState> > >(base::internal::RunnableAdapter<void (cc::ProxyMain::*)(std::unique_ptr<cc::BeginMainFrameAndCommitState, std::default_delete<cc::BeginMainFrameAndCommitState> >)>, base::WeakPtr<cc::ProxyMain>, std::unique_ptr<cc::BeginMainFrameAndCommitState, std::default_delete<cc::BeginMainFrameAndCommitState> >&&) (runnable=..., weak_ptr=...) at ../../base/bind_internal.h:324 #41 0x000000000642222a in base::internal::Invoker<base::IndexSequence<0ul, 1ul>, base::internal::BindState<base::internal::RunnableAdapter<void (cc::ProxyMain::*)(std::unique_ptr<cc::BeginMainFrameAndCommitState, std::default_delete<cc::BeginMainFrameAndCommitState> >)>, void (cc::ProxyMain*, std::unique_ptr<cc::BeginMainFrameAndCommitState, std::default_delete<cc::BeginMainFrameAndCommitState> >), base::WeakPtr<cc::ProxyMain>&, base::internal::PassedWrapper<std::unique_ptr<cc::BeginMainFrameAndCommitState, std::default_delete<cc::BeginMainFrameAndCommitState> > > >, base::internal::InvokeHelper<true, void, base::internal::RunnableAdapter<void (cc::ProxyMain::*)(std::unique_ptr<cc::BeginMainFrameAndCommitState, std::default_delete<cc::BeginMainFrameAndCommitState> >)> >, void ()>::Run(base::internal::BindStateBase*) (base=0x3ddce73984a0) at ../../base/bind_internal.h:364 #42 0x0000000000aea134 in base::Callback<void (), (base::internal::CopyMode)1>::Run() const (this=0x7ff761b797d8) at ../../base/callback.h:397 #43 0x0000000000e5ca05 in base::debug::TaskAnnotator::RunTask (this=0x3ddce55fb940, queue_function=0xb1e5f29 "TaskQueueManager::PostTask", pending_task=...) at ../../base/debug/task_annotator.cc:51 #44 0x0000000007a5a91f in scheduler::TaskQueueManager::ProcessTaskFromWorkQueue (this=0x3ddce55fb820, work_queue=0x3ddce56009e0, out_previous_task=0x7ff761b79a60) at ../../components/scheduler/base/task_queue_manager.cc:289 #45 0x0000000007a5a002 in scheduler::TaskQueueManager::DoWork (this=0x3ddce55fb820, run_time=..., from_main_thread=false) at ../../components/scheduler/base/task_queue_manager.cc:201 #46 0x0000000007a601bf in base::internal::RunnableAdapter<void (scheduler::TaskQueueManager::*)(base::TimeTicks, bool)>::Run<scheduler::TaskQueueManager*, base::TimeTicks const&, bool const&>(scheduler::TaskQueueManager*&&, base::TimeTicks const&, bool const&) (this=0x7ff761b79d00, receiver_ptr=<unknown type in /home/javi/devel/Chromium/src/out/Debug/content_shell, CU 0x88a23930, DIE 0x88a6615d>) at ../../base/bind_internal.h:186 #47 0x0000000007a5f370 in base::internal::InvokeHelper<true, void, base::internal::RunnableAdapter<void (scheduler::TaskQueueManager::*)(base::TimeTicks, bool)> >::MakeItSo<base::WeakPtr<scheduler::TaskQueueManager>, base::TimeTicks const&, bool const&> (runnable=..., weak_ptr=...) at ../../base/bind_internal.h:324 #48 0x0000000007a5e6e7 in base::internal::Invoker<base::IndexSequence<0ul, 1ul, 2ul>, base::internal::BindState<base::internal::RunnableAdapter<void (scheduler::TaskQueueManager::*)(base::TimeTicks, bool)>, void (scheduler::TaskQueueManager*, base::TimeTicks, bool), base::WeakPtr<scheduler::TaskQueueManager>, base::TimeTicks, bool>, base::internal::InvokeHelper<true, void, base::internal::RunnableAdapter<void (scheduler::TaskQueueManager::*)(base::TimeTicks, bool)> >, void ()>::Run(base::internal::BindStateBase*) (base=0x3ddce4d91fa0) at ../../base/bind_internal.h:364
,
Jun 6 2016
,
Jun 6 2016
Interesting, this is a version without a percentage padding. I'll investigate.
,
Jun 8 2016
Your cl will fix this one, too: https://codereview.chromium.org/2022033003/ (tested by applying it and loading the testcase)
,
Jun 14 2016
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/f7b659ec21315a34e7bb462283d3f007c16a3b7c commit f7b659ec21315a34e7bb462283d3f007c16a3b7c Author: jfernandez <jfernandez@igalia.com> Date: Tue Jun 14 10:23:42 2016 [css-sizing] Adding border and padding to fill-available width The "fill-available" size is defined as the containing block's size less the box's border and padding size. However, when used for min-width we should ensure we don't get negative values as result of logical width computation. http://www.w3.org/TR/css-sizing-3/#fill-available-sizing This patch ensure fill-available value computed value will be always greater than box's border and padding width. BUG= 613354 , 616059 Review-Url: https://codereview.chromium.org/2022033003 Cr-Commit-Position: refs/heads/master@{#399677} [add] https://crrev.com/f7b659ec21315a34e7bb462283d3f007c16a3b7c/third_party/WebKit/LayoutTests/fast/css-intrinsic-dimensions/fill-available-with-zero-width-expected.html [add] https://crrev.com/f7b659ec21315a34e7bb462283d3f007c16a3b7c/third_party/WebKit/LayoutTests/fast/css-intrinsic-dimensions/fill-available-with-zero-width.html [modify] https://crrev.com/f7b659ec21315a34e7bb462283d3f007c16a3b7c/third_party/WebKit/Source/core/layout/LayoutBox.cpp
,
Jun 15 2016
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/f7b659ec21315a34e7bb462283d3f007c16a3b7c commit f7b659ec21315a34e7bb462283d3f007c16a3b7c Author: jfernandez <jfernandez@igalia.com> Date: Tue Jun 14 10:23:42 2016 [css-sizing] Adding border and padding to fill-available width The "fill-available" size is defined as the containing block's size less the box's border and padding size. However, when used for min-width we should ensure we don't get negative values as result of logical width computation. http://www.w3.org/TR/css-sizing-3/#fill-available-sizing This patch ensure fill-available value computed value will be always greater than box's border and padding width. BUG= 613354 , 616059 Review-Url: https://codereview.chromium.org/2022033003 Cr-Commit-Position: refs/heads/master@{#399677} [add] https://crrev.com/f7b659ec21315a34e7bb462283d3f007c16a3b7c/third_party/WebKit/LayoutTests/fast/css-intrinsic-dimensions/fill-available-with-zero-width-expected.html [add] https://crrev.com/f7b659ec21315a34e7bb462283d3f007c16a3b7c/third_party/WebKit/LayoutTests/fast/css-intrinsic-dimensions/fill-available-with-zero-width.html [modify] https://crrev.com/f7b659ec21315a34e7bb462283d3f007c16a3b7c/third_party/WebKit/Source/core/layout/LayoutBox.cpp
,
Jul 26 2016
This issue should be fixed now. |
|||||
►
Sign in to add a comment |
|||||
Comment 1 by jfernan...@igalia.com
, May 31 2016226 bytes
226 bytes View Download