@@ -182,8 +182,6 @@ import com.duckduckgo.app.browser.webshare.WebShareChooser
182182import com.duckduckgo.app.browser.webshare.WebViewCompatWebShareChooser
183183import com.duckduckgo.app.browser.webview.WebContentDebugging
184184import com.duckduckgo.app.browser.webview.WebViewBlobDownloadFeature
185- import com.duckduckgo.app.browser.webview.WebViewCompatFeature
186- import com.duckduckgo.app.browser.webview.WebViewCompatFeatureSettings
187185import com.duckduckgo.app.browser.webview.safewebview.SafeWebViewFeature
188186import com.duckduckgo.app.cta.ui.BrokenSitePromptDialogCta
189187import com.duckduckgo.app.cta.ui.Cta
@@ -331,7 +329,7 @@ import com.duckduckgo.savedsites.api.models.SavedSitesNames
331329import com.duckduckgo.savedsites.impl.bookmarks.BookmarksBottomSheetDialog
332330import com.duckduckgo.savedsites.impl.bookmarks.FaviconPromptSheet
333331import com.duckduckgo.savedsites.impl.dialogs.EditSavedSiteDialogFragment
334- import com.duckduckgo.serp.logos.api.SerpLogoScreens.*
332+ import com.duckduckgo.serp.logos.api.SerpLogoScreens.EasterEggLogoScreen
335333import com.duckduckgo.serp.logos.api.SerpLogos
336334import com.duckduckgo.site.permissions.api.SitePermissionsDialogLauncher
337335import com.duckduckgo.site.permissions.api.SitePermissionsGrantedListener
@@ -345,8 +343,6 @@ import com.google.android.material.bottomsheet.BottomSheetBehavior
345343import com.google.android.material.bottomsheet.BottomSheetDialogFragment
346344import com.google.android.material.snackbar.BaseTransientBottomBar
347345import com.google.android.material.snackbar.Snackbar
348- import com.squareup.moshi.Moshi
349- import com.squareup.moshi.kotlin.reflect.KotlinJsonAdapterFactory
350346import kotlinx.coroutines.CoroutineScope
351347import kotlinx.coroutines.Job
352348import kotlinx.coroutines.SupervisorJob
@@ -604,7 +600,7 @@ class BrowserTabFragment :
604600 lateinit var omnibarFeatureRepository: OmnibarFeatureRepository
605601
606602 @Inject
607- lateinit var webViewCompatFeature : WebViewCompatFeature
603+ lateinit var webViewCompatTestHelper : WebViewCompatTestHelper
608604
609605 /* *
610606 * We use this to monitor whether the user was seeing the in-context Email Protection signup prompt
@@ -3253,7 +3249,9 @@ class BrowserTabFragment :
32533249 onInContextEmailProtectionSignupPromptShown = { showNativeInContextEmailProtectionSignupPrompt() },
32543250 )
32553251 configureWebViewForBlobDownload(it)
3256- configureWebViewForWebViewCompatTest(it)
3252+ lifecycleScope.launch {
3253+ webViewCompatTestHelper.configureWebViewForWebViewCompatTest(it)
3254+ }
32573255 configureWebViewForAutofill(it)
32583256 printInjector.addJsInterface(it) { viewModel.printFromWebView() }
32593257 autoconsent.addJsInterface(it, autoconsentCallback)
@@ -3376,32 +3374,6 @@ class BrowserTabFragment :
33763374 daxDialogIntroBubble.root.gone()
33773375 }
33783376
3379- private var proxy: JavaScriptReplyProxy ? = null
3380-
3381- private val delay = " \$ DELAY$"
3382- private val postInitialPing = " \$ POST_INITIAL_PING$"
3383- private val replyToNativeMessages = " \$ REPLY_TO_NATIVE_MESSAGES$"
3384-
3385- private fun configureWebViewForWebViewCompatTest (webView : DuckDuckGoWebView ) {
3386- lifecycleScope.launch(dispatchers.main()) {
3387- val script = withContext(dispatchers.io()) {
3388- if (! webViewCompatFeature.self().isEnabled()) return @withContext null
3389-
3390- val moshi = Moshi .Builder ().add(KotlinJsonAdapterFactory ()).build()
3391- val adapter = moshi.adapter(WebViewCompatFeatureSettings ::class .java)
3392- val webViewCompatSettings = webViewCompatFeature.self().getSettings()?.let {
3393- adapter.fromJson(it)
3394- }
3395- context?.resources?.openRawResource(R .raw.webviewcompat_test_script)?.bufferedReader().use { it?.readText() }.orEmpty()
3396- .replace(delay, webViewCompatSettings?.jsInitialPingDelay?.toString() ? : " 0" )
3397- .replace(postInitialPing, webViewCompatFeature.jsSendsInitialPing().isEnabled().toString())
3398- .replace(replyToNativeMessages, webViewCompatFeature.jsRepliesToNativeMessages().isEnabled().toString())
3399- } ? : return @launch
3400-
3401- webViewCompatWrapper.addDocumentStartJavaScript(webView, script, setOf (" *" ))
3402- }
3403- }
3404-
34053377 @SuppressLint(" AddDocumentStartJavaScriptUsage" )
34063378 private fun configureWebViewForBlobDownload (webView : DuckDuckGoWebView ) {
34073379 lifecycleScope.launch(dispatchers.main()) {
0 commit comments