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: {} };
}