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

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

Issue 2076623002: 🍳 Fix and clean up application context in webview. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Wrap context. Created 4 years, 6 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/AwBrowserProcess.java
diff --git a/android_webview/java/src/org/chromium/android_webview/AwBrowserProcess.java b/android_webview/java/src/org/chromium/android_webview/AwBrowserProcess.java
index 30082fcafde689db7bba51251e5b4731d094aa9e..f7025f2d3c26fdd95a4fc5dbc68123a8d62b215f 100644
--- a/android_webview/java/src/org/chromium/android_webview/AwBrowserProcess.java
+++ b/android_webview/java/src/org/chromium/android_webview/AwBrowserProcess.java
@@ -40,12 +40,12 @@ public abstract class AwBrowserProcess {
* to run webview in this process. Does not create threads; safe to call from zygote.
* Note: it is up to the caller to ensure this is only called once.
*/
- public static void loadLibrary(Context context) {
- PathUtils.setPrivateDataDirectorySuffix(PRIVATE_DATA_DIRECTORY_SUFFIX, context);
- ContextUtils.initApplicationContext(context.getApplicationContext());
+ public static void loadLibrary() {
+ Context appContext = ContextUtils.getApplicationContext();
+ PathUtils.setPrivateDataDirectorySuffix(PRIVATE_DATA_DIRECTORY_SUFFIX, appContext);
try {
LibraryLoader libraryLoader = LibraryLoader.get(LibraryProcessType.PROCESS_WEBVIEW);
- libraryLoader.loadNow(context);
+ libraryLoader.loadNow(appContext);
// Switch the command line implementation from Java to native.
// It's okay for the WebView to do this before initialization because we have
// setup the JNI bindings by this point.
@@ -69,23 +69,23 @@ public abstract class AwBrowserProcess {
* Starts the chromium browser process running within this process. Creates threads
* and performs other per-app resource allocations; must not be called from zygote.
* Note: it is up to the caller to ensure this is only called once.
- * @param context The Android application context
*/
- public static void start(final Context context) {
- tryObtainingDataDirLockOrDie(context);
+ public static void start() {
+ tryObtainingDataDirLockOrDie();
// We must post to the UI thread to cover the case that the user
// has invoked Chromium startup by using the (thread-safe)
// CookieManager rather than creating a WebView.
ThreadUtils.runOnUiThreadBlocking(new Runnable() {
@Override
public void run() {
+ Context appContext = ContextUtils.getApplicationContext();
// The policies are used by browser startup, so we need to register the policy
// providers before starting the browser process. This only registers java objects
// and doesn't need the native library.
- CombinedPolicyProvider.get().registerProvider(new AwPolicyProvider(context));
+ CombinedPolicyProvider.get().registerProvider(new AwPolicyProvider(appContext));
try {
- BrowserStartupController.get(context, LibraryProcessType.PROCESS_WEBVIEW)
+ BrowserStartupController.get(appContext, LibraryProcessType.PROCESS_WEBVIEW)
.startBrowserProcessesSync(!CommandLine.getInstance().hasSwitch(
AwSwitches.WEBVIEW_SANDBOXED_RENDERER));
} catch (ProcessInitException e) {
@@ -95,11 +95,11 @@ public abstract class AwBrowserProcess {
});
}
- private static void tryObtainingDataDirLockOrDie(Context context) {
+ private static void tryObtainingDataDirLockOrDie() {
StrictMode.ThreadPolicy oldPolicy = StrictMode.allowThreadDiskReads();
StrictMode.allowThreadDiskWrites();
try {
- String dataPath = PathUtils.getDataDirectory(context);
+ String dataPath = PathUtils.getDataDirectory(ContextUtils.getApplicationContext());
File lockFile = new File(dataPath, EXCLUSIVE_LOCK_FILE);
boolean success = false;
try {

Powered by Google App Engine
This is Rietveld 408576698