拡張機能にデータの保存、取得と、保存項目の変更をリッスンできるようにします。

ストレージのシステムは Web Storage APIに基づいていますが、いくつか相違点があります。とりわけ、以下の違いがあります。

  • 非同期です。
  • 値は拡張機能のスコープで、特定ドメインではありません (つまりキー/値ペアーの同じ組み合わせが、すべてのバックグラウンドコンテキストとコンテンツスクリプトから利用できます)。
  • 保存された値は JSON-ifiable な JSON化できる 値で、単なる Stringではありません。とりわけ、ArrayObjectが入ります。しかしコンテンツが JSON で表現できる時、ここには DOM ノードは入りません。値を保存する前に JSON Strings に変換する必要はなく、内部で JSON として表現されます、つまり JSON-ifiable である必要があります。
  • 複数のキー/値ペアーが同じ API 呼び出しで設定、取得できます。

このAPIを利用するためには"storage" permissionmanifest.jsonに含める必要があります。

各々の拡張機能は独自のストレージ領域を持っています。またそれらは異なる型のストレージに分割することができます。

Window.localStorageとこのAPIは似ていますが、 拡張機能関連のデータを格納する際に拡張コード内でWindow.localStorageを使わないことを推奨します。 Firefox はプライバシー上の理由でブラウザー履歴やデータを消去などをする場合、localStorage APIを利用して保存されたデータも消去します。しかしstorage.local API を利用して保存されたデータはこれらの場合でも保持されます。

ストレージ領域内は暗号化されていないため、ユーザの機密情報を保存すべきではありません。

storage.StorageArea
ストレージ領域を表すオブジェクト
storage.StorageChange
ストレージ領域の変更を表すオブジェクト

プロパティ

storage は3つのプロパティを持ち、異なる型の利用可能なストレージ領域を表しています。

storage.sync
sync ストレージ領域を表します。sync ストレージ内のアイテムはブラウザーによって同期され、異なるデバイス間でもログインしているユーザのブラウザーの全てのインスタンスを跨いで利用できるようになります。
storage.local
local ストレージ領域を表します。local ストレージ内のアイテムは拡張機能がインストールされているマシン内のみで扱えます。
storage.managed
managed ストレージ領域を表します。managed ストレージ内のアイテムはドメイン管理者によってセットされ、拡張機能は読取権限のみを持ちます。そのため、この名前空間を変更しようとするとエラーになります。

イベント

storage.onChanged
ストレージ領域内のアイテムを1つ以上変更した場合に発火します。

ブラウザ実装状況

Update compatibility data on GitHub
デスクトップモバイル
ChromeEdgeFirefoxOperaAndroid 版 Firefox
StorageAreaChrome 完全対応 ありEdge 完全対応 14Firefox 完全対応 45Opera 完全対応 ありFirefox Android 完全対応 48
StorageChangeChrome 完全対応 ありEdge 完全対応 14Firefox 完全対応 45Opera 完全対応 ありFirefox Android 完全対応 48
localChrome 完全対応 ありEdge 完全対応 14Firefox 完全対応 45
補足
完全対応 45
補足
補足 The storage API is supported in content scripts from version 48.
Opera 完全対応 ありFirefox Android 完全対応 48
managedChrome 完全対応 ありEdge 未対応 なしFirefox 完全対応 57
補足
完全対応 57
補足
補足 Platform-specific storage backends, such as Windows registry keys, are not supported.
補足 Enforcement of extension-provided storage schemas is not supported.
補足 The onChanged event is not supported.
Opera 未対応 なしFirefox Android 未対応 なし
onChangedChrome 完全対応 ありEdge 完全対応 14Firefox 完全対応 45Opera 完全対応 ありFirefox Android 完全対応 48
syncChrome 完全対応 ありEdge 完全対応 15Firefox 完全対応 53Opera 未対応 なしFirefox Android 未対応 なし

凡例

完全対応  
完全対応
未対応  
未対応
実装ノートを参照してください。
実装ノートを参照してください。

Example extensions

Acknowledgements

このAPIはChromiumのchrome.storage APIに基づいています。また、このドキュメントは storage.json における Chromium のコードに基づいています。

Microsoft Edge での実装状況は Microsoft Corporation から提供されたものであり、ここでは Creative Commons Attribution 3.0 United States License に従っています。

ドキュメントのタグと貢献者

このページの貢献者: takubokudori, SphinxKnight, Uemmra3
最終更新者: takubokudori,