Chromium Code Reviews| Index: content/browser/renderer_host/compositor_impl_android.cc |
| diff --git a/content/browser/renderer_host/compositor_impl_android.cc b/content/browser/renderer_host/compositor_impl_android.cc |
| index ed4de23ca992f1936e0b39f329a463fe73535455..2b1afcfd4786fc2b077ebb9ab388cfa33594a35d 100644 |
| --- a/content/browser/renderer_host/compositor_impl_android.cc |
| +++ b/content/browser/renderer_host/compositor_impl_android.cc |
| @@ -389,33 +389,7 @@ void CompositorImpl::SetSurface(jobject surface) { |
| } |
| } |
| -void CompositorImpl::SetVisible(bool visible) { |
| - if (!visible) { |
| - DCHECK(host_); |
| - // Look for any layers that were attached to the root for readback |
| - // and are waiting for Composite() to happen. |
| - bool readback_pending = false; |
| - for (size_t i = 0; i < root_layer_->children().size(); ++i) { |
| - if (root_layer_->children()[i]->HasCopyRequest()) { |
| - readback_pending = true; |
| - break; |
| - } |
| - } |
| - if (readback_pending) { |
| - ignore_schedule_composite_ = true; |
| - host_->Composite(base::TimeTicks::Now()); |
| - ignore_schedule_composite_ = false; |
| - } |
| - if (WillComposite()) |
| - CancelComposite(); |
| - ui_resource_provider_.SetLayerTreeHost(NULL); |
| - host_.reset(); |
| - display_client_.reset(); |
| - if (current_composite_task_) { |
| - current_composite_task_->Cancel(); |
| - current_composite_task_.reset(); |
| - } |
| - } else if (!host_) { |
| +void CompositorImpl::CreateLayerTreeHost() { |
|
aelias_OOO_until_Jul13
2014/12/05 19:38:00
Please add "DCHECK(!host_);" at the beginning.
|
| DCHECK(!WillCompositeThisFrame()); |
| needs_composite_ = false; |
| defer_composite_for_gpu_channel_ = false; |
| @@ -450,6 +424,36 @@ void CompositorImpl::SetVisible(bool visible) { |
| host_->SetViewportSize(size_); |
| host_->set_has_transparent_background(has_transparent_background_); |
| host_->SetDeviceScaleFactor(device_scale_factor_); |
| +} |
| + |
| +void CompositorImpl::SetVisible(bool visible) { |
| + if (!visible) { |
| + DCHECK(host_); |
| + // Look for any layers that were attached to the root for readback |
| + // and are waiting for Composite() to happen. |
| + bool readback_pending = false; |
| + for (size_t i = 0; i < root_layer_->children().size(); ++i) { |
| + if (root_layer_->children()[i]->HasCopyRequest()) { |
| + readback_pending = true; |
| + break; |
| + } |
| + } |
| + if (readback_pending) { |
| + ignore_schedule_composite_ = true; |
| + host_->Composite(base::TimeTicks::Now()); |
| + ignore_schedule_composite_ = false; |
| + } |
| + if (WillComposite()) |
| + CancelComposite(); |
| + ui_resource_provider_.SetLayerTreeHost(NULL); |
| + host_.reset(); |
| + display_client_.reset(); |
| + if (current_composite_task_) { |
| + current_composite_task_->Cancel(); |
| + current_composite_task_.reset(); |
| + } |
| + } else if (!host_) { |
| + CreateLayerTreeHost(); |
| ui_resource_provider_.SetLayerTreeHost(host_.get()); |
| } |
| } |