extension components to get visit count in firefox

2019-01-28 08:45发布

问题:

I'd like to to know which interface can be used to get the visit count of each link in firefox's bookmarks and history for developing an extension

I've tried using nav-history-service to get the links for bookmarks and history but can't figure out how to view the visit count.

回答1:

This code here will go through the first 10 bookmark entires. If it's a url it checks its .accessCount property which holds the number of times it was visited.

var hs = Cc["@mozilla.org/browser/nav-history-service;1"].getService(Ci.nsINavHistoryService);

var query = hs.getNewQuery();
var options = hs.getNewQueryOptions();

// Query users bookmarks, not history
options.queryType = options.QUERY_TYPE_BOOKMARKS;
// Execute the search and store results
var result = hs.executeQuery(query, options);

// Open the root containerNode and open it
var resultContainerNode = result.root;
// OPEN resultContainerNode
resultContainerNode.containerOpen = true;
// Search results are now child items of this container?
for (var i = 0; i < resultContainerNode.childCount; ++i) {
    var childNode = resultContainerNode.getChild(i);
    if (childNode.type == childNode.RESULT_TYPE_URI) {
        console.log('childNode ' + i + ' is url = ', childNode)
        console.log('times visited = ', childNode.accessCount)
    }
    if (i >= 10) {
        break
    }
}

// CLOSE resultContainerNode
resultContainerNode.containerOpen = false;

gist is here: https://gist.github.com/Noitidart/9729440