@@ -73,6 +73,9 @@ class RealWebViewCompatTestHelper @Inject constructor(
7373 val replyToInitialPing : Boolean ,
7474 val jsSendsInitialPing : Boolean ,
7575 val jsRepliesToNativeMessages : Boolean ,
76+ val sendMessageOnPageStarted : Boolean ,
77+ val sendMessageOnContextMenuOpen : Boolean ,
78+ val sendMessagesUsingReplyProxy : Boolean ,
7679 )
7780
7881 private var cachedConfig: WebViewCompatConfig ? = null
@@ -89,6 +92,9 @@ class RealWebViewCompatTestHelper @Inject constructor(
8992 replyToInitialPing = webViewCompatFeature.replyToInitialPing().isEnabled(),
9093 jsSendsInitialPing = webViewCompatFeature.jsSendsInitialPing().isEnabled(),
9194 jsRepliesToNativeMessages = webViewCompatFeature.jsRepliesToNativeMessages().isEnabled(),
95+ sendMessageOnPageStarted = webViewCompatFeature.sendMessageOnPageStarted().isEnabled(),
96+ sendMessageOnContextMenuOpen = webViewCompatFeature.sendMessageOnContextMenuOpen().isEnabled(),
97+ sendMessagesUsingReplyProxy = webViewCompatFeature.sendMessagesUsingReplyProxy().isEnabled(),
9298 ).also {
9399 cachedConfig = it
94100 }
@@ -161,16 +167,11 @@ class RealWebViewCompatTestHelper @Inject constructor(
161167 @SuppressLint(" PostMessageUsage" , " RequiresFeature" )
162168 override suspend fun onPageStarted (webView : DuckDuckGoWebView ? ) {
163169 withContext(dispatchers.main()) {
164- val flags = withContext(dispatchers.io()) {
165- object {
166- val sendMessageOnPageStarted = webViewCompatFeature.sendMessageOnPageStarted().isEnabled()
167- val sendMessagesUsingReplyProxy = webViewCompatFeature.sendMessagesUsingReplyProxy().isEnabled()
168- }
169- }
170+ val config = getWebViewCompatConfig()
170171
171- if (! flags .sendMessageOnPageStarted) return @withContext
172+ if (! config .sendMessageOnPageStarted) return @withContext
172173
173- if (flags .sendMessagesUsingReplyProxy) {
174+ if (config .sendMessagesUsingReplyProxy) {
174175 postMessage(" PageStarted" )
175176 } else {
176177 webView?.url?.let {
@@ -187,16 +188,11 @@ class RealWebViewCompatTestHelper @Inject constructor(
187188 @SuppressLint(" RequiresFeature" )
188189 override suspend fun onBrowserMenuButtonPressed (webView : DuckDuckGoWebView ? ) {
189190 withContext(dispatchers.main()) {
190- val flags = withContext(dispatchers.io()) {
191- object {
192- val sendMessageOnContextMenuOpen = webViewCompatFeature.sendMessageOnContextMenuOpen().isEnabled()
193- val sendMessagesUsingReplyProxy = webViewCompatFeature.sendMessagesUsingReplyProxy().isEnabled()
194- }
195- }
191+ val config = getWebViewCompatConfig()
196192
197- if (! flags .sendMessageOnContextMenuOpen) return @withContext
193+ if (! config .sendMessageOnContextMenuOpen) return @withContext
198194
199- if (flags .sendMessagesUsingReplyProxy) {
195+ if (config .sendMessagesUsingReplyProxy) {
200196 postMessage(" ContextMenuOpened" )
201197 } else {
202198 webView?.url?.let {
0 commit comments