2007/11/28

Windows版Google Gearsの変則使用

Windows版のGoogle GearsはMac版やLinux版とインストール方法が異なります。ダウンロードしてくるファイル自体が、例えばMac版などでは"gears-osx-opt.xpi"など、XPIファイルなのに対して、Windows版は.exeのインストーラです。これはIEでも使えるようにするための措置だと思うのですが、Profileを持ち歩くためにこんなこと(Firefoxのポータブル化、と複数Profileの多重起動)をしていると、よそのPCではGoogle Gearsが使えなくなります。

これはインストーラーによって設定されたGears本体がProfileフォルダではなく"Program Files"フォルダなどの下に入れられるためです。下記はインストーラ使用のProfileフォルダに置いてあった"extensions.ini"の抜粋です。

Extension11=C:\Program Files\Google\Google Gears\Firefox

当然Profileだけ持ち歩いても、参照先のGears本体はよそのPCのProguram Filesには入っていませんので使えません。で、どうするかというと、

  1. Windows版のXPIを作る
  2. 一度アンインストールする
  3. XPIでインストールしてみる
  4. 確認

という手順を踏んでみました。結論から言うと入れられたっぽいのですが、作業の途中途中で挙動は激しく不審です。

Windows版のXPIを作る
既にインストールしてある場合、上記のextensions.iniに書いてある様なパスに本体があるはずです。このFirefoxフォルダ以下の構成は典型的なアドオンのフォルダ構成になっているので、そのままZIPにして下さい。注意点はinstall.rdfがZIP内のトップフォルダに来るようにして下さい。フォルダごと圧縮すると同名のフォルダを中に作ってしまう設定の圧縮ソフトがありますが、中にフォルダを作ってしまうと、アドオンマネージャがinstall.rdfを見つけられない様です。圧縮したZIPファイルを"gears-winnt-opt.xpi"などのファイル名に変えておきます。多分問題なのは拡張子だけでファイル名は適当で構わないと思います。
一度アンインストールする
インストーラから入れたGoogle Gearsはアドオンマネージャからは消せません。Windowsの「プログラムの追加と削除」からアンインストールして下さい。当然他のProfileやIEでも使えなくなります。
XPIでインストールしてみる
アドオンマネージャにXPIファイルをドロップします。私の場合、一度ドロップしたらインストールが始まるものの、プログレスバーが途中で消え、Firefoxを再起動してもインストールされていませんでした。再度ドロップした所、今度は正常に完了し再起動ボタンが押せました。この辺あからさまに挙動不審です。
確認
  • アドオンマネージャに"Google Gears"の文字
  • extensions.iniの参照先が {profile folder}/extensions/{000a9d1c-beef-4f90-9363-039d445309b8}
  • extensionsフォルダの下に"{000a9d1c-beef-4f90-9363-039d445309b8}"フォルダがある。前述のProgram Filesの下にあったフォルダです。
  • 公式サイト(Google Gears (BETA))で"installed"に
  • Google Readerにダウンロードボタン
  • ダウンロードが始まる。
  • localserver.dbを覘いてみる(SQLite manager使用)

イケてるっぽいですね。でもオフラインにしてキャッシュ全部削除してReaderページ開いたら見られませんでしたorz なんか基本的な使い方が間違えていますか?Gearsの解説サイト見る限りではWebのキャッシュ消してもhtml自体がリソースストアにキャッシュされるので見れるとあったのですが。

とりあえず明日、キャッシュを消さずに他所のPCにProfileフォルダを移動して確認してみます。

以下蛇足。

  • 色々やる前にProfileのバックアップなど忘れずに
  • Windows版インストーラは"default"Profile以外のProfileフォルダをHDDから見つけ出してGearsを設定します。ちょっと怖い。
  • NotebookはアドオンのIDが"notebook@google.com"なのにGearsのIDはclsidなんですね。本腰の表れ?