Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(304)

Side by Side Diff: content/browser/renderer_host/render_widget_host_view_android.cc

Issue 2774373002: Use MojoCompositorFrameSink in RendererCompositorFrameSink (Closed)
Patch Set: addressed comments Created 3 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "content/browser/renderer_host/render_widget_host_view_android.h" 5 #include "content/browser/renderer_host/render_widget_host_view_android.h"
6 6
7 #include <android/bitmap.h> 7 #include <android/bitmap.h>
8 8
9 #include <utility> 9 #include <utility>
10 10
(...skipping 1093 matching lines...) Expand 10 before | Expand all | Expand 10 after
1104 std::unique_ptr<SyntheticGestureTarget> 1104 std::unique_ptr<SyntheticGestureTarget>
1105 RenderWidgetHostViewAndroid::CreateSyntheticGestureTarget() { 1105 RenderWidgetHostViewAndroid::CreateSyntheticGestureTarget() {
1106 return std::unique_ptr<SyntheticGestureTarget>( 1106 return std::unique_ptr<SyntheticGestureTarget>(
1107 new SyntheticGestureTargetAndroid( 1107 new SyntheticGestureTargetAndroid(
1108 host_, content_view_core_->CreateMotionEventSynthesizer())); 1108 host_, content_view_core_->CreateMotionEventSynthesizer()));
1109 } 1109 }
1110 1110
1111 void RenderWidgetHostViewAndroid::SendReclaimCompositorResources( 1111 void RenderWidgetHostViewAndroid::SendReclaimCompositorResources(
1112 bool is_swap_ack) { 1112 bool is_swap_ack) {
1113 DCHECK(host_); 1113 DCHECK(host_);
1114 host_->SendReclaimCompositorResources(is_swap_ack, 1114 renderer_compositor_frame_sink_->ReclaimResources(
1115 surface_returned_resources_); 1115 surface_returned_resources_);
1116 if (is_swap_ack)
1117 renderer_compositor_frame_sink_->DidReceiveCompositorFrameAck();
piman 2017/04/10 23:35:58 ditto: can we coalesce the IPCs?
Saman Sami 2017/04/11 00:09:52 I think things can get better if I we send the IPC
Saman Sami 2017/04/11 16:13:45 Moving to DelegatedFrameHostAndroid doesn't help.
1116 surface_returned_resources_.clear(); 1118 surface_returned_resources_.clear();
1117 } 1119 }
1118 1120
1119 void RenderWidgetHostViewAndroid::DidReceiveCompositorFrameAck() { 1121 void RenderWidgetHostViewAndroid::DidReceiveCompositorFrameAck() {
1120 RunAckCallbacks(); 1122 RunAckCallbacks();
1121 } 1123 }
1122 1124
1123 void RenderWidgetHostViewAndroid::ReclaimResources( 1125 void RenderWidgetHostViewAndroid::ReclaimResources(
1124 const cc::ReturnedResourceArray& resources) { 1126 const cc::ReturnedResourceArray& resources) {
1125 if (resources.empty()) 1127 if (resources.empty())
1126 return; 1128 return;
1127 std::copy(resources.begin(), resources.end(), 1129 std::copy(resources.begin(), resources.end(),
1128 std::back_inserter(surface_returned_resources_)); 1130 std::back_inserter(surface_returned_resources_));
1129 if (ack_callbacks_.empty()) 1131 if (ack_callbacks_.empty())
1130 SendReclaimCompositorResources(false /* is_swap_ack */); 1132 SendReclaimCompositorResources(false /* is_swap_ack */);
1131 } 1133 }
1132 1134
1133 void RenderWidgetHostViewAndroid::DidCreateNewRendererCompositorFrameSink() { 1135 void RenderWidgetHostViewAndroid::DidCreateNewRendererCompositorFrameSink(
1136 cc::mojom::MojoCompositorFrameSinkClient* renderer_compositor_frame_sink) {
1134 delegated_frame_host_->CompositorFrameSinkChanged(); 1137 delegated_frame_host_->CompositorFrameSinkChanged();
1138 renderer_compositor_frame_sink_ = renderer_compositor_frame_sink;
1135 // Accumulated resources belong to the old RendererCompositorFrameSink and 1139 // Accumulated resources belong to the old RendererCompositorFrameSink and
1136 // should not be returned. 1140 // should not be returned.
1137 surface_returned_resources_.clear(); 1141 surface_returned_resources_.clear();
1138 } 1142 }
1139 1143
1140 void RenderWidgetHostViewAndroid::SubmitCompositorFrame( 1144 void RenderWidgetHostViewAndroid::SubmitCompositorFrame(
1141 const cc::LocalSurfaceId& local_surface_id, 1145 const cc::LocalSurfaceId& local_surface_id,
1142 cc::CompositorFrame frame) { 1146 cc::CompositorFrame frame) {
1143 last_scroll_offset_ = frame.metadata.root_scroll_offset; 1147 last_scroll_offset_ = frame.metadata.root_scroll_offset;
1144 DCHECK(delegated_frame_host_); 1148 DCHECK(delegated_frame_host_);
(...skipping 1031 matching lines...) Expand 10 before | Expand all | Expand 10 after
2176 2180
2177 ui::WindowAndroidCompositor* compositor = window_android->GetCompositor(); 2181 ui::WindowAndroidCompositor* compositor = window_android->GetCompositor();
2178 if (!compositor) 2182 if (!compositor)
2179 return; 2183 return;
2180 2184
2181 overscroll_controller_ = base::MakeUnique<OverscrollControllerAndroid>( 2185 overscroll_controller_ = base::MakeUnique<OverscrollControllerAndroid>(
2182 overscroll_refresh_handler, compositor, view_.GetDipScale()); 2186 overscroll_refresh_handler, compositor, view_.GetDipScale());
2183 } 2187 }
2184 2188
2185 } // namespace content 2189 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698