― MozillaZine.jp フォーラムは Mozilla 製品に関する情報交換の場です ―



All times are UTC + 9 hours

新しいトピックを投稿する トピックへ返信する  [ 1 件の記事 ] 
作成者 メッセージ
投稿記事Posted: 2019年2月16日(土) 15:52 
【はじめに】
最近リアルの現場で経験したことなのですが、表題の件が意外に知られていなかったので、ここでも紹介しておこうと思い立ちました。
すでにご存知の方には自明の話に過ぎませんが、Firefox や Thunderbird への理解を深める意味で、興味のある方はご覧ください。

【共通の前提事項】
Firefox や Thunderbird のプロファイル内には、JSON 形式のファイルがあります。(例:handlers.json 、xulstore.json 、extensions.json 、bookmarks-yyyy-mm-dd.json ... など。logins.json もそうですが、暗号化されているので取り扱いは要注意。)
JSON 形式で保存されるデータの種類はバージョンによって若干変動していますし、通常はこれらのデータをユーザーが直接操作する必要はありません。
(参考)
・JSONの利用 - Web 開発を学ぶ | MDN
developer.mozilla.org/ja/docs/Learn/JavaScript/Objects/JSON

しかし、トラブルシューティングにあたり、状態を把握する意味で JSON ファイルの中身を確認したい場面があったります。
JSON ファイルは単純なテキストデータなので、テキストエディターで開くことができますが、Firefox や Thunderbird のプロファイル内に生成される JSON ファイルは、改行のない1行で全体が記述されているため、可読性に難があります。
JSON ファイルを整形表示できるエディターを使えば目視確認も編集も簡単にできますが、頻繁におこなうわけではない作業のためにインストールするのも気が引けます。

【JSON ファイルは Firefox で整形表示できる】
じつは、Firefox Quantum となった 57.0 以降の Firefox では、JSON 形式のファイルをツリー構造に整形表示できます。
内容確認だけなら、目的の JSON ファイルを Firefox で開く(ドラッグ&ドロップする)だけで、その構造を項目ごとにわかりやすく見ることができます。
Firefox 上で編集(書き換え)はできませんが、[生データ] を [整形] してから別途保存することは可能ですから、整形保存した JSON ファイルを「メモ帳」などの一般的なテキストエディターで開けば、編集作業が各段にやりやすくなるでしょう。
(補足)
・現行の Firefox は初期状態が devtools.jsonview.enabled = true です。開発ツール全般が無効化されていると整形表示できません。
・整形保存した JSON ファイルをテキストエディターで編集するときは、取り扱う文字コードに注意してください。基本は UTF-8 です。
・JSON 形式の構造さえ崩さなければ、整形の有無に関わりなく、作業後の JSON ファイルは正常に機能します。

【実例】
Thuderbird の [オプション] -> [添付ファイル] -> [受信] 、Firefox の [オプション] -> [一般] -> [プログラム] の項目は、それぞれのプロファイル内にある handlers.json に保存されています。メールクライアントとブラウザの役割の違いや使用目的の差がありますから、完全に同一というわけではありませんが、Thuderbird や Firefox における任意のファイルやプロトコルの取り扱い方法が保存されています。

Thuderbird には、項目ごとに [動作設定を削除する] のメニューがあるので、間違って登録された項目だけを削除することができますが、Firefox にはそのメニューがないので、項目ごとに削除することができません。
しかし、Firefox で handlers.json を開いてその構造を理解し、その上で整形保存した handlers.json をテキストエディターで開けば、不要な項目だけを削除することが比較的簡単にできるようになります。
十分な理解の上であれば、[動作設定] / [取り扱い方法] などを手動で追加・変更・削除することもできます。

(Windows 版 Firefox での一例)
PDF ファイルに対する内容を例に挙げれば、次のような感じで定義されています。

mimeTypes
└ application/pdf ……… Content Type (MIME Type) の定義
  ├ action ★ ………… 上記に対する取り扱い(動作)の指定
  ├ extensions ………… (拡張子に対する定義)
  │ └ [0] "pdf" …… この拡張子に関連付けられた既定のプログラム
  ├ handlers …………… 任意に指定されたプログラムの定義
  │ ├ [0]  …………… ★= 2 のとき選択されるプログラム
  │ │ ├ name "選択したプログラム1の名前"
  │ │ └ path "上記プログラム1のフルパス"
  │ └ [1]
  │   ├ name "選択したプログラム2の名前"
  │   └ path "上記プログラム2のフルパス"
  └ ask:true …………… [毎回確認する] を選択したとき追加

action の数値(★)の意味
 4 = [<既定のプログラム> を使用(標準設定)]
 3 = [Firefox でプレビュー表示]
 2 = [<任意のプログラム> を使用]
 0 = [ファイルを保存]
 * = [毎回確認する] (数値は直前のままで ask:true が追加される)

handlers の階層は、[他のプログラムを選択...] が指定されたときに追加されます。指定がなければ存在しません。
上記の例では、application/pdf 以下の階層をバッサリ削除すれば、Thunderbird でいう [動作設定を削除する] と同じ結果を導けます。
自信があるなら、個々の項目単位で内容を書き換えることもできるでしょう。

【注意】
くり返しますが、プロファイルにある JSON ファイルをテキストエディターで直接開いたり編集することは、積極的にお勧めできることではありません。
ですが、トラブルシューティング目的で必要なケースはあるでしょうし、集中管理の目的で操作したい場面があるかもしれません。
一般のユーザーであっても、Firefox で JSON ファイルを閲覧するだけなら、誤操作の危険もなく、Firefox や Thunderbird の仕組みを知る一助にはなろうかと思います。

いちおう以上です。
間違っている部分の修正、不十分な内容への補足、新たな知見などの書き込みを歓迎します。


(おことわり)
現在、健康上の制約により不定期な書き込みしかできなくなっています。すぐに応答できない場面がかなり多くなりますことを、ご容赦ください。

_________________
Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:65.0) Gecko/20100101 Firefox/65.0


通報する
ページトップ
  
引用付きで返信する  
期間内表示:  ソート  
新しいトピックを投稿する トピックへ返信する  [ 1 件の記事 ] 

All times are UTC + 9 hours


オンラインデータ

このフォーラムを閲覧中のユーザー: なし & ゲスト[5人]


トピック投稿:  可
返信投稿:  可
記事編集: 不可
記事削除: 不可
ファイル添付: 不可

検索:
ページ移動:  
Powered by MozillaZine.jp® Forum Software © phpBB Group , Almsamim WYSIWYG
Japanese translation principally by ocean