Firefoxのファビコンが更新されないときの対処法

この場合のファビコンとは、ブラウザのタブで表示されている部分ではなく、ブックマークで表示されている方です。Firefox のブックマークで使用されるファビコンは、「オプション」の設定からキャッシュを消去しても更新されない場合があります。
※確認バージョン: 60.0.2 、62.0.2

原因は、ブックマーク用のファビコンのキャッシュが、通常のキャッシュとは別になっているからだそうです。

対処方法は、ブックマークなどのファビコンを保存しているファイルを削除し、ファビコンを全リセットした後、各サイトにアクセスしてファビコンを再取得するというものです。

以下の記事が参考になりました。

Firefoxのファビコンが更新されない、表示されない場合の対処法

でも、一個ずつクリックして再表示させるのはめんどくさいと思い、考えてみた結果がこの記事の本題です。

favicons.sqliteを編集する方法

参考になった記事にもあるように、この favicons.sqlite というファイルにファビコン関連のデータが保存されています。「じゃあ、このファイルを直接編集して更新したいサイトのファビコンデータだけを削除すればいいんじゃないか?」ということで以下の方法でやってみました。
※検証バージョン: 60.0.2 、62.0.2

Attention :
元に戻せるように必ずバックアップをとってから作業をしてください。
しっかりした検証を行っていないので何らかの不具合が発生するかもしれません。

favicons.sqlite ファイルを別場所にコピーする

1. 「メニュー」 – 「ヘルプ」 – 「トラブルシューティング情報」 – 「フォルダを開く」でフォルダを開き、開いたら Firefox を終了させます。
※終了しないと正しく保存されない場合があります。

2. フォルダの中から favicons.sqlite ファイルを探して、どこか別の場所にコピーします。
※必ず元のファイルのバックアップをとっておきます。

3. 開いたフォルダは、そのままにしておきます。
※戻すときにまた使います。

SQLite の編集ソフトを使う

.sqlite の拡張子から分かるように、このファイルは SQLite というデータベース管理システムのファイルです。なので SQLite を編集できるソフトを使用する必要があります。
※ここでは、SQLite の詳細は割愛します。

おすすめソフト

DB Browser for SQLite

ファビコンのデータを削除する

※ここからは、DB Browser for SQLite での説明になります。

1. favicons.sqlite ファイルを開き、「 Browse Data 」タブを選択します。

2. 「 Table: 」というメニューで、「 moz_icons 」を選択します。

3. 表示された「 icon_url 」という項目の中から、更新対象のサイトに関連付けられているファビコンを探します。「 icon_url 」は、文字通りファビコンの URL です。なので、項目の上部にある「 Filter 」に URL 等を入力して探します。

DB Browser for SQLite の画面表示の例
DB Browser for SQLite の画面

ファビコンを画像で確認する

「 moz_icons 」テーブルの「 data 」カラムの BLOB となっているセルを選択して、右上の「 Edit Database Cell 」のウィンドウで「 Mode: 」を「 Image 」にすると画像を見ることができます。

ファビコンを画像で確認する画面の例
ファビコンを画像で確認

同じ URL が付いたファビコンが複数保存されている場合

「 icon_url 」がまったく同じ場合は、マルチファビコンで設定されたものだと思われます。

画像が同じで「 width 」のカラムの値が違う場合は、サイズごとに分けてアップされたファビコンだと思われます。
※はっきりしたことは言えませんが、サイズが大きい方が「新しいタブ」ページの「トップサイト」で使われるようです。

サイズ違いのファビコンは、それが更新対象のサイトのファビコンで間違いない場合、全て削除します。

画像が違う場合は、旧ファビコンと新ファビコンだと思われます。
※ファビコンの取得の際、 URL が同じ場合は上書き保存されないですが、違う場合はそのまま保存されます。

旧ファビコンは、対象サイトで間違いなければ全て削除します。

新ファビコンは、対象サイトの新ファビコン(更新予定のファビコン)であれば残しておいてもいいです。

確実にファビコンを探す方法

上記の方法でも十分探せるとは思いますが、「たぶん、これだろう」のレベルなのでもっと確実な方法です。

まず、「 Table: 」メニューから「 moz_pages_w_icons 」テーブルを表示して、「 page_url 」の項目の中から更新対象サイトの URL を探します。そして、同じ行にある id を確認します。
※項目の上部にある「 Filter 」に URL 等を入力して絞り込むことができます。

次に、「 Table: 」メニューから「 moz_icons_to_pages 」テーブルを表示して、「 page_id 」の項目から先ほどの id を探します。そして、同じ行にある icon_id を確認します。

最後に、 「 moz_icons 」テーブルの「 id 」の項目から先ほどの icon_id と一致するファビコンを探します。一致したファビコンが更新対象のサイトに関連付けられているということになります。

moz_icons_to_pages の画面の表示例
消されないで残っている icon_id の図

 

4. 削除するファビコンが決まったら、一番左側の数字をクリックしてレコードを選択し、「 Delete Record 」で削除します。

5. 削除できたら、ツールバーの「 Write Changes 」でファイルを保存します。

編集した favicons.sqlite ファイルを元の場所に戻す

1. 保存した favicons.sqlite ファイルを元の場所に戻して、ファイルを上書きします。

2. 開いたフォルダを閉じます。

サイトにアクセスしてファビコンを再取得する

Firefox を起動して削除したサイトにアクセスし、ファビコンのデータを再取得します。

以上です。

まとめ

今回の方法がめんどくさくないかというと、 あまり変わらないと感じました。むしろ、一個ずつクリックする手間が掛かっても、favicons.sqlite ファイルを削除するだけの方が分りやすくていいと思いました。

ですが、ファビコンを何回も変更する人やブックマークしたサイトが異常に多い人には、楽な方法かもしれません。

コメントを残す

メールアドレスが公開されることはありません。
* が付いている欄は必須項目です。