我需要为与Firefox 29兼容的扩展程序生成下载文件的历史记录列表。Downloads.jsm仅检索活动会话的下载列表。我需要获取所有下载文件的列表。我的意思是2周前下载的那些。
如何获取Firefox 29的下载历史记录?
答案 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
的价值。