Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit b21dbc22 authored by Robert Sesek's avatar Robert Sesek
Browse files

Delay starting the webview_zygote until first use.

During boot, WebViewZygote.setMultiprocessEnabled() is called by the
WebView initialization logic. Starting the WebViewZygote here causes a
slowdown in the system_server boot process, so delay launching the
zygote until it is needed.

Previously the webview_zygote was launched by init, and merely
connecting to it in the boot process didn't have significant overhead.

Bug: 73743583
Bug: 63749735
Test: Boot a device, verify that webview_zygote process is not running.
Test: Launch "Third-party licenses" activity from Settings, and it
      renders correctly via the WebView.

Change-Id: I1352a5df95e4a793ac64862c439ba2573ddd2d18
parent a6e5165b
Loading
Loading
Loading
Loading
+5 −7
Original line number Diff line number Diff line
@@ -93,13 +93,11 @@ public class WebViewZygote {
        synchronized (sLock) {
            sMultiprocessEnabled = enabled;

            // When toggling between multi-process being on/off, start or stop the
            // zygote. If it is enabled and the zygote is not yet started, launch it.
            // Otherwise, kill it. The name may be null if the package information has
            // not yet been resolved.
            if (enabled) {
                connectToZygoteIfNeededLocked();
            } else {
            // When multi-process is disabled, kill the zygote. When it is enabled,
            // the zygote is not explicitly started here to avoid waiting on the
            // zygote launch at boot. Instead, the zygote will be started when it is
            // first needed in getProcess().
            if (!enabled) {
                stopZygoteLocked();
            }
        }