diff options
Diffstat (limited to 'chromium/ui/android/window_android.cc')
-rw-r--r-- | chromium/ui/android/window_android.cc | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/chromium/ui/android/window_android.cc b/chromium/ui/android/window_android.cc index 1f2ccb2f972..439268fd336 100644 --- a/chromium/ui/android/window_android.cc +++ b/chromium/ui/android/window_android.cc @@ -5,6 +5,7 @@ #include "ui/android/window_android.h" #include "base/android/jni_android.h" +#include "base/android/jni_array.h" #include "base/android/jni_helper.h" #include "base/android/scoped_java_ref.h" #include "jni/WindowAndroid_jni.h" @@ -33,6 +34,22 @@ bool WindowAndroid::RegisterWindowAndroid(JNIEnv* env) { WindowAndroid::~WindowAndroid() { } +bool WindowAndroid::GrabSnapshot( + int content_x, int content_y, int width, int height, + std::vector<unsigned char>* png_representation) { + JNIEnv* env = AttachCurrentThread(); + ScopedJavaLocalRef<jbyteArray> result = + Java_WindowAndroid_grabSnapshot(env, GetJavaObject().obj(), + content_x + content_offset_.x(), + content_y + content_offset_.y(), + width, height); + if (result.is_null()) + return false; + base::android::JavaByteArrayToByteVector( + env, result.obj(), png_representation); + return true; +} + // ---------------------------------------------------------------------------- // Native JNI methods // ---------------------------------------------------------------------------- |