|
|
|
@ -4,6 +4,11 @@ const accountAssetKeys = ['avatar', 'avatar_static', 'header', 'header_static']; |
|
|
|
|
const storageMargin = 8388608; |
|
|
|
|
const storeLimit = 1024; |
|
|
|
|
|
|
|
|
|
// navigator.storage is not present on:
|
|
|
|
|
// Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.100 Safari/537.36 Edge/16.16299
|
|
|
|
|
// estimate method is not present on Chrome 57.0.2987.98 on Linux.
|
|
|
|
|
export const storageFreeable = 'storage' in navigator && 'estimate' in navigator.storage; |
|
|
|
|
|
|
|
|
|
function openCache() { |
|
|
|
|
// ServiceWorker and Cache API is not available on iOS 11
|
|
|
|
|
// https://webkit.org/status/#specification-service-workers
|
|
|
|
@ -182,10 +187,7 @@ export function putStatuses(records) { |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
export function freeStorage() { |
|
|
|
|
// navigator.storage is not present on:
|
|
|
|
|
// Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.100 Safari/537.36 Edge/16.16299
|
|
|
|
|
// estimate method is not present on Chrome 57.0.2987.98 on Linux.
|
|
|
|
|
return 'storage' in navigator && 'estimate' in navigator.storage && navigator.storage.estimate().then(({ quota, usage }) => { |
|
|
|
|
return storageFreeable && navigator.storage.estimate().then(({ quota, usage }) => { |
|
|
|
|
if (usage + storageMargin < quota) { |
|
|
|
|
return null; |
|
|
|
|
} |
|
|
|
|