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

Commit 02a98ba9 authored by Linus Tufvesson's avatar Linus Tufvesson Committed by Automerger Merge Worker
Browse files

Merge "Don't allow activites on virtual displays" into rvc-dev am: b79905f0...

Merge "Don't allow activites on virtual displays" into rvc-dev am: b79905f0 am: b256a22a am: 36715ce0 am: 0a13dbad

Change-Id: I81920e7f2b63b8f1786babe5d0185a8bddc0b527
parents 4468bf48 0a13dbad
Loading
Loading
Loading
Loading
+1 −2
Original line number Original line Diff line number Diff line
@@ -1092,8 +1092,7 @@ public class ActivityStackSupervisor implements RecentTasks.Callbacks {
        final boolean uidPresentOnDisplay = displayContent.isUidPresent(callingUid);
        final boolean uidPresentOnDisplay = displayContent.isUidPresent(callingUid);


        final int displayOwnerUid = displayContent.mDisplay.getOwnerUid();
        final int displayOwnerUid = displayContent.mDisplay.getOwnerUid();
        if (displayContent.mDisplay.getType() == TYPE_VIRTUAL && displayOwnerUid != SYSTEM_UID
        if (displayContent.mDisplay.getType() == TYPE_VIRTUAL && displayOwnerUid != SYSTEM_UID) {
                && displayOwnerUid != aInfo.applicationInfo.uid) {
            // Limit launching on virtual displays, because their contents can be read from Surface
            // Limit launching on virtual displays, because their contents can be read from Surface
            // by apps that created them.
            // by apps that created them.
            if ((aInfo.flags & ActivityInfo.FLAG_ALLOW_EMBEDDED) == 0) {
            if ((aInfo.flags & ActivityInfo.FLAG_ALLOW_EMBEDDED) == 0) {
+1 −0
Original line number Original line Diff line number Diff line
@@ -25,6 +25,7 @@ android_test {
        "testables",
        "testables",
        "ub-uiautomator",
        "ub-uiautomator",
        "hamcrest-library",
        "hamcrest-library",
        "compatibility-device-util-axt",
    ],
    ],


    libs: [
    libs: [
+1 −1
Original line number Original line Diff line number Diff line
@@ -55,7 +55,7 @@
        <activity android:name="com.android.server.wm.TaskStackChangedListenerTest$ActivityInActivityView"
        <activity android:name="com.android.server.wm.TaskStackChangedListenerTest$ActivityInActivityView"
                  android:resizeableActivity="true" />
                  android:resizeableActivity="true" />
        <activity android:name="com.android.server.wm.ScreenDecorWindowTests$TestActivity"
        <activity android:name="com.android.server.wm.ScreenDecorWindowTests$TestActivity"
                  android:showWhenLocked="true" />
                  android:showWhenLocked="true" android:allowEmbedded="true"/>
    </application>
    </application>


    <instrumentation
    <instrumentation
+6 −1
Original line number Original line Diff line number Diff line
@@ -64,6 +64,8 @@ import android.widget.TextView;


import androidx.test.filters.SmallTest;
import androidx.test.filters.SmallTest;


import com.android.compatibility.common.util.SystemUtil;

import org.junit.After;
import org.junit.After;
import org.junit.Before;
import org.junit.Before;
import org.junit.Test;
import org.junit.Test;
@@ -343,7 +345,10 @@ public class ScreenDecorWindowTests {
        intent.addFlags(FLAG_ACTIVITY_NEW_TASK);
        intent.addFlags(FLAG_ACTIVITY_NEW_TASK);
        final ActivityOptions options = ActivityOptions.makeBasic();
        final ActivityOptions options = ActivityOptions.makeBasic();
        options.setLaunchDisplayId(displayId);
        options.setLaunchDisplayId(displayId);
        final Activity activity = mInstrumentation.startActivitySync(intent, options.toBundle());

        final Activity activity = SystemUtil.runWithShellPermissionIdentity(
                () -> mInstrumentation.startActivitySync(intent, options.toBundle()),
                "android.permission.ACTIVITY_EMBEDDING");
        waitForIdle();
        waitForIdle();


        assertEquals(displayId, activity.getDisplayId());
        assertEquals(displayId, activity.getDisplayId());