やってもzilla 備忘録: Firefox 3.0 Beta 5 Topic

Last Update: Thursday, April 03, 2008

baner

Firefox 3.0 Beta 5 へのプロファイルの引き継ぎ覚書

Thursday, April 03, 2008

Firefox 3.0 Beta 5 がリリースされたので、Firefox 2.x で使用していたプロファイルの引き継ぎを実検してみる。
環境はビルド:Mozilla/5.0 (Macintosh; U; PPC Mac OS X 10.5; en-US; rv:1.9pre) Gecko/2008032619 Firefox/3.0b5プロファイル: Firefox 2.0.0.13 で使用しているプロファイルの複製普段はメジャーアップデート時には絶対に行わないプロファイルの引き継ぎだが、Firefox 3 ではプロファイル内の内容がかなり変更されているため、ブックマークファイルのように単純にコピーしただけでは使えないものが現れた。そういったファイルは Firefox 3 を起動した時点で新しいファイルに変換される仕組みになっているようだ。そこで、プロファイルの引き継ぎを行った場合の状態を記録してみた。
なお、拡張機能やテーマの互換性は事前に確認をおこなっている。

もしこのトピックを見て試されるのであれば、私が Firefox 2.x のプロファイルの複製を使って作業をしていることに注目して欲しい。詳しい理由は下の方で説明するが、Firefox 3 で起動した時点で消去されるファイルがある。そのため、Firefox 2.x で同じプロファイルを使うと不具合が起きる可能性がある。

Firefox 2.0.0.13 のプロファイルを使用する

常用しているプロファイルから拡張機能の userChrome.js だけを残したプロファイルを使って引き継いでみることにする。理由はアドオン関係の手間を省きたかっただけだが。

Fireox 2.x と Firefox 3 の同居方法とプロファイルのコピーの作り方

Mozilla Japan - Firefox 3 Beta 5 リリースノートにも書かれているが、Fireox 2.x と Firefox 3 の同居方法とプロファイルのコピーで起動する方法が解らない方のために、ここではオレオレ手順を説明しておく。ご存知の方はここを飛ばしてくだされ。

まず、Mac OS の Firefox 3 のアプリケーション名だが、Nightly の場合は Minefield.app なので問題はないが、ベータ版は Firefox.app となっているため、そのままインストールすると、既にインストールしている Firefox を上書きしてしまう。これを回避するためには、Applications に新規フォルダを作ってそこにインストールする。こうすることで言語違いやバージョン別の Firefox を複数インストールできる。

  1. Firefox 2.x の プロファイルマネージャ を起動して新規プロファイルを作る(プロファイル名は分かりやすいように)
  2. 最初の画面が表示されたら「今後このプロファイルを使用する」のチェックを外す(これで次回の起動時からはプロファイルマネージャを経由して起動できる)
  3. Firefox 2.x を新しいプロファイルで起動し、ここでは一旦終了する
  4. 再度、新しいプロファイルで Firefox 2.x を起動(これをしないと、このプロファイルの cache フォルダが既定のディレクトリに作られない)、直ぐに終了する
  5. Profiles (Users/[User Name]/Libraly/Application Support/Firefox 以下) を開き、先ほど作ったプロファイルフォルダを表示し、中身を全てゴミ箱に移動する
  6. Firefox 2.x で使用していたプロファイルフォルダ(デフォルトなら xxxxx.default のような名前)を開き、中身の全てを先ほど空にしたプロファイルフォルダにコピーする
  7. 新しいプロファイルで Firefox 2.x を起動し、以前と同じ環境になっていることを確かめたら終了
  8. Firefox 3 を、新しいプロファイルを指定して起動する
  9. 起動後は真っ先に環境設定を呼び出し、詳細から[一般]タブの「デフォルト Web ブラウザ」のチェックを外しておく(こうしないと Firefox 3 がデフォルトブラウザになってしまう)

profiles.ini の編集ができるのであれば、そちらで行っても良いし、Mozilla Japan - Firefox 3 Beta 5 リリースノートの方法で行っても良い。手順は面倒くさいが、上の方法が確実にできるのでお勧め。

移行状況

Firefox 3 で起動後すると、一番最初に行われるのはアドオンの互換性チェック。これによって起動中の Firefox 3 のバージョンで試用できるかどうかのチェックが行なわれる。バージョンアップ時のアドオンの互換性に対して無頓着なユーザも、この機能のおかげで互換性のないアドオンを読み込むことを避けられるわけだ。
Startup process 1
チェックが終わると、互換性に問題のあるアドオンがリストアップされ、【1】最新のバージョンが公開されているかチェックする。【2】チェックを行なわずにプロセスを続ける。【3】一つ前に戻る(戻ってキャンセルできるのかどうかは未確認)。のボタンから希望の方法を選択する。
Startup process 2

ここで最新のアドオンが見つかった場合は、その処理を訊ねてくる。見つからなかった場合は、更新が見つかった場合は通知するというメッセージが表示されるので、(Done)ボタンでこの処理を終了する。

引き継ぎの結果

ブックマーク
Firefox 3 では Places になったために多くの変更が行なわれているが、ブックマークツールバーアイテム、ブックマークメニューアイテムとも正常に引き継がれている
ツールバーの設定
これは prefs.js に記録されているが、旧環境で行ったカスタマイズは引き継がれないようだ
アドオン
拡張機能、テーマとも、起動時の互換チェックによって Firefox 3 で利用できないものは無効化されている。このあたりは信頼できる機能だ
環境設定
Mein … △
ホームの設定は引き継ぐが、ホームアドレスは変更されている
Downloads の設定は引き継いでいる
Tabs … ○
引き継がれている
General … ▲
日本語フォントサイズが引き継がれていないが、これは en-US locale だからかも
Aoolications … ○
引き継がれている
Privercy … ○
引き継いでいる
Seculity … ○
マスターパスワードと保存したパスワードは問題なく引き継がれている
Advance … ?
General ではデフォルトブラウザ設定を外していたが、チェックが入っているところを見ると、この項目は引き継がれないように思う
Network … ○
設定していたプロキシは正常に引き継がれている
Update … ○
ここの設定は引き継がれている
Encryption … !
ここは弄ったことがないので未確認
環境設定の設定のほとんどは prefs.js に記録され、概ね引き継がれているし、パスワードは問題なく移行できている。これは多くのユーザは助かるだろう(設定を控えておけば良いだけの話だが)
ヒストーリーやキャッシュ、フォームの入力情報
全て正常に引き継いでいる
about:config
全て引き継いでいるようだが、変更していたテーマや拡張機能の設定も残っている。拡張機能は無効になっているが、これらの設定が不具合を起こす可能性もあるので、一度リセットすることが望ましいと思う(カスタム設定の全てをやり直す必要があるが)

アドオンのアンインストール

無効化されたアドオンは、アドオンマネージャを使ってアンインストールできるが、対象は extensions フォルダ内に保管されている本体のみで、Google Toolbar のように設定をプロファイル内に置くタイプのアドオンは、本体は削除されても設定ファイルの削除は行なわれない。そのため、残った設定ファイルやフォルダは手動で削除しなくてはいけない。また prefs.js に記録された設定も残ったままとなる。
prfs.js をリセットするためには、セーフモード起動の設定でユーザの設定した情報をリセットすれば戻るが、全ての設定がデフォルトに戻ってしまうため、環境設定はもちろん、ツールバーの状態やカスタム設定を再度行う必要がある。

このプロファイルでしばらく使っていたが、どうも挙動がおかしい。ウィンドウサイズを変更した時やメニューを操作した時、一瞬引っかかるような感じだ。ビーチボールが現れるほどは待たされないが、何かおかしい。これは以前にマイナーバージョンアップでプロファイルに問題が起きた時の症状と似ている
と思っていたら、ウィンドウを広げた瞬間にクラッシュしてしまった。引き継ぎプロファイルは不安定になるのだろうか

スタンダードに近い Firefox 2.0.0.13 のプロファイルで再実験

先のプロファイルではプロファイルマネージャを使ってリセットを行ってみたが、クラッシュは起きないものの何かおかしい感じがつきまとう。ということで、ほとんど弄っていない Firefox 3.0.0.13 のプロファイルを引き継いでみる。
変更点は、環境設定でのタブの動作とフォントサイズやプロキシ設定。ついでと言っては何だが、パスワードは変換後に読み込むことができるかを検証するために、全て削除した上で解除してある。
Firefox 3.0 Beta 5 に読み込ませるプロファイルは画像のとおり。左が Firefox 3.0 Beta 5 を起動する前のプロファイル、右が起動後の状態。読み込み前のプロファイルにはパスワードを設定していないので signons2.txt が無いことに気がつくと思う。

更新されたプロファイルの内部を見てみる。

画像中の記号は次の状態を表している(分かりにくくて申し訳ない…)
Icon 1: 新しいファイルタイプに変換後、元ファイルを削除
Icon 3: 元のファイルからデータを読み込み新規生成
Icon 4: 継承して内容を更新
Icon 5: Firefox 3 から使われるようになったファイル
Icon 6: 継承して起動時に新規生成されるファイル
Icon 7: 必要ないと思われるファイル
アイコンがついていないものは、そのまま引き継がれている

プロファイルフォルダの変化

新しいファイルタイプに変換後、削除されるファイル

注目して欲しいことは、これら3つのファイルは、Firefox 3.0pre で起動した際に新しいフォーマットに変換された後、元ファイルは削除されている。
それらのファイルは新しいフォーマットに移行するか、別のファイルに統合されるのだが、旧ファイルを残さないため、一度でも Firefox 3 で起動するとプロファイルから消えることになる。最初に Firefox 3 を試用する場合は、別のプロファイルで起動した方が良いと書いたのはこのためなのだ。

上記3つのファイルが、あなたにとってそれほど重要でない場合は、Firefox 2.x で起動しなおせば消えたファイルを復活させることができる。ただし、Firefox 3 のファイルからダウングレード変換は行われないので、Firefox 2.x では初期状態に戻ってしまうことになる。また、一度変換が行われたプロファイルでは、Firefox 2.x で変更を加えても Firefox 3 には反映されないので注意しなければいけない。
この意味が分かっている場合は良いが、hostperm.1 などはダウンロードサイトの許可記録や画像の読み込みなどを記録しているため、再設定しない限り以前と同じ状態に戻せない。ということで、Firefox 3 をうかつに起動してしまうと、このサイトの主題(やっても〜ター)となることは間違いないのだ。

元のファイルからデータを読み込み新規生成

places.sqlite はちょっとややこしいが、以前の history.dat と bookmarks.html を読み込んで作られるようだ。この際、元ファイルの一つ history.dat は削除されるが bookmarks.html は残留する。ちなみにFirefox 3 で起動している間 bookmarks.html は一切更新されない(というか、使われていない)。

bookmarkbackups フォルダのバックアップファイル bookmarks-(Date).json は places.sqlite から生成される。
downloads.rdf は downloads.sqlite へ、formhistory.dat は formhistory.sqlite へと、それぞれ変換される。downloads.rdf と formhistory.dat は Firefox 3.0 の新規プロファイルでは存在しないので、変換後は削除しても問題はないと思うが(実際削除しても不具合はなさそうだ)、bookmarks-(Date).html はブックマークを Import する際に読み込めるので、残しておくと良いだろう。

なお、この変換は最初の起動時に一回のみ行われ、新しいファイルができ上がると、それ以降は再読み込みができないので注意すること。

継承して内容を更新するファイル

これらは移行した元ファイルを利用し、起動時に内容を更新しているファイルを指す。ファイル自体は新しく生成されていないので、旧環境のデータを再利用していると思われる。
いっそ更新ファイルを新規ファイルに置き換えれば良いと思うのだが、どう何だろう。

Firefox 3 から使われるようになったファイル

Firefox 2.x には無かったファイル。その殆どは SQLite ファイルで、Firefox 3 での変更を垣間見ることができる。
なお、signons3.txt は記憶したパスワードに関するファイルだが、旧環境でパスワード設定を行っている場合は signons2.txt から引き継がれる。その場合でも signons2.txt は居座り続けるので、なぜ変換後に削除しないのかは疑問だったが、ファイル破損等でトラブルが起きた場合は、元ファイルから復活させることが可能なようだ。

継承して起動時に新規生成される

旧環境ファイルの内容を継承し、且つ起動時に新規ファイルとして生成するものがこれら。
だったら上のファイルも新規生成すれば良いではないかと思うが、これら起動時に新規ファイルに変わるものは通常の起動でも新規ファイルに置き換わるので、こういった結果になるのではないかと思う(ちょっと自信はないが)

必要ないと思われるファイル

Firefox 3 に移行した後では必要ないのではないかと思われるファイル。更新後の変化を見ていると、bookmarks.bak は利用していないように思うし、serch.rdf は全く利用されていない。第一 Firefox 3 のデフォルトプロファイルには存在しないファイルなのだから、変換後は削除されても良いと思うのだが。

そのまま引き継がれているもの

extensions のアドオンは、互換性チェックではじかれてもそのまま残る。これは必要がなければアドオンマネージャやプロファイルマネージャで削除するか、構成が分かっている場合は手動で削除する。ただし、最初に書いたようにセッティングファイルが extensions 以外に置かれるアドオンや設定を prefs.js に書き込むものは手動で削除やリセットする必要がある。
serch plugins は互換性チェックが行なわれないので、問題がある場合は手動で対処しなくてはいけない。

設定ファイルを後から読み込ませる

パスワード

パスワードに関係するファイルは key3.db , signons2.txt の2ファイル。
Firefox はサイトのログインパスワードを記憶するが、それらの情報にアクセスするたのマスターパスワードを設定できる。マスターパスワードを設定した場合、記憶したサイトにログインすることはもちろん、記録紙パスワードを確認する際にもマスターパスワードを要求される。マスターパスワードを設定しないでログインパスワードを記憶している場合は、起動中の Firefox からは誰でもそのサイトにアクセスできるわけだから、マスターパスワードを設定しないでログインパスワードを記憶しているような人はいないと思うが。(もしマスターパスワードを併用していないければ、直ぐにマスターパスワードを設定しなさい)

まず signons2.txt のみコピーして起動してみる。結果はパスワードを読み込むことはできない。
次に key3.db を追加コピーして起動してみる。これも読み込まれていない。
通常、上記2つのファイルをコピーすればパスワードを引き継ぐことができるのだが、無理なようだ。

そこで signons3.txt を削除してから起動してみる。結果はログインパスワードは引き継ぐことができた。しかしマスターパスワードは引き継がれない。これは後から読み込ませようとしてもできない設計なのだろうか。まぁ、マスターパスワードは設定すればよいだけなので、実害はないが。

これはこういった理由だ。先にも書いたが、Firefox 3 でプロファイルを引き継ぎ起動した際に新しいファイルに変換されるものがあり、パスワードを記録している signons2.txt もその一つ。そのため、既に signons3.txt ができ上がっている状態では signons2.txt を変換しない。
ということで、一旦 Firefox 3 で起動したプロファイルに Firefox 2.x のパスワードを読み込ませたい場合は、次の手順で行うと良い。プロファイルから signons3.txt を削除する。Firefox 2.x のプロファイルから signons2.txt と key3.db をコピーする。Firefox 3 を起動して、環境設定のセキュリティでパスワードを読み込んでいるかを確認。マスターパスワードを設定する。
なお、signons3.txt が生成されても signons2.txt は消去されない。なので、もしパスワードに問題が発生した場合は signons3.txt を削除してから起動しなおすと読み込むことができるわけだ。

ブックマーク

ブックマークは引き継ぎで起動した場合は正常に読み込まれるが、後からインポートする場合はいくつかの注意点がある。

ブックマークのインポートはメニューのブックマークから「ブックマークの管理...」で行う。
Startup process 2
管理ウィンドウで[インポートとバックアップ]タブをプルダウンし、〈インポート...〉で bookmarks.html を指定する。指定するのは bookmarkbackups の bookmarks-(日付).html でも構わないし、Safari のブックマークも正常に読み込むことができる。ただし、インポートしたブックマークは “ブックマークメニュー” の中に集められるため、ブックマークツールバーの内容は反映されないので、手動で移動させなくてはいけない。
このメニューには[復元]もあるが、これを使って復元できるのは .jason のみ。つまり bookmarkbackups 内のバックアップファイルかバックアップで書き出した .jason に限定される(HTML も指定できるが、読み込まれない)
復元の場合は、ブックマークツールバーとブックマークメニューが正しく読み込まれる。

そこで、後からブックマークを読み込み、且つブックマークツールバーとブックマークメニューの状態を保つ方法はこうだ。
Firefox を一旦終了する。そしてプロファイルフォルダより places.sqlitebookmarks-(日付).jsonbookmarks.htmlをゴミ箱に移動する。
Firefox 2.x の bookmarks.html (bookmarks-(日付).html を使う場合はを bookmarks.html と改名しておくこと)をプロファイルフォルダにコピーしてから Firefox 3 を起動する。すると新たに places.sqlite が生成される。
一つだけ注意するとしたら、ブックマークツールバーの中には、なぜかスマートブックマークが2つでき上がってしまうので、下段の方を削除する。

ということで、ブックマークに関しても引き継ぎを行った後に bookmarks.html が残っていれば、手動で復元する際に利用できるわけだ。

まとめ

Firefox 2.x のプロファイルを引き継ぎ利用することは、Firefox 3 の管理方法によってかなり高いレベルで保証されているように思うが、問題が起きるかどうかは使用していた環境によるところが大きいと思う。とにかく不確定な部分であるアドオンの互換性と設定や about:cofig で行った設定には気をつけた方が良い。
リスクを避けて安定した状態で Firefox 3 を利用したいと思うなら、できる限り新規プロファイルでの利用を考えるべきだと思う。Firefox に限らず、OS のメジャーアップデートでも同様だが、不具合は互換性のないファイルや設定によって引き起こされることは既知の事実なのだから。

▲ Back to Top