]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blobdiff - client/src/root-helpers/peertube-web-storage.ts
Try to fix live segments check
[github/Chocobozzz/PeerTube.git] / client / src / root-helpers / peertube-web-storage.ts
index 0db1301bd4fa4846b1e6d3096e0417d49849c527..f29845443ab8207be9a017f44fb0418284f67c71 100644 (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