@@ -67,14 +67,6 @@ private class WebViewRef extends Element {
67
67
}
68
68
}
69
69
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
-
78
70
/**
79
71
* Holds if a `WebViewLoadUrlMethod` is called on `webview`
80
72
* with `urlArg` as its first argument.
@@ -84,19 +76,15 @@ private predicate webViewLoadUrl(Argument urlArg, DataFlow::Node webview) {
84
76
loadUrl .getArgument ( 0 ) = urlArg and
85
77
loadUrl .getMethod ( ) instanceof WebViewLoadUrlMethod
86
78
|
87
- webview = DataFlow:: exprNode ( getUnderlyingExpr ( loadUrl .getQualifier ( ) ) )
88
- or
89
79
webview = DataFlow:: getInstanceArgument ( loadUrl )
90
80
or
91
81
// `webview` is received as a parameter of an event method in a custom `WebViewClient`,
92
82
// so we need to find WebViews that use that specific `WebViewClient`.
93
83
exists ( WebViewClientEventMethod eventMethod , MethodAccess setWebClient |
94
84
setWebClient .getMethod ( ) instanceof WebViewSetWebViewClientMethod and
95
85
setWebClient .getArgument ( 0 ) .getType ( ) = eventMethod .getDeclaringType ( ) and
96
- getUnderlyingExpr ( loadUrl .getQualifier ( ) ) = eventMethod .getWebViewParameter ( ) .getAnAccess ( )
86
+ loadUrl .getQualifier ( ) = eventMethod .getWebViewParameter ( ) .getAnAccess ( )
97
87
|
98
- webview = DataFlow:: exprNode ( getUnderlyingExpr ( setWebClient .getQualifier ( ) ) )
99
- or
100
88
webview = DataFlow:: getInstanceArgument ( setWebClient )
101
89
)
102
90
)
0 commit comments