Index: cc/trees/proxy_main.cc |
diff --git a/cc/trees/proxy_main.cc b/cc/trees/proxy_main.cc |
index 9f3a1add77240eca8a87a262e243dd6a36c1b71b..04de28097a497ecacf39444e8f1d9bef3f04c1ee 100644 |
--- a/cc/trees/proxy_main.cc |
+++ b/cc/trees/proxy_main.cc |
@@ -76,6 +76,12 @@ |
layer_tree_host_->DidCompleteSwapBuffers(); |
} |
+void ProxyMain::SetRendererCapabilities( |
+ const RendererCapabilities& capabilities) { |
+ DCHECK(IsMainThread()); |
+ renderer_capabilities_ = capabilities; |
+} |
+ |
void ProxyMain::BeginMainFrameNotExpectedSoon() { |
TRACE_EVENT0("cc", "ProxyMain::BeginMainFrameNotExpectedSoon"); |
DCHECK(IsMainThread()); |
@@ -105,14 +111,18 @@ |
layer_tree_host_->RequestNewOutputSurface(); |
} |
-void ProxyMain::DidInitializeOutputSurface(bool success) { |
+void ProxyMain::DidInitializeOutputSurface( |
+ bool success, |
+ const RendererCapabilities& capabilities) { |
TRACE_EVENT0("cc", "ProxyMain::DidInitializeOutputSurface"); |
DCHECK(IsMainThread()); |
- if (!success) |
+ if (!success) { |
layer_tree_host_->DidFailToInitializeOutputSurface(); |
- else |
- layer_tree_host_->DidInitializeOutputSurface(); |
+ return; |
+ } |
+ renderer_capabilities_ = capabilities; |
+ layer_tree_host_->DidInitializeOutputSurface(); |
} |
void ProxyMain::DidCompletePageScaleAnimation() { |
@@ -268,6 +278,12 @@ |
void ProxyMain::SetVisible(bool visible) { |
TRACE_EVENT1("cc", "ProxyMain::SetVisible", "visible", visible); |
channel_main_->SetVisibleOnImpl(visible); |
+} |
+ |
+const RendererCapabilities& ProxyMain::GetRendererCapabilities() const { |
+ DCHECK(IsMainThread()); |
+ DCHECK(!layer_tree_host_->output_surface_lost()); |
+ return renderer_capabilities_; |
} |
void ProxyMain::SetNeedsAnimate() { |