| Index: cc/trees/property_tree_builder.cc
|
| diff --git a/cc/trees/property_tree_builder.cc b/cc/trees/property_tree_builder.cc
|
| index 2ad73f16529b919037f8de37bb3761280031b17b..9cb1636d13da98f8f8b2d69f5079e13c5c486912 100644
|
| --- a/cc/trees/property_tree_builder.cc
|
| +++ b/cc/trees/property_tree_builder.cc
|
| @@ -369,7 +369,7 @@ void AddClipNodeIfNeeded(const DataForRecursion<LayerType>& data_from_ancestor,
|
| // of its own, but clips from ancestor nodes don't need to be considered
|
| // when computing clip rects or visibility.
|
| has_unclipped_surface = true;
|
| - DCHECK(!parent->applies_local_clip);
|
| + DCHECK_NE(parent->clip_type, ClipNode::ClipType::APPLIES_LOCAL_CLIP);
|
| }
|
| // A surface with unclipped descendants cannot be clipped by its ancestor
|
| // clip at draw time since the unclipped descendants aren't affected by the
|
| @@ -429,7 +429,10 @@ void AddClipNodeIfNeeded(const DataForRecursion<LayerType>& data_from_ancestor,
|
| node.layer_clipping_uses_only_local_clip = false;
|
| }
|
|
|
| - node.applies_local_clip = layer_clips_subtree;
|
| + if (layer_clips_subtree)
|
| + node.clip_type = ClipNode::ClipType::APPLIES_LOCAL_CLIP;
|
| + else
|
| + node.clip_type = ClipNode::ClipType::NONE;
|
| node.resets_clip = has_unclipped_surface;
|
| node.target_is_clipped = data_for_children->target_is_clipped;
|
| node.layers_are_clipped = layers_are_clipped;
|
| @@ -1388,7 +1391,7 @@ void BuildPropertyTreesTopLevelInternal(
|
|
|
| ClipNode root_clip;
|
| root_clip.resets_clip = true;
|
| - root_clip.applies_local_clip = true;
|
| + root_clip.clip_type = ClipNode::ClipType::APPLIES_LOCAL_CLIP;
|
| root_clip.clip = gfx::RectF(viewport);
|
| root_clip.transform_id = kRootPropertyTreeNodeId;
|
| data_for_recursion.clip_tree_parent =
|
|
|