Fossil SCM
Disabled localStorage as a backend option for the fossil.storage JS API after it was painfully discovered that multiple repos on the same hoster actually share that storage, as opposed to it being achored at the repo. That API now uses sessionStorage, if available, before falling back to transient instance-local storage.
Commit
5b9a4c90594d8ea64d3e4d2bed3c00e76b8fa029820a46cff5b5f5663e85b945
Parent
ae9a9db55314ac7…
1 file changed
+6
-2
+6
-2
| --- src/fossil.storage.js | ||
| +++ src/fossil.storage.js | ||
| @@ -17,12 +17,16 @@ | ||
| 17 | 17 | } |
| 18 | 18 | }; |
| 19 | 19 | |
| 20 | 20 | /** Internal storage impl for fossil.storage. */ |
| 21 | 21 | const $storage = |
| 22 | - tryStorage(window.localStorage) | |
| 23 | - || tryStorage(window.sessionStorage) | |
| 22 | + /* We must not use localStorage on a multi-repo domain! | |
| 23 | + See: https://fossil-scm.org/forum/forumpost/0e794dbb91 | |
| 24 | + | |
| 25 | + tryStorage(window.localStorage) | |
| 26 | + ||*/ | |
| 27 | + tryStorage(window.sessionStorage) | |
| 24 | 28 | || tryStorage({ |
| 25 | 29 | // A basic dummy xyzStorage stand-in |
| 26 | 30 | $:{}, |
| 27 | 31 | setItem: function(k,v){this.$[k]=v}, |
| 28 | 32 | getItem: function(k){ |
| 29 | 33 |
| --- src/fossil.storage.js | |
| +++ src/fossil.storage.js | |
| @@ -17,12 +17,16 @@ | |
| 17 | } |
| 18 | }; |
| 19 | |
| 20 | /** Internal storage impl for fossil.storage. */ |
| 21 | const $storage = |
| 22 | tryStorage(window.localStorage) |
| 23 | || tryStorage(window.sessionStorage) |
| 24 | || tryStorage({ |
| 25 | // A basic dummy xyzStorage stand-in |
| 26 | $:{}, |
| 27 | setItem: function(k,v){this.$[k]=v}, |
| 28 | getItem: function(k){ |
| 29 |
| --- src/fossil.storage.js | |
| +++ src/fossil.storage.js | |
| @@ -17,12 +17,16 @@ | |
| 17 | } |
| 18 | }; |
| 19 | |
| 20 | /** Internal storage impl for fossil.storage. */ |
| 21 | const $storage = |
| 22 | /* We must not use localStorage on a multi-repo domain! |
| 23 | See: https://fossil-scm.org/forum/forumpost/0e794dbb91 |
| 24 | |
| 25 | tryStorage(window.localStorage) |
| 26 | ||*/ |
| 27 | tryStorage(window.sessionStorage) |
| 28 | || tryStorage({ |
| 29 | // A basic dummy xyzStorage stand-in |
| 30 | $:{}, |
| 31 | setItem: function(k,v){this.$[k]=v}, |
| 32 | getItem: function(k){ |
| 33 |