Skip to content

Commit 5f11d81

Browse files
committed
Merge branch 'hotfix/5.218.1'
2 parents f8d452e + fb16f52 commit 5f11d81

File tree

3 files changed

+30
-4
lines changed

3 files changed

+30
-4
lines changed

app/src/androidTest/java/com/duckduckgo/app/browser/BrowserWebViewClientTest.kt

+20
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@ import androidx.test.platform.app.InstrumentationRegistry
4242
import com.duckduckgo.adclick.api.AdClickManager
4343
import com.duckduckgo.anrs.api.CrashLogger
4444
import com.duckduckgo.anrs.api.CrashLogger.Crash
45+
import com.duckduckgo.app.browser.SpecialUrlDetector.UrlType.Web
4546
import com.duckduckgo.app.browser.WebViewErrorResponse.BAD_URL
4647
import com.duckduckgo.app.browser.WebViewErrorResponse.CONNECTION
4748
import com.duckduckgo.app.browser.WebViewErrorResponse.SSL_PROTOCOL_ERROR
@@ -427,6 +428,25 @@ class BrowserWebViewClientTest {
427428
verify(mockWebView).loadUrl("www.youtube.com/watch?v=1234&origin=serp_auto")
428429
}
429430

431+
@Test
432+
fun whenShouldOverrideWithWebThenDoNotAddQueryParam() = runTest {
433+
val urlType = Web("www.youtube.com/watch?v=1234")
434+
whenever(specialUrlDetector.determineType(initiatingUrl = any(), uri = any())).thenReturn(urlType)
435+
whenever(webResourceRequest.isForMainFrame).thenReturn(true)
436+
whenever(webResourceRequest.isRedirect).thenReturn(false)
437+
whenever(webResourceRequest.url).thenReturn("www.youtube.com/watch?v=1234".toUri())
438+
whenever(mockDuckDuckGoUrlDetector.isDuckDuckGoUrl(any())).thenReturn(true)
439+
val mockClientProvider: ClientBrandHintProvider = mock()
440+
whenever(mockClientProvider.shouldChangeBranding(any())).thenReturn(false)
441+
testee.clientProvider = mockClientProvider
442+
doNothing().whenever(listener).willOverrideUrl(any())
443+
val mockWebView = getImmediatelyInvokedMockWebView()
444+
whenever(mockWebView.url).thenReturn("www.duckduckgo.com")
445+
openInNewTabFlow.emit(Off)
446+
447+
assertFalse(testee.shouldOverrideUrlLoading(mockWebView, webResourceRequest))
448+
}
449+
430450
@UiThreadTest
431451
@Test
432452
fun whenAppLinkDetectedAndIsHandledThenReturnTrue() {

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

+9-3
Original file line numberDiff line numberDiff line change
@@ -204,7 +204,13 @@ class BrowserWebViewClient @Inject constructor(
204204
}
205205
return true
206206
} else {
207-
shouldOverrideWebRequest(url, webView, isForMainFrame, openInNewTab = shouldOpenDuckPlayerInNewTab)
207+
shouldOverrideWebRequest(
208+
url,
209+
webView,
210+
isForMainFrame,
211+
openInNewTab = shouldOpenDuckPlayerInNewTab,
212+
willOpenDuckPlayer = true,
213+
)
208214
}
209215
}
210216
is SpecialUrlDetector.UrlType.NonHttpAppLink -> {
@@ -310,6 +316,7 @@ class BrowserWebViewClient @Inject constructor(
310316
webView: WebView,
311317
isForMainFrame: Boolean,
312318
openInNewTab: Boolean = false,
319+
willOpenDuckPlayer: Boolean = false,
313320
): Boolean {
314321
if (requestRewriter.shouldRewriteRequest(url)) {
315322
webViewClientListener?.let { listener ->
@@ -330,9 +337,8 @@ class BrowserWebViewClient @Inject constructor(
330337
loadUrl(listener, webView, url.toString())
331338
}
332339
return true
333-
} else if (webView.url?.let { duckDuckGoUrlDetector.isDuckDuckGoUrl(it) } == true) {
340+
} else if (willOpenDuckPlayer && webView.url?.let { duckDuckGoUrlDetector.isDuckDuckGoUrl(it) } == true) {
334341
val newUrl = url.buildUpon().appendQueryParameter(ORIGIN_QUERY_PARAM, ORIGIN_QUERY_PARAM_SERP_AUTO).build()
335-
336342
if (openInNewTab) {
337343
listener.openLinkInNewTab(newUrl)
338344
} else {

app/version/version.properties

+1-1
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
VERSION=5.218.0
1+
VERSION=5.218.1

0 commit comments

Comments
 (0)