Slide 23
Slide 23 text
Block web trackers
class BrowserWebViewClient() : WebViewClient() {
override fun shouldInterceptRequest(
webView: WebView,
request: WebResourceRequest
)
:
WebResourceResponse? {
private fun blockRequest(
trackingEvent: TrackingEvent,
request: WebResourceRequest,
webViewClientListener: WebViewClientListener?
)
:
WebResourceResponse {
trackingEvent.surrogateId
?.
let { surrogateId
->
val surrogate = resourceSurrogates.get(surrogateId)
if (surrogate.responseAvailable) {
Timber.d("Surrogate found for ${request.url}")
webViewClientListener
?.
surrogateDetected(surrogate)
return WebResourceResponse(surrogate.mimeType, "UTF-8", surrogate.jsFunction.byteInputStream())
}
}
Timber.d("Blocking request ${request.url}")
privacyProtectionCountDao.incrementBlockedTrackerCount()
return WebResourceResponse(null, null, null)
}