Commit ab3d057b authored by Chris Harrelson's avatar Chris Harrelson Committed by Commit Bot

Null-check compositing_stacking_context to work around a production crash.

The situation should never happen, but nevertheless seems to.

Bug: 880930

Cq-Include-Trybots: luci.chromium.try:linux_layout_tests_slimming_paint_v2;master.tryserver.blink:linux_trusty_blink_rel
Change-Id: I1dec6cdb3cb2c004511646a7133c4564a5a4f4ca
Reviewed-on: https://chromium-review.googlesource.com/1211872
Commit-Queue: Chris Harrelson <chrishtr@chromium.org>
Reviewed-by: default avatarTien-Ren Chen <trchen@chromium.org>
Cr-Commit-Position: refs/heads/master@{#589424}
parent 1783bb87
...@@ -1482,6 +1482,11 @@ void CompositedLayerMapping::UpdateOverflowControlsHostLayerGeometry( ...@@ -1482,6 +1482,11 @@ void CompositedLayerMapping::UpdateOverflowControlsHostLayerGeometry(
LayoutPoint host_layer_position; LayoutPoint host_layer_position;
if (NeedsToReparentOverflowControls()) { if (NeedsToReparentOverflowControls()) {
// This should never be true, but for some reason it is.
// See https://crbug.com/880930.
if (!compositing_stacking_context)
return;
CompositedLayerMapping* stacking_clm = CompositedLayerMapping* stacking_clm =
compositing_stacking_context->GetCompositedLayerMapping(); compositing_stacking_context->GetCompositedLayerMapping();
DCHECK(stacking_clm); DCHECK(stacking_clm);
......
...@@ -398,6 +398,16 @@ GraphicsLayer* PaintLayerCompositor::ParentForContentLayers( ...@@ -398,6 +398,16 @@ GraphicsLayer* PaintLayerCompositor::ParentForContentLayers(
return GetVisualViewport().ScrollLayer(); return GetVisualViewport().ScrollLayer();
} }
#if DCHECK_IS_ON()
static void AssertWholeTreeNotComposited(const PaintLayer& paint_layer) {
DCHECK(paint_layer.GetCompositingState() == kNotComposited);
for (PaintLayer* child = paint_layer.FirstChild(); child;
child = child->NextSibling()) {
AssertWholeTreeNotComposited(*child);
}
}
#endif
void PaintLayerCompositor::UpdateIfNeeded( void PaintLayerCompositor::UpdateIfNeeded(
DocumentLifecycle::LifecycleState target_state, DocumentLifecycle::LifecycleState target_state,
CompositingReasonsStats& compositing_reasons_stats) { CompositingReasonsStats& compositing_reasons_stats) {
...@@ -485,6 +495,12 @@ void PaintLayerCompositor::UpdateIfNeeded( ...@@ -485,6 +495,12 @@ void PaintLayerCompositor::UpdateIfNeeded(
->Parent(); ->Parent();
} }
#if DCHECK_IS_ON()
if (update_root->GetCompositingState() != kPaintsIntoOwnBacking) {
AssertWholeTreeNotComposited(*update_root);
}
#endif
GraphicsLayerUpdater updater; GraphicsLayerUpdater updater;
updater.Update(*update_root, layers_needing_paint_invalidation); updater.Update(*update_root, layers_needing_paint_invalidation);
......
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