Index: chrome/android/java/src/org/chromium/chrome/browser/WarmupManager.java |
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/WarmupManager.java b/chrome/android/java/src/org/chromium/chrome/browser/WarmupManager.java |
index 3f4d6994c884318d725fc9a15a3758741a7bb5fb..8fb303b93b95437a8797b1521155de31123429dd 100644 |
--- a/chrome/android/java/src/org/chromium/chrome/browser/WarmupManager.java |
+++ b/chrome/android/java/src/org/chromium/chrome/browser/WarmupManager.java |
@@ -6,6 +6,7 @@ package org.chromium.chrome.browser; |
import android.content.Context; |
import android.os.AsyncTask; |
+import android.os.StrictMode; |
import android.view.ContextThemeWrapper; |
import android.view.InflateException; |
import android.view.LayoutInflater; |
@@ -71,6 +72,10 @@ public final class WarmupManager { |
*/ |
public void initializeViewHierarchy(Context baseContext, int toolbarContainerId) { |
TraceEvent.begin("WarmupManager.initializeViewHierarchy"); |
+ // Inflating the view hierarchy causes StrictMode violations on some |
+ // devices. Since layout inflation should happen on the UI thread, allow |
+ // the disk reads. crbug.com/644243. |
+ StrictMode.ThreadPolicy oldPolicy = StrictMode.allowThreadDiskReads(); |
try { |
ThreadUtils.assertOnUiThread(); |
if (mMainView != null && mToolbarContainerId == toolbarContainerId) return; |
@@ -90,6 +95,7 @@ public final class WarmupManager { |
Log.e(TAG, "Inflation exception.", e); |
mMainView = null; |
} finally { |
+ StrictMode.setThreadPolicy(oldPolicy); |
TraceEvent.end("WarmupManager.initializeViewHierarchy"); |
} |
} |