|
|
|
"use strict";
|
|
|
|
|
|
|
|
(function() {
|
|
|
|
var
|
|
|
|
lastEnv = null,
|
|
|
|
prefs = {}
|
|
|
|
;
|
|
|
|
|
|
|
|
addEventListener('DOMContentLoaded', function() {
|
|
|
|
removeEventListener('DOMContentLoaded', onLoad, false);
|
|
|
|
|
|
|
|
prefs = sendSyncMessage('wappalyzer', { action: 'get prefs' })[0];
|
|
|
|
|
|
|
|
onLoad();
|
|
|
|
}, false);
|
|
|
|
|
|
|
|
function onLoad() {
|
|
|
|
if ( content.document.contentType != 'text/html' ) { return; }
|
|
|
|
|
|
|
|
if ( prefs.analyzeOnLoad ) {
|
|
|
|
content.document.documentElement.addEventListener('load', function() {
|
|
|
|
var env = Object.keys(content.wrappedJSObject);
|
|
|
|
|
|
|
|
if ( env.join() !== lastEnv ) {
|
|
|
|
lastEnv = env.join();
|
|
|
|
|
|
|
|
sendAsyncMessage('wappalyzer', {
|
|
|
|
action: 'analyze',
|
|
|
|
analyze: {
|
|
|
|
env: Object.keys(content.wrappedJSObject)
|
|
|
|
}
|
|
|
|
});
|
|
|
|
}
|
|
|
|
|
|
|
|
removeEventListener('load', onLoad, true);
|
|
|
|
}, true);
|
|
|
|
}
|
|
|
|
|
|
|
|
// HTML
|
|
|
|
var html = content.document.documentElement.outerHTML;
|
|
|
|
|
|
|
|
// Comments outside HTML
|
|
|
|
//if ( content.document.lastChild.nodeType === 8 ) {
|
|
|
|
//content.alert(content.document.lastChild.nodeValue);
|
|
|
|
//}
|
|
|
|
|
|
|
|
if ( html.length > 50000 ) {
|
|
|
|
html = html.substring(0, 25000) + html.substring(html.length - 25000, html.length);
|
|
|
|
}
|
|
|
|
|
|
|
|
sendAsyncMessage('wappalyzer', {
|
|
|
|
action: 'analyze',
|
|
|
|
hostname: content.location.hostname,
|
|
|
|
url: content.location.href,
|
|
|
|
analyze: {
|
|
|
|
html: html,
|
|
|
|
env: prefs.analyzeJavaScript ? Object.keys(content.wrappedJSObject) : []
|
|
|
|
}
|
|
|
|
});
|
|
|
|
}
|
|
|
|
})();
|