[Webkit-unassigned] [Bug 31278] ASSERTION FAILURE: mode & UseTransforms in Assertion Failure in RenderSVGRoot::mapLocalToContainer

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Thu May 2 10:39:20 PDT 2019


https://bugs.webkit.org/show_bug.cgi?id=31278

--- Comment #18 from Daniel Bates <dbates at webkit.org> ---
(In reply to Daniel Bates from comment #17)
> (In reply to Daniel Bates from comment #16)
> > Seen with debug WebKit in iPad simulator with WebKit r244742
> > 
> > Just hit ASSERT(mode & UseTransforms) today (05/02) when doing the following:
> > 
> > 1. Visit <http://wordpress.com>.
> > 2. Click login.
> 
> Some debug notes when I hit this bug:
> 
> (lldb) p mode
> (WebCore::MapCoordinatesFlags) $2 = 5 { size = 2 } {
>   IsFixed = 1
>   ApplyContainerFlip = 4
> }
> (lldb) p repaintContainer
> (const WebCore::RenderLayerModelObject *) $5 = 0x0000000000000000
> (lldb) p transformState
> (WebCore::TransformState) $6 = {
>   m_lastPlanarPoint = { x = 0.0, y = 0.0 }
>   m_lastPlanarQuad = (m_p1 = { x = 0.0, y = 0.0 }, m_p2 = { x = 0.0, y = 0.0
> }, m_p3 = { x = 0.0, y = 0.0 }, m_p4 = { x = 0.0, y = 0.0 })
>   m_lastPlanarSecondaryQuad = {
>     __ptr_ = {
>       std::__1::__compressed_pair_elem<WebCore::FloatQuad *, 0, false> = {
>         __value_ = 0x0000000000000000
>       }
>     }
>   }
>   m_accumulatedTransform = {
>     __ptr_ = {
>       std::__1::__compressed_pair_elem<WebCore::TransformationMatrix *, 0,
> false> = {
>         __value_ = 0x0000000000000000
>       }
>     }
>   }
>   m_accumulatedOffset = { width = 0px (0), height = 0px (0) }
>   m_accumulatingTransform = false
>   m_mapPoint = true
>   m_mapQuad = false
>   m_direction = ApplyTransformDirection
> }
> (lldb) p wasFixed
> (bool *) $7 = 0x0000000000000000
> (lldb) 
> 
> In calling frame, RenderObject::localToAbsolute():
> 
> (lldb) p localPoint
> (const WebCore::FloatPoint) $8 = { x = 0.0, y = 0.0 }
> (lldb) p mode
> (WebCore::MapCoordinatesFlags) $9 = 1 { size = 1 } {
>   IsFixed = 1
> }

And the calling calling frame is WebCore::accumulateOffsetTowardsAncestor(WebCore::RenderLayer const*, WebCore::RenderLayer const*, WebCore::LayoutPoint&, WebCore::RenderLayer::ColumnOffsetAdjustment). And look what we have here a FIXME comment AND it only passes isFixed (see (*) line):

[[
    // FIXME: Positioning of out-of-flow(fixed, absolute) elements collected in a RenderFragmentedFlow
    // may need to be revisited in a future patch.
    // If the fixed renderer is inside a RenderFragmentedFlow, we should not compute location using localToAbsolute,
    // since localToAbsolute maps the coordinates from named flow to regions coordinates and regions can be
    // positioned in a completely different place in the viewport (RenderView).
    if (position == PositionType::Fixed && !fixedFragmentedFlowContainer && (!ancestorLayer || ancestorLayer == renderer.view().layer())) {
        // If the fixed layer's container is the root, just add in the offset of the view. We can obtain this by calling
        // localToAbsolute() on the RenderView.
(*)     FloatPoint absPos = renderer.localToAbsolute(FloatPoint(), IsFixed);
        location += LayoutSize(absPos.x(), absPos.y());
        return ancestorLayer;
    }
]]
<https://trac.webkit.org/browser/trunk/Source/WebCore/rendering/RenderLayer.cpp?rev=244742#L2070>

-- 
You are receiving this mail because:
You are the assignee for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.webkit.org/pipermail/webkit-unassigned/attachments/20190502/604e4dec/attachment.html>


More information about the webkit-unassigned mailing list