Index: cc/trees/thread_proxy.cc |
diff --git a/cc/trees/thread_proxy.cc b/cc/trees/thread_proxy.cc |
index cdf05c01db9d9506caf135323b967cf6855be1f7..98e5d61f20e20dc236b1a20d882ccf498937ade2 100644 |
--- a/cc/trees/thread_proxy.cc |
+++ b/cc/trees/thread_proxy.cc |
@@ -338,6 +338,11 @@ void ThreadProxy::DoCreateAndInitializeOutputSurface() { |
OnOutputSurfaceInitializeAttempted(success, capabilities); |
} |
+void ThreadProxy::SetRendererCapabilitiesMainThreadCopy( |
+ const RendererCapabilities& capabilities) { |
+ main().renderer_capabilities_main_thread_copy = capabilities; |
+} |
+ |
void ThreadProxy::OnOutputSurfaceInitializeAttempted( |
bool success, |
const RendererCapabilities& capabilities) { |
@@ -411,6 +416,17 @@ void ThreadProxy::SetNeedsCommit() { |
SendCommitRequestToImplThreadIfNeeded(); |
} |
+void ThreadProxy::UpdateRendererCapabilitiesOnImplThread() { |
+ DCHECK(IsImplThread()); |
+ Proxy::MainThreadTaskRunner()->PostTask( |
+ FROM_HERE, |
+ base::Bind(&ThreadProxy::SetRendererCapabilitiesMainThreadCopy, |
+ main_thread_weak_ptr_, |
+ impl() |
+ .layer_tree_host_impl->GetRendererCapabilities() |
+ .MainThreadCapabilities())); |
+} |
+ |
void ThreadProxy::DidLoseOutputSurfaceOnImplThread() { |
TRACE_EVENT0("cc", "ThreadProxy::DidLoseOutputSurfaceOnImplThread"); |
DCHECK(IsImplThread()); |