Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(683)

Unified Diff: android_webview/java/src/org/chromium/android_webview/AwContents.java

Issue 1578353002: Pull the Activity context from WindowAndroid if possible (Closed) Base URL: https://chromium.googlesource.com/a/chromium/src.git@2564
Patch Set: Created 4 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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;
}
« no previous file with comments | « no previous file | components/web_contents_delegate_android/android/java/src/org/chromium/components/web_contents_delegate_android/ColorChooserAndroid.java » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698