diff options
Diffstat (limited to 'core/java/android')
| -rw-r--r-- | core/java/android/webkit/WebViewFactory.java | 8 | ||||
| -rw-r--r-- | core/java/android/webkit/WebViewProviderInfo.java | 6 | ||||
| -rw-r--r-- | core/java/android/webkit/WebViewUpdateService.java | 66 |
3 files changed, 77 insertions, 3 deletions
diff --git a/core/java/android/webkit/WebViewFactory.java b/core/java/android/webkit/WebViewFactory.java index d884f199dd86..cc496dc72d7c 100644 --- a/core/java/android/webkit/WebViewFactory.java +++ b/core/java/android/webkit/WebViewFactory.java @@ -573,8 +573,12 @@ public final class WebViewFactory { intent.getDataString().substring("package:".length())); } - private static IWebViewUpdateService getUpdateService() { - return IWebViewUpdateService.Stub.asInterface(ServiceManager.getService("webviewupdate")); + private static String WEBVIEW_UPDATE_SERVICE_NAME = "webviewupdate"; + + /** @hide */ + public static IWebViewUpdateService getUpdateService() { + return IWebViewUpdateService.Stub.asInterface( + ServiceManager.getService(WEBVIEW_UPDATE_SERVICE_NAME)); } private static native boolean nativeReserveAddressSpace(long addressSpaceToReserve); diff --git a/core/java/android/webkit/WebViewProviderInfo.java b/core/java/android/webkit/WebViewProviderInfo.java index d106dba4dd3a..5d091c91abfb 100644 --- a/core/java/android/webkit/WebViewProviderInfo.java +++ b/core/java/android/webkit/WebViewProviderInfo.java @@ -16,12 +16,16 @@ package android.webkit; +import android.annotation.SystemApi; import android.os.Parcel; import android.os.Parcelable; import java.util.Arrays; -/** @hide */ +/** + * @hide + */ +@SystemApi public final class WebViewProviderInfo implements Parcelable { public WebViewProviderInfo(String packageName, String description, diff --git a/core/java/android/webkit/WebViewUpdateService.java b/core/java/android/webkit/WebViewUpdateService.java new file mode 100644 index 000000000000..4e83d8834062 --- /dev/null +++ b/core/java/android/webkit/WebViewUpdateService.java @@ -0,0 +1,66 @@ +/* + * Copyright (C) 2016 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package android.webkit; + +import android.annotation.SystemApi; +import android.os.RemoteException; + +/** + * @hide + */ +@SystemApi +public final class WebViewUpdateService { + + private WebViewUpdateService () {} + + /** + * Fetch all packages that could potentially implement WebView. + */ + public static WebViewProviderInfo[] getAllWebViewPackages() { + try { + return getUpdateService().getAllWebViewPackages(); + } catch (RemoteException e) { + throw new RuntimeException(e); + } + } + + /** + * Fetch all packages that could potentially implement WebView and are currently valid. + */ + public static WebViewProviderInfo[] getValidWebViewPackages() { + try { + return getUpdateService().getValidWebViewPackages(); + } catch (RemoteException e) { + throw new RuntimeException(e); + } + } + + /** + * Used by DevelopmentSetting to get the name of the WebView provider currently in use. + */ + public static String getCurrentWebViewPackageName() { + try { + return getUpdateService().getCurrentWebViewPackageName(); + } catch (RemoteException e) { + throw new RuntimeException(e); + } + } + + private static IWebViewUpdateService getUpdateService() { + return WebViewFactory.getUpdateService(); + } +} |
