Index: chrome/android/java/src/org/chromium/chrome/browser/webapps/WebApkActivity.java |
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebApkActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebApkActivity.java |
index ad8637d86b75f22ad68556ebf62dd4f0a9ab40d5..dc345e95fd68aa3c499e1c831650b9db42f1d3f6 100644 |
--- a/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebApkActivity.java |
+++ b/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebApkActivity.java |
@@ -31,8 +31,7 @@ public class WebApkActivity extends WebappActivity { |
/** Indicates whether launching renderer in WebAPK process is enabled. */ |
private boolean mCanLaunchRendererInWebApkProcess; |
- private final ChildProcessCreationParams mDefaultParams = |
- ChildProcessCreationParams.getDefault(); |
+ private int mWebApkChildProcessCreationParamsId = ChildProcessCreationParams.DEFAULT_ID; |
@Override |
protected WebappInfo createWebappInfo(Intent intent) { |
@@ -77,6 +76,11 @@ public class WebApkActivity extends WebappActivity { |
Tab tab) { |
return new WebApkBrowserControlsDelegate(WebApkActivity.this, tab); |
} |
+ |
+ @Override |
+ public int getChildProcessParamId() { |
+ return WebApkActivity.this.mWebApkChildProcessCreationParamsId; |
+ } |
}; |
} |
@@ -117,7 +121,10 @@ public class WebApkActivity extends WebappActivity { |
// renderer processes by declaring the Chrome's renderer service in its AndroidManifest.xml |
// and sets {@link ChildProcessCreationParams} for WebAPK's renderer process so the |
// {@link ChildProcessLauncher} knows which application's renderer service to connect to. |
- initializeChildProcessCreationParams(mCanLaunchRendererInWebApkProcess); |
+ boolean isExternalService = false; |
+ mWebApkChildProcessCreationParamsId = ChildProcessCreationParams.register( |
+ new ChildProcessCreationParams(getWebappInfo().webApkPackageName(), |
+ isExternalService, LibraryProcessType.PROCESS_CHILD)); |
} |
@Override |
@@ -150,33 +157,14 @@ public class WebApkActivity extends WebappActivity { |
} |
@Override |
- public void onPause() { |
- super.onPause(); |
- initializeChildProcessCreationParams(false); |
- } |
- |
- /** |
- * Initializes {@link ChildProcessCreationParams} as a WebAPK's renderer process if |
- * {@link isForWebApk}} is true; as Chrome's child process otherwise. |
- * @param isForWebApk: Whether the {@link ChildProcessCreationParams} is initialized as a |
- * WebAPK renderer process. |
- */ |
- private void initializeChildProcessCreationParams(boolean isForWebApk) { |
- // TODO(hanxi): crbug.com/664530. WebAPKs shouldn't use a global ChildProcessCreationParams. |
- ChildProcessCreationParams params = mDefaultParams; |
- if (isForWebApk) { |
- boolean isExternalService = false; |
- params = new ChildProcessCreationParams(getWebappInfo().webApkPackageName(), |
- isExternalService, LibraryProcessType.PROCESS_CHILD); |
- } |
- ChildProcessCreationParams.registerDefault(params); |
- } |
- |
- @Override |
protected void onDestroyInternal() { |
if (mUpdateManager != null) { |
mUpdateManager.destroy(); |
} |
+ if (mWebApkChildProcessCreationParamsId != ChildProcessCreationParams.DEFAULT_ID) { |
+ ChildProcessCreationParams.unregister(mWebApkChildProcessCreationParamsId); |
+ mWebApkChildProcessCreationParamsId = ChildProcessCreationParams.DEFAULT_ID; |
+ } |
super.onDestroyInternal(); |
} |
} |