Hatena::Groupmoz-addon

hogezilla RSSフィード

当ページに書かれているコードは、修正BSDライセンスのもと、再頒布して頂いて構いません。

 | 

2011-10-12

擬似Chrome URLのプロトコルハンドラーを作成してXULを開けるようにする

| 01:46 | はてなブックマーク - 擬似Chrome URLのプロトコルハンドラーを作成してXULを開けるようにする - hogezilla

JetPackというかリスタートレスなアドオンを作成しようとすると、困ったことにシステム権限を持ったURLが無いのでXULが開けなかったりする。

と大変な苦労をするはめになるわけだ。

んで、「Firefoxのバグ、9分おきにフリーズする件」で対策アドオンとして登場するPlaces Maintenance :: Add-ons for Firefoxのソースを覗いていて、妙なことをしていることに気付いた。

このアドオン、install.rdf

<r:RDF ....>
  <!-- 省略 -->
  <optionsURL>bonardonet://places-maintenance/content/options.xul</optionsURL>
</r:RDF>

なーんて、妙なプロトコルダイアログを開けるようにしているんだよね。ソースをよく読んでみると、プロトコルハンドラを独自に定義している。

コレは凄い!

ということで、そのソースをほぼまるコピでプロトコルハンドラを登録するスクリプトを作ってみた。

pseudo-chrome://ルートとなるディレクトリまたはjarファイルからの相対パスopenDialogができるようになる。

たぶん、肝は

  • system_pricipal部分
  • newChannelメソッドで、ch.owner = this.system_pricipal

としているところ。

あ、一応ライセンスは元ファイルと同じく MPL 1.1/GPL 2.0/LGPL 2.1 でお願いします。

トラックバック - http://moz-addon.g.hatena.ne.jp/teramako/20111012
 |