Index: cc/trees/property_tree_builder.cc |
diff --git a/cc/trees/property_tree_builder.cc b/cc/trees/property_tree_builder.cc |
index befc6a514caddb485965811fa0c0d3e08bfd8a10..7b4300b9fab6c98ffa833d4eae1f6481e0cba1bd 100644 |
--- a/cc/trees/property_tree_builder.cc |
+++ b/cc/trees/property_tree_builder.cc |
@@ -612,6 +612,7 @@ bool AddEffectNodeIfNeeded( |
node.data.has_copy_request = layer->HasCopyRequest(); |
node.data.has_background_filters = !layer->background_filters().IsEmpty(); |
node.data.has_animated_opacity = has_animated_opacity; |
+ node.data.double_sided = layer->double_sided(); |
if (!is_root) { |
// The effect node's transform id is used only when we create a render |
@@ -625,6 +626,12 @@ bool AddEffectNodeIfNeeded( |
data_from_ancestor.transform_tree->next_available_id(); |
} |
node.data.clip_id = data_from_ancestor.clip_tree_parent; |
+ EffectNode* parent_node = data_for_children->effect_tree->Node(parent_id); |
+ node.data.node_or_ancestor_has_background_filters = |
+ parent_node->data.node_or_ancestor_has_background_filters || |
+ node.data.has_background_filters; |
+ node.data.to_screen_opacity_is_animated = |
+ parent_node->data.to_screen_opacity_is_animated || has_animated_opacity; |
} else { |
// Root render surface acts the unbounded and untransformed to draw content |
// into. Transform node created from root layer (includes device scale |
@@ -632,6 +639,9 @@ bool AddEffectNodeIfNeeded( |
// to root render surface's content, but not root render surface itself. |
node.data.transform_id = kRootPropertyTreeNodeId; |
node.data.clip_id = kRootPropertyTreeNodeId; |
+ node.data.node_or_ancestor_has_background_filters = |
+ node.data.has_background_filters; |
+ node.data.to_screen_opacity_is_animated = has_animated_opacity; |
} |
node.data.target_id = |
should_create_render_surface |