| 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 960dfdad268e764a5ecbded3d296691b6cc300e1..f8ea208719cb58aa8e5498b7f008eb489fae59f6 100644
|
| --- a/content/browser/renderer_host/render_widget_host_view_android.cc
|
| +++ b/content/browser/renderer_host/render_widget_host_view_android.cc
|
| @@ -4,6 +4,7 @@
|
|
|
| #include "content/browser/renderer_host/render_widget_host_view_android.h"
|
|
|
| +#include "base/bind.h"
|
| #include "base/logging.h"
|
| #include "base/message_loop.h"
|
| #include "base/utf_string_conversions.h"
|
| @@ -11,7 +12,9 @@
|
| #include "content/browser/gpu/gpu_surface_tracker.h"
|
| #include "content/browser/renderer_host/render_widget_host_impl.h"
|
| #include "content/common/android/device_info.h"
|
| +#include "content/common/gpu/gpu_messages.h"
|
| #include "content/common/view_messages.h"
|
| +#include "content/public/browser/android/draw_delegate.h"
|
|
|
| namespace content {
|
|
|
| @@ -150,14 +153,7 @@ bool RenderWidgetHostViewAndroid::IsShowing() {
|
| }
|
|
|
| gfx::Rect RenderWidgetHostViewAndroid::GetViewBounds() const {
|
| - if (content_view_core_) {
|
| - return content_view_core_->GetBounds();
|
| - } else {
|
| - // The ContentViewCore has not been created yet. This only happens when
|
| - // renderer asks for creating new window, for example,
|
| - // javascript window.open().
|
| - return gfx::Rect(0, 0, 0, 0);
|
| - }
|
| + return gfx::Rect(requested_size_);
|
| }
|
|
|
| void RenderWidgetHostViewAndroid::UpdateCursor(const WebCursor& cursor) {
|
| @@ -257,7 +253,11 @@ void RenderWidgetHostViewAndroid::OnAcceleratedCompositingStateChange() {
|
| void RenderWidgetHostViewAndroid::AcceleratedSurfaceBuffersSwapped(
|
| const GpuHostMsg_AcceleratedSurfaceBuffersSwapped_Params& params,
|
| int gpu_host_id) {
|
| - NOTREACHED();
|
| + DrawDelegate::GetInstance()->OnSurfaceUpdated(
|
| + params.surface_handle,
|
| + this,
|
| + base::Bind(&RenderWidgetHostImpl::AcknowledgeBufferPresent,
|
| + params.route_id, gpu_host_id));
|
| }
|
|
|
| void RenderWidgetHostViewAndroid::AcceleratedSurfacePostSubBuffer(
|
| @@ -283,6 +283,10 @@ void RenderWidgetHostViewAndroid::StartContentIntent(
|
| }
|
|
|
| gfx::GLSurfaceHandle RenderWidgetHostViewAndroid::GetCompositingSurface() {
|
| + gfx::GLSurfaceHandle handle = DrawDelegate::GetInstance()->GetDrawSurface();
|
| + if (!handle.is_null())
|
| + return handle;
|
| +
|
| // On Android, we cannot generate a window handle that can be passed to the
|
| // GPU process through the native side. Instead, we send the surface handle
|
| // through Binder after the compositing context has been created.
|
|
|