Index: content/renderer/gpu/render_widget_compositor.cc |
diff --git a/content/renderer/gpu/render_widget_compositor.cc b/content/renderer/gpu/render_widget_compositor.cc |
index a1291cd7543354e49f373af0c63b369ab466d5a2..69ef40caf645e3e0b5408d7676a76095c3c6f60f 100644 |
--- a/content/renderer/gpu/render_widget_compositor.cc |
+++ b/content/renderer/gpu/render_widget_compositor.cc |
@@ -215,8 +215,8 @@ RenderWidgetCompositor::RenderWidgetCompositor( |
widget_(widget), |
compositor_deps_(compositor_deps), |
layout_and_paint_async_callback_(nullptr), |
- weak_factory_(this) { |
-} |
+ did_give_back_output_surface_(false), |
+ weak_factory_(this) {} |
void RenderWidgetCompositor::Initialize() { |
base::CommandLine* cmd = base::CommandLine::ForCurrentProcess(); |
@@ -956,6 +956,13 @@ void RenderWidgetCompositor::DidFailToInitializeOutputSurface() { |
weak_factory_.GetWeakPtr())); |
} |
+scoped_ptr<cc::OutputSurface> RenderWidgetCompositor::GiveBackOutputSurface() { |
+ did_give_back_output_surface_ = true; |
+ num_failed_recreate_attempts_ = 0; |
+ layer_tree_host_->SetVisible(false); |
+ return layer_tree_host_->GetOutputSurface().Pass(); |
+} |
+ |
void RenderWidgetCompositor::WillCommit() { |
InvokeLayoutAndPaintCallback(); |
} |