@@ -67,14 +67,6 @@ private class WebViewRef extends Element {
6767 }
6868}
6969
70- private Expr getUnderlyingExpr ( Expr e ) {
71- if e instanceof CastExpr or e instanceof UnaryExpr
72- then
73- result = getUnderlyingExpr ( e .( CastExpr ) .getExpr ( ) ) or
74- result = getUnderlyingExpr ( e .( UnaryExpr ) .getExpr ( ) )
75- else result = e
76- }
77-
7870/**
7971 * Holds if a `WebViewLoadUrlMethod` is called on `webview`
8072 * with `urlArg` as its first argument.
@@ -84,19 +76,15 @@ private predicate webViewLoadUrl(Argument urlArg, DataFlow::Node webview) {
8476 loadUrl .getArgument ( 0 ) = urlArg and
8577 loadUrl .getMethod ( ) instanceof WebViewLoadUrlMethod
8678 |
87- webview = DataFlow:: exprNode ( getUnderlyingExpr ( loadUrl .getQualifier ( ) ) )
88- or
8979 webview = DataFlow:: getInstanceArgument ( loadUrl )
9080 or
9181 // `webview` is received as a parameter of an event method in a custom `WebViewClient`,
9282 // so we need to find WebViews that use that specific `WebViewClient`.
9383 exists ( WebViewClientEventMethod eventMethod , MethodAccess setWebClient |
9484 setWebClient .getMethod ( ) instanceof WebViewSetWebViewClientMethod and
9585 setWebClient .getArgument ( 0 ) .getType ( ) = eventMethod .getDeclaringType ( ) and
96- getUnderlyingExpr ( loadUrl .getQualifier ( ) ) = eventMethod .getWebViewParameter ( ) .getAnAccess ( )
86+ loadUrl .getQualifier ( ) = eventMethod .getWebViewParameter ( ) .getAnAccess ( )
9787 |
98- webview = DataFlow:: exprNode ( getUnderlyingExpr ( setWebClient .getQualifier ( ) ) )
99- or
10088 webview = DataFlow:: getInstanceArgument ( setWebClient )
10189 )
10290 )
0 commit comments