| Index: android_webview/java/src/org/chromium/android_webview/JavaBrowserViewRendererHelper.java
|
| 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 d4e79c82254e6fd7d9471c49156913afbf9f2f78..7abf59c380b0107e5693bbb41422f3d413b2d570 100644
|
| --- a/android_webview/java/src/org/chromium/android_webview/JavaBrowserViewRendererHelper.java
|
| +++ b/android_webview/java/src/org/chromium/android_webview/JavaBrowserViewRendererHelper.java
|
| @@ -11,6 +11,9 @@ import android.graphics.Picture;
|
|
|
| import org.chromium.base.CalledByNative;
|
| import org.chromium.base.JNINamespace;
|
| +import org.chromium.content.common.TraceEvent;
|
| +
|
| +import java.lang.ref.SoftReference;
|
|
|
| /**
|
| * Provides auxiliary methods related to Picture objects and native SkPictures.
|
| @@ -18,12 +21,29 @@ import org.chromium.base.JNINamespace;
|
| @JNINamespace("android_webview")
|
| public class JavaBrowserViewRendererHelper {
|
|
|
| + private static SoftReference<Bitmap> sCachedBitmap;
|
| +
|
| /**
|
| * Provides a Bitmap object with a given width and height used for auxiliary rasterization.
|
| */
|
| @CalledByNative
|
| - private static Bitmap createBitmap(int width, int height) {
|
| - return Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888);
|
| + private static Bitmap createBitmap(int width, int height, boolean cacheResult) {
|
| + if (cacheResult && sCachedBitmap != null) {
|
| + Bitmap result = sCachedBitmap.get();
|
| + if (result != null) {
|
| + if (result.getWidth() == width && result.getHeight() == height) {
|
| + TraceEvent.instant("Reused cached bitmap");
|
| + return result;
|
| + }
|
| + result.recycle();
|
| + }
|
| + sCachedBitmap = null;
|
| + }
|
| + Bitmap result = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888);
|
| + if (cacheResult) {
|
| + sCachedBitmap = new SoftReference<Bitmap>(result);
|
| + }
|
| + return result;
|
| }
|
|
|
| /**
|
|
|