use of android.webkit.WebViewProviderInfo in project android_frameworks_base by ResurrectionRemix.
the class WebViewUpdateServiceImpl method handleNewUser.
/**
* Called when a new user has been added to update the state of its fallback package.
*/
void handleNewUser(int userId) {
if (!mSystemInterface.isFallbackLogicEnabled())
return;
WebViewProviderInfo[] webviewProviders = mSystemInterface.getWebViewPackages();
WebViewProviderInfo fallbackProvider = getFallbackProvider(webviewProviders);
if (fallbackProvider == null)
return;
mSystemInterface.enablePackageForUser(fallbackProvider.packageName, !existsValidNonFallbackProvider(webviewProviders), userId);
}
use of android.webkit.WebViewProviderInfo in project android_frameworks_base by ResurrectionRemix.
the class WebViewUpdateServiceImpl method updateFallbackState.
private void updateFallbackState(WebViewProviderInfo[] webviewProviders, boolean isBoot) {
// If there exists a valid and enabled non-fallback package - disable the fallback
// package, otherwise, enable it.
WebViewProviderInfo fallbackProvider = getFallbackProvider(webviewProviders);
if (fallbackProvider == null)
return;
boolean existsValidNonFallbackProvider = existsValidNonFallbackProvider(webviewProviders);
boolean isFallbackEnabled = false;
try {
isFallbackEnabled = isEnabledPackage(mSystemInterface.getPackageInfoForProvider(fallbackProvider));
} catch (NameNotFoundException e) {
// No fallback package installed -> early out.
return;
}
if (existsValidNonFallbackProvider && // ignore the state of that user during boot.
(isFallbackEnabled || isBoot)) {
mSystemInterface.uninstallAndDisablePackageForAllUsers(mContext, fallbackProvider.packageName);
} else if (!existsValidNonFallbackProvider && // ignore the state of that user during boot.
(!isFallbackEnabled || isBoot)) {
// Enable the fallback package for all users.
mSystemInterface.enablePackageForAllUsers(mContext, fallbackProvider.packageName, true);
}
}
use of android.webkit.WebViewProviderInfo in project android_frameworks_base by ResurrectionRemix.
the class WebViewUpdateServiceImpl method isFallbackPackage.
boolean isFallbackPackage(String packageName) {
if (packageName == null || !mSystemInterface.isFallbackLogicEnabled())
return false;
WebViewProviderInfo[] webviewPackages = mSystemInterface.getWebViewPackages();
WebViewProviderInfo fallbackProvider = getFallbackProvider(webviewPackages);
return (fallbackProvider != null && packageName.equals(fallbackProvider.packageName));
}
use of android.webkit.WebViewProviderInfo in project android_frameworks_base by ResurrectionRemix.
the class WebViewUpdateServiceTest method testWithSinglePackage.
// ****************
// Tests
// ****************
public void testWithSinglePackage() {
String testPackageName = "test.package.name";
checkCertainPackageUsedAfterWebViewBootPreparation(testPackageName, new WebViewProviderInfo[] { new WebViewProviderInfo(testPackageName, "", true, /*default available*/
false, /* fallback */
null) });
}
use of android.webkit.WebViewProviderInfo in project android_frameworks_base by ResurrectionRemix.
the class WebViewUpdateServiceTest method testWithSignatures.
// Ensure that package with valid signatures is chosen rather than package with invalid
// signatures.
public void testWithSignatures() {
String validPackage = "valid package";
String invalidPackage = "invalid package";
Signature validSignature = new Signature("11");
Signature invalidExpectedSignature = new Signature("22");
Signature invalidPackageSignature = new Signature("33");
WebViewProviderInfo[] packages = new WebViewProviderInfo[] { new WebViewProviderInfo(invalidPackage, "", true, false, new String[] { Base64.encodeToString(invalidExpectedSignature.toByteArray(), Base64.DEFAULT) }), new WebViewProviderInfo(validPackage, "", true, false, new String[] { Base64.encodeToString(validSignature.toByteArray(), Base64.DEFAULT) }) };
setupWithPackages(packages, true, /* fallback logic enabled */
1, /* numRelros */
false);
mTestSystemImpl.setPackageInfo(createPackageInfo(invalidPackage, true, /* enabled */
true, /* valid */
true, /* installed */
new Signature[] { invalidPackageSignature }, 0));
mTestSystemImpl.setPackageInfo(createPackageInfo(validPackage, true, /* enabled */
true, /* valid */
true, /* installed */
new Signature[] { validSignature }, 0));
mWebViewUpdateServiceImpl.prepareWebViewInSystemServer();
checkPreparationPhasesForPackage(validPackage, 1);
WebViewProviderInfo[] validPackages = mWebViewUpdateServiceImpl.getValidWebViewPackages();
assertEquals(1, validPackages.length);
assertEquals(validPackage, validPackages[0].packageName);
}
Aggregations