Use WebViewUpdateManager instead of raw AIDL.
Use the new IPC wrapper WebViewUpdateManager instead of directly consuming IWebViewUpdateService. Bug: 319292658 Test: m RunSettingsRoboTests Change-Id: I75a3788aeac9757ce423454c4b6a2a63f5c4f4b2
This commit is contained in:
committed by
Richard Coles
parent
ee85a6e0e9
commit
80ef43e7be
@@ -20,12 +20,12 @@ import android.content.Context;
|
||||
import android.content.pm.ApplicationInfo;
|
||||
import android.content.pm.PackageInfo;
|
||||
import android.content.pm.PackageManager;
|
||||
import android.os.RemoteException;
|
||||
import android.util.Log;
|
||||
import android.webkit.IWebViewUpdateService;
|
||||
import android.webkit.UserPackage;
|
||||
import android.webkit.WebViewFactory;
|
||||
import android.webkit.WebViewProviderInfo;
|
||||
import android.webkit.WebViewUpdateManager;
|
||||
import android.widget.Toast;
|
||||
|
||||
import androidx.annotation.Nullable;
|
||||
@@ -44,8 +44,12 @@ public class WebViewUpdateServiceWrapper {
|
||||
*/
|
||||
public PackageInfo getCurrentWebViewPackage() {
|
||||
try {
|
||||
return WebViewFactory.getUpdateService().getCurrentWebViewPackage();
|
||||
} catch (RemoteException e) {
|
||||
if (android.webkit.Flags.updateServiceIpcWrapper()) {
|
||||
return WebViewUpdateManager.getInstance().getCurrentWebViewPackage();
|
||||
} else {
|
||||
return WebViewFactory.getUpdateService().getCurrentWebViewPackage();
|
||||
}
|
||||
} catch (Exception e) {
|
||||
Log.e(TAG, e.toString());
|
||||
}
|
||||
return null;
|
||||
@@ -59,8 +63,13 @@ public class WebViewUpdateServiceWrapper {
|
||||
public List<ApplicationInfo> getValidWebViewApplicationInfos(Context context) {
|
||||
WebViewProviderInfo[] providers = null;
|
||||
try {
|
||||
providers = WebViewFactory.getUpdateService().getValidWebViewPackages();
|
||||
} catch (RemoteException e) {
|
||||
if (android.webkit.Flags.updateServiceIpcWrapper()) {
|
||||
providers = context.getSystemService(WebViewUpdateManager.class)
|
||||
.getValidWebViewPackages();
|
||||
} else {
|
||||
providers = WebViewFactory.getUpdateService().getValidWebViewPackages();
|
||||
}
|
||||
} catch (Exception e) {
|
||||
}
|
||||
List<ApplicationInfo> pkgs = new ArrayList<>();
|
||||
for (WebViewProviderInfo provider : providers) {
|
||||
@@ -80,10 +89,15 @@ public class WebViewUpdateServiceWrapper {
|
||||
*/
|
||||
public boolean setWebViewProvider(String packageName) {
|
||||
try {
|
||||
return packageName.equals(
|
||||
WebViewFactory.getUpdateService().changeProviderAndSetting(packageName));
|
||||
} catch (RemoteException e) {
|
||||
Log.e(TAG, "RemoteException when trying to change provider to " + packageName, e);
|
||||
if (android.webkit.Flags.updateServiceIpcWrapper()) {
|
||||
return packageName.equals(
|
||||
WebViewUpdateManager.getInstance().changeProviderAndSetting(packageName));
|
||||
} else {
|
||||
return packageName.equals(
|
||||
WebViewFactory.getUpdateService().changeProviderAndSetting(packageName));
|
||||
}
|
||||
} catch (Exception e) {
|
||||
Log.e(TAG, "Exception when trying to change provider to " + packageName, e);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
@@ -112,18 +126,23 @@ public class WebViewUpdateServiceWrapper {
|
||||
*/
|
||||
@Nullable
|
||||
public String getDefaultWebViewPackageName() {
|
||||
WebViewProviderInfo provider = null;
|
||||
try {
|
||||
IWebViewUpdateService service = WebViewFactory.getUpdateService();
|
||||
if (service != null) {
|
||||
WebViewProviderInfo provider = service.getDefaultWebViewPackage();
|
||||
if (provider != null) {
|
||||
return provider.packageName;
|
||||
if (android.webkit.Flags.updateServiceIpcWrapper()) {
|
||||
WebViewUpdateManager manager = WebViewUpdateManager.getInstance();
|
||||
if (manager != null) {
|
||||
provider = manager.getDefaultWebViewPackage();
|
||||
}
|
||||
} else {
|
||||
IWebViewUpdateService service = WebViewFactory.getUpdateService();
|
||||
if (service != null) {
|
||||
provider = service.getDefaultWebViewPackage();
|
||||
}
|
||||
}
|
||||
} catch (RemoteException e) {
|
||||
Log.e(TAG, "RemoteException when trying to fetch default WebView package Name", e);
|
||||
} catch (Exception e) {
|
||||
Log.e(TAG, "Exception when trying to fetch default WebView package Name", e);
|
||||
}
|
||||
return null;
|
||||
return provider != null ? provider.packageName : null;
|
||||
}
|
||||
|
||||
static final int PACKAGE_FLAGS = PackageManager.MATCH_ANY_USER;
|
||||
|
Reference in New Issue
Block a user