| Index: android_webview/glue/java/src/com/android/webview/chromium/WebViewChromiumFactoryProvider.java
|
| diff --git a/android_webview/glue/java/src/com/android/webview/chromium/WebViewChromiumFactoryProvider.java b/android_webview/glue/java/src/com/android/webview/chromium/WebViewChromiumFactoryProvider.java
|
| index e78808be92430272ef31be2051599c25764e14b8..0c2fbe5203d41aab823447e16b3a48896f74b6ce 100644
|
| --- a/android_webview/glue/java/src/com/android/webview/chromium/WebViewChromiumFactoryProvider.java
|
| +++ b/android_webview/glue/java/src/com/android/webview/chromium/WebViewChromiumFactoryProvider.java
|
| @@ -12,6 +12,7 @@ import android.content.Intent;
|
| import android.content.SharedPreferences;
|
| import android.content.pm.PackageInfo;
|
| import android.content.pm.PackageManager;
|
| +import android.content.pm.PackageManager.NameNotFoundException;
|
| import android.net.Uri;
|
| import android.os.Build;
|
| import android.os.Looper;
|
| @@ -482,9 +483,34 @@ public class WebViewChromiumFactoryProvider implements WebViewFactoryProvider {
|
|
|
| @Override
|
| public WebViewProvider createWebView(WebView webView, WebView.PrivateAccess privateAccess) {
|
| - return new WebViewChromium(this, webView, privateAccess);
|
| + return new WebViewChromium(this, webView, privateAccess, isHtcMail(webView.getContext()));
|
| }
|
|
|
| + // Check this as a workaround for https://crbug.com/622151.
|
| + private boolean isHtcMail(Context context) {
|
| + if (Build.VERSION.SDK_INT > Build.VERSION_CODES.M) return false;
|
| + final String htcMailPackageId = "com.htc.android.mail";
|
| + if (!htcMailPackageId.equals(context.getPackageName())) return false;
|
| + try {
|
| + PackageInfo packageInfo =
|
| + context.getPackageManager().getPackageInfo(htcMailPackageId, 0);
|
| + if (packageInfo == null) return false;
|
| + // These values are provided by HTC.
|
| + if ((Build.VERSION.SDK_INT < Build.VERSION_CODES.M
|
| + && packageInfo.versionCode < 864021756)
|
| + || packageInfo.versionCode < 866001861) {
|
| + Log.w(TAG, "Disabling thread check in WebView (http://crbug.com/622151). "
|
| + + "APK name: " + htcMailPackageId + ", versionCode: "
|
| + + packageInfo.versionCode);
|
| + return true;
|
| + }
|
| + } catch (NameNotFoundException e) {
|
| + // Ignore this exception and return false.
|
| + }
|
| + return false;
|
| + }
|
| +
|
| +
|
| @Override
|
| public GeolocationPermissions getGeolocationPermissions() {
|
| synchronized (mLock) {
|
|
|