@@ -66,16 +66,18 @@ function click (node) {
66
66
}
67
67
}
68
68
69
- // Detect WebKit inside a native macOS app
70
- var isWebKit = / A p p l e W e b K i t / . test ( navigator . userAgent )
69
+ // Detect WebView inside a native macOS app by ruling out all browsers
70
+ // We just need to check for 'Safari' because all other browsers (besides Firefox) include that too
71
+ // https://www.whatismybrowser.com/guides/the-latest-user-agent/macos
72
+ var isMacOSWebView = / M a c i n t o s h / . test ( navigator . userAgent ) && / A p p l e W e b K i t / . test ( navigator . userAgent ) && ! / S a f a r i / . test ( navigator . userAgent )
71
73
72
74
var saveAs = _global . saveAs || (
73
75
// probably in some web worker
74
76
( typeof window !== 'object' || window !== _global )
75
77
? function saveAs ( ) { /* noop */ }
76
78
77
- // Use download attribute first if possible (#193 Lumia mobile) unless this is a native macOS app
78
- : ( 'download' in HTMLAnchorElement . prototype && ! isWebKit )
79
+ // Use download attribute first if possible (#193 Lumia mobile) unless this is a macOS WebView
80
+ : ( 'download' in HTMLAnchorElement . prototype && ! isMacOSWebView )
79
81
? function saveAs ( blob , name , opts ) {
80
82
var URL = _global . URL || _global . webkitURL
81
83
var a = document . createElement ( 'a' )
@@ -140,7 +142,7 @@ var saveAs = _global.saveAs || (
140
142
var isSafari = / c o n s t r u c t o r / i. test ( _global . HTMLElement ) || _global . safari
141
143
var isChromeIOS = / C r i O S \/ [ \d ] + / . test ( navigator . userAgent )
142
144
143
- if ( ( isChromeIOS || ( force && isSafari ) || isWebKit ) && typeof FileReader !== 'undefined' ) {
145
+ if ( ( isChromeIOS || ( force && isSafari ) || isMacOSWebView ) && typeof FileReader !== 'undefined' ) {
144
146
// Safari doesn't allow downloading of blob URLs
145
147
var reader = new FileReader ( )
146
148
reader . onloadend = function ( ) {
0 commit comments