Firefox的插件功能

时间:2011-06-02 14:32:09

标签: sqlite plugins firefox-addon

我想知道附加组件/插件可以为Firefox提供的功能范围是多少。例如,我们可以编辑Firefox读取和写入其Sqlite数据库的方式吗?

我正在考虑一个项目,我们会在写入时加密该数据库的内容,并在读取时对其进行解密。如果我们可以通过使用插件或插件来实现这一点,那将会很酷。有谁知道这是否可行?

1 个答案:

答案 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);

希望有所帮助。