summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjinsukkim <jinsukkim@chromium.org>2015-11-04 14:06:30 -0800
committerCommit bot <commit-bot@chromium.org>2015-11-04 22:07:20 +0000
commitc976d67ae3f549bda1bb322260310a22675df30c (patch)
treea0878c93743c0318687b8d230c923a6f4d05c5b0
parentb2a54a0f1e137cef8a163d4e9d8534314ee868e4 (diff)
downloadchromium_src-c976d67ae3f549bda1bb322260310a22675df30c.zip
chromium_src-c976d67ae3f549bda1bb322260310a22675df30c.tar.gz
chromium_src-c976d67ae3f549bda1bb322260310a22675df30c.tar.bz2
Uses Window bounds for snapshot area
Passes the width/height info down to native snapshot routine for the corresponding window bounds to be used for snapshotting. BUG=548308 Review URL: https://codereview.chromium.org/1408193007 Cr-Commit-Position: refs/heads/master@{#357906}
-rw-r--r--chrome/android/java/src/org/chromium/chrome/browser/feedback/ScreenshotTask.java13
-rw-r--r--chrome/browser/android/feedback/screenshot_task.cc9
2 files changed, 14 insertions, 8 deletions
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/feedback/ScreenshotTask.java b/chrome/android/java/src/org/chromium/chrome/browser/feedback/ScreenshotTask.java
index 6874142..08be00a 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/feedback/ScreenshotTask.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/feedback/ScreenshotTask.java
@@ -7,6 +7,7 @@ package org.chromium.chrome.browser.feedback;
import android.app.Activity;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
+import android.graphics.Rect;
import org.chromium.base.ThreadUtils;
import org.chromium.base.annotations.CalledByNative;
@@ -47,7 +48,10 @@ public final class ScreenshotTask {
*/
public static void create(Activity activity, final ScreenshotTaskCallback callback) {
if (activity instanceof ChromeActivity) {
- createCompositorScreenshot(((ChromeActivity) activity).getWindowAndroid(), callback);
+ Rect rect = new Rect();
+ activity.getWindow().getDecorView().getRootView().getWindowVisibleDisplayFrame(rect);
+ createCompositorScreenshot(((ChromeActivity) activity).getWindowAndroid(), rect,
+ callback);
return;
}
@@ -72,7 +76,7 @@ public final class ScreenshotTask {
}
private static void createCompositorScreenshot(WindowAndroid windowAndroid,
- final ScreenshotTaskCallback callback) {
+ Rect windowRect, final ScreenshotTaskCallback callback) {
SnapshotResultCallback resultCallback = new SnapshotResultCallback() {
@Override
public void onCompleted(byte[] pngBytes) {
@@ -80,7 +84,8 @@ public final class ScreenshotTask {
? BitmapFactory.decodeByteArray(pngBytes, 0, pngBytes.length) : null);
}
};
- nativeGrabWindowSnapshotAsync(resultCallback, windowAndroid.getNativePointer());
+ nativeGrabWindowSnapshotAsync(resultCallback, windowAndroid.getNativePointer(),
+ windowRect.width(), windowRect.height());
}
/**
@@ -116,5 +121,5 @@ public final class ScreenshotTask {
private ScreenshotTask() {}
private static native void nativeGrabWindowSnapshotAsync(SnapshotResultCallback callback,
- long nativeWindowAndroid);
+ long nativeWindowAndroid, int width, int height);
}
diff --git a/chrome/browser/android/feedback/screenshot_task.cc b/chrome/browser/android/feedback/screenshot_task.cc
index 8864934..780b5f2 100644
--- a/chrome/browser/android/feedback/screenshot_task.cc
+++ b/chrome/browser/android/feedback/screenshot_task.cc
@@ -41,14 +41,15 @@ void SnapshotCallback(JNIEnv* env,
void GrabWindowSnapshotAsync(JNIEnv* env,
const JavaParamRef<jclass>& clazz,
const JavaParamRef<jobject>& jcallback,
- jlong native_window_android) {
+ jlong native_window_android,
+ jint window_width,
+ jint window_height) {
WindowAndroid* window_android = reinterpret_cast<WindowAndroid*>(
native_window_android);
- // TODO(jinsukkim): Use window bounds once WindowAndroid provides it.
- gfx::Display display = gfx::Screen::GetNativeScreen()->GetPrimaryDisplay();
+ gfx::Rect window_bounds(window_width, window_height);
ui::GrabWindowSnapshotAsync(
window_android,
- display.bounds(),
+ window_bounds,
base::ThreadTaskRunnerHandle::Get(),
base::Bind(&SnapshotCallback,
env,