Chromium Code Reviews| Index: content/browser/renderer_host/render_widget_host_view_android.cc |
| diff --git a/content/browser/renderer_host/render_widget_host_view_android.cc b/content/browser/renderer_host/render_widget_host_view_android.cc |
| index 483c015836abf7da9b5f9511044b966f42833bf6..4d7d663162e7982f9fbaec99c9c355f94b2b94e7 100644 |
| --- a/content/browser/renderer_host/render_widget_host_view_android.cc |
| +++ b/content/browser/renderer_host/render_widget_host_view_android.cc |
| @@ -430,7 +430,7 @@ void RenderWidgetHostViewAndroid::GetScaledContentBitmap( |
| preferred_color_type); |
| } |
| -scoped_refptr<cc::Layer> RenderWidgetHostViewAndroid::CreateDelegatedLayer() |
| +scoped_refptr<cc::Layer> RenderWidgetHostViewAndroid::CreateSurfaceLayer() |
|
danakj
2016/07/01 23:15:37
perhaps this return type can be SurfaceLayer?
no sievers
2016/07/01 23:29:06
Done.
|
| const { |
| scoped_refptr<cc::Layer> delegated_layer; |
|
danakj
2016/07/01 23:15:37
this variable can go
no sievers
2016/07/01 23:29:06
Done.
|
| DCHECK(!surface_id_.is_null()); |
| @@ -1009,7 +1009,7 @@ void RenderWidgetHostViewAndroid::SubmitCompositorFrame( |
| surface_factory_->Destroy(surface_id_); |
| surface_id_ = id_allocator_->GenerateId(); |
| surface_factory_->Create(surface_id_); |
| - layer_ = CreateDelegatedLayer(); |
| + layer_ = CreateSurfaceLayer(); |
| DCHECK(layer_); |
| @@ -1027,9 +1027,27 @@ void RenderWidgetHostViewAndroid::SubmitCompositorFrame( |
| ack_callback); |
| } |
| -void RenderWidgetHostViewAndroid::SwapDelegatedFrame( |
| +void RenderWidgetHostViewAndroid::InternalSwapCompositorFrame( |
| uint32_t output_surface_id, |
| cc::CompositorFrame frame) { |
| + last_scroll_offset_ = frame.metadata.root_scroll_offset; |
| + DCHECK(frame.delegated_frame_data); |
| + DCHECK(CompositorImpl::GetSurfaceManager()); |
|
danakj
2016/07/01 23:15:37
Then does this add value if we DCHECK in construct
|
| + |
| + if (locks_on_frame_count_ > 0) { |
| + DCHECK(HasValidFrame()); |
| + RetainFrame(output_surface_id, std::move(frame)); |
| + return; |
| + } |
| + |
| + DCHECK(!frame.delegated_frame_data->render_pass_list.empty()); |
| + |
| + cc::RenderPass* root_pass = |
| + frame.delegated_frame_data->render_pass_list.back().get(); |
| + texture_size_in_layer_ = root_pass->output_rect.size(); |
| + |
| + cc::CompositorFrameMetadata metadata = frame.metadata.Clone(); |
| + |
| CheckOutputSurfaceChanged(output_surface_id); |
| bool has_content = !texture_size_in_layer_.IsEmpty(); |
| @@ -1044,9 +1062,6 @@ void RenderWidgetHostViewAndroid::SwapDelegatedFrame( |
| DestroyDelegatedContent(); |
| } else { |
| SubmitCompositorFrame(std::move(frame)); |
| - } |
| - |
| - if (layer_.get()) { |
| layer_->SetIsDrawable(true); |
| layer_->SetContentsOpaque(true); |
| layer_->SetBounds(texture_size_in_layer_); |
| @@ -1054,41 +1069,6 @@ void RenderWidgetHostViewAndroid::SwapDelegatedFrame( |
| if (host_->is_hidden()) |
| RunAckCallbacks(cc::SurfaceDrawStatus::DRAW_SKIPPED); |
| -} |
| - |
| -void RenderWidgetHostViewAndroid::InternalSwapCompositorFrame( |
| - uint32_t output_surface_id, |
| - cc::CompositorFrame frame) { |
| - last_scroll_offset_ = frame.metadata.root_scroll_offset; |
| - if (!frame.delegated_frame_data) { |
| - LOG(ERROR) << "Non-delegated renderer path no longer supported"; |
| - return; |
| - } |
| - |
| - if (locks_on_frame_count_ > 0) { |
| - DCHECK(HasValidFrame()); |
| - RetainFrame(output_surface_id, std::move(frame)); |
| - return; |
| - } |
| - |
| - if (!CompositorImpl::GetSurfaceManager() && layer_.get() && |
| - layer_->layer_tree_host()) { |
| - for (size_t i = 0; i < frame.metadata.latency_info.size(); i++) { |
| - std::unique_ptr<cc::SwapPromise> swap_promise( |
| - new cc::LatencyInfoSwapPromise(frame.metadata.latency_info[i])); |
| - layer_->layer_tree_host()->QueueSwapPromise(std::move(swap_promise)); |
| - } |
| - } |
| - |
| - DCHECK(!frame.delegated_frame_data->render_pass_list.empty()); |
| - |
| - cc::RenderPass* root_pass = |
| - frame.delegated_frame_data->render_pass_list.back().get(); |
| - texture_size_in_layer_ = root_pass->output_rect.size(); |
| - |
| - cc::CompositorFrameMetadata metadata = frame.metadata.Clone(); |
| - |
| - SwapDelegatedFrame(output_surface_id, std::move(frame)); |
| frame_evictor_->SwappedFrame(!host_->is_hidden()); |
| // As the metadata update may trigger view invalidation, always call it after |