Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 10f7a60f authored by /e/ robot's avatar /e/ robot
Browse files

Merge remote-tracking branch 'origin/cm-14.1' into v1-nougat

parents cd58be58 c90263e2
Loading
Loading
Loading
Loading
+39 −32
Original line number Diff line number Diff line
@@ -561,7 +561,13 @@ public final class AssetManager implements AutoCloseable {
                    }
                }
            }

            synchronized (this) {
                if (mObject != 0) {
                    destroy();
                    mObject = 0;
                }
            }
        } finally {
            super.finalize();
        }
@@ -880,8 +886,9 @@ public final class AssetManager implements AutoCloseable {
        mNumRefs--;
        //System.out.println("Dec streams: mNumRefs=" + mNumRefs
        //                   + " mReleased=" + mReleased);
        if (mNumRefs == 0) {
        if (mNumRefs == 0 && mObject != 0) {
            destroy();
            mObject = 0;
        }
    }
}
+33 −11
Original line number Diff line number Diff line
@@ -15584,35 +15584,47 @@ 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.
            if (!replacing) {
                IntentFilterVerificationInfo ivi =
            final IntentFilterVerificationInfo ivi =
                    mSettings.getIntentFilterVerificationLPr(packageName);
                if (ivi != null) {
            alreadyVerified = (ivi != null);
            if (!replacing && alreadyVerified) {
                if (DEBUG_DOMAIN_VERIFICATION) {
                    Slog.i(TAG, "Package " + packageName + " already verified: status="
                            + ivi.getStatusString());
                }
                return;
            }
            }
            // If any filters need to be verified, then all need to be.
            // 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.
            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) {
@@ -15630,13 +15642,23 @@ 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 filters or not all autoVerify for " + packageName);
                Slog.d(TAG, "No web filters or no prior verify policy for " + packageName);
            }
        }
    }
+1 −0
Original line number Diff line number Diff line
@@ -1331,6 +1331,7 @@ final class Settings {
            return false;
        }
        ps.clearDomainVerificationStatusForUser(userId);
        ps.setIntentFilterVerificationInfo(null);
        return true;
    }