UNPKG

1.05 kBJavaScriptView Raw
1// Edge 15.x does not fire 'progress' events on uploads.
2// See https://github.com/transloadit/uppy/issues/945
3// And https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/12224510/
4module.exports = function supportsUploadProgress (userAgent) {
5 // Allow passing in userAgent for tests
6 if (userAgent == null) {
7 userAgent = typeof navigator !== 'undefined' ? navigator.userAgent : null
8 }
9 // Assume it works because basically everything supports progress events.
10 if (!userAgent) return true
11
12 const m = /Edge\/(\d+\.\d+)/.exec(userAgent)
13 if (!m) return true
14
15 const edgeVersion = m[1]
16 let [major, minor] = edgeVersion.split('.')
17 major = parseInt(major, 10)
18 minor = parseInt(minor, 10)
19
20 // Worked before:
21 // Edge 40.15063.0.0
22 // Microsoft EdgeHTML 15.15063
23 if (major < 15 || (major === 15 && minor < 15063)) {
24 return true
25 }
26
27 // Fixed in:
28 // Microsoft EdgeHTML 18.18218
29 if (major > 18 || (major === 18 && minor >= 18218)) {
30 return true
31 }
32
33 // other versions don't work.
34 return false
35}