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