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

Unified Diff: content/browser/android/content_view_core_impl.h

Issue 176943004: [Android] Implement asynchronous zero-copy bitmap capture API. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 10 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/android/content_view_core_impl.h
diff --git a/content/browser/android/content_view_core_impl.h b/content/browser/android/content_view_core_impl.h
index d88af6d8def910a9275e77ae1260c20b9b732511..ee00ad6a35f2de6814fd2ef79c52ea824ab328b6 100644
--- a/content/browser/android/content_view_core_impl.h
+++ b/content/browser/android/content_view_core_impl.h
@@ -9,6 +9,7 @@
#include "base/android/jni_android.h"
#include "base/android/jni_helper.h"
+#include "base/android/scoped_java_ref.h"
#include "base/basictypes.h"
#include "base/compiler_specific.h"
#include "base/i18n/rtl.h"
@@ -26,6 +27,10 @@
#include "ui/gfx/rect_f.h"
#include "url/gurl.h"
+namespace gfx {
+class JavaBitmap;
+}
+
namespace ui {
class ViewAndroid;
class WindowAndroid;
@@ -59,7 +64,10 @@ class ContentViewCoreImpl : public ContentViewCore,
virtual void ShowPastePopup(int x, int y) OVERRIDE;
virtual void GetScaledContentBitmap(
float scale,
- const base::Callback<void(bool, const SkBitmap&)>& result_callback)
+ const base::Callback<void(bool, const SkBitmap&)>& result_callback,
+ SkBitmap::Config bitmap_config = SkBitmap::kARGB_8888_Config,
+ const gfx::Rect& bounding_rect = gfx::Rect(),
+ const BitmapAllocator bitmap_allocator = BitmapAllocator())
OVERRIDE;
virtual float GetDpiScale() const OVERRIDE;
virtual void PauseVideo() OVERRIDE;
@@ -200,6 +208,14 @@ class ContentViewCoreImpl : public ContentViewCore,
jboolean PopulateBitmapFromCompositor(JNIEnv* env,
jobject obj,
jobject jbitmap);
+ void PopulateBitmapFromCompositorAsync(JNIEnv* env,
+ jobject obj,
+ jint x,
+ jint y,
+ jint width,
+ jint height,
+ jfloat scale,
+ jobject jbitmap_config);
void WasResized(JNIEnv* env, jobject obj);
jboolean IsRenderWidgetHostViewReady(JNIEnv* env, jobject obj);
void ExitFullscreen(JNIEnv* env, jobject obj);
@@ -244,7 +260,12 @@ class ContentViewCoreImpl : public ContentViewCore,
int selected_item,
bool multiple);
+ void ProxyBitmapAllocator(SkBitmap*& bitmap,
+ const gfx::Size& computed_size,
+ SkBitmap::Config bitmap_config);
+
void OnTabCrashed();
+ void OnBitmapReady(bool result, const SkBitmap& bitmap);
// All sizes and offsets are in CSS pixels as cached by the renderer.
void UpdateFrameInfo(const gfx::Vector2dF& scroll_offset,
@@ -396,6 +417,8 @@ class ContentViewCoreImpl : public ContentViewCore,
bool handling_touch_event_;
blink::WebTouchEvent pending_touch_event_;
GestureEventPacket pending_gesture_packet_;
+ base::android::ScopedJavaGlobalRef<jobject> jbitmap_;
+ scoped_ptr<gfx::JavaBitmap> java_bitmap_;
DISALLOW_COPY_AND_ASSIGN(ContentViewCoreImpl);
};
« no previous file with comments | « no previous file | content/browser/android/content_view_core_impl.cc » ('j') | content/browser/android/content_view_core_impl.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698