diff --git a/src/drivers/npm/package.json b/src/drivers/npm/package.json
index 27d8580ac..faa6df018 100644
--- a/src/drivers/npm/package.json
+++ b/src/drivers/npm/package.json
@@ -13,7 +13,7 @@
"software"
],
"homepage": "https://www.wappalyzer.com/",
- "version": "6.4.17",
+ "version": "6.5.17",
"author": "Wappalyzer",
"license": "MIT",
"repository": {
@@ -42,4 +42,4 @@
"dependencies": {
"puppeteer": "^5.3.0"
}
-}
+}
\ No newline at end of file
diff --git a/src/drivers/webextension/css/styles.css b/src/drivers/webextension/css/styles.css
index 6cd41dafb..bd756173d 100644
--- a/src/drivers/webextension/css/styles.css
+++ b/src/drivers/webextension/css/styles.css
@@ -266,7 +266,7 @@ a:hover {
flex-direction: column;
justify-content: center;
padding: 1.5rem 1.5rem 1rem 1.5rem;
- height: 12rem;
+ height: 14rem;
width: 36rem;
}
@@ -299,7 +299,8 @@ a:hover {
color: white;
cursor: pointer;
font-size: .9rem;
- padding: .8rem 3rem;
+ padding: 0 3rem;
+ height: 3rem;
}
.terms__accept:hover {
diff --git a/src/drivers/webextension/images/icon_19.png b/src/drivers/webextension/images/icon_19.png
index 9668bc65a..67b7fb326 100644
Binary files a/src/drivers/webextension/images/icon_19.png and b/src/drivers/webextension/images/icon_19.png differ
diff --git a/src/drivers/webextension/images/icon_32.png b/src/drivers/webextension/images/icon_32.png
index 6f0c5c3e1..d7adaa7a0 100644
Binary files a/src/drivers/webextension/images/icon_32.png and b/src/drivers/webextension/images/icon_32.png differ
diff --git a/src/drivers/webextension/images/icons/ApostropheCMS.svg b/src/drivers/webextension/images/icons/ApostropheCMS.svg
new file mode 100644
index 000000000..30dad2d1b
--- /dev/null
+++ b/src/drivers/webextension/images/icons/ApostropheCMS.svg
@@ -0,0 +1,33 @@
+
\ No newline at end of file
diff --git a/src/drivers/webextension/images/icons/Plataforma NEO.svg b/src/drivers/webextension/images/icons/Plataforma NEO.svg
new file mode 100644
index 000000000..5a112f6e0
--- /dev/null
+++ b/src/drivers/webextension/images/icons/Plataforma NEO.svg
@@ -0,0 +1,4 @@
+
\ No newline at end of file
diff --git a/src/drivers/webextension/js/driver.js b/src/drivers/webextension/js/driver.js
index 81557cddc..909239623 100644
--- a/src/drivers/webextension/js/driver.js
+++ b/src/drivers/webextension/js/driver.js
@@ -445,9 +445,11 @@ const Driver = {
await Driver.setIcon(url, resolved)
- const tabs = await promisify(chrome.tabs, 'query', { url })
+ if (url) {
+ const tabs = await promisify(chrome.tabs, 'query', { url })
- tabs.forEach(({ id }) => (Driver.cache.tabs[id] = resolved))
+ tabs.forEach(({ id }) => (Driver.cache.tabs[id] = resolved))
+ }
Driver.log({ hostname, technologies: resolved })
@@ -483,6 +485,10 @@ const Driver = {
;({ icon } = pinned || technologies[0] || { icon })
}
+ if (!url) {
+ return
+ }
+
;(await promisify(chrome.tabs, 'query', { url })).forEach(
({ id: tabId }) => {
chrome.browserAction.setBadgeText(
diff --git a/src/drivers/webextension/js/options.js b/src/drivers/webextension/js/options.js
index dd3aefe49..cfa4c8b48 100644
--- a/src/drivers/webextension/js/options.js
+++ b/src/drivers/webextension/js/options.js
@@ -2,7 +2,7 @@
/* eslint-env browser */
/* globals Utils, chrome */
-const { i18n, getOption, setOption } = Utils
+const { agent, i18n, getOption, setOption } = Utils
const Options = {
/**
@@ -16,6 +16,9 @@ const Options = {
document.querySelector('body').classList.add('theme-mode')
}
+ const termsAccepted =
+ agent === 'chrome' || (await getOption('termsAccepted', false))
+
;[
['upgradeMessage', true],
['dynamicIcon', false],
@@ -31,7 +34,9 @@ const Options = {
)
.parentNode.querySelector('input')
- el.checked = !!(await getOption(option, defaultValue))
+ el.checked =
+ !!(await getOption(option, defaultValue)) &&
+ (option !== 'tracking' || termsAccepted)
el.addEventListener('click', async () => {
await setOption(option, !!el.checked)
diff --git a/src/drivers/webextension/js/utils.js b/src/drivers/webextension/js/utils.js
index bdc935326..cf10fa852 100644
--- a/src/drivers/webextension/js/utils.js
+++ b/src/drivers/webextension/js/utils.js
@@ -3,7 +3,11 @@
/* globals chrome */
const Utils = {
- agent: chrome.extension.getURL('/').startsWith('moz-') ? 'firefox' : 'chrome',
+ agent: chrome.extension.getURL('/').startsWith('moz-')
+ ? 'firefox'
+ : chrome.extension.getURL('/').startsWith('safari-')
+ ? 'safari'
+ : 'chrome',
/**
* Use promises instead of callbacks
diff --git a/src/drivers/webextension/manifest.json b/src/drivers/webextension/manifest.json
index 06e8d131f..a6e2f0776 100644
--- a/src/drivers/webextension/manifest.json
+++ b/src/drivers/webextension/manifest.json
@@ -4,7 +4,7 @@
"author": "Wappalyzer",
"homepage_url": "https://www.wappalyzer.com/",
"description": "Identify web technologies",
- "version": "6.4.16",
+ "version": "6.5.17",
"default_locale": "en",
"manifest_version": 2,
"icons": {
@@ -76,4 +76,4 @@
"https://*/*"
],
"content_security_policy": "script-src 'self'; object-src 'self'"
-}
+}
\ No newline at end of file
diff --git a/src/package.json b/src/package.json
index a25674615..34a984e14 100644
--- a/src/package.json
+++ b/src/package.json
@@ -13,7 +13,7 @@
"software"
],
"homepage": "https://www.wappalyzer.com/",
- "version": "6.4.17",
+ "version": "6.5.17",
"author": "Wappalyzer",
"license": "MIT",
"repository": {
@@ -32,4 +32,4 @@
"files": [
"wappalyzer.js"
]
-}
+}
\ No newline at end of file
diff --git a/src/technologies.json b/src/technologies.json
index 1e8a78b3b..3d36a2942 100644
--- a/src/technologies.json
+++ b/src/technologies.json
@@ -983,37 +983,11 @@
"bm_sv": "",
"bm_sz": ""
},
- "implies": "Akamai",
"description": "Akamai Bot Manager detect bots using device fingerprinting bot signatures.",
"icon": "akamai.svg",
+ "implies": "Akamai",
"website": "http://akamai.com/bot-manager"
},
- "Bugcrowd": {
- "cats": [
- 16
- ],
- "description": "Bugcrowd is a crowdsourced cybersecurity platform.",
- "icon": "Bugcrowd.svg",
- "dns": {
- "TXT": [
- "bugcrowd-verification"
- ]
- },
- "website": "https://www.bugcrowd.com"
- },
- "Detectify": {
- "cats": [
- 16
- ],
- "description": "Detectify is an automated scanner that checks your web application for vulnerabilities.",
- "icon": "Detectify.svg",
- "dns": {
- "TXT": [
- "detectify-verification"
- ]
- },
- "website": "https://detectify.com/"
- },
"Akaunting": {
"cats": [
55,
@@ -1230,6 +1204,20 @@
"implies": "Amazon Web Services",
"website": "http://aws.amazon.com/s3/"
},
+ "Amazon SES": {
+ "cats": [
+ 75
+ ],
+ "description": "Amazon Simple Email Service (SES) is an email service that enables developers to send mail from within any application.",
+ "dns": {
+ "TXT": [
+ "amazonses\\.com"
+ ]
+ },
+ "icon": "aws.svg",
+ "implies": "Amazon Web Services",
+ "website": "https://aws.amazon.com/ses/"
+ },
"Amazon Web Services": {
"cats": [
62
@@ -1872,12 +1860,12 @@
59
],
"description": "Promise based HTTP client for the browser and node.js",
- "scripts": [
- "/axios(@|/)([\\d.]+)(?:/[a-z]+)?/axios(?:.min)?\\.js\\;version:\\2"
- ],
"js": {
"axios.get": ""
},
+ "scripts": [
+ "/axios(@|/)([\\d.]+)(?:/[a-z]+)?/axios(?:.min)?\\.js\\;version:\\2"
+ ],
"website": "https://github.com/axios/axios"
},
"Azure": {
@@ -2485,6 +2473,19 @@
"scripts": "/bugsnag.*\\.js",
"website": "http://bugsnag.com"
},
+ "Bugcrowd": {
+ "cats": [
+ 16
+ ],
+ "description": "Bugcrowd is a crowdsourced cybersecurity platform.",
+ "dns": {
+ "TXT": [
+ "bugcrowd-verification"
+ ]
+ },
+ "icon": "Bugcrowd.svg",
+ "website": "https://www.bugcrowd.com"
+ },
"Bugzilla": {
"cats": [
13
@@ -4002,6 +4003,19 @@
"scripts": "dedeajax",
"website": "http://dedecms.com"
},
+ "Detectify": {
+ "cats": [
+ 16
+ ],
+ "description": "Detectify is an automated scanner that checks your web application for vulnerabilities.",
+ "dns": {
+ "TXT": [
+ "detectify-verification"
+ ]
+ },
+ "icon": "Detectify.svg",
+ "website": "https://detectify.com/"
+ },
"Didomi": {
"cats": [
67
@@ -4341,6 +4355,22 @@
"scripts": "\\*berajs.beracode.com\\*",
"website": "https://duopana.com/"
},
+ "Dynamic Yield": {
+ "cats": [
+ 74
+ ],
+ "cookies": {
+ "_dy_geo": "",
+ "_dy_ses_load_seq": ""
+ },
+ "description": "Dynamic Yield is a provider of automated conversion optimization tools for marketers and retailers.",
+ "icon": "DynamicYield.svg",
+ "js": {
+ "recommendationContext": ""
+ },
+ "scripts": "cdn\\.dynamicyield\\.\\w+/",
+ "website": "https://www.dynamicyield.com"
+ },
"Dynamicweb": {
"cats": [
1,
@@ -4357,22 +4387,6 @@
},
"website": "http://www.dynamicweb.dk"
},
- "Dynamic Yield": {
- "cats": [
- 74
- ],
- "icon": "DynamicYield.svg",
- "description": "Dynamic Yield is a provider of automated conversion optimization tools for marketers and retailers.",
- "cookies": {
- "_dy_geo": "",
- "_dy_ses_load_seq": ""
- },
- "js": {
- "recommendationContext": ""
- },
- "scripts": "cdn\\.dynamicyield\\.\\w+/",
- "website": "https://www.dynamicyield.com"
- },
"Dynatrace": {
"cats": [
10
@@ -4751,15 +4765,6 @@
"icon": "syncfusion.svg",
"website": "https://www.syncfusion.com/javascript-ui-controls"
},
- "Estore Shopserve": {
- "cats": [
- 6
- ],
- "description": "Estore Shopserve is an all-in-one payment processing and ecommerce solution.",
- "icon": "EstoreShopserve.svg",
- "scripts": "cart\\d+\\.shopserve\\.jp/",
- "website": "https://estore.co.jp/shopserve"
- },
"Estore Compare": {
"cats": [
74
@@ -4769,6 +4774,15 @@
"scripts": "cdn\\d+\\.estore\\.jp/",
"website": "https://estore.co.jp/estorecompare/"
},
+ "Estore Shopserve": {
+ "cats": [
+ 6
+ ],
+ "description": "Estore Shopserve is an all-in-one payment processing and ecommerce solution.",
+ "icon": "EstoreShopserve.svg",
+ "scripts": "cart\\d+\\.shopserve\\.jp/",
+ "website": "https://estore.co.jp/shopserve"
+ },
"Etherpad": {
"cats": [
24
@@ -5075,6 +5089,7 @@
"cats": [
59
],
+ "icon": "FingerprintJS.svg",
"js": {
"Fingerprint": "(\\d)?$\\;version:\\1",
"Fingerprint2": "",
@@ -5085,7 +5100,6 @@
"fingerprint(\\d)?(?:\\.min)?\\.js\\;version:\\1",
"/fingerprintjs@(\\d)\\;version:\\1"
],
- "icon": "FingerprintJS.svg",
"website": "https://fingerprintjs.com/"
},
"Firebase": {
@@ -5931,21 +5945,6 @@
],
"website": "https://www.google.fr/adsense/start/"
},
- "Plausible": {
- "cats": [
- 10,
- 61
- ],
- "cookies": {
- },
- "description": "Plausible is an open-source alternative to Google Analytics.",
- "icon": "Plausible.svg",
- "js": {
- "plausible": ""
- },
- "scripts": "plausible\\.io/js/plausible\\.js",
- "website": "https://plausible.io/"
- },
"Google Analytics": {
"cats": [
10,
@@ -6507,14 +6506,14 @@
62
],
"description": "Heroku is a cloud platform as a service (PaaS) supporting several programming languages.",
- "headers": {
- "Via": "[\\d.-]+ vegur$"
- },
"dns": {
"TXT": [
"heroku-domain-verification"
]
},
+ "headers": {
+ "Via": "[\\d.-]+ vegur$"
+ },
"icon": "heroku.svg",
"implies": [
"Amazon Web Services"
@@ -6671,13 +6670,13 @@
32
],
"description": "HubSpot is a marketing and sales software that helps companies attract visitors, convert leads, and close customers.",
- "html": "