Commit 6eae5cb1 authored by chrishtr@chromium.org's avatar chrishtr@chromium.org

Add defensive code for now to RenderLayerRepainter to prevent squashing crashes

when removing certain kinds of layers.

BUG=370410

Review URL: https://codereview.chromium.org/270903002

git-svn-id: svn://svn.chromium.org/blink/trunk@173659 bbb929c8-8fbe-4397-9dbb-9b2b20218538
parent 930441ca
...@@ -203,7 +203,16 @@ void RenderLayerRepainter::setBackingNeedsRepaintInRect(const LayoutRect& r) ...@@ -203,7 +203,16 @@ void RenderLayerRepainter::setBackingNeedsRepaintInRect(const LayoutRect& r)
if (m_renderer.compositingState() == PaintsIntoGroupedBacking) { if (m_renderer.compositingState() == PaintsIntoGroupedBacking) {
LayoutRect updatedRect(r); LayoutRect updatedRect(r);
RenderLayerModelObject* transformedAncestor = m_renderer.layer()->enclosingTransformedAncestor()->renderer(); ASSERT(m_renderer.layer());
ASSERT(m_renderer.layer()->enclosingTransformedAncestor());
ASSERT(m_renderer.layer()->enclosingTransformedAncestor()->renderer());
// FIXME: this defensive code should not have to exist. None of these pointers should ever be 0. See crbug.com/370410.
RenderLayerModelObject* transformedAncestor = 0;
if (RenderLayer* ancestor = m_renderer.layer()->enclosingTransformedAncestor())
transformedAncestor = ancestor->renderer();
if (!transformedAncestor)
return;
// If the transformedAncestor is actually the RenderView, we might get // If the transformedAncestor is actually the RenderView, we might get
// confused and think that we can use LayoutState. Ideally, we'd made // confused and think that we can use LayoutState. Ideally, we'd made
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment