三領域の見える範囲
本ツールは,ウェブブラウザに標準で備わっているデータ保存領域のうち,ローカルストレージ(LocalStorage),セッションストレージ(SessionStorage),そしてクッキー(Cookie)の3つの領域にアクセスするためのタブインターフェースを提供します.
それぞれのタブを切り替えることで,現在ツールを開いている環境においてアクセス可能な保存データを一覧化することができます.ただし,表示や操作ができる範囲にはブラウザのセキュリティ上の明確な境界が存在します.まずローカルストレージについては,本ツールが動作している同一オリジン(スキーム・ホスト・ポートの組み合わせ)のデータのみが読み書きの対象となります.
他のウェブサイトが保存したローカルストレージの内容を閲覧したり,操作したりすることはできません.次にセッションストレージについては,現在開いているタブに紐づくセッションデータのみが表示されます.別のタブで開かれている同一サイトのセッションデータをまたいで管理する機能は備えていません.
最後にクッキーについては,現在のドキュメントにおいてdocument.cookieのプロパティ経由で読み取りが可能なものだけが一覧に表示されます.ブラウザの仕様によりアクセスが制限されているHttpOnly属性が付与されたクッキーは取得できず,リストには現れません.
また,IndexedDBやCache Storageといった他のブラウザ内蔵データベース領域のデータには非対応です.このように,本ツールは見えない部分のデータを無理に取得するのではなく,あくまで現在の実行コンテキスト内で標準的に見える範囲のデータだけを取り扱うためのインターフェースとして動作します.
一覧と概算容量
各タブを開くと,該当するストレージ領域に保存されているデータのキー,値,およびデータのサイズが表形式で一覧表示されます(ストレージへのアクセスや容量クォータ超過,CRUD操作の失敗時には通知が行われます).このとき,ローカルストレージとセッションストレージのタブにおいては,保存されているデータが現在どの程度の容量を消費しているかを示すプログレスバーと数値が表示されます.
この容量計算は,保存されているデータのキーと値のUTF-16コードユニット数に2を掛けた概算値です.そして,固定値である5MiB(5,242,880バイト)を目安の比較基準として,現在の使用割合をパーセンテージとバーで表現しています.このプログレスバーはあくまで目安であり,ブラウザが内部で管理している正確な空き容量やハードディスク上の実際の占有サイズを測定しているものではありません.
一覧表の「値」の列は,非常に長いデータが保存されている場合でも画面のレイアウトを崩さないように,特定の幅を超えた部分は省略して表示する設計となっています.しかし,マウスカーソルを合わせることで全体の内容を確認することが可能です.また,クッキーのタブにおいては,保存されている値がパーセントエンコーディング(URLエンコード)されている場合,読みやすくするためにデコードを試みますが,不正なパーセントシーケンスが含まれていてデコードに失敗した場合は,エラーとして処理を停止するのではなく,保存されている生の文字列をそのまま表示する仕様となっています.
これにより,値がどのような状態であっても一覧から確認を続けることができます.
キー検索と編集追加
保存されているデータの一覧が膨大になった場合でも,画面上部に設置された検索ボックスを利用することで,目的の項目を素早く見つけ出すことができます.この検索機能は,入力された文字列がデータの「キー」または「値」のいずれかに含まれているかを大文字・小文字の区別なく判定する部分一致検索として機能します.
検索キーワードを入力するたびにリアルタイムで一覧の表示が絞り込まれます.また,データの新規追加や既存データの編集も直感的な操作で行うことができます.データの追加は,画面横の「データの新規追加」フォームから行います.任意のキーと値を入力して追加ボタンを押すと,現在選択されているタブのストレージに対してデータが書き込まれます(アクセスやクォータ超過,CRUD操作に失敗した場合は通知されます).
既存のデータを変更したい場合は,一覧表の各行に配置されている編集ボタンをクリックします.すると,画面上に編集用のインラインパネルが出現し,現在の値が入力フィールドにセットされます.ここで内容を書き換え,「変更を保存」ボタンを押すことで,指定したキーの値が新しい内容で上書き保存されます.
編集操作においては,既存のキー名を変更することはできず,キーに対する値のみを更新する仕組みとなっています.クッキーを編集する場合,本ツールでは元の値がエンコードされていたかどうかに関わらず,新たに入力された内容を標準のエンコード規則に従って再エンコードして保存します.
既存のクッキー名についてはそのまま維持され,保存後の一覧で反映を確認します.さらに,値をクリップボードにコピーする機能も備わっており,Clipboard APIのPromiseをawaitして成功が確認された場合のみコピー完了が表示され,アクセスが拒否された場合は失敗が通知されます.
削除の影響とバックアップ
一覧から不要になったデータを取り除くための削除機能には,項目ごとの個別削除と,現在選択しているタブ内のデータをすべて消去する全削除の2種類が用意されています.個別削除は,各行のゴミ箱アイコンをクリックすることで実行され,即座に該当のデータがブラウザのストレージから破棄されます.
一方,全削除機能は強力な操作であるため,実行前に確認のダイアログが表示されます.ここで注意しなければならないのは,全削除を実行した場合,当ツール自身が保存しているデータだけでなく,同じオリジンで動作している他のすべてのツールやウェブページが該当ストレージ領域に保存したデータも一括して削除されてしまうという点です.
ローカルストレージは同一オリジンで共有され,セッションストレージはさらにタブごとに分かれるため,この操作による影響範囲を十分に理解した上で実行する必要があります.また,操作の取り消し(元に戻す機能)は実装されていません.このような誤操作によるデータの消失を防ぐため,あるいは現在のストレージ状態を保存しておくために,JSON形式でのエクスポート機能を提供しています.
エクスポートボタンを押すと,現在表示されているタブ内のすべてのデータが,キーと値のペアからなるJSONオブジェクトに変換され,ファイルとして手元の端末にダウンロードされます.これにより,定期的なバックアップを取得したり,他の端末やブラウザ環境へ同じデータを移行したりする準備を整えることができます.
削除操作はブラウザの標準的なAPIを介して行われますが,確実にデータが消去されたかどうかは,操作直後に自動で実行される一覧の再読み込みによって視覚的に確認できるようになっています.
JSON入出力の上書き規則
エクスポート機能で保存したデータ,あるいはユーザーが手動で作成したJSONファイルを,インポート機能を用いてストレージに読み込ませることができます.インポートボタンからJSONファイルを選択すると,非同期で最新世代および現在のタブに対してのみ適用処理が行われます.
ファイルには2MiB,200万コードユニット,1万キーの上限があり,有効なJSONオブジェクト(キーと値のペアの集合)である必要があります.配列のみや単一文字列,不正な構文を含むファイルは解析エラーとなり中断されます.インポート時の挙動は元の状態への完全な置換復元ではありません.
ファイルに含まれるキーが既存の場合は値が上書きされ,存在しないキーは新規追加され,ファイルに含まれない既存データは削除されずに保持されます.値が入れ子のオブジェクトや配列の場合はJSON.stringifyにより文字列化して保存されます.LocalStorageとSessionStorageでは書き込み前に既存の値を退避し,書き込み失敗時にはベストエフォートでのロールバックを試みますが,Web Storageのネイティブトランザクションではないためロールバック自体が失敗した場合も含め完全復元は保証されず,一部変更警告が表示されます.
またCookieではルート固定属性(path=/)で書き込まれる非アトミックな処理となり,書き込み後に参照可能な値を確認して不足があれば部分反映の警告が出されます.全pathやdomain,HttpOnly属性の復元や削除は保証されません.
Cookie属性と実運用上の制約
クッキーの操作に関しては,ローカルストレージやセッションストレージとは異なる独自の振る舞いと実運用上の制約が存在します.本ツールからクッキーの新規追加や値の編集を行う場合,パス(Path),有効期限(Max-Age),およびSameSite属性はツール内で定められた固定の規則で付与されます.
具体的には,どのページからも参照できるようにパスは「path=/」が設定され,有効期限は「max-age=31536000(約1年間)」として指定されます.また,クロスサイトリクエストに対する一定の保護を持たせるため「SameSite=Lax」がデフォルトで付与されます.
一方で,セキュアな通信経路でのみ送信を許可するSecure属性や,JavaScriptからのアクセスを禁止するHttpOnly属性については,本ツールから追加・編集する際には付与されません.クッキーを削除する操作においても,ブラウザの仕様に基づく制約があります.
クッキーの削除は,そのクッキーの保存期間を0(max-age=0)にすることで実現していますが,元々のクッキーが特定のパスや特定のサブドメインに対して発行されていた場合,単純な「path=/」の指定では削除コマンドが正しく認識されず,削除に失敗するケースがあります.
本ツールは現在見えているクッキーを一律のルールで上書き・削除しようと試みますが,サーバー側で複雑な属性を持たせて発行されたクッキーに対しては,ツールの操作が及ばない場合があることを理解しておく必要があります.このように,本ツールはブラウザ環境におけるデータの状態を簡易に操作・確認するためのインターフェースとして機能しますが,背後にあるストレージAPIの仕様やセキュリティモデルの境界を越えるものではないという点に留意して利用してください.