Brunch マルチアプリケーション対応:一筋縄ではいかない
Brunch の
マルチアプリケーション(
Thunderbird /
SeaMonkey )対応を時間を見て調べつつ、
ちょこちょこ手をつけていますが、思いの外手こずっています。
少なくとも .xpi ファイルの中の install.rdf をいじるだけで対応などと言う 甘い代物ではなかったです orz
まずは chrome.manifest 。
おおざっぱに言うと、 Firefox の ユーザインターフェイスは XUL(XML User Interface Language) で記述されていて、 Firefox の カスタマイズはこれを上書きすることで実現されます。 この chrome.manifest には、どの XUL でどの XUL を上書きするかなどを記述することができます。
たとえば Brunch (v0.12) の場合、
しかし、これは Firefox の インターフェイスを書き換えるときの記述で、 SeaMonkey の場合は
# SeaMonkey でも install.rdf と chorome.manifest を書き換えただけでは動きませんでしたし…
どうもマルチアプリケーション対応はそんなに甘っちょろいものではないようです。
ドキュメントまとめも含めて、ちょっと本腰入れてやらなければ…それには時間が… う~んジレンマ orz
どこかによいドキュメントはないものか…
少なくとも .xpi ファイルの中の install.rdf をいじるだけで対応などと言う 甘い代物ではなかったです orz
まずは chrome.manifest 。
おおざっぱに言うと、 Firefox の ユーザインターフェイスは XUL(XML User Interface Language) で記述されていて、 Firefox の カスタマイズはこれを上書きすることで実現されます。 この chrome.manifest には、どの XUL でどの XUL を上書きするかなどを記述することができます。
たとえば Brunch (v0.12) の場合、
content brunch jar:chrome/brunch.jar!/content/ overlay chrome://browser/content/browser.xul chrome://brunch/content/brunchOverlay.xul locale brunch en-US jar:chrome/brunch.jar!/locale/en-US/ locale brunch en-US jar:chrome/brunch.jar!/locale/ja-JP/と言う風に記載されていて、 overlay 行が上書きを指定している記述です。
しかし、これは Firefox の インターフェイスを書き換えるときの記述で、 SeaMonkey の場合は
overlay chrome://navigator/content/navigator.xul chrome://brunch/content/brunchOverlay.xulとすればよいのではないかと思うのですが、 Thunderbird は どの XUL を上書きすればいいか、ちょっと調べたくらいではわかりませんでした。
# SeaMonkey でも install.rdf と chorome.manifest を書き換えただけでは動きませんでしたし…
どうもマルチアプリケーション対応はそんなに甘っちょろいものではないようです。
ドキュメントまとめも含めて、ちょっと本腰入れてやらなければ…それには時間が… う~んジレンマ orz
どこかによいドキュメントはないものか…
Mozilla プロダクトの UUID
今頃になって、自分が
Brunch を
作ったときに、
ほとんどドキュメントを残していないことに気がつきました。
直らない悪い癖ですが、自分で使っていて Brunch が 意外に便利なので、これが Thunderbird でも 使えればなお便利、 ついでに SeaMonkey でも使えるようにしてしまおうと 思っていて、誰にせかされるわけではないので、この機会に Brunch の ドキュメントというか、Mozilla プロダクトの開発メモを ここ に残していこうと思う次第。
# 次のメジャーバージョンで拡張機能の作りが変わるという話は置いといて。。。
まずは install.rdf に記述する UUID の話。
Firefox に 代表される Mozilla プロダクト群 (こういう呼称がよいかどうかは不明)の拡張機能は .xpi と言う拡張子を持つファイルで配布されますが、 これは規定のフォルダ構造を持つファイルの集まりを ZIP で圧縮したもの。
# 個人的に最後の圧縮作業は Explzh を 利用させてもらってます。
この .xpi ファイルの中には install.rdf というファイルがあって、 ここに拡張機能のインストールに必要な情報がまとめて記載されています。
その記載の中に、この拡張機能がどのアプリケーションをターゲットにしているか (つまりどのアプリケーション向けの拡張機能か)を記載している部分があります。 そこには Firefox とかいう文字列がもろに記載されているのではなく、UUID というアプリケーションを 示す識別子で記載します。 たとえば Brunch ならこんな感じになっています
ひとまず Thunderbird ( 2.0 ~ 3.0 )の場合は、
この記述をどういう風に加えればいいかをよく調べてから、一度、 Thunderbird で 試してみるのかな?
# SeaMonkey は今のままでもすぐ動きそうですし。。。
直らない悪い癖ですが、自分で使っていて Brunch が 意外に便利なので、これが Thunderbird でも 使えればなお便利、 ついでに SeaMonkey でも使えるようにしてしまおうと 思っていて、誰にせかされるわけではないので、この機会に Brunch の ドキュメントというか、Mozilla プロダクトの開発メモを ここ に残していこうと思う次第。
# 次のメジャーバージョンで拡張機能の作りが変わるという話は置いといて。。。
まずは install.rdf に記述する UUID の話。
Firefox に 代表される Mozilla プロダクト群 (こういう呼称がよいかどうかは不明)の拡張機能は .xpi と言う拡張子を持つファイルで配布されますが、 これは規定のフォルダ構造を持つファイルの集まりを ZIP で圧縮したもの。
# 個人的に最後の圧縮作業は Explzh を 利用させてもらってます。
この .xpi ファイルの中には install.rdf というファイルがあって、 ここに拡張機能のインストールに必要な情報がまとめて記載されています。
その記載の中に、この拡張機能がどのアプリケーションをターゲットにしているか (つまりどのアプリケーション向けの拡張機能か)を記載している部分があります。 そこには Firefox とかいう文字列がもろに記載されているのではなく、UUID というアプリケーションを 示す識別子で記載します。 たとえば Brunch ならこんな感じになっています
<?xml version="1.0"?>
<RDF xmlns="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:em="http://www.mozilla.org/2004/em-rdf#">
<Description about="urn:mozilla:install-manifest">
<em:id>brunch@ellinikonblue.com</em:id>
<em:type>2</em:type>
<em:name>Brunch</em:name>
<em:version>0.12</em:version>
<em:description>Browser Luncher Extention.</em:description>
<em:creator>Kazuhiro KAWANISHI@ellinikonblue.com</em:creator>
<em:developer>Kazuhiro KAWANISHI</em:developer>
<em:homepageURL>http://www.ellinikonblue.net/devlosxom/</em:homepageURL>
<em:optionsURL>chrome://brunch/content/brunchOption.xul</em:optionsURL>
<em:targetApplication>
<Description>
<em:id>{ec8030f7-c20a-464f-9b0e-13a3a9e97384}</em:id>
<em:minVersion>2.0</em:minVersion>
<em:maxVersion>3.6.*</em:maxVersion>
</Description>
</em:targetApplication>
</Description>
</RDF>
タグ em:targetApplication の中にあるタグ Description が
この拡張機能が
Firefox 向けで
対象バージョンが 2.0 ~ 3.6.x までという意味の記載になります。ひとまず Thunderbird ( 2.0 ~ 3.0 )の場合は、
<em:targetApplication>
<Description>
<em:id>{3550f703-e582-4d05-9a08-453d09bdfdc6}</em:id>
<em:minVersion>2.0.0</em:minVersion>
<em:maxVersion>3.0.*</em:maxVersion>
</Description>
</em:targetApplication>
SeaMonkey なら
<em:targetApplication>
<Description>
<em:id>{92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a}</em:id>
<em:minVersion>2.0</em:minVersion>
<em:maxVersion>2.0.*</em:maxVersion>
</Description>
</em:targetApplication>
と言うことのようなんですが、はてさてこの UUID っていったいなんじゃらほい?
というのはよく知らず。この記述をどういう風に加えればいいかをよく調べてから、一度、 Thunderbird で 試してみるのかな?
# SeaMonkey は今のままでもすぐ動きそうですし。。。
Brunch v0.12: Firefox 3.6 対応版
Firefox 3.6 が
リリースされました ので、
一応、Portable Editon に組み込んでテストしてみた結果、
特に不具合は見受けられなかったので、リリースします。
install.rdf を修正しただけです。 よろしかったら、お使いください。
更新履歴
「 PortableApps.com 、 USB メモリで持ち運べる『 Firefox 3.6 』のポータブル版を公開」
(以上、 窓の杜 より)
install.rdf を修正しただけです。 よろしかったら、お使いください。
更新履歴
- v0.12
- Firefox 3.6 対応
- v0.11
- Firefox 3.5 対応
- v0.1
- コンテキストメニュー呼び出し本格対応版
- v0.0.1
- Firefox 3 対応初版
- コンテキストメニューから機能呼び出し可能に
- v0.0
- 初版公開
「 PortableApps.com 、 USB メモリで持ち運べる『 Firefox 3.6 』のポータブル版を公開」
(以上、 窓の杜 より)
Brunch v0.11: Firefox v3.5 対応テスト版
ここんところ、ほんと久々に家でゆっくりできる時間があったので、
先般、
公開された
Firefox
v3.1 beta3 で、
Brunch を
動かすテストしてみました。
install.rdf を書き換えるだけで問題なく動作しました(ように見えました)ので、 とりあえず v0.11 としてさらしてみます。
プログラム的にはまったく手を入れてませんので、ひとまずテスト版と言うことにしておきます。 これから個人的に使っている環境でも試しますが、 万が一、不具合等お気づきになり、お知らせいただければ、 Firefox v3.5 リリースまでには善処したいと思います。
# 特に問題なければ、このまま v3.5 対応版とすることになるでしょう。。。 ## プログラム的に変更がないので、プログラムの変更履歴は こちら 参照。
install.rdf を書き換えるだけで問題なく動作しました(ように見えました)ので、 とりあえず v0.11 としてさらしてみます。
プログラム的にはまったく手を入れてませんので、ひとまずテスト版と言うことにしておきます。 これから個人的に使っている環境でも試しますが、 万が一、不具合等お気づきになり、お知らせいただければ、 Firefox v3.5 リリースまでには善処したいと思います。
# 特に問題なければ、このまま v3.5 対応版とすることになるでしょう。。。 ## プログラム的に変更がないので、プログラムの変更履歴は こちら 参照。
Brunch v0.1
前回公開したバージョン は、
あまりにもやっつけな対応なので本腰入れて対応しました。
コンテキストメニューから、 「他のブラウザでこのページを開く」以外にも、 「他のブラウザでこのリンクを開く」にも対応しました。
これでこの拡張機能を作ってまでやりたかったことはできるようになり、 自分で使っても非常に便利だと思えるところまで機能も作り込めたので、 これで一段落かと思いまして、ひとまず こちら で公開します。 自分でもさらにいろんなところで使ってみて、問題なければ、 あっち でも 公開の告知をしようと思います。 更新履歴
hail2u.net 「 Firefox: gContextMenu 」
今後の予定
コンテキストメニューから、 「他のブラウザでこのページを開く」以外にも、 「他のブラウザでこのリンクを開く」にも対応しました。
これでこの拡張機能を作ってまでやりたかったことはできるようになり、 自分で使っても非常に便利だと思えるところまで機能も作り込めたので、 これで一段落かと思いまして、ひとまず こちら で公開します。 自分でもさらにいろんなところで使ってみて、問題なければ、 あっち でも 公開の告知をしようと思います。 更新履歴
- v0.1
- コンテキストメニュー呼び出し本格対応版
- v0.0.1
- Firefox 3 対応初版
- コンテキストメニューから機能呼び出し可能に
- v0.0
- 初版公開
hail2u.net 「 Firefox: gContextMenu 」
今後の予定
- 誰かアイコンを考えてくれるとうれしいです (^^;>
Brunch v0.0.1: Firefox 3 対応版
当方オリジナル(?)
Firefox 拡張機能
Brunch の v0.0.1 を公開しました。
ひとまず リリースされた Firefox 3 への 対応と、自分で使っていて不便だったので、 コンテキストメニューからも機能が使えるようにしてあります。
ところがこのコンテキストメニュー対応がアドホックもいいところの対応で、 今後時間を見てまじめに対応しますと言うことで、 バージョンはほんのちょっと上げて v0.0.1 と言うことで。
毎度同じことを言いますが、このしょぼいバージョン番号の意味を よくよく考えて利用する方は利用するようにしてください。 更新履歴
拡張機能開発超初心者が作った代物を果敢に使っていただいてご報告をいただいた 「徒然なるままに」 さんちの ippo さんの勇気に感謝 (^^;>
ひとまず リリースされた Firefox 3 への 対応と、自分で使っていて不便だったので、 コンテキストメニューからも機能が使えるようにしてあります。
ところがこのコンテキストメニュー対応がアドホックもいいところの対応で、 今後時間を見てまじめに対応しますと言うことで、 バージョンはほんのちょっと上げて v0.0.1 と言うことで。
毎度同じことを言いますが、このしょぼいバージョン番号の意味を よくよく考えて利用する方は利用するようにしてください。 更新履歴
- v0.0.1
- Firefox 3 対応初版
- コンテキストメニューから機能呼び出し可能に
- v0.0
- 初版公開
- 「このリンクを他のブラウザで開く」などの起動方法追加など、 コンテキストメニューからの呼び出し機能を充実させる
- できればアイコン追加
- 他にあれば考えるが基本シンプルに重装備になりすぎないよう注意する
拡張機能開発超初心者が作った代物を果敢に使っていただいてご報告をいただいた 「徒然なるままに」 さんちの ippo さんの勇気に感謝 (^^;>
Make Link v8.06
Firefox 拡張機能:brunch
お勉強の成果出ました! (^^)/
以前から、Firefox の 拡張機能として 「今見てるページを別のブラウザで開くことができる拡張機能があればなぁ」 と思って、探したあげく超オーバースペックな Launchy 以外は 見つけられなかったので、とちくるって自分で作りました。
Firefox から 「枝分かれする」ってことで branch …ってあまりにもストレートなので、 ひねって「 brunch 」(少し遅めのリッチな朝ご飯の意)と名付けました。
一応、以下の最低限の機能はインプリメントしてエラーを吐くこともなくなったので、 「できました!」と言ってみることにしました。
# まだ v3 では試してませんので、インストールもできなくしてあります。
Firefox 拡張機能開発超初心者が最初に作ったデビュー作です。 使いたいと言う奇特な方は、v0.0 と言う意味を十分にご理解の上、 覚悟してお使いください (^^;> # 一度ダウンロードしてから「アドオン」のダイアログにドラッグ・アンド・ドロップするなどして、 手動でインストールしてください。
以前から、Firefox の 拡張機能として 「今見てるページを別のブラウザで開くことができる拡張機能があればなぁ」 と思って、探したあげく超オーバースペックな Launchy 以外は 見つけられなかったので、とちくるって自分で作りました。
Firefox から 「枝分かれする」ってことで branch …ってあまりにもストレートなので、 ひねって「 brunch 」(少し遅めのリッチな朝ご飯の意)と名付けました。
一応、以下の最低限の機能はインプリメントしてエラーを吐くこともなくなったので、 「できました!」と言ってみることにしました。
- 設定でブラウザアプリケーションの名前(自由設定)と パスを設定する(三つまで)
- あとは別のブラウザで開きたいページを Firefox で開いた状態で、 [ ツール ] -> [ 他のブラウザで開く ]
# まだ v3 では試してませんので、インストールもできなくしてあります。
Firefox 拡張機能開発超初心者が最初に作ったデビュー作です。 使いたいと言う奇特な方は、v0.0 と言う意味を十分にご理解の上、 覚悟してお使いください (^^;> # 一度ダウンロードしてから「アドオン」のダイアログにドラッグ・アンド・ドロップするなどして、 手動でインストールしてください。

