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

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

Issue 10823051: ContentShell rendering support on Android. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 8 years, 4 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 | Annotate | Revision Log
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 "base/bind.h"
7 #include "base/logging.h" 8 #include "base/logging.h"
8 #include "base/message_loop.h" 9 #include "base/message_loop.h"
9 #include "base/utf_string_conversions.h" 10 #include "base/utf_string_conversions.h"
10 #include "content/browser/android/content_view_core_impl.h" 11 #include "content/browser/android/content_view_core_impl.h"
11 #include "content/browser/gpu/gpu_surface_tracker.h" 12 #include "content/browser/gpu/gpu_surface_tracker.h"
12 #include "content/browser/renderer_host/render_widget_host_impl.h" 13 #include "content/browser/renderer_host/render_widget_host_impl.h"
13 #include "content/common/android/device_info.h" 14 #include "content/common/android/device_info.h"
15 #include "content/common/gpu/gpu_messages.h"
14 #include "content/common/view_messages.h" 16 #include "content/common/view_messages.h"
17 #include "content/public/browser/android/draw_delegate.h"
15 18
16 namespace content { 19 namespace content {
17 20
18 RenderWidgetHostViewAndroid::RenderWidgetHostViewAndroid( 21 RenderWidgetHostViewAndroid::RenderWidgetHostViewAndroid(
19 RenderWidgetHostImpl* widget_host, 22 RenderWidgetHostImpl* widget_host,
20 ContentViewCoreImpl* content_view_core) 23 ContentViewCoreImpl* content_view_core)
21 : host_(widget_host), 24 : host_(widget_host),
22 // ContentViewCoreImpl represents the native side of the Java 25 // ContentViewCoreImpl represents the native side of the Java
23 // ContentViewCore. It being NULL means that it is not attached to the 26 // ContentViewCore. It being NULL means that it is not attached to the
24 // View system yet, so we treat it as hidden. 27 // View system yet, so we treat it as hidden.
(...skipping 118 matching lines...) Expand 10 before | Expand all | Expand 10 after
143 146
144 void RenderWidgetHostViewAndroid::Hide() { 147 void RenderWidgetHostViewAndroid::Hide() {
145 // nothing to do 148 // nothing to do
146 } 149 }
147 150
148 bool RenderWidgetHostViewAndroid::IsShowing() { 151 bool RenderWidgetHostViewAndroid::IsShowing() {
149 return !is_hidden_; 152 return !is_hidden_;
150 } 153 }
151 154
152 gfx::Rect RenderWidgetHostViewAndroid::GetViewBounds() const { 155 gfx::Rect RenderWidgetHostViewAndroid::GetViewBounds() const {
153 if (content_view_core_) { 156 return gfx::Rect(requested_size_);
154 return content_view_core_->GetBounds();
155 } else {
156 // The ContentViewCore has not been created yet. This only happens when
157 // renderer asks for creating new window, for example,
158 // javascript window.open().
159 return gfx::Rect(0, 0, 0, 0);
160 }
161 } 157 }
162 158
163 void RenderWidgetHostViewAndroid::UpdateCursor(const WebCursor& cursor) { 159 void RenderWidgetHostViewAndroid::UpdateCursor(const WebCursor& cursor) {
164 // There are no cursors on Android. 160 // There are no cursors on Android.
165 } 161 }
166 162
167 void RenderWidgetHostViewAndroid::SetIsLoading(bool is_loading) { 163 void RenderWidgetHostViewAndroid::SetIsLoading(bool is_loading) {
168 // Do nothing. The UI notification is handled through ContentViewClient which 164 // Do nothing. The UI notification is handled through ContentViewClient which
169 // is TabContentsDelegate. 165 // is TabContentsDelegate.
170 } 166 }
(...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after
250 void RenderWidgetHostViewAndroid::OnAcceleratedCompositingStateChange() { 246 void RenderWidgetHostViewAndroid::OnAcceleratedCompositingStateChange() {
251 const bool activated = host_->is_accelerated_compositing_active(); 247 const bool activated = host_->is_accelerated_compositing_active();
252 if (content_view_core_) 248 if (content_view_core_)
253 content_view_core_->OnAcceleratedCompositingStateChange( 249 content_view_core_->OnAcceleratedCompositingStateChange(
254 this, activated, false); 250 this, activated, false);
255 } 251 }
256 252
257 void RenderWidgetHostViewAndroid::AcceleratedSurfaceBuffersSwapped( 253 void RenderWidgetHostViewAndroid::AcceleratedSurfaceBuffersSwapped(
258 const GpuHostMsg_AcceleratedSurfaceBuffersSwapped_Params& params, 254 const GpuHostMsg_AcceleratedSurfaceBuffersSwapped_Params& params,
259 int gpu_host_id) { 255 int gpu_host_id) {
260 NOTREACHED(); 256 DrawDelegate::GetInstance()->OnSurfaceUpdated(
257 params.surface_handle,
258 this,
259 base::Bind(&RenderWidgetHostImpl::AcknowledgeBufferPresent,
260 params.route_id, gpu_host_id));
261 } 261 }
262 262
263 void RenderWidgetHostViewAndroid::AcceleratedSurfacePostSubBuffer( 263 void RenderWidgetHostViewAndroid::AcceleratedSurfacePostSubBuffer(
264 const GpuHostMsg_AcceleratedSurfacePostSubBuffer_Params& params, 264 const GpuHostMsg_AcceleratedSurfacePostSubBuffer_Params& params,
265 int gpu_host_id) { 265 int gpu_host_id) {
266 NOTREACHED(); 266 NOTREACHED();
267 } 267 }
268 268
269 void RenderWidgetHostViewAndroid::AcceleratedSurfaceSuspend() { 269 void RenderWidgetHostViewAndroid::AcceleratedSurfaceSuspend() {
270 NOTREACHED(); 270 NOTREACHED();
271 } 271 }
272 272
273 bool RenderWidgetHostViewAndroid::HasAcceleratedSurface( 273 bool RenderWidgetHostViewAndroid::HasAcceleratedSurface(
274 const gfx::Size& desired_size) { 274 const gfx::Size& desired_size) {
275 NOTREACHED(); 275 NOTREACHED();
276 return false; 276 return false;
277 } 277 }
278 278
279 void RenderWidgetHostViewAndroid::StartContentIntent( 279 void RenderWidgetHostViewAndroid::StartContentIntent(
280 const GURL& content_url) { 280 const GURL& content_url) {
281 if (content_view_core_) 281 if (content_view_core_)
282 content_view_core_->StartContentIntent(content_url); 282 content_view_core_->StartContentIntent(content_url);
283 } 283 }
284 284
285 gfx::GLSurfaceHandle RenderWidgetHostViewAndroid::GetCompositingSurface() { 285 gfx::GLSurfaceHandle RenderWidgetHostViewAndroid::GetCompositingSurface() {
286 gfx::GLSurfaceHandle handle = DrawDelegate::GetInstance()->GetDrawSurface();
287 if (!handle.is_null())
288 return handle;
289
286 // On Android, we cannot generate a window handle that can be passed to the 290 // On Android, we cannot generate a window handle that can be passed to the
287 // GPU process through the native side. Instead, we send the surface handle 291 // GPU process through the native side. Instead, we send the surface handle
288 // through Binder after the compositing context has been created. 292 // through Binder after the compositing context has been created.
289 return gfx::GLSurfaceHandle(gfx::kNullPluginWindow, true); 293 return gfx::GLSurfaceHandle(gfx::kNullPluginWindow, true);
290 } 294 }
291 295
292 void RenderWidgetHostViewAndroid::GetScreenInfo(WebKit::WebScreenInfo* result) { 296 void RenderWidgetHostViewAndroid::GetScreenInfo(WebKit::WebScreenInfo* result) {
293 // ScreenInfo isn't tied to the widget on Android. Always return the default. 297 // ScreenInfo isn't tied to the widget on Android. Always return the default.
294 RenderWidgetHostViewBase::GetDefaultScreenInfo(result); 298 RenderWidgetHostViewBase::GetDefaultScreenInfo(result);
295 } 299 }
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after
359 // RenderWidgetHostView, public: 363 // RenderWidgetHostView, public:
360 364
361 // static 365 // static
362 RenderWidgetHostView* 366 RenderWidgetHostView*
363 RenderWidgetHostView::CreateViewForWidget(RenderWidgetHost* widget) { 367 RenderWidgetHostView::CreateViewForWidget(RenderWidgetHost* widget) {
364 RenderWidgetHostImpl* rwhi = RenderWidgetHostImpl::From(widget); 368 RenderWidgetHostImpl* rwhi = RenderWidgetHostImpl::From(widget);
365 return new RenderWidgetHostViewAndroid(rwhi, NULL); 369 return new RenderWidgetHostViewAndroid(rwhi, NULL);
366 } 370 }
367 371
368 } // namespace content 372 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698