| 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 2cc39b97ca69acee6a4ae5f7b6d975c90e36661c..6d8e29188ba6a08852315c37d1e0a5293714121e 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
|
| @@ -16,6 +16,7 @@ import android.net.Uri;
|
| import android.os.Build;
|
| import android.os.Looper;
|
| import android.os.Process;
|
| +import android.os.StrictMode;
|
| import android.os.UserManager;
|
| import android.provider.Settings;
|
| import android.util.Log;
|
| @@ -247,8 +248,15 @@ public class WebViewChromiumFactoryProvider implements WebViewFactoryProvider {
|
| System.loadLibrary("webviewchromium_plat_support");
|
|
|
| // Use shared preference to check for package downgrade.
|
| - mWebViewPrefs = ContextUtils.getApplicationContext().getSharedPreferences(
|
| - CHROMIUM_PREFS_NAME, Context.MODE_PRIVATE);
|
| + // Since N, getSharedPreferences creates the preference dir if it doesn't exist,
|
| + // causing a disk write.
|
| + StrictMode.ThreadPolicy oldPolicy = StrictMode.allowThreadDiskWrites();
|
| + try {
|
| + mWebViewPrefs = ContextUtils.getApplicationContext().getSharedPreferences(
|
| + CHROMIUM_PREFS_NAME, Context.MODE_PRIVATE);
|
| + } finally {
|
| + StrictMode.setThreadPolicy(oldPolicy);
|
| + }
|
| int lastVersion = mWebViewPrefs.getInt(VERSION_CODE_PREF, 0);
|
| int currentVersion = packageInfo.versionCode;
|
| if (!versionCodeGE(currentVersion, lastVersion)) {
|
|
|