@@ -129,30 +129,6 @@ class AndroidApplicationXmlElement extends XmlElement {
129129 */
130130class AndroidActivityXmlElement extends AndroidComponentXmlElement {
131131 AndroidActivityXmlElement ( ) { this .getName ( ) = "activity" }
132-
133- // ! Consider moving this to its own .qll file under `security` like for Implicit Export Query.
134- // ! Double-check that the below actions and categories are REQUIRED for it to
135- // ! count as a deep link versus just recommended (e.g. should I just look at the
136- // ! data element instead?).
137- // ! Reference: https://developer.android.com/training/app-links/deep-linking#adding-filters
138- // ! Note: not excluding App Links since those are a subset of deep links that can still cause issues.
139- /**
140- * Holds if this `<activity>` element has a deep link.
141- */
142- predicate hasDeepLink ( ) {
143- //exists(this.getAnIntentFilterElement()) and // has an intent filter - below all show that it has an intent-filter, duplicates work
144- this .getAnIntentFilterElement ( ) .getAnActionElement ( ) .getActionName ( ) =
145- "android.intent.action.VIEW" and
146- this .getAnIntentFilterElement ( ) .getACategoryElement ( ) .getCategoryName ( ) =
147- "android.intent.category.BROWSABLE" and
148- this .getAnIntentFilterElement ( ) .getACategoryElement ( ) .getCategoryName ( ) =
149- "android.intent.category.DEFAULT" and
150- //this.getAnIntentFilterElement().getAChild("data").hasAttribute("scheme") // use below instead for 'android' prefix
151- exists ( AndroidXmlAttribute attr |
152- this .getAnIntentFilterElement ( ) .getAChild ( "data" ) .getAnAttribute ( ) = attr and
153- attr .getName ( ) = "scheme"
154- )
155- }
156132}
157133
158134/**
0 commit comments