diff --git a/drivers/firefox/data/css/panel.css b/drivers/firefox/data/css/panel.css index d37ac28e6..a4f6661c3 100644 --- a/drivers/firefox/data/css/panel.css +++ b/drivers/firefox/data/css/panel.css @@ -36,12 +36,20 @@ img { text-decoration: none; } - .detected-app a:hover .label { - text-decoration: underline; + .detected-app a .label .name { + border-bottom: 1px dotted #999; } - .detected-app a:hover .category { - text-decoration: underline; + .detected-app a:hover .label .name { + border-bottom: 1px solid #333; + } + + .detected-app a .category .name { + border-bottom: 1px solid transparent; + } + + .detected-app a:hover .category .name { + border-bottom: 1px solid #999; } .label { diff --git a/drivers/firefox/data/js/panel.js b/drivers/firefox/data/js/panel.js index 5a4228f7c..252451303 100644 --- a/drivers/firefox/data/js/panel.js +++ b/drivers/firefox/data/js/panel.js @@ -16,14 +16,14 @@ html = '
' + '' + - '' + - '' + appName + ( version ? ' ' + version : '' ) + ( confidence < 100 ? ' (' + confidence + '% sure)' : '' ) + '' + + '' + + '' + appName + '' + ( version ? ' ' + version : '' ) + ( confidence < 100 ? ' (' + confidence + '% sure)' : '' ) + '' + ''; message.apps[appName].cats.forEach(function(cat) { html += '' + - '' + message.categoryNames[cat] + '' + + '' + message.categoryNames[cat] + '' + ''; }); diff --git a/drivers/firefox/lib/driver.js b/drivers/firefox/lib/driver.js index 9578ab599..9af8a0382 100644 --- a/drivers/firefox/lib/driver.js +++ b/drivers/firefox/lib/driver.js @@ -26,12 +26,6 @@ initTab = function(tab) { tabCache[tab.id] = { count: 0, appsDetected: [] }; - if ( !sp.prefs.urlbar ) { - createWidget(); - - w.driver.displayApps(); - } - tab.on('ready', function(tab) { var worker = tab.attach({ contentScriptFile: data.url('js/tab.js') @@ -63,14 +57,18 @@ w.driver.displayApps(); }); - addIcon = function(url) { - var icon = getDocument().createElement('image'); + addIcon = function(appName) { + var + icon = getDocument().createElement('image'), + url = appName !== undefined ? 'images/icons/' + appName + '.png' : 'images/icon32.png', + tooltipText = ( appName !== undefined ? appName + ' - ' + require('sdk/l10n').get('clickForDetails') + ' - ' : '' ) + require('sdk/l10n').get('name'); - icon.setAttribute('src', data.url(url)); - icon.setAttribute('class', 'wappalyzer-icon'); - icon.setAttribute('width', '16'); - icon.setAttribute('height', '16'); - icon.setAttribute('style', 'margin: 0 1px;'); + icon.setAttribute('src', data.url(url)); + icon.setAttribute('class', 'wappalyzer-icon'); + icon.setAttribute('width', '16'); + icon.setAttribute('height', '16'); + icon.setAttribute('style', 'margin: 0 1px;'); + icon.setAttribute('tooltiptext', tooltipText); getUrlBar().appendChild(icon); @@ -282,30 +280,32 @@ // Add icons if ( count ) { for ( appName in tabCache[tabs.activeTab.id].appsDetected ) { - addIcon('images/icons/' + appName + '.png'); + addIcon(appName); } } else { - addIcon('images/icon32.png'); + addIcon(); } - } else if ( count ) { - // Find the main application to display - var - appName, - found = false; - + } else { widget.contentURL = data.url('images/icon32_hot.png'); - w.driver.categoryOrder.forEach(function(match) { - for ( appName in w.detected[url] ) { - w.apps[appName].cats.forEach(function(cat) { - if ( cat == match && !found ) { - widget.contentURL = data.url('images/icons/' + appName + '.png'), - - found = true; - } - }); - } - }); + if ( count ) { + // Find the main application to display + var + appName, + found = false; + + w.driver.categoryOrder.forEach(function(match) { + for ( appName in w.detected[url] ) { + w.apps[appName].cats.forEach(function(cat) { + if ( cat == match && !found ) { + widget.contentURL = data.url('images/icons/' + appName + '.png'), + + found = true; + } + }); + } + }); + } } panel.port.emit('displayApps', { tabCache: tabCache[tabs.activeTab.id], apps: w.apps, categories: w.categories, categoryNames: categoryNames }); diff --git a/drivers/firefox/locale/de-DE.properties b/drivers/firefox/locale/de-DE.properties index 38b91a334..0ecf54083 100755 --- a/drivers/firefox/locale/de-DE.properties +++ b/drivers/firefox/locale/de-DE.properties @@ -1,5 +1,6 @@ name = Wappalyzer noAppsDetected = Keine Applikationen erkannt +clickForDetails = Klicken für Details preferences = Weitere Optionen ... categories = Kategorienverwaltung diff --git a/drivers/firefox/locale/en-GB.properties b/drivers/firefox/locale/en-GB.properties index b519ab978..98f635d45 100755 --- a/drivers/firefox/locale/en-GB.properties +++ b/drivers/firefox/locale/en-GB.properties @@ -1,5 +1,6 @@ name = Wappalyzer noAppsDetected = No applications detected +clickForDetails = Click for details preferences = Options categories = Categories diff --git a/drivers/firefox/locale/en-US.properties b/drivers/firefox/locale/en-US.properties index efca45ee6..98f635d45 100755 --- a/drivers/firefox/locale/en-US.properties +++ b/drivers/firefox/locale/en-US.properties @@ -1,10 +1,11 @@ name = Wappalyzer noAppsDetected = No applications detected +clickForDetails = Click for details preferences = Options categories = Categories tracking_title = Tracking -research_description = Anonymously send reports on detected applications to wappalyzer.com for analysis +tracking_description = Anonymously send reports on detected applications to wappalyzer.com for analysis urlbar_title = Display icons in URL bar urlbar_description = Uncheck to display toolbar button. diff --git a/drivers/firefox/locale/es-ES.properties b/drivers/firefox/locale/es-ES.properties index ab304969f..fc1862a79 100755 --- a/drivers/firefox/locale/es-ES.properties +++ b/drivers/firefox/locale/es-ES.properties @@ -1,5 +1,6 @@ name = Wappalyzer noAppsDetected = Aplicaciones no detectadas +clickForDetail = Clic para detalles preferences = Opciones categories = Categorías diff --git a/drivers/firefox/locale/fr-FR.properties b/drivers/firefox/locale/fr-FR.properties index 531f20b38..58e161b28 100644 --- a/drivers/firefox/locale/fr-FR.properties +++ b/drivers/firefox/locale/fr-FR.properties @@ -1,5 +1,6 @@ name = Wappalyzer noAppsDetected = Pas d'applications détectées +clickForDetails = Cliquer pour détails preferences = Plus d'options... categories = Gérer les catégories diff --git a/drivers/firefox/locale/nl-NL.properties b/drivers/firefox/locale/nl-NL.properties index 9d6d63e60..21c64b182 100755 --- a/drivers/firefox/locale/nl-NL.properties +++ b/drivers/firefox/locale/nl-NL.properties @@ -1,5 +1,6 @@ name = Wappalyzer noAppsDetected = Geen applicaties gedetecteerd +clickForDetails = Klik voor details preferences = Meer opties... categories = Beheer categorien diff --git a/drivers/firefox/package.json b/drivers/firefox/package.json index 3ee87c665..6d7e20fee 100644 --- a/drivers/firefox/package.json +++ b/drivers/firefox/package.json @@ -8,7 +8,7 @@ "description": "Identifies software on the web", "author": "Elbert Alias", "license": "GPLv3", - "version": "3.0.1", + "version": "3.0.2", "main": "driver", "preferences": [{ "name": "tracking", diff --git a/share/images/icons/Javascript Infovis Toolkit.png b/share/images/icons/Javascript Infovis Toolkit.png index 3440fc088..9dfaef63b 100644 Binary files a/share/images/icons/Javascript Infovis Toolkit.png and b/share/images/icons/Javascript Infovis Toolkit.png differ diff --git a/share/js/wappalyzer.js b/share/js/wappalyzer.js index c158e7732..83da603eb 100644 --- a/share/js/wappalyzer.js +++ b/share/js/wappalyzer.js @@ -445,7 +445,7 @@ var wappalyzer = (function() { if ( w.detected[url][app].getConfidence() >= 100 ) { // Per hostname - if ( /(www.)?((.+?)\.(([a-z]{2,3}\.)?[a-z]{2,6}))$/.test(hostname) && !/((local|dev(elopment)?|stag(e|ing)?|test(ing)?|demo(shop)?|admin|google)\.|\/admin|\.local)/.test(url) ) { + if ( /(www.)?((.+?)\.(([a-z]{2,3}\.)?[a-z]{2,6}))$/.test(hostname) && !/((local|dev(elopment)?|stag(e|ing)?|test(ing)?|demo(shop)?|admin|google|cache)\.|\/admin|\.local)/.test(url) ) { if ( !w.ping.hostnames.hasOwnProperty(hostname) ) { w.ping.hostnames[hostname] = { applications: {}, meta: {} }; }