我想知道附加组件/插件可以为Firefox提供的功能范围是多少。例如,我们可以编辑Firefox读取和写入其Sqlite数据库的方式吗?
我正在考虑一个项目,我们会在写入时加密该数据库的内容,并在读取时对其进行解密。如果我们可以通过使用插件或插件来实现这一点,那将会很酷。有谁知道这是否可行?
答案 0 :(得分:0)
您可以创建一个新的SQLLite DB并通过firefox插件写入它。见https://developer.mozilla.org/en/storage
我之前已经为我创建的Firebug插件做过这个。从你的插件中你可以这样做:
var file = Components.classes["@mozilla.org/file/directory_service;1"]
.getService(Components.interfaces.nsIProperties)
.get("ProfD", Components.interfaces.nsIFile);
file.append("rttplog.sqlite");
var storageService = Components.classes["@mozilla.org/storage/service;1"]
.getService(Components.interfaces.mozIStorageService);
this.mDBConn = storageService.openDatabase(file);
this.mDBConn.executeSimpleSQL("CREATE TEMP TABLE log (id INTEGER, type VARCHAR, message TEXT)");
插入:
var statement = this.mDBConn.createStatement("INSERT INTO log VALUES(:id, :type, :message)");
statement.params.id = id;
statement.params.type = type;
statement.params.message = message;
statement.execute();
选择:
var statement = this.mDBConn.createStatement("SELECT id FROM log WHERE message LIKE :query ESCAPE '/' ");
var escaped = statement.escapeStringForLIKE(query, "/");
statement.params.query = "%" + escaped + "%";
return statement.executeAsync(callback);
希望有所帮助。