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

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

Issue 2774373002: Use MojoCompositorFrameSink in RendererCompositorFrameSink (Closed)
Patch Set: Rebased, dedup IPC 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 1089 matching lines...) Expand 10 before | Expand all | Expand 10 after
1100 std::unique_ptr<SyntheticGestureTarget> 1100 std::unique_ptr<SyntheticGestureTarget>
1101 RenderWidgetHostViewAndroid::CreateSyntheticGestureTarget() { 1101 RenderWidgetHostViewAndroid::CreateSyntheticGestureTarget() {
1102 return std::unique_ptr<SyntheticGestureTarget>( 1102 return std::unique_ptr<SyntheticGestureTarget>(
1103 new SyntheticGestureTargetAndroid( 1103 new SyntheticGestureTargetAndroid(
1104 host_, content_view_core_->CreateMotionEventSynthesizer())); 1104 host_, content_view_core_->CreateMotionEventSynthesizer()));
1105 } 1105 }
1106 1106
1107 void RenderWidgetHostViewAndroid::SendReclaimCompositorResources( 1107 void RenderWidgetHostViewAndroid::SendReclaimCompositorResources(
1108 bool is_swap_ack) { 1108 bool is_swap_ack) {
1109 DCHECK(host_); 1109 DCHECK(host_);
1110 host_->SendReclaimCompositorResources(is_swap_ack, 1110 if (is_swap_ack) {
1111 surface_returned_resources_); 1111 renderer_compositor_frame_sink_->DidReceiveCompositorFrameAck(
1112 surface_returned_resources_);
1113 } else {
1114 renderer_compositor_frame_sink_->ReclaimResources(
1115 surface_returned_resources_);
1116 }
1112 surface_returned_resources_.clear(); 1117 surface_returned_resources_.clear();
1113 } 1118 }
1114 1119
1115 void RenderWidgetHostViewAndroid::DidReceiveCompositorFrameAck() { 1120 void RenderWidgetHostViewAndroid::DidReceiveCompositorFrameAck() {
1116 RunAckCallbacks(); 1121 RunAckCallbacks();
1117 } 1122 }
1118 1123
1119 void RenderWidgetHostViewAndroid::ReclaimResources( 1124 void RenderWidgetHostViewAndroid::ReclaimResources(
1120 const cc::ReturnedResourceArray& resources) { 1125 const cc::ReturnedResourceArray& resources) {
1121 if (resources.empty()) 1126 if (resources.empty())
1122 return; 1127 return;
1123 std::copy(resources.begin(), resources.end(), 1128 std::copy(resources.begin(), resources.end(),
1124 std::back_inserter(surface_returned_resources_)); 1129 std::back_inserter(surface_returned_resources_));
1125 if (ack_callbacks_.empty()) 1130 if (ack_callbacks_.empty())
1126 SendReclaimCompositorResources(false /* is_swap_ack */); 1131 SendReclaimCompositorResources(false /* is_swap_ack */);
1127 } 1132 }
1128 1133
1129 void RenderWidgetHostViewAndroid::DidCreateNewRendererCompositorFrameSink() { 1134 void RenderWidgetHostViewAndroid::DidCreateNewRendererCompositorFrameSink(
1135 cc::mojom::MojoCompositorFrameSinkClient* renderer_compositor_frame_sink) {
1130 delegated_frame_host_->CompositorFrameSinkChanged(); 1136 delegated_frame_host_->CompositorFrameSinkChanged();
1137 renderer_compositor_frame_sink_ = renderer_compositor_frame_sink;
1131 // Accumulated resources belong to the old RendererCompositorFrameSink and 1138 // Accumulated resources belong to the old RendererCompositorFrameSink and
1132 // should not be returned. 1139 // should not be returned.
1133 surface_returned_resources_.clear(); 1140 surface_returned_resources_.clear();
1134 } 1141 }
1135 1142
1136 void RenderWidgetHostViewAndroid::SubmitCompositorFrame( 1143 void RenderWidgetHostViewAndroid::SubmitCompositorFrame(
1137 const cc::LocalSurfaceId& local_surface_id, 1144 const cc::LocalSurfaceId& local_surface_id,
1138 cc::CompositorFrame frame) { 1145 cc::CompositorFrame frame) {
1139 last_scroll_offset_ = frame.metadata.root_scroll_offset; 1146 last_scroll_offset_ = frame.metadata.root_scroll_offset;
1140 DCHECK(delegated_frame_host_); 1147 DCHECK(delegated_frame_host_);
(...skipping 1031 matching lines...) Expand 10 before | Expand all | Expand 10 after
2172 2179
2173 ui::WindowAndroidCompositor* compositor = window_android->GetCompositor(); 2180 ui::WindowAndroidCompositor* compositor = window_android->GetCompositor();
2174 if (!compositor) 2181 if (!compositor)
2175 return; 2182 return;
2176 2183
2177 overscroll_controller_ = base::MakeUnique<OverscrollControllerAndroid>( 2184 overscroll_controller_ = base::MakeUnique<OverscrollControllerAndroid>(
2178 overscroll_refresh_handler, compositor, view_.GetDipScale()); 2185 overscroll_refresh_handler, compositor, view_.GetDipScale());
2179 } 2186 }
2180 2187
2181 } // namespace content 2188 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698