アドオン SDK で作成された Firefox アドオンを使用して、現在のタブに HTML ドキュメントを保存したいと考えています。
私はこのようにしようとしています:
exports.main = function() {
require("widget").Widget({
id: "foo",
label: "My Test",
contentURL: "http://www.mozilla.org/favicon.ico",
onClick: function(event) {
var {Cc, Ci} = require("chrome");
var persist = Cc["@mozilla.org/embedding/browser/nsWebBrowserPersist;1"].createInstance(Ci.nsIWebBrowserPersist);
var localPath = Cc["@mozilla.org/file/local;1"].createInstance(Ci.nsILocalFile);
localPath.initWithPath("/tmp/");
var localFile = localPath.clone();
localFile.append("mylocalfile.html");
var tabs = require("tabs");
persist.saveDocument(tabs.activeTab, localFile, localPath, null, 0, 0);
}
});
};
しかし、ウィジェットをクリックすると、上記のコードで Firefox (15.0) がクラッシュします。
tabs.activeTab は nsIDOMDocument ではないのではないでしょうか? それが問題ですか?
それを機能させるにはどうすればよいですか?