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

Commit 79492650 authored by Ziad Youssef's avatar Ziad Youssef Committed by Android (Google) Code Review
Browse files

Merge "Add a method to get the default webview provider" into main

parents d964eac3 0a245fb6
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
@@ -79,4 +79,9 @@ interface IWebViewUpdateService {
     * Used by Settings to enable/disable multiprocess.
     */
    void enableMultiProcess(boolean enable);

    /**
     * Used by Settings to get the default WebView package.
     */
    WebViewProviderInfo getDefaultWebViewPackage();
}
+5 −0
Original line number Diff line number Diff line
@@ -257,6 +257,11 @@ public class WebViewUpdateService extends SystemService {
            return WebViewUpdateService.this.mImpl.getValidWebViewPackages();
        }

        @Override // Binder call
        public WebViewProviderInfo getDefaultWebViewPackage() {
            return WebViewUpdateService.this.mImpl.getDefaultWebViewPackage();
        }

        @Override // Binder call
        public WebViewProviderInfo[] getAllWebViewPackages() {
            return WebViewUpdateService.this.mImpl.getWebViewPackages();
+7 −0
Original line number Diff line number Diff line
@@ -421,6 +421,13 @@ class WebViewUpdateServiceImpl implements WebViewUpdateServiceInterface {
        return providers;
    }

    @Override
    public WebViewProviderInfo getDefaultWebViewPackage() {
        throw new IllegalStateException(
                "getDefaultWebViewPackage shouldn't be called if update_service_v2 flag is"
                        + " disabled.");
    }

    private static class ProviderAndPackageInfo {
        public final WebViewProviderInfo provider;
        public final PackageInfo packageInfo;
+18 −0
Original line number Diff line number Diff line
@@ -24,6 +24,7 @@ import android.os.AsyncTask;
import android.os.Trace;
import android.os.UserHandle;
import android.text.TextUtils;
import android.util.AndroidRuntimeException;
import android.util.Slog;
import android.webkit.UserPackage;
import android.webkit.WebViewFactory;
@@ -374,6 +375,23 @@ class WebViewUpdateServiceImpl2 implements WebViewUpdateServiceInterface {
        return providers;
    }

    /**
     * Returns the default WebView provider which should be first availableByDefault option in the
     * system config.
     */
    @Override
    public WebViewProviderInfo getDefaultWebViewPackage() {
        WebViewProviderInfo[] webviewProviders = getWebViewPackages();
        for (WebViewProviderInfo provider : webviewProviders) {
            if (provider.availableByDefault) {
                return provider;
            }
        }
        // This should be unreachable because the config parser enforces that there is at least one
        // availableByDefault provider.
        throw new AndroidRuntimeException("No available by default WebView Provider.");
    }

    private static class ProviderAndPackageInfo {
        public final WebViewProviderInfo provider;
        public final PackageInfo packageInfo;
+2 −0
Original line number Diff line number Diff line
@@ -40,6 +40,8 @@ interface WebViewUpdateServiceInterface {

    WebViewProviderInfo[] getValidWebViewPackages();

    WebViewProviderInfo getDefaultWebViewPackage();

    PackageInfo getCurrentWebViewPackage();

    boolean isMultiProcessEnabled();
Loading