Index: ui/compositor/compositor.cc |
diff --git a/ui/compositor/compositor.cc b/ui/compositor/compositor.cc |
index 3bde07a5133375ce45d567fd13e18aa8daeec1bd..7f16e2831196d53b265b35f9a0912208d1b04bf2 100644 |
--- a/ui/compositor/compositor.cc |
+++ b/ui/compositor/compositor.cc |
@@ -307,6 +307,17 @@ void Compositor::SetAcceleratedWidget(gfx::AcceleratedWidget widget) { |
context_factory_->CreateOutputSurface(weak_ptr_factory_.GetWeakPtr()); |
} |
+gfx::AcceleratedWidget Compositor::ReleaseAcceleratedWidget() { |
+ DCHECK(!IsVisible()); |
+ if (!host_->output_surface_lost()) |
+ host_->ReleaseOutputSurface(); |
+ context_factory_->RemoveCompositor(this); |
+ widget_valid_ = false; |
+ gfx::AcceleratedWidget widget = widget_; |
+ widget_ = gfx::kNullAcceleratedWidget; |
+ return widget; |
+} |
+ |
gfx::AcceleratedWidget Compositor::widget() const { |
DCHECK(widget_valid_); |
return widget_; |