| Index: third_party/WebKit/Source/core/paint/PaintLayer.cpp
|
| diff --git a/third_party/WebKit/Source/core/paint/PaintLayer.cpp b/third_party/WebKit/Source/core/paint/PaintLayer.cpp
|
| index b48cb92fc906ca757a3f832821d809efc31bf978..c692a92a12c3abf699b06152550df4a4c3c172f0 100644
|
| --- a/third_party/WebKit/Source/core/paint/PaintLayer.cpp
|
| +++ b/third_party/WebKit/Source/core/paint/PaintLayer.cpp
|
| @@ -224,21 +224,25 @@ void PaintLayer::ContentChanged(ContentChangeType change_type) {
|
| // LayoutTests/compositing/content-changed-chicken-egg.html
|
| DisableCompositingQueryAsserts disabler;
|
|
|
| - if (change_type == kCanvasChanged)
|
| - Compositor()->SetNeedsCompositingUpdate(
|
| - kCompositingUpdateAfterCompositingInputChange);
|
| -
|
| - if (change_type == kCanvasContextChanged) {
|
| - Compositor()->SetNeedsCompositingUpdate(
|
| - kCompositingUpdateAfterCompositingInputChange);
|
| + if (Compositor()) {
|
| + if (change_type == kCanvasChanged) {
|
| + Compositor()->SetNeedsCompositingUpdate(
|
| + kCompositingUpdateAfterCompositingInputChange);
|
| + }
|
|
|
| - // Although we're missing test coverage, we need to call
|
| - // GraphicsLayer::setContentsToPlatformLayer with the new platform
|
| - // layer for this canvas.
|
| - // See http://crbug.com/349195
|
| - if (HasCompositedLayerMapping())
|
| - GetCompositedLayerMapping()->SetNeedsGraphicsLayerUpdate(
|
| - kGraphicsLayerUpdateSubtree);
|
| + if (change_type == kCanvasContextChanged) {
|
| + Compositor()->SetNeedsCompositingUpdate(
|
| + kCompositingUpdateAfterCompositingInputChange);
|
| +
|
| + // Although we're missing test coverage, we need to call
|
| + // GraphicsLayer::setContentsToPlatformLayer with the new platform
|
| + // layer for this canvas.
|
| + // See http://crbug.com/349195
|
| + if (HasCompositedLayerMapping()) {
|
| + GetCompositedLayerMapping()->SetNeedsGraphicsLayerUpdate(
|
| + kGraphicsLayerUpdateSubtree);
|
| + }
|
| + }
|
| }
|
|
|
| if (CompositedLayerMapping* composited_layer_mapping =
|
| @@ -385,7 +389,9 @@ void PaintLayer::UpdateTransformationMatrix() {
|
| *transform, box->Size(), ComputedStyle::kIncludeTransformOrigin,
|
| ComputedStyle::kIncludeMotionPath,
|
| ComputedStyle::kIncludeIndependentTransformProperties);
|
| - MakeMatrixRenderable(*transform, Compositor()->HasAcceleratedCompositing());
|
| + MakeMatrixRenderable(
|
| + *transform,
|
| + Compositor() ? Compositor()->HasAcceleratedCompositing() : false);
|
| }
|
| }
|
|
|
| @@ -1031,8 +1037,10 @@ void PaintLayer::SetNeedsCompositingInputsUpdateInternal() {
|
| current = current->Parent())
|
| current->child_needs_compositing_inputs_update_ = true;
|
|
|
| - Compositor()->SetNeedsCompositingUpdate(
|
| - kCompositingUpdateAfterCompositingInputChange);
|
| + if (Compositor()) {
|
| + Compositor()->SetNeedsCompositingUpdate(
|
| + kCompositingUpdateAfterCompositingInputChange);
|
| + }
|
| }
|
|
|
| void PaintLayer::UpdateAncestorDependentCompositingInputs(
|
| @@ -1259,9 +1267,11 @@ void PaintLayer::AddChild(PaintLayer* child, PaintLayer* before_child) {
|
|
|
| SetNeedsCompositingInputsUpdate();
|
|
|
| - if (!child->StackingNode()->IsStacked() &&
|
| - !GetLayoutObject().DocumentBeingDestroyed())
|
| - Compositor()->SetNeedsCompositingUpdate(kCompositingUpdateRebuildTree);
|
| + if (Compositor()) {
|
| + if (!child->StackingNode()->IsStacked() &&
|
| + !GetLayoutObject().DocumentBeingDestroyed())
|
| + Compositor()->SetNeedsCompositingUpdate(kCompositingUpdateRebuildTree);
|
| + }
|
|
|
| if (child->StackingNode()->IsStacked() || child->FirstChild()) {
|
| // Dirty the z-order list in which we are contained. The
|
| @@ -1293,9 +1303,11 @@ PaintLayer* PaintLayer::RemoveChild(PaintLayer* old_child) {
|
| if (last_ == old_child)
|
| last_ = old_child->PreviousSibling();
|
|
|
| - if (!old_child->StackingNode()->IsStacked() &&
|
| - !GetLayoutObject().DocumentBeingDestroyed())
|
| - Compositor()->SetNeedsCompositingUpdate(kCompositingUpdateRebuildTree);
|
| + if (Compositor()) {
|
| + if (!old_child->StackingNode()->IsStacked() &&
|
| + !GetLayoutObject().DocumentBeingDestroyed())
|
| + Compositor()->SetNeedsCompositingUpdate(kCompositingUpdateRebuildTree);
|
| + }
|
|
|
| if (old_child->StackingNode()->IsStacked() || old_child->FirstChild()) {
|
| // Dirty the z-order list in which we are contained. When called via the
|
| @@ -2960,7 +2972,8 @@ bool PaintLayer::AttemptDirectCompositingUpdate(
|
| const ComputedStyle* old_style) {
|
| CompositingReasons old_potential_compositing_reasons_from_style =
|
| PotentialCompositingReasonsFromStyle();
|
| - Compositor()->UpdatePotentialCompositingReasonsFromStyle(this);
|
| + if (Compositor())
|
| + Compositor()->UpdatePotentialCompositingReasonsFromStyle(this);
|
|
|
| // This function implements an optimization for transforms and opacity.
|
| // A common pattern is for a touchmove handler to update the transform
|
| @@ -3014,8 +3027,10 @@ bool PaintLayer::AttemptDirectCompositingUpdate(
|
| // not possibly have changed.
|
| rare_data_->composited_layer_mapping->SetNeedsGraphicsLayerUpdate(
|
| kGraphicsLayerUpdateLocal);
|
| - Compositor()->SetNeedsCompositingUpdate(
|
| - kCompositingUpdateAfterGeometryChange);
|
| + if (Compositor()) {
|
| + Compositor()->SetNeedsCompositingUpdate(
|
| + kCompositingUpdateAfterGeometryChange);
|
| + }
|
|
|
| if (scrollable_area_)
|
| scrollable_area_->UpdateAfterStyleChange(old_style);
|
|
|