| 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 7935305d99046658c29e9496fde5896f9023f841..5bdfe8145cf01872add0c3d64f5a949416843a50 100644
|
| --- a/android_webview/java/src/org/chromium/android_webview/AwBrowserProcess.java
|
| +++ b/android_webview/java/src/org/chromium/android_webview/AwBrowserProcess.java
|
| @@ -5,6 +5,7 @@
|
| package org.chromium.android_webview;
|
|
|
| import android.content.Context;
|
| +import android.os.AsyncTask;
|
| import android.os.StrictMode;
|
|
|
| import org.chromium.android_webview.policy.AwPolicyProvider;
|
| @@ -18,6 +19,7 @@ import org.chromium.base.library_loader.LibraryProcessType;
|
| import org.chromium.base.library_loader.ProcessInitException;
|
| import org.chromium.content.browser.BrowserStartupController;
|
| import org.chromium.content.browser.ChildProcessCreationParams;
|
| +import org.chromium.content.browser.ChildProcessLauncher;
|
| import org.chromium.policy.CombinedPolicyProvider;
|
|
|
| import java.io.File;
|
| @@ -78,7 +80,19 @@ public abstract class AwBrowserProcess {
|
| ThreadUtils.runOnUiThreadBlocking(new Runnable() {
|
| @Override
|
| public void run() {
|
| - Context appContext = ContextUtils.getApplicationContext();
|
| + final Context appContext = ContextUtils.getApplicationContext();
|
| + boolean multiProcess = CommandLine.getInstance().hasSwitch(
|
| + AwSwitches.WEBVIEW_SANDBOXED_RENDERER);
|
| + if (multiProcess) {
|
| + // Have a background thread warm up a renderer process now, so that this can
|
| + // proceed in parallel to the browser process initialisation.
|
| + AsyncTask.THREAD_POOL_EXECUTOR.execute(new Runnable() {
|
| + @Override
|
| + public void run() {
|
| + ChildProcessLauncher.warmUp(appContext);
|
| + }
|
| + });
|
| + }
|
| // 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.
|
| @@ -86,8 +100,7 @@ public abstract class AwBrowserProcess {
|
|
|
| try {
|
| BrowserStartupController.get(appContext, LibraryProcessType.PROCESS_WEBVIEW)
|
| - .startBrowserProcessesSync(!CommandLine.getInstance().hasSwitch(
|
| - AwSwitches.WEBVIEW_SANDBOXED_RENDERER));
|
| + .startBrowserProcessesSync(!multiProcess);
|
| } catch (ProcessInitException e) {
|
| throw new RuntimeException("Cannot initialize WebView", e);
|
| }
|
|
|