ダイアログの実装 : (5) :【Firefox 拡張機能 (Extensions) の作成方法】

拡張機能を使って、現在表示している WEB ページに直接アクセスするのが目的ですが、
その処理を行うベースとしてダイアログを使用します。

一から作るのは面倒なので、オンライン雛型作成 で作成される
About ダイアログをそのまま利用します。ですから、About ダイアログとして使用されないように、
install.rdf を変更する必要があります

この変更は、再インストールが必要なので一旦 Firefox から削除してから Firefox を
再起動します。その際既にインストール済みのソースが必要な場合は、他の場所に
コピーして保存しておきます(実際に削除されてしまうので)。
↓赤い部分を削除
Firefox_dialog
install.rdf についてはこちらを参照

メニューを選択した場合にダイアログを表示するようにする
デフォルトでは、onMenuItemCommand で以下のようなコードでメッセージボックスが
表示されるようになっていますので、openDialog に変更します
    var promptService = Components.classes["@mozilla.org/embedcomp/prompt-service;1"]
                                  .getService(Components.interfaces.nsIPromptService);
    promptService.alert(window, this.strings.getString("helloMessageTitle"),
                                this.strings.getString("helloMessage"));
Firefox_dialog_2
overlay.js
var tk = {
	onLoad: function() {
		// initialization code
		this.initialized = true;
		this.strings = document.getElementById("tk-strings");
	},
	onMenuItemCommand: function(e) {
		var features = "chrome, dialog, modal, centerscreen,";
		features += "resizable=yes, width=400, height=300";
		window.openDialog(
			"chrome://tk/content/about.xul",
			"",
			features
			, null
		);
	},
};
window.addEventListener("load", function(e) { tk.onLoad(e); }, false);
openDialog の引数に関しては、window.open を参照して下さい
(window.openDialog は翻訳されていません)

画面の定義は about.xul で行われているので、ダイアログのサイズ指定を有効にする為にsizeToContent を削除します
※ window.sizeToContent は、コンテンツの大きさにウィンドウのサイズを変更します

about.xul
Firefox_dialog_3

Firefox_dialog_4