diff --git a/ios/brave-ios/Sources/Brave/Frontend/Browser/BrowserViewController/BVC+WKNavigationDelegate.swift b/ios/brave-ios/Sources/Brave/Frontend/Browser/BrowserViewController/BVC+WKNavigationDelegate.swift index 8a3b4b2cde89..6230fa918361 100644 --- a/ios/brave-ios/Sources/Brave/Frontend/Browser/BrowserViewController/BVC+WKNavigationDelegate.swift +++ b/ios/brave-ios/Sources/Brave/Frontend/Browser/BrowserViewController/BVC+WKNavigationDelegate.swift @@ -755,10 +755,6 @@ extension BrowserViewController: WKNavigationDelegate { return .download } - if canShowInWebView { - return .allow - } - // Check if this response should be handed off to Passbook. if shouldDownloadNavigationResponse { shouldDownloadNavigationResponse = false @@ -768,6 +764,26 @@ extension BrowserViewController: WKNavigationDelegate { } } + // If the content type is not HTML, create a temporary document so it can be downloaded and + // shared to external applications later. Otherwise, clear the old temporary document. + if let tab = tab, navigationResponse.isForMainFrame { + if response.mimeType?.isKindOfHTML == false, let request = request { + tab.temporaryDocument = TemporaryDocument( + preflightResponse: response, + request: request, + tab: tab + ) + } else { + tab.temporaryDocument = nil + } + + tab.mimeType = response.mimeType + } + + if canShowInWebView { + return .allow + } + // Check if this response should be downloaded. let cookieStore = webView.configuration.websiteDataStore.httpCookieStore if let downloadHelper = DownloadHelper( @@ -795,22 +811,6 @@ extension BrowserViewController: WKNavigationDelegate { return .cancel } - // If the content type is not HTML, create a temporary document so it can be downloaded and - // shared to external applications later. Otherwise, clear the old temporary document. - if let tab = tab, navigationResponse.isForMainFrame { - if response.mimeType?.isKindOfHTML == false, let request = request { - tab.temporaryDocument = TemporaryDocument( - preflightResponse: response, - request: request, - tab: tab - ) - } else { - tab.temporaryDocument = nil - } - - tab.mimeType = response.mimeType - } - // If none of our helpers are responsible for handling this response, // just let the webview handle it as normal. return .download