Loading core/java/android/content/Context.java +4 −0 Original line number Diff line number Diff line Loading @@ -33,6 +33,7 @@ import android.annotation.NonNull; import android.annotation.Nullable; import android.annotation.PermissionMethod; import android.annotation.PermissionName; import android.annotation.RequiresFeature; import android.annotation.RequiresPermission; import android.annotation.StringDef; import android.annotation.StringRes; Loading Loading @@ -6678,6 +6679,8 @@ public abstract class Context { * Use with {@link #getSystemService(String)} to retrieve a {@link * android.webkit.WebViewUpdateManager} for accessing the WebView update service. * * <p>This can only be used on devices with {@link PackageManager#FEATURE_WEBVIEW}. * * @see #getSystemService(String) * @see android.webkit.WebViewUpdateManager * @hide Loading @@ -6685,6 +6688,7 @@ public abstract class Context { @FlaggedApi(android.webkit.Flags.FLAG_UPDATE_SERVICE_IPC_WRAPPER) @SystemApi(client = SystemApi.Client.MODULE_LIBRARIES) @SuppressLint("ServiceName") @RequiresFeature(PackageManager.FEATURE_WEBVIEW) public static final String WEBVIEW_UPDATE_SERVICE = "webviewupdate"; /** Loading core/java/android/webkit/WebView.java +3 −3 Original line number Diff line number Diff line Loading @@ -3088,11 +3088,11 @@ public class WebView extends AbsoluteLayout } if (Flags.updateServiceIpcWrapper()) { WebViewUpdateManager manager = WebViewUpdateManager.getInstance(); if (manager == null) { if (WebViewFactory.isWebViewSupported()) { return WebViewUpdateManager.getInstance().getCurrentWebViewPackage(); } else { return null; } return manager.getCurrentWebViewPackage(); } else { IWebViewUpdateService service = WebViewFactory.getUpdateService(); if (service == null) { Loading core/java/android/webkit/WebViewFactory.java +1 −1 Original line number Diff line number Diff line Loading @@ -208,7 +208,7 @@ public final class WebViewFactory { public MissingWebViewPackageException(Exception e) { super(e); } } private static boolean isWebViewSupported() { static boolean isWebViewSupported() { // No lock; this is a benign race as Boolean's state is final and the PackageManager call // will always return the same value. if (sWebViewSupported == null) { Loading core/java/android/webkit/WebViewUpdateManager.java +5 −0 Original line number Diff line number Diff line Loading @@ -19,12 +19,14 @@ package android.webkit; import android.annotation.FlaggedApi; import android.annotation.NonNull; import android.annotation.Nullable; import android.annotation.RequiresFeature; import android.annotation.RequiresPermission; import android.annotation.SuppressLint; import android.annotation.SystemApi; import android.app.SystemServiceRegistry; import android.content.Context; import android.content.pm.PackageInfo; import android.content.pm.PackageManager; import android.os.RemoteException; /** @hide */ Loading @@ -43,8 +45,11 @@ public final class WebViewUpdateManager { * * This exists for the benefit of callsites without a {@link Context}; prefer * {@link Context#getSystemService(Class)} otherwise. * * This can only be used on devices with {@link PackageManager#FEATURE_WEBVIEW}. */ @SuppressLint("ManagerLookup") // service opts in to getSystemServiceWithNoContext() @RequiresFeature(PackageManager.FEATURE_WEBVIEW) public static @Nullable WebViewUpdateManager getInstance() { return (WebViewUpdateManager) SystemServiceRegistry.getSystemServiceWithNoContext( Context.WEBVIEW_UPDATE_SERVICE); Loading core/java/android/webkit/WebViewUpdateService.java +9 −9 Original line number Diff line number Diff line Loading @@ -34,11 +34,11 @@ public final class WebViewUpdateService { */ public static WebViewProviderInfo[] getAllWebViewPackages() { if (Flags.updateServiceIpcWrapper()) { WebViewUpdateManager manager = WebViewUpdateManager.getInstance(); if (manager == null) { if (WebViewFactory.isWebViewSupported()) { return WebViewUpdateManager.getInstance().getAllWebViewPackages(); } else { return new WebViewProviderInfo[0]; } return manager.getAllWebViewPackages(); } else { IWebViewUpdateService service = getUpdateService(); if (service == null) { Loading @@ -57,11 +57,11 @@ public final class WebViewUpdateService { */ public static WebViewProviderInfo[] getValidWebViewPackages() { if (Flags.updateServiceIpcWrapper()) { WebViewUpdateManager manager = WebViewUpdateManager.getInstance(); if (manager == null) { if (WebViewFactory.isWebViewSupported()) { return WebViewUpdateManager.getInstance().getValidWebViewPackages(); } else { return new WebViewProviderInfo[0]; } return manager.getValidWebViewPackages(); } else { IWebViewUpdateService service = getUpdateService(); if (service == null) { Loading @@ -80,11 +80,11 @@ public final class WebViewUpdateService { */ public static String getCurrentWebViewPackageName() { if (Flags.updateServiceIpcWrapper()) { WebViewUpdateManager manager = WebViewUpdateManager.getInstance(); if (manager == null) { if (WebViewFactory.isWebViewSupported()) { return WebViewUpdateManager.getInstance().getCurrentWebViewPackageName(); } else { return null; } return manager.getCurrentWebViewPackageName(); } else { IWebViewUpdateService service = getUpdateService(); if (service == null) { Loading Loading
core/java/android/content/Context.java +4 −0 Original line number Diff line number Diff line Loading @@ -33,6 +33,7 @@ import android.annotation.NonNull; import android.annotation.Nullable; import android.annotation.PermissionMethod; import android.annotation.PermissionName; import android.annotation.RequiresFeature; import android.annotation.RequiresPermission; import android.annotation.StringDef; import android.annotation.StringRes; Loading Loading @@ -6678,6 +6679,8 @@ public abstract class Context { * Use with {@link #getSystemService(String)} to retrieve a {@link * android.webkit.WebViewUpdateManager} for accessing the WebView update service. * * <p>This can only be used on devices with {@link PackageManager#FEATURE_WEBVIEW}. * * @see #getSystemService(String) * @see android.webkit.WebViewUpdateManager * @hide Loading @@ -6685,6 +6688,7 @@ public abstract class Context { @FlaggedApi(android.webkit.Flags.FLAG_UPDATE_SERVICE_IPC_WRAPPER) @SystemApi(client = SystemApi.Client.MODULE_LIBRARIES) @SuppressLint("ServiceName") @RequiresFeature(PackageManager.FEATURE_WEBVIEW) public static final String WEBVIEW_UPDATE_SERVICE = "webviewupdate"; /** Loading
core/java/android/webkit/WebView.java +3 −3 Original line number Diff line number Diff line Loading @@ -3088,11 +3088,11 @@ public class WebView extends AbsoluteLayout } if (Flags.updateServiceIpcWrapper()) { WebViewUpdateManager manager = WebViewUpdateManager.getInstance(); if (manager == null) { if (WebViewFactory.isWebViewSupported()) { return WebViewUpdateManager.getInstance().getCurrentWebViewPackage(); } else { return null; } return manager.getCurrentWebViewPackage(); } else { IWebViewUpdateService service = WebViewFactory.getUpdateService(); if (service == null) { Loading
core/java/android/webkit/WebViewFactory.java +1 −1 Original line number Diff line number Diff line Loading @@ -208,7 +208,7 @@ public final class WebViewFactory { public MissingWebViewPackageException(Exception e) { super(e); } } private static boolean isWebViewSupported() { static boolean isWebViewSupported() { // No lock; this is a benign race as Boolean's state is final and the PackageManager call // will always return the same value. if (sWebViewSupported == null) { Loading
core/java/android/webkit/WebViewUpdateManager.java +5 −0 Original line number Diff line number Diff line Loading @@ -19,12 +19,14 @@ package android.webkit; import android.annotation.FlaggedApi; import android.annotation.NonNull; import android.annotation.Nullable; import android.annotation.RequiresFeature; import android.annotation.RequiresPermission; import android.annotation.SuppressLint; import android.annotation.SystemApi; import android.app.SystemServiceRegistry; import android.content.Context; import android.content.pm.PackageInfo; import android.content.pm.PackageManager; import android.os.RemoteException; /** @hide */ Loading @@ -43,8 +45,11 @@ public final class WebViewUpdateManager { * * This exists for the benefit of callsites without a {@link Context}; prefer * {@link Context#getSystemService(Class)} otherwise. * * This can only be used on devices with {@link PackageManager#FEATURE_WEBVIEW}. */ @SuppressLint("ManagerLookup") // service opts in to getSystemServiceWithNoContext() @RequiresFeature(PackageManager.FEATURE_WEBVIEW) public static @Nullable WebViewUpdateManager getInstance() { return (WebViewUpdateManager) SystemServiceRegistry.getSystemServiceWithNoContext( Context.WEBVIEW_UPDATE_SERVICE); Loading
core/java/android/webkit/WebViewUpdateService.java +9 −9 Original line number Diff line number Diff line Loading @@ -34,11 +34,11 @@ public final class WebViewUpdateService { */ public static WebViewProviderInfo[] getAllWebViewPackages() { if (Flags.updateServiceIpcWrapper()) { WebViewUpdateManager manager = WebViewUpdateManager.getInstance(); if (manager == null) { if (WebViewFactory.isWebViewSupported()) { return WebViewUpdateManager.getInstance().getAllWebViewPackages(); } else { return new WebViewProviderInfo[0]; } return manager.getAllWebViewPackages(); } else { IWebViewUpdateService service = getUpdateService(); if (service == null) { Loading @@ -57,11 +57,11 @@ public final class WebViewUpdateService { */ public static WebViewProviderInfo[] getValidWebViewPackages() { if (Flags.updateServiceIpcWrapper()) { WebViewUpdateManager manager = WebViewUpdateManager.getInstance(); if (manager == null) { if (WebViewFactory.isWebViewSupported()) { return WebViewUpdateManager.getInstance().getValidWebViewPackages(); } else { return new WebViewProviderInfo[0]; } return manager.getValidWebViewPackages(); } else { IWebViewUpdateService service = getUpdateService(); if (service == null) { Loading @@ -80,11 +80,11 @@ public final class WebViewUpdateService { */ public static String getCurrentWebViewPackageName() { if (Flags.updateServiceIpcWrapper()) { WebViewUpdateManager manager = WebViewUpdateManager.getInstance(); if (manager == null) { if (WebViewFactory.isWebViewSupported()) { return WebViewUpdateManager.getInstance().getCurrentWebViewPackageName(); } else { return null; } return manager.getCurrentWebViewPackageName(); } else { IWebViewUpdateService service = getUpdateService(); if (service == null) { Loading