いつの時代の話をしているんだ、マイコミは

なんだかなぁと思ったので書いておく。

ページの中身をDOMを使って操作 Googleの検索結果にそのページの縮小画像を付けたりできます。

【ハウツー】カスタマイズFirefox - Firefoxの拡張機能を作ろう (1) Firefox拡張の魅力 | パソコン | マイコミジャーナル

出来るんだけどさ、それってGreasemonkeyでもできない事はないと思う。ごめんなさい、通常のWebページからでは出来ませんでした。拡張機能の説明としてWebページに対して動作を与えられる例より、アプリケーション(Firefox)自体をカスタマイズできる例を挙げた方が良いと思う。例えば、ツールバーにメニューを追加できるとか

親切な「拡張機能開発用統合開発ツール」などというものはありません。

【ハウツー】カスタマイズFirefox - Firefoxの拡張機能を作ろう (2) 作ってみよう | パソコン | マイコミジャーナル

いや、幾つか存在している。

などがEclipseプラグインとして配布されている。

install.rdfの内容

012:    <em:file>
013:      <Description about="urn:mozilla:extension:file:sample001.jar">
014:        <em:package>content/</em:package>
015:      </Description>
016:    </em:file>
【ハウツー】カスタマイズFirefox - Firefoxの拡張機能を作ろう (2) 作ってみよう | パソコン | マイコミジャーナル - install.rdf

これは既に古い書き方である。Install Manifests - MDCに書かれているようにFirefox 3からは使えなくなる。これから学ぼうって人に対してこの記述はよろしくない。

GUIDについて

GUID(Global Unique Identity:同じ値が2つ無いユニークな値)に従ったランダムな数を付けてください。

"【ハウツー】カスタマイズFirefox - Firefoxの拡張機能を作ろう (2) 作ってみよう | パソコン | マイコミジャーナル

あまりに簡潔。Generating GUIDs - MDCへのリンクとか、せめてGUID生成ツールの紹介くらいはした方が良いのではないかと思う。
また、以下の引用のように必ずしもこのランダム意味不明なidでなくても良い事も記述した方が良いだろう。

アドオンの id :

  • Firefox 1.0: GUID (Windowsは guidgen で生成/ Unixは uuidgen で生成)
  • Firefox 1.5 以降: extensionname@organization.tld のようなフォーマット

後者のidは作りやすく、扱いやすいです。Firefox 1.5はidが正しいかを判定し、不正なid(フォーマットに合致しないid)の場合はインストールを行いません。

<em:id>myextension@mysite.com</em:id>
<em:id>{daf44bf7-a45e-4450-979c-91cf07434c3d}</em:id>
Install Manifests - MDC

因みにGenerating GUIDs - MDCでは、Firefox 1.5 からは、アドオンでは extensionname@organization.tld 形式の ID で識別することができます(また、そうするべきです)。と推奨している

20行目、21行目には対応するFirefoxのバージョンを指定します。3.0に対応させるにはmaxversionを「2.0+」から「3.0+」にします。

【ハウツー】カスタマイズFirefox - Firefoxの拡張機能を作ろう (2) 作ってみよう | パソコン | マイコミジャーナル

本当にそれだけで大丈夫? 後述するけどcontents.rdfなんて作っておいて何だか怪しい。

contents.rdfについて

以下の引用のように互換性維持のためにあるファイルである。正式にはchrome.manifestファイルに書くべき。

古い contents.rdf 形式のマニフェスト

プレインテキスト形式のマニフェストの導入 (Firefox 1.5 と Toolkit 1.8 で実施) より前には、"contents.rdf" という名称の RDF によるマニフェストchrome の登録のために使用されていました。この形式は非推奨です。しかしながら、Mozilla スイート (SeaMonkey) は、プレインテキスト形式のマニフェストをまだサポートしていないため、Firefox 1.0 に対する後方互換性の維持や、Mozilla スイート への対応が必要な拡張機能では、contents.rdf マニフェストが必要になります。

Chrome Registration - MDC - 古い contents.rdf 形式のマニフェスト

全体的に筆者の知識は古いものであると推測される。どんどん仕組みを変更するMozilla側も悪いかもしれないが、もう少し調べてから記事を書いて欲しい