Firefox 4.0 compatibility, moved icons to address bar, detection of several more apps

main
ElbertF 14 years ago
parent cb1f636b97
commit 13e93933e0

@ -92,7 +92,7 @@ if ( typeof(wappalyzer) != 'undefined' )
'Blogger': { html: /<meta content=("|')blogger("|') [^>]+generator/i, url: /^(www.)?.+\.blogspot\.com/i },
'DataLife Engine': { html: /<meta name=("|')generator("|') [^>]+DataLife Engine/i },
'Nedstat': { html: /sitestat\(("|')http:\/\/nl\.sitestat\.com/ },
'Microsoft ASP.NET': { html: /<input[^>]+name=("|')__VIEWSTATE/ },
'Microsoft ASP.NET': { html: /<input[^>]+name=("|')__VIEWSTATE/, headers: { 'X-Powered-By': /ASP\.NET/ } },
'Yandex.Metrika': { html: /<script[^>]* src=("|')[^"']+mc\.yandex\.ru\/metrika\/watch\.js("|')/ },
'Snoobi': { html: /<script[^>]* src=("|')[^"']+snoobi\.com\/snoop\.php/ },
'Moogo': { html: /<script[^>]* src=("|')[^"']+kotisivukone.js/ },
@ -155,6 +155,16 @@ if ( typeof(wappalyzer) != 'undefined' )
'Cotonti': { html: /<meta name=("|')generator("|') [^>]+Cotonti/i },
'Mambo': { html: /<meta name=("|')generator("|') [^>]+Mambo/i },
'Concrete5': { html: /<meta name=("|')generator("|') [^>]+concrete5/i },
'Webtrends': { html: /<img[^>]+id=("|')DCSIMG("|')[^>]+webtrends/i }
'Webtrends': { html: /<img[^>]+id=("|')DCSIMG("|')[^>]+webtrends/i },
'SiteCatalyst': { html: /var s_code=s\.t\(\);if\(s_code\)document\.write\(s_code\)/i },
'WebsiteBaker': { html: /<meta name=("|')generator("|') [^>]+WebsiteBaker/i },
'nopCommerce': { html: /(<!\-\-Powered by nopCommerce|Powered by: <a[^>]+nopcommerce)/i },
'JTL Shop': { html: /(<input[^>]+name=('|")JTLSHOP|<a href=('|")jtl\.php)/i },
'XenForo': { html: /(jQuery\.extend\(true, XenForo|Forum software by XenForo&trade;|<!\-\-XF:branding)/ },
'TomatoCart': { html: /<meta name=("|')generator("|') [^>]+TomatoCart/i },
'PHP-Nuke': { html: /(<meta name=("|')generator("|') [^>]+PHP-Nuke|<[^>]+Powered by PHP\-Nuke)/i },
'Twilight CMS': { headers: { 'X-Powered-CMS': /Twilight CMS/ } },
'Wolf CMS': { html: /<a href=("|')[^>]+wolfcms.org.+Wolf CMS.+inside/i },
'Burning Board': { html: /<a href=('|")[^>]+woltlab\.com.+Burning Board/i }
};
}

@ -15,6 +15,8 @@ wappalyzer =
log: function(message)
{
return;
var consoleService = Components.classes["@mozilla.org/consoleservice;1"].getService(Components.interfaces.nsIConsoleService);
consoleService.logStringMessage("Wappalyzer content.js: " + message);

@ -24,6 +24,7 @@ wappalyzer =
prefs: {},
regexDomain: /^[a-z0-9._\-]+\.[a-z]+/,
req: false,
request: false,
showAppNames: 3,
init: function()
@ -64,6 +65,8 @@ wappalyzer =
},
log: function(message) {
return;
var consoleService = Components.classes["@mozilla.org/consoleservice;1"].getService(Components.interfaces.nsIConsoleService);
consoleService.logStringMessage("Wappalyzer: " + message);
@ -102,18 +105,11 @@ wappalyzer =
{
wappalyzer.log('onPageLoad');
/*
var prompts = Components.classes["@mozilla.org/embedcomp/prompt-service;1"]
.getService(Components.interfaces.nsIPromptService);
var re = prompts.alert(null, 'Wappalyzer', 'Wappalyzer for Firefox Mobile is not yet functional.');
*/
var doc = event.originalTarget;
wappalyzer.analyzePage(
document.location.href,
document.documentElement.innerHTML,
doc.location.href,
doc.documentElement.innerHTML,
[],
true,
false
@ -137,13 +133,20 @@ wappalyzer =
{
wappalyzer.log('onUrlChange');
wappalyzer.clearDetectedApps();
var doc = wappalyzer.browser.contentDocument;
doc.request = request;
if ( !doc.request )
{
doc.request = request;
}
wappalyzer.request = doc.request;
wappalyzer.analyzePage(
doc.location.href,
doc.documentElement.innerHTML,
doc.documentElement ? doc.documentElement.innerHTML : '',
[],
false,
false
@ -198,8 +201,6 @@ wappalyzer =
if ( href == wappalyzer.browser.contentDocument.location.href )
{
wappalyzer.currentTab = true;
wappalyzer.clearDetectedApps();
}
}
@ -244,9 +245,8 @@ wappalyzer =
}
}
/*
// Scan response header
if ( typeof(wappalyzer.apps[appName].headers) != 'undefined' && typeof(doc.request) != 'undefined' )
if ( typeof(wappalyzer.apps[appName].headers) != 'undefined' && wappalyzer.request )
{
for ( var header in wappalyzer.apps[appName].headers )
{
@ -254,9 +254,9 @@ wappalyzer =
try
{
if ( regex.test(doc.request.nsIHttpChannel.getResponseHeader(header)) )
if ( regex.test(wappalyzer.request.nsIHttpChannel.getResponseHeader(header)) )
{
wappalyzer.showApp(appName, doc, doCount);
wappalyzer.showApp(appName, href, doCount);
}
}
catch(e)
@ -264,7 +264,6 @@ wappalyzer =
}
}
}
*/
}
}
}

@ -19,7 +19,7 @@
>
<image
id="wappalyzer-icon"
onclick="wappalyzer.analyzePage(gBrowser.selectedBrowser.contentDocument, true, true);"
onclick="wappalyzer.analyzePage(wappalyzer.browser.contentDocument.location.href, wappalyzer.browser.contentDocument.documentElement.innerHTML, false, true, true);"
class="wappalyzer-icon"
tooltiptext="&wappalyzer.title;"
label="&wappalyzer.title;"

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

@ -5,7 +5,7 @@
<RDF xmlns="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:em="http://www.mozilla.org/2004/em-rdf#">
<Description about="urn:mozilla:install-manifest">
<em:id>wappalyzer@crunchlabz.com</em:id>
<em:version>1.9.4</em:version>
<em:version>1.10.0</em:version>
<em:type>2</em:type>
<em:targetApplication>
@ -17,14 +17,18 @@
</Description>
</em:targetApplication>
<!--
<em:targetApplication>
-->
<!-- Firefox Mobile -->
<!--
<Description>
<em:id>{a23983c0-fd0e-11dc-95ff-0800200c9a66}</em:id>
<em:minVersion>1.1</em:minVersion>
<em:maxVersion>4.0b1</em:maxVersion>
</Description>
</em:targetApplication>
-->
<em:optionsURL>chrome://wappalyzer/content/options.xul</em:optionsURL>