merge in klp-release history after reset to klp-dev
diff --git a/chromium/java/com/android/webview/chromium/WebViewContentsClientAdapter.java b/chromium/java/com/android/webview/chromium/WebViewContentsClientAdapter.java
index 95d8ac2..566c99a 100644
--- a/chromium/java/com/android/webview/chromium/WebViewContentsClientAdapter.java
+++ b/chromium/java/com/android/webview/chromium/WebViewContentsClientAdapter.java
@@ -20,6 +20,9 @@
import android.content.Context;
import android.content.Intent;
import android.graphics.Bitmap;
+import android.graphics.BitmapFactory;
+import android.graphics.Canvas;
+import android.graphics.Color;
import android.graphics.Picture;
import android.net.http.ErrorStrings;
import android.net.http.SslError;
@@ -54,6 +57,7 @@
import org.chromium.content.browser.ContentViewClient;
import org.chromium.content.common.TraceEvent;
+import java.lang.ref.SoftReference;
import java.net.URISyntaxException;
/**
@@ -93,6 +97,8 @@
private Handler mUiThreadHandler;
+ private SoftReference<Bitmap> mCachedDefaultVideoPoster;
+
private static final int NEW_WEBVIEW_CREATED = 100;
/**
@@ -773,12 +779,27 @@
@Override
public Bitmap getDefaultVideoPoster() {
TraceEvent.begin();
- Bitmap result;
+ Bitmap result = null;
if (mWebChromeClient != null) {
if (TRACE) Log.d(TAG, "getDefaultVideoPoster");
result = mWebChromeClient.getDefaultVideoPoster();
- } else {
- result = null;
+ }
+ if (result == null) {
+ if (mCachedDefaultVideoPoster != null) {
+ result = mCachedDefaultVideoPoster.get();
+ }
+ if (result == null) {
+ Bitmap poster = BitmapFactory.decodeResource(
+ mWebView.getContext().getResources(),
+ com.android.internal.R.drawable.ic_media_video_poster);
+ result = Bitmap.createBitmap(poster.getWidth(),
+ poster.getHeight(),
+ poster.getConfig());
+ result.eraseColor(Color.GRAY);
+ Canvas canvas = new Canvas(result);
+ canvas.drawBitmap(poster, 0f, 0f, null);
+ mCachedDefaultVideoPoster = new SoftReference<Bitmap>(result);
+ }
}
TraceEvent.end();
return result;