Block the disable option for WebView Default package

Test: atest ApplicationFeatureProviderImplTest

Bug: 308907090

Change-Id: I21785975b965b04895849d2df71fa2f2b4cb4b2d
This commit is contained in:
Ziad Youssef
2023-12-12 14:57:26 +00:00
parent 11df0d4c17
commit e41e5444e9
4 changed files with 73 additions and 1 deletions

View File

@@ -16,6 +16,8 @@
package com.android.settings.applications;
import static android.webkit.Flags.updateServiceV2;
import android.Manifest;
import android.app.admin.DevicePolicyManager;
import android.content.ComponentName;
@@ -41,6 +43,7 @@ import androidx.annotation.VisibleForTesting;
import com.android.internal.telephony.SmsApplication;
import com.android.settings.R;
import com.android.settings.webview.WebViewUpdateServiceWrapper;
import java.util.ArrayList;
import java.util.List;
@@ -54,6 +57,7 @@ public class ApplicationFeatureProviderImpl implements ApplicationFeatureProvide
private final IPackageManager mPms;
private final DevicePolicyManager mDpm;
private final UserManager mUm;
private final WebViewUpdateServiceWrapper mWebViewUpdateServiceWrapper;
/** Flags to use when querying PackageManager for Euicc component implementations. */
private static final int EUICC_QUERY_FLAGS =
PackageManager.MATCH_SYSTEM_ONLY | PackageManager.MATCH_DEBUG_TRIAGED_MISSING
@@ -61,11 +65,16 @@ public class ApplicationFeatureProviderImpl implements ApplicationFeatureProvide
public ApplicationFeatureProviderImpl(Context context, PackageManager pm,
IPackageManager pms, DevicePolicyManager dpm) {
this(context, pm, pms, dpm, new WebViewUpdateServiceWrapper());
}
public ApplicationFeatureProviderImpl(Context context, PackageManager pm,
IPackageManager pms, DevicePolicyManager dpm, WebViewUpdateServiceWrapper wvusWrapper) {
mContext = context.getApplicationContext();
mPm = pm;
mPms = pms;
mDpm = dpm;
mUm = UserManager.get(mContext);
mWebViewUpdateServiceWrapper = wvusWrapper;
}
@Override
@@ -159,6 +168,14 @@ public class ApplicationFeatureProviderImpl implements ApplicationFeatureProvide
keepEnabledPackages.add(euicc.packageName);
}
// Keep WebView default package enabled.
if (updateServiceV2()) {
String packageName = mWebViewUpdateServiceWrapper.getDefaultWebViewPackageName();
if (packageName != null) {
keepEnabledPackages.add(packageName);
}
}
keepEnabledPackages.addAll(getEnabledPackageAllowlist());
final LocationManager locationManager =