Index: chrome/android/webapk/shell_apk/src/org/chromium/webapk/shell_apk/HostBrowserClassLoader.java |
diff --git a/chrome/android/webapk/shell_apk/src/org/chromium/webapk/shell_apk/HostBrowserClassLoader.java b/chrome/android/webapk/shell_apk/src/org/chromium/webapk/shell_apk/HostBrowserClassLoader.java |
index 84ddce5938629cc5ff17c2c83c0584fcfd0f9a8e..f358e6211dc2948ffeb5d8094babc386c6de68e6 100644 |
--- a/chrome/android/webapk/shell_apk/src/org/chromium/webapk/shell_apk/HostBrowserClassLoader.java |
+++ b/chrome/android/webapk/shell_apk/src/org/chromium/webapk/shell_apk/HostBrowserClassLoader.java |
@@ -7,6 +7,7 @@ |
import android.content.Context; |
import android.content.SharedPreferences; |
import android.content.pm.PackageManager; |
+import android.os.Looper; |
import android.util.Log; |
import org.chromium.webapk.lib.common.WebApkConstants; |
@@ -50,6 +51,7 @@ |
* @return The ClassLoader. |
*/ |
public static ClassLoader getClassLoaderInstance(Context context, String canaryClassName) { |
+ assertRunningOnUiThread(); |
Context remoteContext = WebApkUtils.getHostBrowserContext(context); |
if (remoteContext == null) { |
Log.w(TAG, "Failed to get remote context."); |
@@ -171,4 +173,11 @@ |
} |
return value; |
} |
+ |
+ /** |
+ * Asserts that current thread is the UI thread. |
+ */ |
+ private static void assertRunningOnUiThread() { |
+ assert Looper.getMainLooper().equals(Looper.myLooper()); |
+ } |
} |