[root layer scrolls] LayoutGeometryMap DCHECK with nested sticky and scroll offset |
|||
Issue descriptionAttached test case will (usually?) crash content_shell with RLS on and dchecks enabled. [1:1:0312/163418.002411:FATAL:LayoutGeometryMap.cpp(183)] Check failed: layout_object_mapped_result.EqualWithinEpsilon(result.BoundingBox(), 0.1f) || layout_object_mapped_result.MayNotHaveExactIntRectRepresentation() || result.BoundingBox().MayNotHaveExactIntRectRepresentation(). Rounded: "0,100 200x100" vs "0,150 200x100". Original: "0,100 200x100" vs "0,150 200x100" #0 0x7fdf327bd6ad base::debug::StackTrace::StackTrace() #1 0x7fdf327bbb9c base::debug::StackTrace::StackTrace() #2 0x7fdf32843bca logging::LogMessage::~LogMessage() #3 0x7fdf2a43b6fc blink::LayoutGeometryMap::MapToAncestor() #4 0x7fdf2a4615c9 blink::LayoutGeometryMap::AbsoluteRect() #5 0x7fdf2a8bf055 blink::CompositingInputsUpdater::UpdateAncestorDependentCompositingInputs() #6 0x7fdf2a8bec95 blink::CompositingInputsUpdater::UpdateRecursive() #7 0x7fdf2a8bee9c blink::CompositingInputsUpdater::UpdateRecursive() #8 0x7fdf2a8bee9c blink::CompositingInputsUpdater::UpdateRecursive() #9 0x7fdf2a8bee9c blink::CompositingInputsUpdater::UpdateRecursive() #10 0x7fdf2a8be7a8 blink::CompositingInputsUpdater::Update() #11 0x7fdf2a8cff0b blink::PaintLayerCompositor::UpdateIfNeeded() #12 0x7fdf2a8cf6e5 blink::PaintLayerCompositor::UpdateIfNeededRecursiveInternal() #13 0x7fdf2a8cef7c blink::PaintLayerCompositor::UpdateIfNeededRecursive() #14 0x7fdf29eba01e blink::LocalFrameView::UpdateLifecyclePhasesInternal() #15 0x7fdf29eb9702 blink::LocalFrameView::UpdateAllLifecyclePhases() #16 0x7fdf2a765f4b blink::PageAnimator::UpdateAllLifecyclePhases() #17 0x7fdf2a76b82c blink::PageWidgetDelegate::UpdateLifecycle() #18 0x7fdf29ddef28 blink::WebViewImpl::UpdateLifecycle() #19 0x7fdf29f4fd57 blink::WebViewFrameWidget::UpdateLifecycle() It looks like LayoutGeometryMap::accumulated_offset_ is wrong somehow. This will affect compositing/overflow/mixed-composited-nested-sticky.html after issue 820921 is fixed. (It currently passes incorrectly because we fail to invalidate compositing inputs when the scroll is performed.)
,
Mar 15 2018
Patch up: http://crrev.com/c/963516
,
Mar 16 2018
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/a3c8efc97aaa9b71a8ea664bdfb3f8d2b527512e commit a3c8efc97aaa9b71a8ea664bdfb3f8d2b527512e Author: Steve Kobes <skobes@chromium.org> Date: Fri Mar 16 21:52:04 2018 Update sticky layers in tree order after scroll. The position of a nested sticky layer depends on the position of its sticky ancestor. If the ancestor hasn't been positioned, we get the wrong offset from StickyPositionScrollingConstraints. PLSA's iteration over the StickyConstraintsMap has unspecified ordering. Instead, use the recursive tree walk of UpdateLayerPositionRecursive (but preserve the optimization of skipping non-sticky layers when the root PLSA is scrolled). Bug: 821216 Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2 Change-Id: I61ca51a69fdbb857d88713afcdd92f8615930cd1 Reviewed-on: https://chromium-review.googlesource.com/963516 Reviewed-by: Stefan Zager <szager@chromium.org> Commit-Queue: Steve Kobes <skobes@chromium.org> Cr-Commit-Position: refs/heads/master@{#543841} [modify] https://crrev.com/a3c8efc97aaa9b71a8ea664bdfb3f8d2b527512e/third_party/WebKit/LayoutTests/TestExpectations [modify] https://crrev.com/a3c8efc97aaa9b71a8ea664bdfb3f8d2b527512e/third_party/WebKit/Source/core/paint/PaintLayer.cpp [modify] https://crrev.com/a3c8efc97aaa9b71a8ea664bdfb3f8d2b527512e/third_party/WebKit/Source/core/paint/PaintLayer.h [modify] https://crrev.com/a3c8efc97aaa9b71a8ea664bdfb3f8d2b527512e/third_party/WebKit/Source/core/paint/PaintLayerScrollableArea.cpp [modify] https://crrev.com/a3c8efc97aaa9b71a8ea664bdfb3f8d2b527512e/third_party/WebKit/Source/core/paint/PaintLayerScrollableArea.h
,
Mar 17 2018
|
|||
►
Sign in to add a comment |
|||
Comment 1 by skobes@chromium.org
, Mar 12 2018749 bytes
749 bytes View Download