Skip to content

Commit 7d2013c

Browse files
committed
Rename dedicatedMessageListener to useBlobDownloadsMessageListener and flip behavior
1 parent dcbcb3a commit 7d2013c

File tree

3 files changed

+22
-24
lines changed

3 files changed

+22
-24
lines changed

app/src/main/java/com/duckduckgo/app/browser/BrowserTabFragment.kt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3385,9 +3385,9 @@ class BrowserTabFragment :
33853385
private fun configureWebViewForBlobDownload(webView: DuckDuckGoWebView) {
33863386
lifecycleScope.launch(dispatchers.main()) {
33873387
if (isBlobDownloadWebViewFeatureEnabled(webView)) {
3388-
val useDedicatedWebViewCompatMessageListener = webViewCompatTestHelper.useDedicatedWebMessageListener()
3388+
val webViewCompatUsesBlobDownloadsMessageListener = webViewCompatTestHelper.useBlobDownloadsMessageListener()
33893389

3390-
val script = if (useDedicatedWebViewCompatMessageListener) {
3390+
val script = if (!webViewCompatUsesBlobDownloadsMessageListener) {
33913391
blobDownloadScript()
33923392
} else {
33933393
blobDownloadScriptForWebViewCompatTest()
@@ -3416,7 +3416,7 @@ class BrowserTabFragment :
34163416
.md5()
34173417
.toString()
34183418
viewModel.saveReplyProxyForBlobDownload(sourceOrigin.toString(), replyProxy, locationRef)
3419-
} else if (!useDedicatedWebViewCompatMessageListener && message.data?.startsWith("webViewCompat") == true) {
3419+
} else if (webViewCompatUsesBlobDownloadsMessageListener && message.data?.startsWith("webViewCompat") == true) {
34203420
lifecycleScope.launch {
34213421
webViewCompatTestHelper.handleWebViewCompatMessage(
34223422
message = message,

app/src/main/java/com/duckduckgo/app/browser/WebViewCompatTestHelper.kt

Lines changed: 18 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -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")
@@ -131,7 +130,7 @@ class RealWebViewCompatTestHelper @Inject constructor(
131130
@SuppressLint("PostMessageUsage", "RequiresFeature")
132131
private suspend fun postMessage(string: String) {
133132
withContext(dispatchers.main()) {
134-
proxy?.postMessage("PageStarted")
133+
proxy?.postMessage(string)
135134
}
136135
}
137136

@@ -142,22 +141,21 @@ class RealWebViewCompatTestHelper @Inject constructor(
142141
) {
143142
withContext(dispatchers.io()) {
144143
if (message.data?.startsWith("webViewCompat Ping:") != true) return@withContext
145-
getWebViewCompatConfig()?.let { cfg ->
146-
proxy = replyProxy
147-
if (cfg.replyToInitialPing) {
148-
cfg.settings?.initialPingDelay?.takeIf { it > 0 }?.let {
149-
delay(it)
150-
}
151-
withContext(dispatchers.main()) {
152-
replyProxy.postMessage("Pong from Native")
153-
}
144+
val cfg = getWebViewCompatConfig()
145+
proxy = replyProxy
146+
if (cfg.replyToInitialPing) {
147+
cfg.settings?.initialPingDelay?.takeIf { it > 0 }?.let {
148+
delay(it)
149+
}
150+
withContext(dispatchers.main()) {
151+
replyProxy.postMessage("Pong from Native")
154152
}
155153
}
156154
}
157155
}
158156

159-
override suspend fun useDedicatedWebMessageListener(): Boolean {
160-
return withContext(dispatchers.io()) { getWebViewCompatConfig()?.dedicatedMessageListener ?: true }
157+
override suspend fun useBlobDownloadsMessageListener(): Boolean {
158+
return withContext(dispatchers.io()) { getWebViewCompatConfig().useBlobDownloadsMessageListener }
161159
}
162160

163161
@SuppressLint("PostMessageUsage", "RequiresFeature")

app/src/main/java/com/duckduckgo/app/browser/webview/WebViewCompatFeature.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ interface WebViewCompatFeature {
4040
fun replyToInitialPing(): Toggle
4141

4242
@Toggle.DefaultValue(DefaultFeatureValue.FALSE)
43-
fun dedicatedMessageListener(): Toggle
43+
fun useBlobDownloadsMessageListener(): Toggle
4444

4545
@Toggle.DefaultValue(DefaultFeatureValue.FALSE)
4646
fun sendMessageOnContextMenuOpen(): Toggle

0 commit comments

Comments
 (0)