[tor-commits] [snowflake/master] Count the number of clients the webext has served
arlo at torproject.org
arlo at torproject.org
Wed Jun 19 21:53:55 UTC 2019
commit 85625e19f923a7f5eac071fcbafd2838525ac3fd
Author: Arlo Breault <arlolra at gmail.com>
Date: Wed Jun 19 16:02:12 2019 -0400
Count the number of clients the webext has served
---
proxy/ui.coffee | 14 ++++++++++++++
proxy/webext/popup.css | 1 +
proxy/webext/popup.html | 3 ++-
proxy/webext/popup.js | 6 ++++--
4 files changed, 21 insertions(+), 3 deletions(-)
diff --git a/proxy/ui.coffee b/proxy/ui.coffee
index 0146abc..4148ea8 100644
--- a/proxy/ui.coffee
+++ b/proxy/ui.coffee
@@ -51,13 +51,26 @@ class DebugUI extends UI
class WebExtUI extends UI
port: null
+ stats: null
constructor: ->
+ @initStats()
chrome.runtime.onConnect.addListener @onConnect
+ initStats: ->
+ @stats = [0]
+ setInterval (() =>
+ @stats.unshift 0
+ @stats.splice 24
+ @postActive()
+ ), 60 * 60 * 1000
+
postActive: ->
@port?.postMessage
active: @active
+ total: @stats.reduce ((t, c) ->
+ t + c
+ ), 0
onConnect: (port) =>
@port = port
@@ -69,6 +82,7 @@ class WebExtUI extends UI
setActive: (connected) ->
super connected
+ if connected then @stats[0] += 1
@postActive()
chrome.browserAction.setIcon
path:
diff --git a/proxy/webext/popup.css b/proxy/webext/popup.css
index 8b3d5dc..dca805c 100644
--- a/proxy/webext/popup.css
+++ b/proxy/webext/popup.css
@@ -5,6 +5,7 @@ body {
#active {
padding: 2em;
text-align: center;
+ min-width: 128px;
}
.learn {
diff --git a/proxy/webext/popup.html b/proxy/webext/popup.html
index 3619b6c..6795b2e 100644
--- a/proxy/webext/popup.html
+++ b/proxy/webext/popup.html
@@ -8,7 +8,8 @@
<body>
<div id="active">
<img src="icons/status-off.png" />
- <p>Offline</p>
+ <p></p>
+ <p></p>
</div>
<div class="learn">
<a target="_blank" href="https://snowflake.torproject.org/">Learn more</a>
diff --git a/proxy/webext/popup.js b/proxy/webext/popup.js
index 9b68862..3869a5f 100644
--- a/proxy/webext/popup.js
+++ b/proxy/webext/popup.js
@@ -7,6 +7,8 @@ port.onMessage.addListener((m) => {
const div = document.getElementById('active');
const img = div.querySelector('img');
img.src = `icons/status-${active ? "on" : "off"}.png`;
- const p = div.querySelector('p');
- p.innerText = active ? "Connected" : "Offline";
+ const ps = div.querySelectorAll('p');
+ const clients = active ? 1 : 0;
+ ps[0].innerText = `${clients} client${(clients !== 1) ? 's' : ''} connected.`;
+ ps[1].innerText = `Your snowflake has helped ${m.total} user${(m.total !== 1) ? 's' : ''} circumvent censorship in the last 24 hours.`;
});
More information about the tor-commits
mailing list