Возможности плагина для Firefox - PullRequest
1 голос
/ 02 июня 2011

Мне интересно, какова функциональность, которую могут предоставить дополнения / плагины в Firefox.Например, можем ли мы изменить способ чтения и записи Firefox в свою базу данных Sqlite?

Я рассматриваю проект, в котором мы зашифруем содержимое этой базы данных при записи в нее и расшифруем ее при чтении из нее.Было бы здорово, если бы мы могли сделать это с помощью плагина или дополнения.Кто-нибудь знает, возможно ли это или нет?

1 Ответ

0 голосов
/ 02 июня 2011

Вы можете создать новую 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);

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...