| Index: android_webview/java/src/org/chromium/android_webview/AwContents.java
|
| diff --git a/android_webview/java/src/org/chromium/android_webview/AwContents.java b/android_webview/java/src/org/chromium/android_webview/AwContents.java
|
| index 7339fee2af99dd379cfb073c3fee9d738550bdce..8695c54f7336fe5a4206d650a3fb9616f8cc743d 100644
|
| --- a/android_webview/java/src/org/chromium/android_webview/AwContents.java
|
| +++ b/android_webview/java/src/org/chromium/android_webview/AwContents.java
|
| @@ -914,29 +914,28 @@ public class AwContents implements SmartClipProvider,
|
| }
|
| }
|
| private static WindowAndroidWrapper sCachedWindowAndroid;
|
| - private static WeakHashMap<Activity, WindowAndroidWrapper> sActivityWindowMap;
|
| + private static WeakHashMap<Context, WindowAndroidWrapper> sActivityContextWindowMap;
|
|
|
| // getWindowAndroid is only called on UI thread, so there are no threading issues with lazy
|
| // initialization.
|
| @SuppressFBWarnings("LI_LAZY_INIT_STATIC")
|
| private static WindowAndroidWrapper getWindowAndroid(Context context) {
|
| // TODO(boliu): WebView does not currently initialize ApplicationStatus, crbug.com/470582.
|
| - Activity activity = ContentViewCore.activityFromContext(context);
|
| - if (activity == null) {
|
| + boolean contextWrapsActivity = activityFromContext(context) != null;
|
| + if (!contextWrapsActivity) {
|
| if (sCachedWindowAndroid == null) {
|
| - sCachedWindowAndroid = new WindowAndroidWrapper(
|
| - new WindowAndroid(context.getApplicationContext()));
|
| + sCachedWindowAndroid = new WindowAndroidWrapper(new WindowAndroid(context));
|
| }
|
| return sCachedWindowAndroid;
|
| }
|
|
|
| - if (sActivityWindowMap == null) sActivityWindowMap = new WeakHashMap<>();
|
| - WindowAndroidWrapper activityWindowAndroid = sActivityWindowMap.get(activity);
|
| + if (sActivityContextWindowMap == null) sActivityContextWindowMap = new WeakHashMap<>();
|
| + WindowAndroidWrapper activityWindowAndroid = sActivityContextWindowMap.get(context);
|
| if (activityWindowAndroid == null) {
|
| final boolean listenToActivityState = false;
|
| activityWindowAndroid = new WindowAndroidWrapper(
|
| - new ActivityWindowAndroid(activity, listenToActivityState));
|
| - sActivityWindowMap.put(activity, activityWindowAndroid);
|
| + new ActivityWindowAndroid(context, listenToActivityState));
|
| + sActivityContextWindowMap.put(context, activityWindowAndroid);
|
| }
|
| return activityWindowAndroid;
|
| }
|
| @@ -1199,7 +1198,7 @@ public class AwContents implements SmartClipProvider,
|
| }
|
|
|
| public static Activity activityFromContext(Context context) {
|
| - return ContentViewCore.activityFromContext(context);
|
| + return WindowAndroid.activityFromContext(context);
|
| }
|
| /**
|
| * Disables contents of JS-to-Java bridge objects to be inspectable using
|
| @@ -2247,7 +2246,7 @@ public class AwContents implements SmartClipProvider,
|
| intent.putExtra(Intent.EXTRA_PROCESS_TEXT_READONLY, true);
|
| }
|
|
|
| - if (ContentViewCore.activityFromContext(mContext) == null) {
|
| + if (WindowAndroid.activityFromContext(mContext) == null) {
|
| mContext.startActivity(intent);
|
| return;
|
| }
|
|
|