Firefox ( 85.0 64bit )のLocalStorage絡みでバグ(仕様?)
経緯
SPAの認証機能を作る際, トークンをLocal Storageに保存する機能を実装していました.
Local Storageとは何か
Local Storageというのはブラウザ上にデータを保存するための仕組みで, key:valueの形式で保存することができます.
症状
このLocal Storageは通常, 同じオリジン(わからなければ言えば全く同じリンクと解釈してください)のページを開いている別のタブからLocal Storageの値に更新があった場合, 本来はその瞬間に同期されるのが正しい仕様です.
しかし現行のFirefoxバージョンでは同期されず, ページを何回更新しても古いタブの値は更新されません.
Firefoxでは, タブを開き直せばLocalStorageの値は同期されます.
ちなみにChrome(88.0.4324.96 64bit)とSafari( 14.0.2 (16610.3.7.1.9) 64bit )では同一オリジンかつ別のタブでも値は常に同期されているようでした.
海外でのバグ報告
ここにFirefoxのバグリポートが載っていました
1年前から同じLocal Storageのバグが指摘されているようです.
一応修正されたようなのですが, 一般向けではなくβ版の扱いで, 正式にリリースされるのはもう少し先のようです.
17日前にも SPAアプリの開発者から全く同じ症状が報告されています.
最後に
最初プログラミングをミスったのかと思って慌ててコードを見直したのですが, ChromeやSafariで実験しても同じ症状が出ないので, Firefoxの問題だと気づくことができました.
しかし, こういった微妙な問題の多くは自分のコードに問題があるので, 今回のような場合ではなかなか正解にたどり着くことができないと思いました.
コメント入力