謎仕様すぎるブラウザのキャッシュの削除

開発中にブラウザで確認をする際に、キャッシュを削除しても変更が反映されなかったり、今まで起動していたものが起動しなくなったりする事例がでてきた。

色々試しながら調べていくと、どうやら「Chrome」のメニューにある「閲覧履歴データを削除」が関係していた。

これが少しややこしかったので、記録しておく。

基本設定タブの閲覧履歴データを削除の意味

「基本設定タブ」というのは、Chromeブラウザのメニュー内にある「閲覧履歴データを削除」からいけるポップアップのこと。

画像の赤い丸を押すと、以下のポップアップが表示される。これが「基本設定タブ」。

このポップアップでは、

  • 選択期間内の閲覧履歴
  • 開いている全タブ
  • Cookie(ログイン情報など)
  • キャッシュ(CSSやJavaScript・画像など)
  • その他のサイトデータ

が削除されるように見える。

しかしここで実際に削除されるものに「その他のサイトデータ」は、ほぼ含まれていない

詳細設定タブの閲覧履歴データを削除の意味

先ほどの閲覧履歴データを削除のポップアップ内にある「その他のオプション」を選択すると、以下の画面が表示される。

これが「詳細設定タブ」

表示されている内容は「基本設定タブ」と同じに見えるが、

  • IndexedDB
  • ローカルストレージ

なども削除対象に含まれるようになり、アプリの接続情報やオフラインデータも含まれるようになるみたい。

開発中であればタブを残したままログイン情報などを削除できるので、なるべく「詳細設定タブ」から削除したほうが便利かな。

パスワードなどにもデフォルトでチェックが入っている場合があるので、ここでの削除は慎重に行うこと。(基本赤い丸の範囲のみ)

表示内容はほぼ同じだけど、裏での処理が異なるというなかなかの謎仕様。

この原因を探ってみる。

なぜ気づけたのか?

WalletConnectの勉強中にコードを変更してブラウザで確認を繰り返していたら、さっきまで起動していたメタマスクが自動で立ち上がらない現象に遭遇。

今までは「基本設定タブ」でのキャッシュの削除しかしてこなかったが、ダメ元で「詳細設定タブ」から削除してみたらなぜか動くようになった。

どうやらWalletConnectのセッション情報は、「IndexedDB」に保存されていたみたい。

なぜこの謎仕様なのか?

以前のChromeでは、閲覧履歴・Cookie・ローカルストレージやIndexedDB は削除するメニューが分かれていた。

ところが、「閲覧履歴を削除したらすべてが削除される」と誤認していたユーザーが多かったため、それに合わせて「閲覧履歴の削除」ですべてが削除されるように統合してみた。

でも実際に全部消えるとオフラインwebアプリやwebゲームのセーブデータなども消えてしまうため、「勝手にデータが消えた」と困るユーザーが多かった。

そのため「基本設定タブ」では最低限しか消さないようにし、「詳細設定タブ」でのみ本当にすべてが削除できるようにした。

現在は、UIが複雑すぎるとユーザーが混乱してしまうため、表示内容をほぼ同じにして削除範囲を裏側で制御しているらしい。