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

Unified 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, 5 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 side-by-side diff with in-line comments
Download patch
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.

Powered by Google App Engine
This is Rietveld 408576698