| Index: content/public/android/java/src/org/chromium/content/browser/ContentViewRenderView.java
|
| diff --git a/content/public/android/java/src/org/chromium/content/browser/ContentViewRenderView.java b/content/public/android/java/src/org/chromium/content/browser/ContentViewRenderView.java
|
| index 445f4223e947b1b5829901c62692c0b1336be90f..67596976c6aa6ad03cc8ac0e18da1a403533acd7 100644
|
| --- a/content/public/android/java/src/org/chromium/content/browser/ContentViewRenderView.java
|
| +++ b/content/public/android/java/src/org/chromium/content/browser/ContentViewRenderView.java
|
| @@ -167,7 +167,18 @@
|
| * @return The created SurfaceView object.
|
| */
|
| protected SurfaceView createSurfaceView(Context context) {
|
| - return new SurfaceView(context);
|
| + return new SurfaceView(context) {
|
| + @Override
|
| + public void onDraw(Canvas canvas) {
|
| + // We only need to draw to software canvases, which are used for taking screenshots.
|
| + if (canvas.isHardwareAccelerated()) return;
|
| + Bitmap bitmap = Bitmap.createBitmap(getWidth(), getHeight(),
|
| + Bitmap.Config.ARGB_8888);
|
| + if (nativeCompositeToBitmap(mNativeContentViewRenderView, bitmap)) {
|
| + canvas.drawBitmap(bitmap, 0, 0, null);
|
| + }
|
| + }
|
| + };
|
| }
|
|
|
| /**
|
| @@ -258,6 +269,7 @@
|
| private native void nativeSurfaceChanged(long nativeContentViewRenderView,
|
| int format, int width, int height, Surface surface);
|
| private native boolean nativeComposite(long nativeContentViewRenderView);
|
| + private native boolean nativeCompositeToBitmap(long nativeContentViewRenderView, Bitmap bitmap);
|
| private native void nativeSetOverlayVideoMode(long nativeContentViewRenderView,
|
| boolean enabled);
|
| }
|
|
|