Skip to content

Commit 05b1f7c

Browse files
committed
Refine postMessage fallback
1 parent 9fb3011 commit 05b1f7c

File tree

2 files changed

+20
-6
lines changed

2 files changed

+20
-6
lines changed
Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -16,23 +16,23 @@
1616

1717
package com.duckduckgo.contentscopescripts.impl
1818

19-
import com.duckduckgo.contentscopescripts.api.AdsjsContentScopeJsMessageHandlersPlugin
19+
import com.duckduckgo.contentscopescripts.api.WebCompatContentScopeJsMessageHandlersPlugin
2020
import com.duckduckgo.di.scopes.ActivityScope
21-
import com.duckduckgo.js.messaging.api.AdsjsJsMessageCallback
22-
import com.duckduckgo.js.messaging.api.AdsjsMessageHandler
2321
import com.duckduckgo.js.messaging.api.JsMessage
22+
import com.duckduckgo.js.messaging.api.WebCompatMessageHandler
23+
import com.duckduckgo.js.messaging.api.WebViewCompatMessageCallback
2424
import com.squareup.anvil.annotations.ContributesMultibinding
2525
import javax.inject.Inject
2626
import org.json.JSONObject
2727

2828
@ContributesMultibinding(ActivityScope::class)
29-
class AdsjsMessagingContentScopeJsMessageHandler @Inject constructor() : AdsjsContentScopeJsMessageHandlersPlugin {
29+
class WebViewCompatMessagingContentScopeJsMessageHandler @Inject constructor() : WebCompatContentScopeJsMessageHandlersPlugin {
3030

31-
override fun getJsMessageHandler(): AdsjsMessageHandler = object : AdsjsMessageHandler {
31+
override fun getJsMessageHandler(): WebCompatMessageHandler = object : WebCompatMessageHandler {
3232

3333
override fun process(
3434
jsMessage: JsMessage,
35-
jsMessageCallback: AdsjsJsMessageCallback?,
35+
jsMessageCallback: WebViewCompatMessageCallback?,
3636
onResponse: (JSONObject) -> Unit,
3737
) {
3838
jsMessageCallback?.process(featureName, jsMessage.method, jsMessage.id, jsMessage.params, onResponse)

content-scope-scripts/content-scope-scripts-impl/src/main/java/com/duckduckgo/contentscopescripts/impl/messaging/WebCompatMessagingPlugin.kt

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ import com.duckduckgo.contentscopescripts.api.GlobalContentScopeJsMessageHandler
2626
import com.duckduckgo.contentscopescripts.api.WebCompatContentScopeJsMessageHandlersPlugin
2727
import com.duckduckgo.contentscopescripts.api.WebMessagingPlugin
2828
import com.duckduckgo.contentscopescripts.impl.AdsJsContentScopeScripts
29+
import com.duckduckgo.contentscopescripts.impl.ContentScopeScriptsFeature
2930
import com.duckduckgo.di.scopes.ActivityScope
3031
import com.duckduckgo.js.messaging.api.WebViewCompatMessageCallback
3132
import com.duckduckgo.js.messaging.api.JsCallbackData
@@ -36,6 +37,7 @@ import com.squareup.anvil.annotations.ContributesBinding
3637
import com.squareup.moshi.Moshi
3738
import javax.inject.Inject
3839
import javax.inject.Named
40+
import kotlinx.coroutines.runBlocking
3941
import kotlinx.coroutines.withContext
4042
import logcat.LogPriority.ERROR
4143
import logcat.asLog
@@ -51,6 +53,7 @@ class WebCompatMessagingPlugin @Inject constructor(
5153
private val globalHandlers: PluginPoint<GlobalContentScopeJsMessageHandlersPlugin>,
5254
private val adsJsContentScopeScripts: AdsJsContentScopeScripts,
5355
private val dispatcherProvider: DispatcherProvider,
56+
private val contentScopeScriptsFeature: ContentScopeScriptsFeature,
5457
) : WebMessagingPlugin {
5558

5659
private val moshi = Moshi.Builder().add(JSONObjectAdapter()).build()
@@ -74,6 +77,7 @@ class WebCompatMessagingPlugin @Inject constructor(
7477
if (context == jsMessage.context) {
7578
// Setup reply proxy so we can send subscription events
7679
if (jsMessage.featureName == "messaging" || jsMessage.method == "initialPing") {
80+
logcat("Cris") { "initialPing" }
7781
globalReplyProxy = replyProxy
7882
}
7983

@@ -155,6 +159,16 @@ class WebCompatMessagingPlugin @Inject constructor(
155159
@SuppressLint("RequiresFeature")
156160
override fun postMessage(subscriptionEventData: SubscriptionEventData): Boolean {
157161
return runCatching {
162+
163+
//TODO (cbarreiro) temporary, remove
164+
val newWebCompatApisEnabled = runBlocking {
165+
contentScopeScriptsFeature.useNewWebCompatApis().isEnabled()
166+
}
167+
168+
if (!newWebCompatApisEnabled) {
169+
return false
170+
}
171+
158172
val subscriptionEvent = SubscriptionEvent(
159173
context = context,
160174
featureName = subscriptionEventData.featureName,

0 commit comments

Comments
 (0)