Merge "Revert "Revoke 'always' web handler status when not autoverifying"" into oc-dev am: 41d1927c3f am: 3e2270de45
Change-Id: I43f76e0d351518960a01ce71419680d21714c9b6
This commit is contained in:
@@ -19061,47 +19061,35 @@ public class PackageManagerService extends IPackageManager.Stub
|
||||
int count = 0;
|
||||
final String packageName = pkg.packageName;
|
||||
|
||||
boolean handlesWebUris = false;
|
||||
final boolean alreadyVerified;
|
||||
synchronized (mPackages) {
|
||||
// If this is a new install and we see that we've already run verification for this
|
||||
// package, we have nothing to do: it means the state was restored from backup.
|
||||
final IntentFilterVerificationInfo ivi =
|
||||
mSettings.getIntentFilterVerificationLPr(packageName);
|
||||
alreadyVerified = (ivi != null);
|
||||
if (!replacing && alreadyVerified) {
|
||||
if (DEBUG_DOMAIN_VERIFICATION) {
|
||||
Slog.i(TAG, "Package " + packageName + " already verified: status="
|
||||
+ ivi.getStatusString());
|
||||
if (!replacing) {
|
||||
IntentFilterVerificationInfo ivi =
|
||||
mSettings.getIntentFilterVerificationLPr(packageName);
|
||||
if (ivi != null) {
|
||||
if (DEBUG_DOMAIN_VERIFICATION) {
|
||||
Slog.i(TAG, "Package " + packageName+ " already verified: status="
|
||||
+ ivi.getStatusString());
|
||||
}
|
||||
return;
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
// If any filters need to be verified, then all need to be. In addition, we need to
|
||||
// know whether an updating app has any web navigation intent filters, to re-
|
||||
// examine handling policy even if not re-verifying.
|
||||
// If any filters need to be verified, then all need to be.
|
||||
boolean needToVerify = false;
|
||||
for (PackageParser.Activity a : pkg.activities) {
|
||||
for (ActivityIntentInfo filter : a.intents) {
|
||||
if (filter.handlesWebUris(true)) {
|
||||
handlesWebUris = true;
|
||||
}
|
||||
if (filter.needsVerification() && needsNetworkVerificationLPr(filter)) {
|
||||
if (DEBUG_DOMAIN_VERIFICATION) {
|
||||
Slog.d(TAG, "Intent filter needs verification, so processing all filters");
|
||||
}
|
||||
needToVerify = true;
|
||||
// It's safe to break out here because filter.needsVerification()
|
||||
// can only be true if filter.handlesWebUris(true) returns true, so
|
||||
// we've already noted that.
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Note whether this app publishes any web navigation handling support at all,
|
||||
// and whether there are any web-nav filters that fit the profile for running
|
||||
// a verification pass now.
|
||||
if (needToVerify) {
|
||||
final int verificationId = mIntentFilterVerificationToken++;
|
||||
for (PackageParser.Activity a : pkg.activities) {
|
||||
@@ -19119,23 +19107,13 @@ public class PackageManagerService extends IPackageManager.Stub
|
||||
}
|
||||
|
||||
if (count > 0) {
|
||||
// count > 0 means that we're running a full verification pass
|
||||
if (DEBUG_DOMAIN_VERIFICATION) Slog.d(TAG, "Starting " + count
|
||||
+ " IntentFilter verification" + (count > 1 ? "s" : "")
|
||||
+ " for userId:" + userId);
|
||||
mIntentFilterVerifier.startVerifications(userId);
|
||||
} else if (alreadyVerified && handlesWebUris) {
|
||||
// App used autoVerify in the past, no longer does, but still handles web
|
||||
// navigation starts.
|
||||
if (DEBUG_DOMAIN_VERIFICATION) {
|
||||
Slog.d(TAG, "App changed web filters but no longer verifying - resetting policy");
|
||||
}
|
||||
synchronized (mPackages) {
|
||||
clearIntentFilterVerificationsLPw(packageName, userId);
|
||||
}
|
||||
} else {
|
||||
if (DEBUG_DOMAIN_VERIFICATION) {
|
||||
Slog.d(TAG, "No web filters or no prior verify policy for " + packageName);
|
||||
Slog.d(TAG, "No filters or not all autoVerify for " + packageName);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1380,7 +1380,6 @@ final class Settings {
|
||||
return false;
|
||||
}
|
||||
ps.clearDomainVerificationStatusForUser(userId);
|
||||
ps.setIntentFilterVerificationInfo(null);
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user