Index: cc/trees/thread_proxy.cc |
diff --git a/cc/trees/thread_proxy.cc b/cc/trees/thread_proxy.cc |
index 167cca9792f8b3036a9ee70803b2fe077dcda3d4..1097805855691baae4dfb1fb7d4ca2c58ae473dc 100644 |
--- a/cc/trees/thread_proxy.cc |
+++ b/cc/trees/thread_proxy.cc |
@@ -154,9 +154,9 @@ bool ThreadProxy::IsStarted() const { |
} |
bool ThreadProxy::CommitToActiveTree() const { |
- // With ThreadProxy we use a pending tree and activate it once it's ready to |
- // draw. |
- return false; |
+ // With ThreadProxy and impl-side painting, we use a pending tree and activate |
+ // it once it's ready to draw. |
+ return !impl().layer_tree_host_impl->settings().impl_side_painting; |
} |
void ThreadProxy::SetLayerTreeHostClientReady() { |
@@ -701,6 +701,12 @@ void ThreadProxy::ScheduledActionSendBeginMainFrame() { |
impl().timing_history.DidBeginMainFrame(); |
} |
+void ThreadProxy::SendBeginMainFrameNotExpectedSoon() { |
+ Proxy::MainThreadTaskRunner()->PostTask( |
+ FROM_HERE, base::Bind(&ThreadProxy::BeginMainFrameNotExpectedSoon, |
+ main_thread_weak_ptr_)); |
+} |
+ |
void ThreadProxy::BeginMainFrame( |
scoped_ptr<BeginMainFrameAndCommitState> begin_main_frame_state) { |
benchmark_instrumentation::ScopedBeginFrameTask begin_frame_task( |
@@ -861,6 +867,12 @@ void ThreadProxy::BeginMainFrame( |
layer_tree_host()->DidBeginMainFrame(); |
} |
+void ThreadProxy::BeginMainFrameNotExpectedSoon() { |
+ TRACE_EVENT0("cc", "ThreadProxy::BeginMainFrameNotExpectedSoon"); |
+ DCHECK(IsMainThread()); |
+ layer_tree_host()->BeginMainFrameNotExpectedSoon(); |
+} |
+ |
void ThreadProxy::StartCommitOnImplThread(CompletionEvent* completion, |
ResourceUpdateQueue* raw_queue) { |
TRACE_EVENT0("cc", "ThreadProxy::StartCommitOnImplThread"); |
@@ -1021,8 +1033,11 @@ DrawResult ThreadProxy::DrawSwapInternal(bool forced_draw) { |
impl().timing_history.DidStartDrawing(); |
base::AutoReset<bool> mark_inside(&impl().inside_draw, true); |
- if (impl().layer_tree_host_impl->pending_tree()) |
- impl().layer_tree_host_impl->pending_tree()->UpdateDrawProperties(); |
+ if (impl().layer_tree_host_impl->pending_tree()) { |
+ bool update_lcd_text = false; |
+ impl().layer_tree_host_impl->pending_tree()->UpdateDrawProperties( |
+ update_lcd_text); |
+ } |
// This method is called on a forced draw, regardless of whether we are able |
// to produce a frame, as the calling site on main thread is blocked until its |