Index: cc/trees/layer_tree_host_impl.cc |
diff --git a/cc/trees/layer_tree_host_impl.cc b/cc/trees/layer_tree_host_impl.cc |
index 816383a6eb136e180b8874cce0576b24b1852120..f86009503d2b2180ceebf83fed3f49e94d1f4ede 100644 |
--- a/cc/trees/layer_tree_host_impl.cc |
+++ b/cc/trees/layer_tree_host_impl.cc |
@@ -2508,9 +2508,18 @@ void LayerTreeHostImpl::SetTreePriority(TreePriority priority) { |
if (new_state.tree_priority == priority) |
return; |
+ TRACE_EVENT0("cc", "LayerTreeHostImpl::SetTreePriority"); |
+ |
new_state.tree_priority = priority; |
tile_manager_->SetGlobalState(new_state); |
manage_tiles_needed_ = true; |
+ |
+ // In smoothness-takes-priority, we may finish rastering without |
+ // activating. We need to guarantee ManageTiles is called after this |
+ // case, or we will block activation until after the next compositor |
+ // frame (webkit is live-locked in the mean time). |
+ if (priority != SMOOTHNESS_TAKES_PRIORITY) |
reveman
2013/09/10 19:21:20
why not when entering SMOOTHNESS_TAKES_PRIORITY or
epennerAtGoogle
2013/09/10 19:36:55
The reason we are calling it here is to not starve
reveman
2013/09/10 19:57:54
How are we guaranteeing that a new frame is produc
|
+ ManageTiles(); |
} |
void LayerTreeHostImpl::ResetCurrentFrameTimeForNextFrame() { |