This repository was archived by the owner on Feb 24, 2025. It is now read-only.
File tree 1 file changed +8
-1
lines changed
1 file changed +8
-1
lines changed Original file line number Diff line number Diff line change @@ -1325,6 +1325,7 @@ extension TabViewController: WKNavigationDelegate {
1325
1325
1326
1326
let mimeType = MIMEType ( from: navigationResponse. response. mimeType, fileExtension: navigationResponse. response. url? . pathExtension)
1327
1327
let urlSchemeType = navigationResponse. response. url. map { SchemeHandler . schemeType ( for: $0) } ?? . unknown
1328
+ let urlNavigationalScheme = navigationResponse. response. url? . scheme. map { URL . NavigationalScheme ( rawValue: $0) }
1328
1329
1329
1330
let httpResponse = navigationResponse. response as? HTTPURLResponse
1330
1331
let isSuccessfulResponse = httpResponse? . isSuccessfulResponse ?? false
@@ -1355,7 +1356,13 @@ extension TabViewController: WKNavigationDelegate {
1355
1356
withAdditionalParameters: [ PixelParameters . canAutoPreviewMIMEType: " 1 " ] )
1356
1357
} else if shouldTriggerDownloadAction ( for: navigationResponse) ,
1357
1358
let downloadMetadata = AppDependencyProvider . shared. downloadManager. downloadMetaData ( for: navigationResponse. response) {
1358
- // 3. We know the response should trigger the file download prompt
1359
+ // 3a. We know it is a download, but allow WebKit handle the "data" scheme natively
1360
+ if urlNavigationalScheme == . data {
1361
+ decisionHandler ( . download)
1362
+ return
1363
+ }
1364
+
1365
+ // 3b. We know the response should trigger the file download prompt
1359
1366
self . presentSaveToDownloadsAlert ( with: downloadMetadata) {
1360
1367
self . startDownload ( with: navigationResponse, decisionHandler: decisionHandler)
1361
1368
} cancelHandler: {
You can’t perform that action at this time.
0 commit comments