| Index: cc/trees/layer_tree_host.cc
|
| diff --git a/cc/trees/layer_tree_host.cc b/cc/trees/layer_tree_host.cc
|
| index 7641fe87c0dc5438a52abf004e799f968077b83f..fe6a43df62a683cb376810eaeab4ddd3826dbd0d 100644
|
| --- a/cc/trees/layer_tree_host.cc
|
| +++ b/cc/trees/layer_tree_host.cc
|
| @@ -671,7 +671,16 @@ void LayerTreeHost::LayoutAndUpdateLayers() {
|
| DCHECK(!settings_.single_thread_proxy_scheduler);
|
| SingleThreadProxy* proxy = static_cast<SingleThreadProxy*>(proxy_.get());
|
|
|
| - proxy->LayoutAndUpdateLayers();
|
| + if (output_surface_lost()) {
|
| + proxy->RequestNewOutputSurface();
|
| + // RequestNewOutputSurface could have synchronously created an output
|
| + // surface, so check again before returning.
|
| + if (output_surface_lost())
|
| + return;
|
| + }
|
| +
|
| + Layout();
|
| + UpdateLayers();
|
| }
|
|
|
| void LayerTreeHost::Composite(base::TimeTicks frame_begin_time) {
|
|
|