@@ -48,7 +48,7 @@ interface WebViewCompatTestHelper {
4848 replyProxy : JavaScriptReplyProxy ,
4949 )
5050
51- suspend fun useDedicatedWebMessageListener (): Boolean
51+ suspend fun useBlobDownloadsMessageListener (): Boolean
5252
5353 suspend fun onPageStarted (webView : DuckDuckGoWebView ? )
5454 suspend fun onBrowserMenuButtonPressed (webView : DuckDuckGoWebView ? )
@@ -69,25 +69,23 @@ class RealWebViewCompatTestHelper @Inject constructor(
6969
7070 data class WebViewCompatConfig (
7171 val settings : WebViewCompatFeatureSettings ? ,
72- val dedicatedMessageListener : Boolean ,
72+ val useBlobDownloadsMessageListener : Boolean ,
7373 val replyToInitialPing : Boolean ,
7474 val jsSendsInitialPing : Boolean ,
7575 val jsRepliesToNativeMessages : Boolean ,
7676 )
7777
7878 private var cachedConfig: WebViewCompatConfig ? = null
7979
80- private suspend fun getWebViewCompatConfig (): WebViewCompatConfig ? {
80+ private suspend fun getWebViewCompatConfig (): WebViewCompatConfig {
8181 cachedConfig?.let { return it }
8282
8383 return withContext(dispatchers.io()) {
84- if (! webViewCompatFeature.self().isEnabled()) return @withContext null
85-
8684 WebViewCompatConfig (
8785 settings = webViewCompatFeature.self().getSettings()?.let {
8886 adapter.fromJson(it)
8987 },
90- dedicatedMessageListener = webViewCompatFeature.dedicatedMessageListener ().isEnabled(),
88+ useBlobDownloadsMessageListener = webViewCompatFeature.useBlobDownloadsMessageListener ().isEnabled(),
9189 replyToInitialPing = webViewCompatFeature.replyToInitialPing().isEnabled(),
9290 jsSendsInitialPing = webViewCompatFeature.jsSendsInitialPing().isEnabled(),
9391 jsRepliesToNativeMessages = webViewCompatFeature.jsRepliesToNativeMessages().isEnabled(),
@@ -98,11 +96,12 @@ class RealWebViewCompatTestHelper @Inject constructor(
9896 }
9997
10098 override suspend fun configureWebViewForWebViewCompatTest (webView : DuckDuckGoWebView , isBlobDownloadWebViewFeatureEnabled : Boolean ) {
101- val config = getWebViewCompatConfig() ? : return
99+ val config = getWebViewCompatConfig()
102100
103- val useDedicatedListener = config.dedicatedMessageListener || ! isBlobDownloadWebViewFeatureEnabled
101+ val useDedicatedListener = ! config.useBlobDownloadsMessageListener || ! isBlobDownloadWebViewFeatureEnabled
104102
105103 val script = withContext(dispatchers.io()) {
104+ if (! webViewCompatFeature.self().isEnabled()) return @withContext null
106105 webView.context.resources?.openRawResource(R .raw.webviewcompat_test_script)
107106 ?.bufferedReader().use { it?.readText() }
108107 ?.replace(delay, config.settings?.jsInitialPingDelay?.toString() ? : " 0" )
@@ -156,8 +155,8 @@ class RealWebViewCompatTestHelper @Inject constructor(
156155 }
157156 }
158157
159- override suspend fun useDedicatedWebMessageListener (): Boolean {
160- return withContext(dispatchers.io()) { getWebViewCompatConfig()?.dedicatedMessageListener ? : true }
158+ override suspend fun useBlobDownloadsMessageListener (): Boolean {
159+ return withContext(dispatchers.io()) { getWebViewCompatConfig().useBlobDownloadsMessageListener }
161160 }
162161
163162 @SuppressLint(" PostMessageUsage" , " RequiresFeature" )
0 commit comments