summaryrefslogtreecommitdiffstats
path: root/android_webview
diff options
context:
space:
mode:
authorjoth@chromium.org <joth@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-06-05 03:17:06 +0000
committerjoth@chromium.org <joth@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-06-05 03:17:06 +0000
commitf2d22f38c49c91f1c6afaf0f9966129b950d5ebc (patch)
tree35a96ddf782191fdf943568373bc0f6e89b05cc3 /android_webview
parent551dfc6b4bbf66440f6f976bdf18725d7a87e167 (diff)
downloadchromium_src-f2d22f38c49c91f1c6afaf0f9966129b950d5ebc.zip
chromium_src-f2d22f38c49c91f1c6afaf0f9966129b950d5ebc.tar.gz
chromium_src-f2d22f38c49c91f1c6afaf0f9966129b950d5ebc.tar.bz2
Fix error in fallback SW rendering
The clip-observing auxiliary bitmap needs to be translated on screen in accordance with the top-left corner of the clipping. BUG= Review URL: https://chromiumcodereview.appspot.com/16290010 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@204142 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'android_webview')
-rw-r--r--android_webview/browser/browser_view_renderer.h4
-rw-r--r--android_webview/browser/browser_view_renderer_impl.cc3
-rw-r--r--android_webview/browser/in_process_view_renderer.cc3
-rw-r--r--android_webview/java/src/org/chromium/android_webview/JavaBrowserViewRendererHelper.java6
-rw-r--r--android_webview/native/java_browser_view_renderer_helper.cc6
-rw-r--r--android_webview/native/java_browser_view_renderer_helper.h4
6 files changed, 17 insertions, 9 deletions
diff --git a/android_webview/browser/browser_view_renderer.h b/android_webview/browser/browser_view_renderer.h
index f372256..86c1ea9 100644
--- a/android_webview/browser/browser_view_renderer.h
+++ b/android_webview/browser/browser_view_renderer.h
@@ -60,7 +60,9 @@ class BrowserViewRenderer {
virtual void DrawBitmapIntoCanvas(
JNIEnv* env,
const base::android::JavaRef<jobject>& jbitmap,
- const base::android::JavaRef<jobject>& jcanvas) = 0;
+ const base::android::JavaRef<jobject>& jcanvas,
+ int x,
+ int y) = 0;
// Creates a Java Picture object that records drawing the provided Bitmap.
virtual base::android::ScopedJavaLocalRef<jobject> RecordBitmapIntoPicture(
diff --git a/android_webview/browser/browser_view_renderer_impl.cc b/android_webview/browser/browser_view_renderer_impl.cc
index 9f790be..bfd8f4b 100644
--- a/android_webview/browser/browser_view_renderer_impl.cc
+++ b/android_webview/browser/browser_view_renderer_impl.cc
@@ -353,7 +353,8 @@ bool BrowserViewRendererImpl::DrawSW(jobject java_canvas,
}
ScopedJavaLocalRef<jobject> jcanvas(env, java_canvas);
- java_helper_->DrawBitmapIntoCanvas(env, jbitmap, jcanvas);
+ java_helper_->DrawBitmapIntoCanvas(env, jbitmap, jcanvas,
+ clip.x(), clip.y());
return true;
}
diff --git a/android_webview/browser/in_process_view_renderer.cc b/android_webview/browser/in_process_view_renderer.cc
index 73b8685..353d4c0 100644
--- a/android_webview/browser/in_process_view_renderer.cc
+++ b/android_webview/browser/in_process_view_renderer.cc
@@ -408,7 +408,8 @@ bool InProcessViewRenderer::DrawSWInternal(jobject java_canvas,
}
ScopedJavaLocalRef<jobject> jcanvas(env, java_canvas);
- java_helper_->DrawBitmapIntoCanvas(env, jbitmap, jcanvas);
+ java_helper_->DrawBitmapIntoCanvas(env, jbitmap, jcanvas,
+ clip.x(), clip.y());
return true;
}
diff --git a/android_webview/java/src/org/chromium/android_webview/JavaBrowserViewRendererHelper.java b/android_webview/java/src/org/chromium/android_webview/JavaBrowserViewRendererHelper.java
index 7abf59c..404743a 100644
--- a/android_webview/java/src/org/chromium/android_webview/JavaBrowserViewRendererHelper.java
+++ b/android_webview/java/src/org/chromium/android_webview/JavaBrowserViewRendererHelper.java
@@ -51,8 +51,8 @@ public class JavaBrowserViewRendererHelper {
* Used for convenience from the native side and other static helper methods.
*/
@CalledByNative
- private static void drawBitmapIntoCanvas(Bitmap bitmap, Canvas canvas) {
- canvas.drawBitmap(bitmap, 0, 0, null);
+ private static void drawBitmapIntoCanvas(Bitmap bitmap, Canvas canvas, int x, int y) {
+ canvas.drawBitmap(bitmap, x, y, null);
}
/**
@@ -64,7 +64,7 @@ public class JavaBrowserViewRendererHelper {
Picture picture = new Picture();
if (bitmap != null) {
Canvas recordingCanvas = picture.beginRecording(bitmap.getWidth(), bitmap.getHeight());
- drawBitmapIntoCanvas(bitmap, recordingCanvas);
+ drawBitmapIntoCanvas(bitmap, recordingCanvas, 0, 0);
picture.endRecording();
}
return picture;
diff --git a/android_webview/native/java_browser_view_renderer_helper.cc b/android_webview/native/java_browser_view_renderer_helper.cc
index 21ec095..2cb984f 100644
--- a/android_webview/native/java_browser_view_renderer_helper.cc
+++ b/android_webview/native/java_browser_view_renderer_helper.cc
@@ -33,10 +33,12 @@ ScopedJavaLocalRef<jobject> JavaBrowserViewRendererHelper::CreateBitmap(
void JavaBrowserViewRendererHelper::DrawBitmapIntoCanvas(
JNIEnv* env,
const JavaRef<jobject>& jbitmap,
- const JavaRef<jobject>& jcanvas) {
+ const JavaRef<jobject>& jcanvas,
+ int x,
+ int y) {
TRACE_EVENT0("android_webview", "RendererHelper::DrawBitmapIntoCanvas");
Java_JavaBrowserViewRendererHelper_drawBitmapIntoCanvas(
- env, jbitmap.obj(), jcanvas.obj());
+ env, jbitmap.obj(), jcanvas.obj(), x, y);
}
ScopedJavaLocalRef<jobject>
diff --git a/android_webview/native/java_browser_view_renderer_helper.h b/android_webview/native/java_browser_view_renderer_helper.h
index 97fd0c9..74c72e2 100644
--- a/android_webview/native/java_browser_view_renderer_helper.h
+++ b/android_webview/native/java_browser_view_renderer_helper.h
@@ -27,7 +27,9 @@ class JavaBrowserViewRendererHelper : public BrowserViewRenderer::JavaHelper {
virtual void DrawBitmapIntoCanvas(
JNIEnv* env,
const base::android::JavaRef<jobject>& jbitmap,
- const base::android::JavaRef<jobject>& jcanvas) OVERRIDE;
+ const base::android::JavaRef<jobject>& jcanvas,
+ int x,
+ int y) OVERRIDE;
virtual base::android::ScopedJavaLocalRef<jobject> RecordBitmapIntoPicture(
JNIEnv* env,
const base::android::JavaRef<jobject>& jbitmap) OVERRIDE;