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

Commit 36715ce0 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 am: b256a22a

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

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

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

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

import androidx.test.filters.SmallTest;

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

import org.junit.After;
import org.junit.Before;
import org.junit.Test;
@@ -343,7 +345,10 @@ public class ScreenDecorWindowTests {
        intent.addFlags(FLAG_ACTIVITY_NEW_TASK);
        final ActivityOptions options = ActivityOptions.makeBasic();
        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();

        assertEquals(displayId, activity.getDisplayId());