window.localStorage がプライバシー設定によってブロックされた場合に SecurityError を投げなくなりました

公開日: | カテゴリー: DOM, プライバシー & セキュリティ

概要

window.localStorage は従来、ユーザーのプライバシー設定によって使用できない場合、具体的には Cookie が無効となっている際に SecurityError 例外を投げていました。Firefox 67 以降、このプロパティはそうした場合単に null となり、JavaScript に適切な try-catch 処理が書かれていないため一部のサイトが読み込まれない問題を解消します。

// なお、window.localStorage が null となる場合、
// これは引き続き TypeError を投げます
window.localStorage.setItem(key, value);

// そのため以下のように書く必要があります。
const storage = window.localStorage;

if (storage) {
  // ストレージを使用
  storage.setItem(key, value);
}

参考資料