check for null local/session storage

fixes #3156
pull/3262/head
Rigel Kent 2020-11-06 17:42:08 +01:00
parent a5c9fa1051
commit 61379e4311
No known key found for this signature in database
GPG Key ID: 5E53E96A494E452F
1 changed files with 15 additions and 4 deletions

View File

@ -64,10 +64,8 @@ class MemoryStorage {
let peertubeLocalStorage: Storage
let peertubeSessionStorage: Storage
try {
peertubeLocalStorage = localStorage
peertubeSessionStorage = sessionStorage
} catch (err) {
function reinitStorage () {
const instanceLocalStorage = new MemoryStorage()
const instanceSessionStorage = new MemoryStorage()
@ -75,6 +73,19 @@ try {
peertubeSessionStorage = proxify(instanceSessionStorage)
}
try {
peertubeLocalStorage = localStorage
peertubeSessionStorage = sessionStorage
} catch (err) {
// support Firefox and other browsers using an exception rather than null
reinitStorage()
}
// support Brave and other browsers using null rather than an exception
if (peertubeLocalStorage === null || peertubeSessionStorage === null) {
reinitStorage()
}
export {
peertubeLocalStorage,
peertubeSessionStorage