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; |
} |