Mac版Firefoxで、IMEや、キーボード入力のログを取る方法

Gecko 8 (Firefox 8)以降では、Mac版のIMEやキーボードの処理がnsChildViewから切り離されました。この際に、開発者が入手できないIMEのデバッグも行えるようにログをとる機能をリリース版にも用意しています。

ログを取るには環境変数を利用しなくてはいけませんが、残念ながらGUIで手軽にこれを行う方法は分かりませんので、ここではターミナルを利用したやり方を紹介します。

まず、Finderを開き、アプリケーションにある、ユーティリティを選択します。その中にターミナルがありますのでこれを実行してください。

次に、環境変数を設定します。環境変数を設定後にFirefoxを起動しますので、予め、Firefoxはcommand+qで終了しておいてください。環境変数を次のように入力します。

export NSPR_LOG_MODULES=TextInputHandlerWidgets:1 && export NSPR_LOG_FILE=fx_text_input_handler.log

NSPR_LOG_MODULESは記録するログの種類を指定しています。NSPR_LOG_FILEはログファイルの位置を指定しています。ファイル名だけを入力すると、起動ドライブのルートにファイルが作成されるようですので、それが気持ち悪いという方は具体的にフルパスで指定してください。

次に、ターミナルからそのままFirefoxを起動します。アプリケーションにあるFirefoxでログを取る場合は以下のように入力します。

open /Applications/Firefox.app

これでログを記録する状態でFirefoxが起動しますが、記録されるログは膨大なものとなるので、bugzilla等で開発者に指示された最低限の動作だけを行って終了し、ログファイルを提出してください。ただし、入力した文字は全て記録されますので、テストの内容にはご注意ください。

テストが終了したら、FinderやDockから通常通りにFirefoxを起動すれば、ターミナルでの環境変数の変更の影響はありませんのでログを記録しない状態に戻れます。