| Index: cc/trees/layer_tree_host.cc
|
| diff --git a/cc/trees/layer_tree_host.cc b/cc/trees/layer_tree_host.cc
|
| index 48604f7e9760172cf3d48f6f48ed22696201e318..c9f76f769ab8acac7a709ea155c8882344969ea9 100644
|
| --- a/cc/trees/layer_tree_host.cc
|
| +++ b/cc/trees/layer_tree_host.cc
|
| @@ -388,7 +388,9 @@ void LayerTreeHost::SetOutputSurface(scoped_ptr<OutputSurface> surface) {
|
| DCHECK(output_surface_lost_);
|
| DCHECK(surface);
|
|
|
| - proxy_->SetOutputSurface(surface.Pass());
|
| + DCHECK(!new_output_surface_);
|
| + new_output_surface_ = surface.Pass();
|
| + proxy_->SetOutputSurface(new_output_surface_.get());
|
| }
|
|
|
| void LayerTreeHost::RequestNewOutputSurface() {
|
| @@ -396,12 +398,16 @@ void LayerTreeHost::RequestNewOutputSurface() {
|
| }
|
|
|
| void LayerTreeHost::DidInitializeOutputSurface() {
|
| + DCHECK(new_output_surface_);
|
| output_surface_lost_ = false;
|
| client_->DidInitializeOutputSurface();
|
| + current_output_surface_ = new_output_surface_.Pass();
|
| }
|
|
|
| void LayerTreeHost::DidFailToInitializeOutputSurface() {
|
| DCHECK(output_surface_lost_);
|
| + DCHECK(new_output_surface_);
|
| + new_output_surface_ = nullptr;
|
| client_->DidFailToInitializeOutputSurface();
|
| }
|
|
|
|
|