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

Commit e6c2a39f authored by Naomi Musgrave's avatar Naomi Musgrave Committed by Automerger Merge Worker
Browse files

Merge "WMS retrieves uid for the package based on the linux user" into tm-qpr-dev am: 1549391e

parents d990aa74 1549391e
Loading
Loading
Loading
Loading
+1 −2
Original line number Diff line number Diff line
@@ -727,9 +727,8 @@ interface IWindowManager
     * If invoked through a package other than a launcher app, returns an empty list.
     *
     * @param displayId the id of the logical display
     * @param packageName the name of the calling package
     */
    List<DisplayInfo> getPossibleDisplayInfo(int displayId, String packageName);
    List<DisplayInfo> getPossibleDisplayInfo(int displayId);

    /**
     * Called to show global actions.
+1 −1
Original line number Diff line number Diff line
@@ -357,7 +357,7 @@ public final class WindowManagerImpl implements WindowManager {
        List<DisplayInfo> possibleDisplayInfos;
        try {
            possibleDisplayInfos = WindowManagerGlobal.getWindowManagerService()
                    .getPossibleDisplayInfo(displayId, mContext.getPackageName());
                    .getPossibleDisplayInfo(displayId);
        } catch (RemoteException e) {
            throw e.rethrowFromSystemServer();
        }
+4 −29
Original line number Diff line number Diff line
@@ -8878,14 +8878,14 @@ public class WindowManagerService extends IWindowManager.Stub
    }

    @Override
    public List<DisplayInfo> getPossibleDisplayInfo(int displayId, String packageName) {
    public List<DisplayInfo> getPossibleDisplayInfo(int displayId) {
        final int callingUid = Binder.getCallingUid();
        final long origId = Binder.clearCallingIdentity();
        try {
            synchronized (mGlobalLock) {
                if (packageName == null || !isRecentsComponent(packageName, callingUid)) {
                    Slog.e(TAG, "Unable to verify uid for package " + packageName
                            + " for getPossibleMaximumWindowMetrics");
                if (!mAtmService.isCallerRecents(callingUid)) {
                    Slog.e(TAG, "Unable to verify uid for getPossibleDisplayInfo"
                            + " on uid " + callingUid);
                    return new ArrayList<>();
                }

@@ -8903,31 +8903,6 @@ public class WindowManagerService extends IWindowManager.Stub
        return mPossibleDisplayInfoMapper.getPossibleDisplayInfos(displayId);
    }

    /**
     * Returns {@code true} when the calling package is the recents component.
     */
    boolean isRecentsComponent(@NonNull String callingPackageName, int callingUid) {
        String recentsPackage;
        try {
            String recentsComponent = mContext.getResources().getString(
                    R.string.config_recentsComponentName);
            if (recentsComponent == null) {
                return false;
            }
            recentsPackage = ComponentName.unflattenFromString(recentsComponent).getPackageName();
        } catch (Resources.NotFoundException e) {
            Slog.e(TAG, "Unable to verify if recents component", e);
            return false;
        }
        try {
            return callingUid == mContext.getPackageManager().getPackageUid(callingPackageName, 0)
                    && callingPackageName.equals(recentsPackage);
        } catch (PackageManager.NameNotFoundException e) {
            Slog.e(TAG, "Unable to verify if recents component", e);
            return false;
        }
    }

    void grantEmbeddedWindowFocus(Session session, IBinder focusToken, boolean grantFocus) {
        synchronized (mGlobalLock) {
            final EmbeddedWindowController.EmbeddedWindow embeddedWindow =