Hatena::Groupmoz-addon

Ci.nsIZIGOROu

2007-12-23俺様が31歳になりました

em:requiresを使った依存関係の記述と挙動について

| 01:57 |  em:requiresを使った依存関係の記述と挙動について - Ci.nsIZIGOROu を含むブックマーク はてなブックマーク -  em:requiresを使った依存関係の記述と挙動について - Ci.nsIZIGOROu

今日で31歳になったid:ZIGOROuです。

皆さん、クリスマスリア充でしょうか。

(中略)

Mozillaのextensionはinstall.rdf中で以下のような記述によって、他のextensionへの依存関係を指定する事が出来ます。

<em:requires>
  <Description>
    <em:id>foobar@art-code.org</em:id>
    <em:minVersion>1.0</em:minVersion>
    <em:maxVersion>1.0.*</em:maxVersion>
  </Description>
</em:requires>

以前のMozilla拡張勉強会の3次会にてPiroたんに質問した時に教えて貰ったんだけど、挙動に関しては知りませんでした。

今回激しく寝坊して全然プレゼン聞けなかった第8回Mozilla拡張勉強会二次会にて、d:id:takenspcさん*1に聞いてみたんだけど、「試してみるしかないのでは?」と言われたので、えいやと調べてみました。><

何はともあれ二つ拡張を用意する

em:id, em:nameはそれぞれ、

em:id em:name
foobar@art-code.org FooBar
barbaz@art-code.org BarBaz

とした。em:requiresは前述の通りなんだけど、一応全部晒すと、

<?xml version="1.0" encoding="UTF-8"?>
<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>barbaz@art-code.org</em:id>
    <em:name>BarBaz</em:name>
    <em:version>1.0.1</em:version>
    <em:creator>Toru Yamaguchi</em:creator>
    <em:targetApplication>
      <Description>
        <em:id>{ec8030f7-c20a-464f-9b0e-13a3a9e97384}</em:id> <!-- firefox -->
        <em:minVersion>1.5</em:minVersion>
        <em:maxVersion>2.0.0.*</em:maxVersion>
      </Description>
    </em:targetApplication>
    <em:requires>
      <Description>
        <em:id>foobar@art-code.org</em:id>
        <em:minVersion>1.0</em:minVersion>
        <em:maxVersion>1.0.*</em:maxVersion>
      </Description>
    </em:requires>
  </Description>
</RDF>

みたいな感じ。

実験方法

新しくプロファイルを作って以下の手順でどのようになるか。

  1. BarBazをインストール (依存しているFooBarが無い場合どうなるか)
  2. FooBarをインストール (きちんと使えるのか)
  3. FooBarをアンインストール (FooBarに依存しているBarBazの扱いがどうなるのか)

結果

BarBazをインストール

f:id:ZIGOROu:20071224014013p:image

こんな風にアドオンマネージャで怒られる。

但しアドオンマネージャからは何の拡張依存しているかまでは何も教えてくれない。

とにかくBarBaz使えない状態。

FooBarをインストール

f:id:ZIGOROu:20071224014012p:image

画面キャプチャーは有効後に敢えてFooBarを削除しようと試みている状態です。

とにかくFooBar, BarBaz供に仕える状態になっています。

FooBarをアンインストール

f:id:ZIGOROu:20071224014011p:image

と言う訳でBarBazは無効になります。

この辺りはきちんと出来てるみたいです。

まとめ

参考

ku0522ku05222007/12/25 18:40seleniumIDEを作っているShinya KasataniさんはXULまわりかなり詳しそうですよ。

ZIGOROuZIGOROu2007/12/25 19:41> id:ku0522さん
おお、情報ありがとうございます。
早速探してきます。

nanto_vinanto_vi2007/12/26 01:28Mozilla Japan の中野さんの「もずはっく日記」は外せないかと。
http://www.d-toybox.com/studio/weblog/show.php

d'Arcd'Arc2007/12/26 10:47もじらあんてなの中の人です。あんてなは最近ずっとメンテせずに放ったらかしです><

ZIGOROuZIGOROu2007/12/26 14:32> nanto_viさん

ありがとうございます。追加しました。

> d'Arcさん

いやいや、昔からやってる方がむしろ上がって来ない事が多いので参考になりました。

shogo4405shogo44052007/12/27 22:39JavaScripterな人もYet Anotherで晒して欲しいと言ってみるテスト><w

ZIGOROuZIGOROu2007/12/29 05:32> d:id:shogo4405さん
いやー、JSerは大体相場が決まってるでしょーw

NephiNephi2012/01/01 10:52Intelligence and simplicity - easy to udnreastnd how you think.

xzsewmhbxzsewmhb2012/01/01 20:42caZlkp <a href="http://hxwfveigjjbu.com/">hxwfveigjjbu</a>

fdplfnjfdplfnj2012/01/03 04:14RULYwL <a href="http://myfukajsmxzt.com/">myfukajsmxzt</a>

xumaditxumadit2012/01/03 23:57GYJr4A , [url=http://vksxdmpdzmwf.com/]vksxdmpdzmwf[/url], [link=http://rlifdubrtctn.com/]rlifdubrtctn[/link], http://vidudulgeiyl.com/