Firefox拡張機能作成のためのtips

Firefox拡張機能を作成する際に,意外とサンプルコードが少なくてちょっと戸惑った機能に関するメモ.
ちなみにバージョンは3.5.5

設定をabout:configに保存

FUELを利用.

var Application = Components.classes["@mozilla.org/fuel/application;1"].getService(Components.interfaces.fuelIApplication);
var value = Application.prefs.getValue("extensions.hoge.key",null); //データの取得
Application.prefs.setValue("extensions.hoge.key",value); //データの保存

複雑なデータはtoSource()などを用いて文字列化し,eval()して利用するのが簡単.
(もちろんセキュリティのチェックが必要)

JavaScriptからlocale内の文字列を扱う

.propertiesファイルを用意し,スクリプトから読み込む.

1. hoge/locale/ja-JP/hoge.properties を用意
用意する.propertiesファイルはこんな形式

HELLO=こんにちは
QUIT=終了

2. スクリプト内からhoge.propertiesを読み込み,使用したい文字列をGetStringFromNameを使用して取得

var bundle = srGetStrBundle("chrome://hoge/locale/hoge.properties");
alert(bundle.GetStringFromName("HELLO"));

実際にはもっと高機能な関数がいろいろと存在.
書式付き文字列や,引数の値によって出力を変えることなどもできる.

現在ユーザが閲覧しているアクティブなページのdocumentオブジェクトを取得

var Application = Components.classes["@mozilla.org/fuel/application;1"].getService(Components.interfaces.fuelIApplication);
var activeDocument = Application.activeWindow.activeTab.document;