Added option to automatically analyze headers to Chrome driver

main
ElbertF 13 years ago
parent e7eeedd990
commit 8675ddbaf6

@ -1,41 +1,43 @@
{ {
"github": { "message": "Fork Wappalyzer on GitHub!" }, "github": { "message": "Fork Wappalyzer on GitHub!" },
"twitter": { "message": "Follow Wappalyzer on Twitter" }, "twitter": { "message": "Follow Wappalyzer on Twitter" },
"website": { "message": "Go to wappalyzer.com" }, "website": { "message": "Go to wappalyzer.com" },
"options": { "message": "Wappalyzer Options" }, "options": { "message": "Wappalyzer Options" },
"optionsSave": { "message": "Save options" }, "optionsSave": { "message": "Save options" },
"optionsSaved": { "message": "Saved" }, "optionsSaved": { "message": "Saved" },
"optionTracking": { "message": "Anonymously send reports on detected applications to wappalyzer.com for research" }, "optionAutoAnalyzeHeaders": { "message": "Analyze headers automatically on click" },
"analyzeHeaders": { "message": "Analyze headers" }, "optionTracking": { "message": "Anonymously send reports on detected applications to wappalyzer.com for research" },
"nothingToDo": { "message": "Nothing to do here." }, "analyzeHeaders": { "message": "Analyze headers" },
"noAppsDetected": { "message": "No applications detected." }, "analyzeHeadersDone": { "message": "Completed" },
"categoryName1": { "message": "CMS" }, "nothingToDo": { "message": "Nothing to do here." },
"categoryName2": { "message": "Message Board" }, "noAppsDetected": { "message": "No applications detected." },
"categoryName3": { "message": "Database Manager" }, "categoryName1": { "message": "CMS" },
"categoryName4": { "message": "Documentation Tool" }, "categoryName2": { "message": "Message Board" },
"categoryName5": { "message": "Widget" }, "categoryName3": { "message": "Database Manager" },
"categoryName6": { "message": "Web Shop" }, "categoryName4": { "message": "Documentation Tool" },
"categoryName7": { "message": "Photo Gallery" }, "categoryName5": { "message": "Widget" },
"categoryName8": { "message": "Wiki" }, "categoryName6": { "message": "Web Shop" },
"categoryName9": { "message": "Hosting Panel" }, "categoryName7": { "message": "Photo Gallery" },
"categoryName10": { "message": "Analytics" }, "categoryName8": { "message": "Wiki" },
"categoryName11": { "message": "Blog" }, "categoryName9": { "message": "Hosting Panel" },
"categoryName12": { "message": "Javascript Framework" }, "categoryName10": { "message": "Analytics" },
"categoryName13": { "message": "Issue Tracker" }, "categoryName11": { "message": "Blog" },
"categoryName14": { "message": "Video Player" }, "categoryName12": { "message": "Javascript Framework" },
"categoryName15": { "message": "Comment System" }, "categoryName13": { "message": "Issue Tracker" },
"categoryName16": { "message": "Captcha" }, "categoryName14": { "message": "Video Player" },
"categoryName17": { "message": "Font Script" }, "categoryName15": { "message": "Comment System" },
"categoryName18": { "message": "Web Framework" }, "categoryName16": { "message": "Captcha" },
"categoryName19": { "message": "Miscellaneous" }, "categoryName17": { "message": "Font Script" },
"categoryName20": { "message": "Editor" }, "categoryName18": { "message": "Web Framework" },
"categoryName21": { "message": "LMS" }, "categoryName19": { "message": "Miscellaneous" },
"categoryName22": { "message": "Web Server" }, "categoryName20": { "message": "Editor" },
"categoryName23": { "message": "Cache Tool" }, "categoryName21": { "message": "LMS" },
"categoryName24": { "message": "Rich Text Editor" }, "categoryName22": { "message": "Web Server" },
"categoryName25": { "message": "Javascript Graphics" }, "categoryName23": { "message": "Cache Tool" },
"categoryName26": { "message": "Mobile Framework" }, "categoryName24": { "message": "Rich Text Editor" },
"categoryName27": { "message": "Programming Language" }, "categoryName25": { "message": "Javascript Graphics" },
"categoryName28": { "message": "Operating System" }, "categoryName26": { "message": "Mobile Framework" },
"categoryName29": { "message": "Search Engine" } "categoryName27": { "message": "Programming Language" },
"categoryName28": { "message": "Operating System" },
"categoryName29": { "message": "Search Engine" }
} }

Binary file not shown.

After

Width:  |  Height:  |  Size: 325 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 714 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 797 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 566 B

@ -0,0 +1,4 @@
var defaults = {
autoAnalyzeHeaders: 0,
tracking: 1
};

@ -19,13 +19,18 @@ $(function() {
} }
} }
if ( parseInt(options.opts.autoAnalyzeHeaders) ) {
$('#option-auto-analyze-headers').attr('checked', 'checked');
}
if ( parseInt(options.opts.tracking) ) { if ( parseInt(options.opts.tracking) ) {
$('#option-tracking').attr('checked', 'checked'); $('#option-tracking').attr('checked', 'checked');
} }
}, },
save: function() { save: function() {
options.opts.tracking = $('#option-tracking').is(':checked') ? 1 : 0; options.opts.autoAnalyzeHeaders = $('#option-auto-analyze-headers').is(':checked') ? 1 : 0;
options.opts.tracking = $('#option-tracking' ).is(':checked') ? 1 : 0;
for ( option in options.opts ) { for ( option in options.opts ) {
localStorage[option] = options.opts[option]; localStorage[option] = options.opts[option];

@ -9,17 +9,23 @@ var wappalyzer = {};
window.open(chrome.extension.getURL('options.html')); window.open(chrome.extension.getURL('options.html'));
}); });
$('#analyze-headers').text(chrome.i18n.getMessage('analyzeHeaders')).removeAttr('disabled');
chrome.tabs.getSelected(null, function(tab) { chrome.tabs.getSelected(null, function(tab) {
if ( tab.url.match(/https?:\/\//) ) { if ( tab.url.match(/https?:\/\//) ) {
$('#detected-apps').html('<div class="empty">' + chrome.i18n.getMessage('noAppsDetected') + '</div>'); $('#detected-apps').html('<div class="empty">' + chrome.i18n.getMessage('noAppsDetected') + '</div>');
$('#analyze-headers').removeAttr('disabled').click(function() { $('#analyze-headers').click(function() {
$(this).attr('disabled', 'disabled'); $(this).attr('disabled', 'disabled');
chrome.extension.sendRequest({ id: 'fetch_headers', tab: tab }); chrome.extension.sendRequest({ id: 'fetch_headers', tab: tab });
popup.pollHeaders = setInterval(popup.displayApps, 100); popup.pollHeaders = setInterval(popup.displayApps, 100);
}); });
if ( parseInt(localStorage['autoAnalyzeHeaders']) ) {
$('#analyze-headers').click();
}
} else { } else {
$('#detected-apps').html('<div class="empty">' + chrome.i18n.getMessage('nothingToDo') + '</div>'); $('#detected-apps').html('<div class="empty">' + chrome.i18n.getMessage('nothingToDo') + '</div>');
@ -34,9 +40,11 @@ var wappalyzer = {};
chrome.tabs.getSelected(null, function(tab) { chrome.tabs.getSelected(null, function(tab) {
chrome.extension.sendRequest({ id: 'get_apps', tab: tab }, function(response) { chrome.extension.sendRequest({ id: 'get_apps', tab: tab }, function(response) {
if ( response.tabCache.analyzed.indexOf('headers') > 0 ) { if ( response.tabCache.analyzed.indexOf('headers') > 0 ) {
clearTimeout(popup.pollHeaders); if ( popup.pollHeaders != null ) {
clearTimeout(popup.pollHeaders);
$('#analyze-headers').removeAttr('disabled'); $('#analyze-headers').text(chrome.i18n.getMessage('analyzeHeadersDone'));
}
} }
if ( response.tabCache.count > 0 ) { if ( response.tabCache.count > 0 ) {

@ -1,7 +1,7 @@
{ "name": "Wappalyzer", { "name": "Wappalyzer",
"homepage_url": "http://wappalyzer.com", "homepage_url": "http://wappalyzer.com",
"description": "Identifies software on the web", "description": "Identifies software on the web",
"version": "2.3", "version": "2.4",
"default_locale": "en", "default_locale": "en",
"manifest_version": 2, "manifest_version": 2,
"icons": { "icons": {

@ -19,6 +19,10 @@
<body> <body>
<h1 data-i18n="options"></h1> <h1 data-i18n="options"></h1>
<p>
<label for="option-auto-analyze-headers"><input id="option-auto-analyze-headers" type="checkbox"> <span data-i18n="optionAutoAnalyzeHeaders"></span></label>
</p>
<p> <p>
<label for="option-tracking"><input id="option-tracking" type="checkbox"> <span data-i18n="optionTracking"></span></label> <label for="option-tracking"><input id="option-tracking" type="checkbox"> <span data-i18n="optionTracking"></span></label>
</p> </p>