在Firefox 29+中查询“下载历史记录”列表

时间:2014-05-20 02:12:23

标签: javascript firefox download firefox-addon

我需要为与Firefox 29兼容的扩展程序生成下载文件的历史记录列表。Downloads.jsm仅检索活动会话的下载列表。我需要获取所有下载文件的列表。我的意思是2周前下载的那些。

如何获取Firefox 29的下载历史记录?

1 个答案:

答案 0 :(得分:1)

您必须查询Places数据库。

var sqlstr = "SELECT title FROM moz_places WHERE id IN (SELECT place_id FROM moz_historyvisits WHERE visit_type = 7)"
var conn = PlacesUtils.history.QueryInterface(Ci.nsPIPlacesDatabase).DBConnection;
var stmt = conn.createAsyncStatement(sqlstr);

stmt.executeAsync({
  _filenames: [],
  handleResult: function(aResultSet){
    let row;
    while((row = aResultSet.getNextRow())){
      this._filenames.push(row.getResultByIndex(0));
    }
  },
  handleError: function(aError){
  },
  handleCompletion: function(aReason){
    console.log(this._filenames.join(","))
  }
});

神秘的7是Ci.nsINavHistoryService.TRANSITION_DOWNLOAD的价值。