株式会社クリアコード > ククログ

ククログ

«Cert Importer 1.4の再公開と、Firefox ESR版での署名要求の無効化設定について 最新 Systemdのサービスの依存関係を調べる方法»
タグ:

Firefox・Thunderbirdを、検証用にクリーンな環境で起動する方法

FirefoxやThunderbirdはアドオンや設定によるカスタマイズが可能ですが、アドオンを多数インストールして様々な設定を変更した状態だと、何か問題が起こった場合にその原因がどこにあるのかを特定しにくくなります。

とりあえずの対応方法としては、「カスタマイズ内容をすべてリセットしてまっさらの状態に戻す」ことによって問題の解消を図るという方法があります。 FirefoxでもThunderbirdでも、「ヘルプ」メニューから「アドオンを無効化して再起動」を選択したり、Firefoxであれば「トラブルシューティング情報」のタブから「Firefoxをリセット」という操作を行ったりすると、アドオンがインストールされていない状態にすることができます。 ただ、問題の原因究明には繋がりませんし、普段使いの環境を失う事になるため、問題の深刻度によっては「そこまでしなくてもよい」と思う場合もあるでしょう。

このような場合には、一時的な空のプロファイルを使って、普段使いの環境を残したままでクリーンな状態のFirefoxやThunderbirdを並行して動かすことができます。 これを使って問題の原因を調査し、本質的な解決を図った上で改めて普段使いの環境にフィードバックすれば、うまくいけば何も失わずに問題を解消できます。

以下はFirefoxの場合の解説ですが、Thunderbirdの場合も同様ですので、適宜読み替えて読んでいただければ幸いです。

プロファイルとは?

Firefoxのユーザー設定は、インストール先とは別の「ユーザープロファイル」という場所にまとめて保存されています。 これは、WindowsであればC:\Users\(ユーザー名)\Application Data\Roaming配下に保存されています。 「トラブルシューティング情報」の「プロファイルフォルダ」欄で「ディレクトリを開く」ボタンを押すと、実際に今起動しているFirefoxのプロファイルフォルダを開くこともできます。

ユーザープロファイルは通常は上記の位置にある物が使われますが、フォルダのパスをコマンドラインオプションの-profileの値として与えると、そのフォルダをユーザープロファイルの置き場所としてFirefoxを起動することができます。 例えばF:\data\firefoxの内容をユーザープロファイルとしてFirefoxを起動する場合は、以下のようにします。

C:\> cd "C:\Program Files (x86)\Mozilla Firefox"
C:\> firefox.exe -profile "F:\data\firefox"

OS X版のFirefoxも、ターミナルからオプションを指定して起動すれば同様のことができます。

$ cd /Applications/Firefox.app/Contents/MacOS
$ ./firefox-bin -profile "/path/to/blank/directory"

この方法で空のフォルダを指定して起動すると、普段使いの環境とは全く別に、アドオンがインストールされておらず、履歴や設定も何も保存されていない、クリーンな状態なFirefoxを起動することができます。 この状態であれば、使い込まれた状態の環境では容易に試すことができないアドオンのインストールやアンインストール、複数を組み合わせた状態での動作検証などを容易に行えます。

検証を行う機会が多いのであれば、firefox.exeへのショートカットを作成し、プロパティを開いて「リンク先」の欄に以下のような形でコマンドラインオプションを追記しておくことで、コマンドプロンプトを開かずにそのプロファイルでFirefoxを起動することもできます。

"C:\Program Files (x86)\Mozilla Firefox\firefox.exe" -profile "F:\data\firefox"

ユーザープロファイルのパス自体に空白文字が含まれる場合、それ自体を一続きの文字列として示すために二重引用符で囲う必要があることに注意して下さい。

なお、Windows版とOS X版のFirefox 38およびThunderbird 38以降のバージョンでは、-profileで指定するパスの位置に実際にフォルダが存在しない場合は、フォルダが自動的に作成されるようになっています。 Linux版のFirefoxやThunderbirdでは、フォルダが存在しないとエラーになります(1136620 – -profile option does not create a new directory on linux if the directory does not exist)。

普段使いの環境のFirefoxと、新規プロファイルのFirefoxを並行して動作させる

すでにFirefoxが起動している状態で上記のコマンドを実行しても、既に起動しているFirefoxの別ウィンドウが開かれるだけだったり、タブが1つ開かれるだけだったりという結果になります。 これは、コマンドラインから起動されたFirefoxが既に起動しているFirefoxを認識して、既に起動しているFirefoxに処理を委譲し(新しいタブを開く、または新しいウィンドウを開く)、新たに起動された方のFirefox自身はすぐに終了してしまうために起こる現象です。

普段使いの環境でインターネット上の情報を検索しながら、クリーンな環境で検証を進める、というような使い方をしたい場合には-no-remoteオプションを追加で指定する必要があります。

C:\> cd "C:\Program Files (x86)\Mozilla Firefox"
C:\> firefox.exe -profile "F:\data\firefox" -no-remote

このオプションが指定されていると、新たに起動されたFirefoxは既に起動しているFirefoxのことを認識せず、両者を並行して起動できるようになります。 このオプションは、firefox.exeへのショートカットのリンク先にも指定できます。

普段使いの環境のFirefoxと、違うバージョンのFirefoxを並行して動作させる

上記の-profileオプションと-no-remoteオプションの組み合わせを使うと、普段使いのFirefoxとは別のバージョンのFirefoxを併用することも可能となります。

例えば、普段はリリース版のFirefox 43を使っていて、それとは別にFirefox 45のベータ版の動作を検証したくなることがあるでしょう。 このような場合、Firefox 45のベータ版の方を普段のインストール先とは別の場所にインストールして、これらのオプションを指定して起動すれば、普段使いのFirefox 43で調べ物をしながらFirefox 45のベータ版を試すことができます。

C:\> cd "C:\Program Files (x86)\Mozilla Firefox 45Beta"
C:\> firefox.exe -profile "F:\data\firefox-beta" -no-remote

まとめ

FirefoxやThunderbirdについて、普段使いの環境には影響を与えずに、クリーンな環境や別のバージョンを並行して起動させる方法をご紹介しました。

様々なカスタマイズを行った状態の普段使いの環境で不具合と思われる現象に遭遇して、それをBugzillaやアドオンの作者に報告しても、Firefoxの開発者やアドオンの開発者の環境では問題が再現しないという場合には、原因究明が難しかったり、時には解決を諦めないといけなかったりという事になる場合もあります。

問題の原因をきちんと切り分けて、再現条件を特定するためにも、不具合に遭遇した時はこの記事で紹介している手順でクリーンな環境のFirefoxを起動して、そこから問題が再現する状態を整えるまでの最短の手順を探るようにしましょう。

つづき: 2016-01-06
タグ: Mozilla
2015-12-25

«Cert Importer 1.4の再公開と、Firefox ESR版での署名要求の無効化設定について 最新 Systemdのサービスの依存関係を調べる方法»
2008|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|05|06|07|08|09|10|11|12|
2012|01|02|03|04|05|06|07|08|09|10|11|12|
2013|01|02|03|04|05|06|07|08|09|10|11|12|
2014|01|02|03|04|05|06|07|08|09|10|11|12|
2015|01|02|03|04|05|06|07|08|09|10|11|12|
2016|01|02|03|04|05|06|07|08|09|10|11|12|
2017|01|02|03|04|05|06|07|
タグ:
RubyKaigi 2015 sponsor RubyKaigi 2015 speaker RubyKaigi 2015 committer RubyKaigi 2014 official-sponsor RubyKaigi 2014 speaker RubyKaigi 2014 committer RubyKaigi 2013 OfficialSponsor RubyKaigi 2013 Speaker RubyKaigi 2013 Committer SapporoRubyKaigi 2012 OfficialSponsor SapporoRubyKaigi 2012 Speaker RubyKaigi2010 Sponsor RubyKaigi2010 Speaker RubyKaigi2010 Committer badge_speaker.gif RubyKaigi2010 Sponsor RubyKaigi2010 Speaker RubyKaigi2010 Committer
SapporoRubyKaigi02Sponsor
SapporoRubyKaigi02Speaker
RubyKaigi2009Sponsor
RubyKaigi2009Speaker
RubyKaigi2008Speaker