Commit graph

1440 commits

Author SHA1 Message Date
Cecylia Bocovich
4494dbd3ca Move toggle initiation init-webext.coffee
Prevents repeat calls to update() on startup
2019-07-04 17:01:27 -04:00
Cecylia Bocovich
6210b5ea7f Check returns properly for receiving offer
Now that we're setting the active attribute of pair to true before
accepting a client offer, we should be careful to reset it to false if
receiving the offer fails
2019-07-04 17:01:27 -04:00
Cecylia Bocovich
f6f37c7e68 Enable snowflake extension by default 2019-07-04 17:01:27 -04:00
Cecylia Bocovich
d1bcc3cc3e Fix linting errors 2019-07-04 17:01:27 -04:00
Cecylia Bocovich
2cd69f6f25 Save webextension toggle state
Save whether the snowflake extension is currently enabled in local
storage so that users do not need to opt-in again every time the browser
is restarted
2019-07-04 17:01:27 -04:00
Cecylia Bocovich
e93584029a Added a new snowflake colour for active cons
If there is an active connection through your snowflake proxy, your
snowflake will turn to green
2019-07-04 17:01:27 -04:00
Arlo Breault
526e42a443 Fix ref to undefined global in the badge
Introduced in ead579a, `config` is only a global in the webextension.
2019-07-03 15:40:05 +02:00
Arlo Breault
7090316e5c getClientOffer can return after snowflake is disabled 2019-07-02 10:03:44 -04:00
Arlo Breault
51bc1cf3ed Include a local copy of the arrow icon
From https://design.firefox.com/icons/icons/desktop/arrowhead-right-12.svg
2019-07-02 10:03:44 -04:00
Arlo Breault
b1116a1c35 Stop resetting after every pair closes 2019-07-02 10:03:44 -04:00
Cecylia Bocovich
58d07788c7 Fix whitespace to match conventions 2019-07-02 10:01:34 -04:00
Cecylia Bocovich
f890739a38 Updated popup icon to be purple when it's enabled 2019-07-02 10:01:34 -04:00
Cecylia Bocovich
651dca464f Remove unecessary logging 2019-07-02 10:01:34 -04:00
Cecylia Bocovich
6f01a6bfc4 Removed unecessary permissions from manifest 2019-07-02 10:01:34 -04:00
Cecylia Bocovich
788f2a595f Fixed linting errors/warnings and tests
The test failure was due to pollBorker waiting the full 5 seconds before
polling for the first time.

The lint errors were some trailing whitespace and unecessary fat arrows
2019-07-02 10:01:34 -04:00
Cecylia Bocovich
799a13d385 Add toggle functionality to web extension 2019-07-02 10:01:34 -04:00
Cecylia Bocovich
ead579a6e9 Refactored poll loop
This enables breaking the loop from the outside and cleans up the
countdown
2019-07-02 10:01:34 -04:00
Antonela D
eeae741262 Update to popup UI and addition of toggle 2019-07-02 10:01:34 -04:00
Cecylia Bocovich
19244c7146 Merge branch 'ticket21315' 2019-06-28 17:31:02 -04:00
Arlo Breault
fdc10fd08a Bump the webextension to 0.0.1 2019-06-26 18:52:46 -04:00
Arlo Breault
055d5f1824 Appease validation warning about "Unsafe assignment to innerHTML"
This doesn't apply to the webextension but hasn't been factored out in
the build step yet.
2019-06-26 18:30:24 -04:00
Cecylia Bocovich
908cf3fc64 Updated tests to check new stats
Updated the tests to pass with our new snowflake-ips-total stat
2019-06-25 10:06:00 -04:00
Cecylia Bocovich
8f2dc3563b Added a metric that sums available snowflakes
Added another metrics item that counts the total availabel snowflakes
(unique by IP address)
2019-06-25 09:33:45 -04:00
Arlo Breault
ff6f91f3da Make the doorhanger narrower in FF 2019-06-24 16:07:03 -04:00
Arlo Breault
a70f5b9181 Use system font stack in the webextension 2019-06-24 13:25:51 -04:00
David Fifield
77aac03b7e Documentation links for loading an unpacked extension. 2019-06-21 15:02:24 -06:00
Arlo Breault
85625e19f9 Count the number of clients the webext has served 2019-06-19 17:50:05 -04:00
Cecylia Bocovich
f779013b2d Fixed small formatting errors of log output
- removed trailing ","s
- removed unecessary space before seconds
2019-06-14 17:09:06 -04:00
Cecylia Bocovich
0767a637c1 Changed variable names/types to be more reasonable
Also moved the geoip check to occur after we've make sure the proxy IP
hasn't yet been recorded. This is will cut down on unecessary
computation.
2019-06-14 17:00:31 -04:00
Cecylia Bocovich
92d61f2555 Added a comment for the metrics specification 2019-06-12 10:17:55 -04:00
Cecylia Bocovich
fe3356a54d Unit tests for metrics code
Added unit tests for metrics logging. Refactored the logMetrics()
function to allow for easier testing
2019-06-12 10:14:21 -04:00
Cecylia Bocovich
25f059f4c4 Log geoip stats of proxies by unique IP
Change it so that we log the geoip country code of proxies if they poll
within the current metrics epoch. We make sure we log by unique IP
address
2019-06-11 15:43:59 -04:00
Cecylia Bocovich
c782ebdcea Format output to meet specification
Output is now printed out in Tor Directory Protocol Format, as specified
in https://trac.torproject.org/projects/tor/ticket/21315#comment:19.
2019-06-11 15:01:05 -04:00
Cecylia Bocovich
175b8efb04 Bin metrics to nearest mult of 8 2019-06-11 14:27:42 -04:00
Cecylia Bocovich
0293674e38 Zero out counts for next time step 2019-06-11 14:19:14 -04:00
Cecylia Bocovich
d57cd07599 Implemented count metrics for broker events
Added three new metrics:
- proxyIdleCount counts the number of times a proxy polls and receives
no snowflakes
- clientDeniedCount counts the number of times a client requested a
snowflake but none were available
- clientProxyMatchCount counts the number of times a client successfully
received a snowflake
2019-06-11 14:16:01 -04:00
Cecylia Bocovich
64ce7dff1b Changed time resolution for metrics collection
Set the resolution of metrics data collection to be every 24 hours
2019-06-11 13:44:59 -04:00
Arlo Breault
91255463c6 Start on popup 2019-06-06 12:17:11 -04:00
Philipp Winter
11efa42e4c
Cache certificates across program restarts.
So far, we request a certificate each time we start the broker.  Let's
Encrypt maintains several rate limiters and if we exceed one of them, we
won't get a certificate.  Worse, since we don't store certificates, we
won't even be able to use an old one.

This patch uses autocert's DirCache structure to cache certificates on
disk.

This patch fixes <https://bugs.torproject.org/30512>.
2019-06-03 15:50:35 -07:00
Cecylia Bocovich
cd650fa009 Keyed composite literal to avoid go vet warning 2019-05-28 13:58:16 -04:00
Cecylia Bocovich
254e6b9a3d Simplified limitedReader by reading one extra byte 2019-05-28 13:29:59 -04:00
Cecylia Bocovich
0842dad38e Added tests to check large read guards 2019-05-28 13:29:59 -04:00
Cecylia Bocovich
1d76d3ca2e Implement limitedRead function for client side
MaxBytesReader is only documented for server side reads, so we're using
a local limitedRead function instead that uses an io.LimitedReader.

Declared limits in a commented constant
2019-05-28 13:29:59 -04:00
Cecylia Bocovich
ce3101d016 Guard against large reads
This is a fix for #26348
2019-05-28 13:29:59 -04:00
Arlo Breault
5380aaca8c Use OnIceGatheringStateChange instead of OnIceComplete in client
Amounts to the same thing as currently implemented in go-webrtc
2019-05-21 14:34:40 -04:00
Arlo Breault
d7676d2b9e Stop using OnIceComplete in server-webrtc
Similar to c28c8ca for proxy-goc
2019-05-21 14:34:40 -04:00
Arlo Breault
2e4383434f Move datachannel timeout to after sendAnswer return 2019-05-20 15:43:55 -04:00
Arlo Breault
dd927050d9 Appease go vets complaints about passing locks by value 2019-05-16 12:58:25 -04:00
Arlo Breault
b77a99b565 Fix broker tests
NewBrokerContext now requires a logger so give it one to discard the
logs.
2019-05-16 12:34:21 -04:00
Arlo Breault
762a52aee6 Prefer a background script to a page in the webext
Now that the page is no longer necessary.
2019-05-16 12:07:06 -04:00