You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
97 lines
2.1 KiB
97 lines
2.1 KiB
/**
|
|
* Firefox adapter
|
|
*/
|
|
|
|
(function() {
|
|
if ( wappalyzer == null ) return;
|
|
|
|
var w = wappalyzer;
|
|
|
|
w.adapter = {
|
|
/**
|
|
* Log messages to console
|
|
*/
|
|
log: function(args) {
|
|
var consoleService = Components.classes["@mozilla.org/consoleservice;1"].getService(Components.interfaces.nsIConsoleService);
|
|
|
|
consoleService.logStringMessage(args.message);
|
|
},
|
|
|
|
/**
|
|
* Initialize
|
|
*/
|
|
init: function(callback) {
|
|
var handler = function() {
|
|
window.removeEventListener('load', handler, false);
|
|
|
|
w.log('w.adapter: browser window loaded');
|
|
|
|
// Listen for tab events
|
|
gBrowser.addTabsProgressListener({
|
|
/*
|
|
onLocationChange: function(progress, request, location, flags) {
|
|
w.log('tab location change: ' + location.URI.spec);
|
|
|
|
w.adapter('displayApps', { url: location.URI.spec });
|
|
}
|
|
*/
|
|
|
|
/*
|
|
onStateChange: function(browser, progress, request, flags, status) {
|
|
if ( (flag & Components.interfaces.nsIWebProgressListener.STATE_STOP) ) {
|
|
// Some operations including the DOM parsing here
|
|
}
|
|
}
|
|
*/
|
|
});
|
|
|
|
// Listen for messages from content script
|
|
messageManager.addMessageListener('wappalyzer', content);
|
|
|
|
// Load content script
|
|
messageManager.loadFrameScript('chrome://wappalyzer/content/js/content.js', true);
|
|
|
|
// Get version number
|
|
Components.utils.import('resource://gre/modules/AddonManager.jsm');
|
|
|
|
AddonManager.getAddonByID('wappalyzer@crunchlabz.com', function(extension) {
|
|
w.version = extension.version;
|
|
|
|
callback();
|
|
});
|
|
};
|
|
|
|
window.addEventListener('load', handler, false);
|
|
},
|
|
|
|
/**
|
|
* Display apps
|
|
*/
|
|
displayApps: function(args) {
|
|
var browser = gBrowser.getBrowserForTab(gBrowser.selectedTab);
|
|
|
|
url = browser.currentURI.spec;
|
|
},
|
|
|
|
/**
|
|
* Go to URL
|
|
*/
|
|
goToURL: function(args) {
|
|
gBrowser.addTab(args.url);
|
|
}
|
|
};
|
|
|
|
/**
|
|
* Content message listener
|
|
*/
|
|
function content(msg) {
|
|
w.log('content.js');
|
|
|
|
w.analyze(msg.json.hostname, msg.json.url, { html: msg.json.html, env: msg.json.env });
|
|
|
|
delete msg;
|
|
}
|
|
|
|
w.init();
|
|
})();
|