From a14e5f324df35feeed0cdb22eb34c273544cb651 Mon Sep 17 00:00:00 2001 From: Shane Osbourne Date: Mon, 20 May 2024 12:55:58 +0100 Subject: [PATCH 1/2] fix(duckplayer): prevent valid video links from opening in a new tab --- DuckDuckGo/Tab/TabExtensions/DuckPlayerTabExtension.swift | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/DuckDuckGo/Tab/TabExtensions/DuckPlayerTabExtension.swift b/DuckDuckGo/Tab/TabExtensions/DuckPlayerTabExtension.swift index 30c98f51a7..3b3e5359ae 100644 --- a/DuckDuckGo/Tab/TabExtensions/DuckPlayerTabExtension.swift +++ b/DuckDuckGo/Tab/TabExtensions/DuckPlayerTabExtension.swift @@ -133,11 +133,11 @@ extension DuckPlayerTabExtension: NewWindowPolicyDecisionMaker { func decideNewWindowPolicy(for navigationAction: WKNavigationAction) -> NavigationDecision? { // if a link was clicked inside duckplayer (like a recommendation) - // and has target=_blank - then we want to prevent a new tab - // opening, and just load it inside the current one instead + // and has target=_blank, or a similar target that would cause a new tab, then we want to prevent that new tab + // from opening, and just load it inside the current one instead if navigationAction.targetFrame == nil, navigationAction.safeSourceFrame?.webView?.url?.isDuckPlayer == true, - navigationAction.request.url?.isYoutubeVideoRecommendation == true, + navigationAction.request.url?.isYoutubeVideoRecommendation == true || navigationAction.request.url?.isYoutubeVideo == true, let webView, let url = navigationAction.request.url { webView.load(URLRequest(url: url)) return .cancel From 77f695543b01ca2fc964ae60f8c048b637e8915c Mon Sep 17 00:00:00 2001 From: Shane Osbourne Date: Mon, 20 May 2024 13:08:22 +0100 Subject: [PATCH 2/2] isYoutubeVideoRecommendation is now redundant --- DuckDuckGo/Tab/TabExtensions/DuckPlayerTabExtension.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/DuckDuckGo/Tab/TabExtensions/DuckPlayerTabExtension.swift b/DuckDuckGo/Tab/TabExtensions/DuckPlayerTabExtension.swift index 3b3e5359ae..2d4ff743e7 100644 --- a/DuckDuckGo/Tab/TabExtensions/DuckPlayerTabExtension.swift +++ b/DuckDuckGo/Tab/TabExtensions/DuckPlayerTabExtension.swift @@ -137,7 +137,7 @@ extension DuckPlayerTabExtension: NewWindowPolicyDecisionMaker { // from opening, and just load it inside the current one instead if navigationAction.targetFrame == nil, navigationAction.safeSourceFrame?.webView?.url?.isDuckPlayer == true, - navigationAction.request.url?.isYoutubeVideoRecommendation == true || navigationAction.request.url?.isYoutubeVideo == true, + navigationAction.request.url?.isYoutubeVideo == true, let webView, let url = navigationAction.request.url { webView.load(URLRequest(url: url)) return .cancel