我的Firefox扩展需要替换/删除Firefox配置文件中的key3.db
,有办法吗?我尝试nsIFile.copyTo()
,但文件没有被覆盖,nsIFile.remove()
,但它返回NS_ERROR_FILE_IS_LOCKED
。
不,在使用文件时替换文件不是一个好主意。相反,您应该使用XPCOM功能来操作此文件(即主密码)。像这样的东西应该起作用:
var pk11db = Components.classes["@mozilla.org/security/pk11tokendb;1"]
.getService(Components.interfaces.nsIPK11TokenDB);
var token = pk11db.getInternalKeyToken();
token.changePassword("", "foobar");
使用""
而不是"foobar"
应删除主密码。但是,我不完全确定在不查询当前密码的情况下更改主密码是否有效。Firefox Mobile可以作为一个相对简单的代码示例。