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

Commit b5b94029 authored by Zhibin Liu's avatar Zhibin Liu Committed by Android (Google) Code Review
Browse files

Merge "Check package name format before using it for SPA nav" into main

parents 5c13f169 b2ee5ccf
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -38,7 +38,7 @@ class SpaAppBridgeActivity : Activity() {

    companion object {
        fun getDestinationForApp(destinationPrefix: String, intent: Intent): String? {
            val packageName = intent.data?.schemeSpecificPart ?: return null
            val packageName = intent.data?.schemeSpecificPart?.takeIf { Regex("^([a-zA-Z]\\w*\\.)*[a-zA-Z]\\w*$").matches(it) } ?: return null
            return "$destinationPrefix/$packageName/${UserHandle.myUserId()}"
        }
    }
+10 −0
Original line number Diff line number Diff line
@@ -37,6 +37,16 @@ class SpaAppBridgeActivityTest {

        assertThat(destination).isEqualTo("$DESTINATION/$PACKAGE_NAME/${UserHandle.myUserId()}")
    }
    @Test
    fun getDestinationForApp_hasMalformedPackageName() {
        val intent = Intent().apply {
            data = Uri.parse("package:package.name/10#")
        }

        val destination = getDestinationForApp(DESTINATION, intent)

        assertThat(destination).isNull()
    }

    @Test
    fun getDestinationForApp_noPackageName() {