diff --git a/app/src/main/java/com/duckduckgo/app/browser/BrowserTabFragment.kt b/app/src/main/java/com/duckduckgo/app/browser/BrowserTabFragment.kt index 515277405d6b..245ebbf8ece7 100644 --- a/app/src/main/java/com/duckduckgo/app/browser/BrowserTabFragment.kt +++ b/app/src/main/java/com/duckduckgo/app/browser/BrowserTabFragment.kt @@ -353,15 +353,9 @@ class BrowserTabFragment : Fragment(), FindListener, CoroutineScope, DaxDialogLi override fun onPause() { logoHidingListener.onPause() - dismissDownloadFragment() super.onPause() } - private fun dismissDownloadFragment() { - val fragment = fragmentManager?.findFragmentByTag(DOWNLOAD_CONFIRMATION_TAG) as? DownloadConfirmationFragment - fragment?.dismiss() - } - private fun createPopupMenu() { popupMenu = BrowserPopupMenu(layoutInflater) val view = popupMenu.contentView @@ -841,6 +835,14 @@ class BrowserTabFragment : Fragment(), FindListener, CoroutineScope, DaxDialogLi } it.setDownloadListener { url, _, contentDisposition, mimeType, _ -> + //handling target=_blank if link points to a file + if (viewModel.url == null) { //in an empty tab + launch { + viewModel.closeCurrentTab() + destroyWebView() + } + } + requestFileDownload(url, contentDisposition, mimeType, true) } diff --git a/app/src/main/java/com/duckduckgo/app/browser/DownloadConfirmationFragment.kt b/app/src/main/java/com/duckduckgo/app/browser/DownloadConfirmationFragment.kt index ccec131898f1..c8e4e81ab771 100644 --- a/app/src/main/java/com/duckduckgo/app/browser/DownloadConfirmationFragment.kt +++ b/app/src/main/java/com/duckduckgo/app/browser/DownloadConfirmationFragment.kt @@ -66,6 +66,11 @@ class DownloadConfirmationFragment : BottomSheetDialogFragment() { return view } + override fun onPause() { + dismiss() + super.onPause() + } + private fun setupDownload() { file = if (!pendingDownload.isDataUrl) File(pendingDownload.directory, pendingDownload.guessFileName()) else null }