Firefox addon 如何使用安全浏览应用程序对象确定url是报告为钓鱼网站还是报告为恶意软件网站?

Firefox addon 如何使用安全浏览应用程序对象确定url是报告为钓鱼网站还是报告为恶意软件网站?,firefox-addon,dataprovider,malware,phishing,safe-browsing,Firefox Addon,Dataprovider,Malware,Phishing,Safe Browsing,下面是代码片段: Components.classes['@mozilla.org/safebrowsing/application;1'] .getService().wrappedJSObject.malwareWarden.listManager_ .safeLookup(test_url, function(tableName){ if (tableName == 'goog-phish-shavar' || tableNmae == 'goog-malw

下面是代码片段:

Components.classes['@mozilla.org/safebrowsing/application;1']
    .getService().wrappedJSObject.malwareWarden.listManager_
    .safeLookup(test_url, function(tableName){
        if (tableName == 'goog-phish-shavar' || tableNmae == 'goog-malware-shavar') {
            alert('This is reported by Google! ');
        };
});
它工作得很好,但我不认为这是“正确”的方式


如果用户更改数据提供程序怎么办?

使用wrappedJSObject访问XPCOM对象的任何方法或属性是一个有待解决的问题。通过wrappedJSObject访问的任何内容都被视为“私有”数据和方法,在未来的版本中可能会被破坏。尽量避免

好消息是,“listManager”本身就是一个全球XPCOM服务。直接使用以下工具访问:

var Cc = Components.classes; var Ci = Components.interfaces; var listManager = Cc["@mozilla.org/url-classifier/listmanager;1"].getService(Ci.nsIUrlListManager); var Cc=组件.class; var Ci=组件。接口; var listManager=Cc[“@mozilla.org/url-classifier/listManager;1”].getService(Ci.nsiurlistmanager); 至于更改数据提供程序,需要对Firefox进行大量的代码更改才能实现。如果是这样,我们也希望向XPCOM添加一些管理方法。

代码参考: