diff --git a/css/settings.css b/css/settings.css
index e7e1bcb8..11016b3c 100644
--- a/css/settings.css
+++ b/css/settings.css
@@ -1,65 +1,80 @@
body {
- background: #00c2c1;
- padding: 50px;
- font-family: 'Montserrat', sans-serif;
- color: #ffffff;
- font-weight: 600;
-}
-
-h3 {
- font-size: 23pt;
-}
+ background: #00c2c1;
+ padding: 50px;
+ font-family: 'Montserrat', sans-serif;
+ color: #fff;
+ font-weight: 600; }
+ body .hide-me {
+ display: none; }
+ body h3 {
+ font-size: 23pt; }
.pure-g {
- margin-bottom: 5%;
-}
-
-.pure-u-1-3 > p {
- font-size: 10pt;
- font-weight: 500;
- color: #b4b4b4;
-}
-
-.pure-u-1-3 > p > .label {
- font-weight: 700;
-}
-
-.pure-u-1-3 {
+ margin-bottom: 5%; }
+ .pure-g .pure-u-1-3, .pure-g .pure-u-2-3, .pure-g .pure-u-1-1 {
background: #fff;
color: #000;
- border: 3px solid #009c9b;
- padding: 15px;
-}
-.lblbox {
- border: 1px solid #eeeeee;
- border-radius: 5px;
- background: #d4d4d4;
- padding: 5px;
- margin: 5px;
- display: inline-block;
-}
+ border: 2px solid #00a9a8;
+ padding: 15px; }
+ .pure-g .pure-u-1-3 p, .pure-g .pure-u-2-3 p, .pure-g .pure-u-1-1 p {
+ font-size: 10pt;
+ font-weight: 500;
+ color: #b4b4b4; }
+ .pure-g .pure-u-1-3 p .label, .pure-g .pure-u-2-3 p .label, .pure-g .pure-u-1-1 p .label {
+ font-weight: 700; }
+
.pure-table {
- width: 100%;
-}
+ width: 100%; }
.note {
- color: #b4b4b4;
- font-style: italic;
- font-size: 10pt;
-}
-#ext-etheraddresslookup-bookmark_modify_remove {
- font-size: 85%;
- background: rgb(202, 60, 60);
+ color: #b4b4b4;
+ font-style: italic;
+ font-size: 10pt; }
+ .note.ext-etheraddresslookup-history_good {
+ margin: 5px;
color: #fff;
-}
+ background: #00c2c1;
+ padding: 2px; }
+ .note.ext-etheraddresslookup-history_bad {
+ margin: 5px;
+ color: #fff;
+ background: #c2654c;
+ padding: 2px; }
+
+#ext-etheraddresslookup-bookmark_modify_remove {
+ font-size: 85%;
+ background: #ca3c3c;
+ color: #fff; }
#donate_address {
- font-size: 80%;
- background: #fffdfd;
- padding: 2px;
- border: 1px solid #ffe4e4;
- color: #009d9c;
- -webkit-border-radius: 2px;
- -moz-border-radius: 2px;
- border-radius: 2px;
-}
\ No newline at end of file
+ font-size: 80%;
+ background: #fffdfd;
+ padding: 2px;
+ border: 1px solid #ffe4e4;
+ color: #009d9c;
+ -webkit-border-radius: 2px;
+ -moz-border-radius: 2px;
+ border-radius: 2px; }
+
+.error {
+ background: #fff;
+ padding: 2px;
+ color: #c2654c;
+ border: 2px solid #b6583e;
+ text-align: center; }
+
+.warning {
+ background: #ffe700;
+ padding: 2px;
+ color: #a98500;
+ border: 2px solid #fae200;
+ text-align: center; }
+
+.success {
+ background: #49bd51;
+ padding: 2px;
+ color: #fff;
+ border: 2px solid #45bc4d;
+ text-align: center; }
+
+/*# sourceMappingURL=settings.css.map */
diff --git a/css/settings.css.map b/css/settings.css.map
new file mode 100644
index 00000000..990daa20
--- /dev/null
+++ b/css/settings.css.map
@@ -0,0 +1,7 @@
+{
+"version": 3,
+"mappings": "AAeA,IAAK;EACH,UAAU,EAhBM,OAAO;EAiBvB,OAAO,EAAE,IAAI;EACb,WAAW,EAAE,wBAAwB;EACrC,KAAK,EAlBM,IAAI;EAmBf,WAAW,EAAE,GAAG;EAEhB,aAAS;IACP,OAAO,EAAE,IAAI;EAGf,OAAG;IACD,SAAS,EAAE,IAAI;;AAInB,OAAQ;EACN,aAAa,EAAE,EAAE;EAEjB,6DAAsC;IACpC,UAAU,EAhCC,IAAI;IAiCf,KAAK,EAhCC,IAAI;IAiCV,MAAM,EAAE,iBAAsC;IAC9C,OAAO,EAAE,IAAI;IAEb,mEAAE;MACA,SAAS,EAAE,IAAI;MACf,WAAW,EAAE,GAAG;MAChB,KAAK,EAAE,OAAO;MAEd,wFAAO;QACL,WAAW,EAAE,GAAG;;AAMxB,WAAY;EACV,KAAK,EAAE,IAAI;;AAGb,KAAM;EACJ,KAAK,EAAE,OAAO;EACd,UAAU,EAAE,MAAM;EAClB,SAAS,EAAE,IAAI;EAEf,yCAAsC;IACpC,MAAM,EAAE,GAAG;IACX,KAAK,EA9DI,IAAI;IA+Db,UAAU,EAhEI,OAAO;IAiErB,OAAO,EAAE,GAAG;EAGd,wCAAqC;IACnC,MAAM,EAAE,GAAG;IACX,KAAK,EArEI,IAAI;IAsEb,UAAU,EAhEA,OAAO;IAiEjB,OAAO,EAAE,GAAG;;AAIhB,8CAA+C;EAC7C,SAAS,EAAE,GAAG;EACd,UAAU,EAAE,OAAgB;EAC5B,KAAK,EAAE,IAAI;;AAGb,eAAgB;EACd,SAAS,EAAE,GAAG;EACd,UAAU,EAAE,OAAO;EACnB,OAAO,EAAE,GAAG;EACZ,MAAM,EAAE,iBAAiB;EACzB,KAAK,EAAE,OAAO;EACd,qBAAqB,EAAE,GAAG;EAC1B,kBAAkB,EAAE,GAAG;EACvB,aAAa,EAAE,GAAG;;AAGpB,MAAO;EACL,UAAU,EAxFO,IAAI;EAyFrB,OAAO,EAAE,GAAG;EACZ,KAAK,EAzFO,OAAO;EA0FnB,MAAM,EAAE,iBAAkC;EAC1C,UAAU,EAAE,MAAM;;AAGpB,QAAS;EACP,UAAU,EA7FS,OAAO;EA8F1B,OAAO,EAAE,GAAG;EACZ,KAAK,EA9FS,OAAO;EA+FrB,MAAM,EAAE,iBAAyC;EACjD,UAAU,EAAE,MAAM;;AAGpB,QAAS;EACP,UAAU,EAlGS,OAAO;EAmG1B,OAAO,EAAE,GAAG;EACZ,KAAK,EAnGS,IAAI;EAoGlB,MAAM,EAAE,iBAAyC;EACjD,UAAU,EAAE,MAAM",
+"sources": ["settings.scss"],
+"names": [],
+"file": "settings.css"
+}
\ No newline at end of file
diff --git a/css/settings.scss b/css/settings.scss
new file mode 100644
index 00000000..9ab06fc4
--- /dev/null
+++ b/css/settings.scss
@@ -0,0 +1,116 @@
+$main_background: #00c2c1;
+$main_color: #fff;
+
+$u_background: #fff;
+$u_color: #000;
+
+$error_background: #fff;
+$error_color: #c2654c;
+
+$warning_background: #ffe700;
+$warning_color: #a98500;
+
+$success_background: #49bd51;
+$success_color: #fff;
+
+body {
+ background: $main_background;
+ padding: 50px;
+ font-family: 'Montserrat', sans-serif;
+ color: $main_color;
+ font-weight: 600;
+
+ .hide-me {
+ display: none;
+ }
+
+ h3 {
+ font-size: 23pt;
+ }
+}
+
+.pure-g {
+ margin-bottom: 5%;
+
+ .pure-u-1-3, .pure-u-2-3, .pure-u-1-1 {
+ background: $u_background;
+ color: $u_color;
+ border: 2px solid darken($main_background, 5%);
+ padding: 15px;
+
+ p {
+ font-size: 10pt;
+ font-weight: 500;
+ color: #b4b4b4;
+
+ .label {
+ font-weight: 700;
+ }
+ }
+ }
+}
+
+.pure-table {
+ width: 100%;
+}
+
+.note {
+ color: #b4b4b4;
+ font-style: italic;
+ font-size: 10pt;
+
+ &.ext-etheraddresslookup-history_good {
+ margin: 5px;
+ color: $main_color;
+ background: $main_background;
+ padding: 2px;
+ }
+
+ &.ext-etheraddresslookup-history_bad {
+ margin: 5px;
+ color: $main_color;
+ background: $error_color;
+ padding: 2px;
+ }
+}
+
+#ext-etheraddresslookup-bookmark_modify_remove {
+ font-size: 85%;
+ background: rgb(202, 60, 60);
+ color: #fff;
+}
+
+#donate_address {
+ font-size: 80%;
+ background: #fffdfd;
+ padding: 2px;
+ border: 1px solid #ffe4e4;
+ color: #009d9c;
+ -webkit-border-radius: 2px;
+ -moz-border-radius: 2px;
+ border-radius: 2px;
+}
+
+.error {
+ background: $error_background;
+ padding: 2px;
+ color: $error_color;
+ border: 2px solid darken($error_color, 5%);
+ text-align: center;
+}
+
+.warning {
+ background: $warning_background;
+ padding: 2px;
+ color: $warning_color;
+ border: 2px solid darken($warning_background, 1%);
+ text-align: center;
+}
+
+.success {
+ background: $success_background;
+ padding: 2px;
+ color: $success_color;
+ border: 2px solid darken($success_background, 1%);
+ text-align: center;
+}
\ No newline at end of file
diff --git a/js/app/historyInspector.js b/js/app/historyInspector.js
new file mode 100644
index 00000000..76c731b2
--- /dev/null
+++ b/js/app/historyInspector.js
@@ -0,0 +1,100 @@
+(function () {
+ var objHistoryInspector = document.getElementById("ext-etheraddresslookup-history_inspect");
+
+ //Perform the history inspection
+ objHistoryInspector.addEventListener("click", function (objEvent) {
+ //See if we need to request permission
+ chrome.permissions.contains({
+ permissions: ['history']
+ }, function (blResult) {
+ //No permission to history, ask for it.
+ if (blResult === false) {
+ chrome.permissions.request({
+ permissions: ['history']
+ }, function (blGranted) {
+ if (blGranted) {
+ console.log("Granted history permission");
+ doHistoryInspection();
+ } else {
+ exitNoPermission();
+ }
+ });
+ } else {
+ doHistoryInspection();
+ }
+ });
+ });
+})();
+
+function doHistoryInspection() {
+ chrome.history.search({text: "", maxResults: 500}, function (objHistoryItems) {
+ var blRedirected = false;
+ var intTotalWarnings = 0;
+ var strReportText = "";
+
+ var objBlacklistedDomains = localStorage.getItem("ext-etheraddresslookup-blacklist_domains_list");
+ objBlacklistedDomains = JSON.parse(objBlacklistedDomains);
+
+ var objDiv = document.getElementById("ext-etheraddresslookup-history_inspect_data");
+ objDiv.innerHTML = "";
+
+ for (var intIterator = 0; intIterator < objHistoryItems.length; intIterator++) {
+ var objUri = URI(objHistoryItems[intIterator].url);
+
+ //See if we redirected to the phishing site...
+ if (objUri.domain() === "harrydenley.com" && objUri.path() === "/EtherAddressLookup/phishing.html") {
+ blRedirected = true;
+ continue;
+ }
+
+ //See if the domain is in the phishing list
+ if (objBlacklistedDomains.domains.indexOf(objUri.domain()) >= 0) {
+ strReportText += "" + (new Date(objHistoryItems[intIterator].lastVisitTime).toUTCString()) + " ";
+ //Did EAL redirect you away?
+ if (blRedirected) {
+ strReportText += objUri.domain() + "EAL successfully redirected you away.";
+ } else {
+ strReportText += objUri.domain() + "Domain is now blacklisted - but wasn't at the time.";
+ ++intTotalWarnings;
+ }
+ strReportText += "Visited "+ objHistoryItems[intIterator].visitCount +" times";
+ strReportText += "
";
+ }
+
+ blRedirected = false;
+ }
+
+ objDiv.innerHTML = "";
+ if(intTotalWarnings > 0) {
+ objDiv.innerHTML += "
e(2147483647/x)&&m("overflow");l*=x}l=g.length+1;a=u(f-c,l,0==c);e(f/l)>2147483647-k&&m("overflow");k+=e(f/l);f%=l;g.splice(f++,0,k)}return q(g)}function p(g){var h,f,k,p=[];g=b(g);var a=g.length;var c=128;var d=0;var n=72;for(k=0;kl&&p.push(t(l))}for((h=f=p.length)&&p.push("-");h=c&&
+l We are updating our blacklists regularly, and you may have visited a domain that we now consider
+ malicious. You can use this tool to let EAL inspect your browser history and see if you've visited
+ such domain. EAL will then give you some advice pointers on what to do if it finds something. If you wish to donate to the project, please send ETH or ERC20 tokens to: 0x661b5dc032bedb210f225df4b1aa2bdd669b38bc If you wish to donate to the project, please send ETH or ERC20 tokens to: 0x661b5dc032bedb210f225df4b1aa2bdd669b38bc Thanks, History Check
+
+
+
+ Note:
+ None of your browser history is communicated anywhere, all the checks are done locally. You may need to
+ accept the permission request for EAL to access your browser history. Running this check will be the only
+ time EAL looks at your browser history. Once the check is done, the permission will be removed.
+
+
+
+
+
+
+
+
+ EAL will inspect the last 500 history entries
+
+ Donate
-
— Harry.