Revert "Collect NeededUriGrants without holding locks."

This reverts commit 344ce7ce703f806f50ea253047d6dbbb10eaa424.

Bug: 115619667
Bug: 134494852
Reason for revert: Causes "Permission Denial: opening provider" error

Change-Id: I9986618b6e338fef9843b2103da6a728a36c6ea6
diff --git a/services/core/java/com/android/server/wm/ActivityTaskManagerService.java b/services/core/java/com/android/server/wm/ActivityTaskManagerService.java
index f8bfacb..765c9d0 100644
--- a/services/core/java/com/android/server/wm/ActivityTaskManagerService.java
+++ b/services/core/java/com/android/server/wm/ActivityTaskManagerService.java
@@ -265,7 +265,6 @@
 import com.android.server.firewall.IntentFirewall;
 import com.android.server.pm.UserManagerService;
 import com.android.server.policy.PermissionPolicyInternal;
-import com.android.server.uri.NeededUriGrants;
 import com.android.server.uri.UriGrantsManagerInternal;
 import com.android.server.vr.VrManagerInternal;
 
@@ -1541,19 +1540,11 @@
             throw new IllegalArgumentException("File descriptors passed in Intent");
         }
 
-        final ActivityRecord r;
         synchronized (mGlobalLock) {
-            r = ActivityRecord.isInStackLocked(token);
+            ActivityRecord r = ActivityRecord.isInStackLocked(token);
             if (r == null) {
                 return true;
             }
-        }
-
-        // Carefully collect grants without holding lock
-        final NeededUriGrants resultGrants = mUgmInternal.checkGrantUriPermissionFromIntent(
-                Binder.getCallingUid(), resultData, r.packageName, r.mUserId);
-
-        synchronized (mGlobalLock) {
             // Keep track of the root activity of the task before we finish it
             final TaskRecord tr = r.getTaskRecord();
             ActivityRecord rootR = tr.getRootActivity();
@@ -1615,7 +1606,7 @@
                     r.mRelaunchReason = RELAUNCH_REASON_NONE;
                 } else {
                     res = tr.getStack().requestFinishActivityLocked(token, resultCode,
-                            resultData, resultGrants, "app-request", true);
+                            resultData, "app-request", true);
                     if (!res) {
                         Slog.i(TAG, "Failed to finish by app-request");
                     }
@@ -2141,23 +2132,14 @@
     @Override
     public boolean navigateUpTo(IBinder token, Intent destIntent, int resultCode,
             Intent resultData) {
-        final ActivityRecord r;
+
         synchronized (mGlobalLock) {
-            r = ActivityRecord.isInStackLocked(token);
-            if (r == null) {
-                return false;
+            final ActivityRecord r = ActivityRecord.forTokenLocked(token);
+            if (r != null) {
+                return r.getActivityStack().navigateUpToLocked(
+                        r, destIntent, resultCode, resultData);
             }
-        }
-
-        // Carefully collect grants without holding lock
-        final NeededUriGrants destGrants = mUgmInternal.checkGrantUriPermissionFromIntent(
-                Binder.getCallingUid(), destIntent, r.packageName, r.mUserId);
-        final NeededUriGrants resultGrants = mUgmInternal.checkGrantUriPermissionFromIntent(
-                Binder.getCallingUid(), resultData, r.packageName, r.mUserId);
-
-        synchronized (mGlobalLock) {
-            return r.getActivityStack().navigateUpToLocked(
-                    r, destIntent, destGrants, resultCode, resultData, resultGrants);
+            return false;
         }
     }
 
@@ -6607,23 +6589,14 @@
 
         @Override
         public void sendActivityResult(int callingUid, IBinder activityToken, String resultWho,
-                int requestCode, int resultCode, Intent resultData) {
-            final ActivityRecord r;
+                int requestCode, int resultCode, Intent data) {
             synchronized (mGlobalLock) {
-                r = ActivityRecord.isInStackLocked(activityToken);
-                if (r == null || r.getActivityStack() == null) {
-                    return;
+                final ActivityRecord r = ActivityRecord.isInStackLocked(activityToken);
+                if (r != null && r.getActivityStack() != null) {
+                    r.getActivityStack().sendActivityResultLocked(callingUid, r, resultWho,
+                            requestCode, resultCode, data);
                 }
             }
-
-            // Carefully collect grants without holding lock
-            final NeededUriGrants resultGrants = mUgmInternal.checkGrantUriPermissionFromIntent(
-                    Binder.getCallingUid(), resultData, r.packageName, r.mUserId);
-
-            synchronized (mGlobalLock) {
-                r.getActivityStack().sendActivityResultLocked(callingUid, r, resultWho,
-                        requestCode, resultCode, resultData, resultGrants);
-            }
         }
 
         @Override