Chromium Code Reviews| Index: cc/trees/property_tree.cc |
| diff --git a/cc/trees/property_tree.cc b/cc/trees/property_tree.cc |
| index 54f4ec47496a50ce1f32c6c0ef4d220859a6c18c..d5b272e29476418507aa09a93a933a4a538febf1 100644 |
| --- a/cc/trees/property_tree.cc |
| +++ b/cc/trees/property_tree.cc |
| @@ -1244,11 +1244,12 @@ void EffectTree::UpdateIsDrawn(EffectNode* node, EffectNode* parent_node) { |
| // 1) Nodes that contribute to copy requests, whether hidden or not, must be |
| // drawn. |
| // 2) Nodes that have a background filter. |
| - // 3) Nodes with animating screen space opacity are drawn if their parent is |
| - // drawn irrespective of their opacity. |
| + // 3) Nodes with animating screen space opacity on main thread or pending tree |
| + // are drawn if their parent is drawn irrespective of their opacity. |
| if (node->data.has_copy_request) |
| node->data.is_drawn = true; |
| - else if (node->data.opacity == 0.f && !node->data.has_animated_opacity && |
| + else if (node->data.opacity == 0.f && |
| + (!node->data.has_animated_opacity || property_trees()->is_active) && |
| !node->data.has_background_filters) |
| node->data.is_drawn = false; |
| else if (parent_node) |
| @@ -1330,7 +1331,8 @@ bool EffectTree::ContributesToDrawnSurface(int id) { |
| EffectNode* parent_node = parent(node); |
| bool contributes_to_drawn_surface = |
| node->data.is_drawn && |
| - (node->data.opacity != 0.f || node->data.has_animated_opacity || |
| + (node->data.opacity != 0.f || |
| + (node->data.has_animated_opacity && !property_trees()->is_active) || |
|
ajuma
2016/04/13 19:53:06
Is this needed? It changes behavior in the computa
jaydasika
2016/04/13 20:21:24
This should be the cause for browser test crashes.
|
| node->data.has_background_filters); |
| if (parent_node && !parent_node->data.is_drawn) |
| contributes_to_drawn_surface = false; |