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

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

Issue 2872353005: Don't use fallback frame sinks on Android (Closed)
Patch Set: Address comments Created 3 years, 7 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
« no previous file with comments | « content/browser/bad_message.h ('k') | content/renderer/gpu/render_widget_compositor.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 1126 matching lines...) Expand 10 before | Expand all | Expand 10 after
1137 if (resources.empty()) 1137 if (resources.empty())
1138 return; 1138 return;
1139 std::copy(resources.begin(), resources.end(), 1139 std::copy(resources.begin(), resources.end(),
1140 std::back_inserter(surface_returned_resources_)); 1140 std::back_inserter(surface_returned_resources_));
1141 if (ack_callbacks_.empty()) 1141 if (ack_callbacks_.empty())
1142 SendReclaimCompositorResources(false /* is_swap_ack */); 1142 SendReclaimCompositorResources(false /* is_swap_ack */);
1143 } 1143 }
1144 1144
1145 void RenderWidgetHostViewAndroid::DidCreateNewRendererCompositorFrameSink( 1145 void RenderWidgetHostViewAndroid::DidCreateNewRendererCompositorFrameSink(
1146 cc::mojom::MojoCompositorFrameSinkClient* renderer_compositor_frame_sink) { 1146 cc::mojom::MojoCompositorFrameSinkClient* renderer_compositor_frame_sink) {
1147 if (!delegated_frame_host_) {
1148 DCHECK(!using_browser_compositor_);
1149 // We don't expect RendererCompositorFrameSink on Android WebView.
1150 // (crbug.com/721102)
1151 bad_message::ReceivedBadMessage(host_->GetProcess(),
1152 bad_message::RWH_BAD_FRAME_SINK_REQUEST);
1153 return;
1154 }
1147 delegated_frame_host_->CompositorFrameSinkChanged(); 1155 delegated_frame_host_->CompositorFrameSinkChanged();
1148 renderer_compositor_frame_sink_ = renderer_compositor_frame_sink; 1156 renderer_compositor_frame_sink_ = renderer_compositor_frame_sink;
1149 // Accumulated resources belong to the old RendererCompositorFrameSink and 1157 // Accumulated resources belong to the old RendererCompositorFrameSink and
1150 // should not be returned. 1158 // should not be returned.
1151 surface_returned_resources_.clear(); 1159 surface_returned_resources_.clear();
1152 } 1160 }
1153 1161
1154 void RenderWidgetHostViewAndroid::SubmitCompositorFrame( 1162 void RenderWidgetHostViewAndroid::SubmitCompositorFrame(
1155 const cc::LocalSurfaceId& local_surface_id, 1163 const cc::LocalSurfaceId& local_surface_id,
1156 cc::CompositorFrame frame) { 1164 cc::CompositorFrame frame) {
1165 if (!delegated_frame_host_) {
1166 DCHECK(!using_browser_compositor_);
1167 return;
1168 }
1169
1157 last_scroll_offset_ = frame.metadata.root_scroll_offset; 1170 last_scroll_offset_ = frame.metadata.root_scroll_offset;
1158 DCHECK(delegated_frame_host_);
1159 DCHECK(!frame.render_pass_list.empty()); 1171 DCHECK(!frame.render_pass_list.empty());
1160 1172
1161 cc::RenderPass* root_pass = frame.render_pass_list.back().get(); 1173 cc::RenderPass* root_pass = frame.render_pass_list.back().get();
1162 current_surface_size_ = root_pass->output_rect.size(); 1174 current_surface_size_ = root_pass->output_rect.size();
1163 bool is_transparent = root_pass->has_transparent_background; 1175 bool is_transparent = root_pass->has_transparent_background;
1164 1176
1165 cc::CompositorFrameMetadata metadata = frame.metadata.Clone(); 1177 cc::CompositorFrameMetadata metadata = frame.metadata.Clone();
1166 1178
1167 bool has_content = !current_surface_size_.IsEmpty(); 1179 bool has_content = !current_surface_size_.IsEmpty();
1168 1180
(...skipping 1022 matching lines...) Expand 10 before | Expand all | Expand 10 after
2191 2203
2192 ui::WindowAndroidCompositor* compositor = window_android->GetCompositor(); 2204 ui::WindowAndroidCompositor* compositor = window_android->GetCompositor();
2193 if (!compositor) 2205 if (!compositor)
2194 return; 2206 return;
2195 2207
2196 overscroll_controller_ = base::MakeUnique<OverscrollControllerAndroid>( 2208 overscroll_controller_ = base::MakeUnique<OverscrollControllerAndroid>(
2197 overscroll_refresh_handler, compositor, view_.GetDipScale()); 2209 overscroll_refresh_handler, compositor, view_.GetDipScale());
2198 } 2210 }
2199 2211
2200 } // namespace content 2212 } // namespace content
OLDNEW
« no previous file with comments | « content/browser/bad_message.h ('k') | content/renderer/gpu/render_widget_compositor.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698