Commit graph

257 commits

Author SHA1 Message Date
David Fifield
aa668bdc92 Set binaryType="arraybuffer" for RTCDataChannel, just as with WebSocket.
The binaryType can be "arraybuffer" or "blob", and "blob" is the
default. The code is only aware of "arraybuffer": I discovered a problem
while running snowflake.html in debug mode; this code fails:
    if DEBUG
      # Go sends only raw bytes...
      if '[object ArrayBuffer]' == recv.toString()
        bytes = new Uint8Array recv
        line = String.fromCharCode.apply(null, bytes)
      line = line.trim()
      log 'WebRTC --> websocket data: ' + line
with the error:
	TypeError: line.trim is not a function[Learn More] snowflake.js:497:16
because recv is of type Blob, not ArrayBuffer.

Despite the unexpected type, the code seemed to work as expected when
not in debug mode. Though the two types provide different interfaces,
they are both valid to pass on to WebSocket.send. The only other thing
we did with it was try to read the .length member for rate-limiting
purposes:
        @rateLimit.update chunk.length
but .length is incorrect for either type: Blob uses .size and
ArrayBuffer uses .byteLength. It worked anyway, because
DummyRateLimit.update doesn't actually look at its argument.

We were already setting binaryType="arraybuffer" for WebSocket
connections.
2018-12-19 21:30:39 -07:00
David Fifield
a48b704788 Remove "broker" and "relay" query params in proxy/README.
Addendum to #28727.
2018-12-05 13:40:17 -07:00
David Fifield
52e79a4b43 Bump last updated date. 2018-12-05 13:39:01 -07:00
David Fifield
debe9c3748 Bug 28727: remove "broker" and "relay" query string parameters.
These could be misused to cause Snowflake proxies to attempt connect to
unsuspecting third parties.
https://bugs.torproject.org/28727
2018-12-05 13:35:03 -07:00
David Fifield
5817c257c1 Fix a local variable reference in BucketRateLimit.when.
ReferenceError: age is not defined	snowflake.js:265:7
        BucketRateLimit.prototype.when	snowflake/proxy/build/snowflake.js:265:7
        ProxyPair.prototype.flush	snowflake/proxy/build/snowflake.js:558:63
        bind/<	snowflake/proxy/build/snowflake.js:10:56
        ProxyPair.prototype.onClientToRelayMessage	snowflake/proxy/build/snowflake.js:495:14
        bind/<	snowflake/proxy/build/snowflake.js:10:56
2018-12-04 17:14:35 -07:00
David Fifield
9545be1c9f '//' is not a CSS comment.
I got the warning:
	Expected declaration but found ‘/’.  Skipped to next declaration.
2018-12-04 15:46:12 -07:00
David Fifield
3cd8519ec9 Fix the ProxyPair tests exposed by the previous commit.
This was mainly a matter of more complete mocking.
2018-12-04 15:09:53 -07:00
David Fifield
fce32bf292 Fix nested Jasmine tests.
You can nest a "describe" in a "describe":
  describe
    describe
      it

But you can't nest an "it" in an "it":
  describe
    it
      it

The nested "it"s were not getting run (or getting run, but their output
ignored, I'm not sure).

Before this change:
	41 specs, 0 failures
After:
	44 specs, 5 failures
2018-12-04 15:09:53 -07:00
David Fifield
261ef8f5bc Remove duplicate ProxyPair tests from util.spec.coffee. 2018-12-04 15:09:53 -07:00
David Fifield
fd9efa1001 Fix text-shadow CSS.
The semicolons made it look like the end of a declaration. I got these
errors in the Firefox console:

Expected declaration but found ‘1px’.  Skipped to next declaration. 1 embed.html:29:17
Expected declaration but found ‘-1px’.  Skipped to next declaration. 1 embed.html:30:17
2018-04-17 17:21:46 -07:00
Arlo Breault
433a47fdf7 Only unset the header for the page being rendered 2018-04-17 16:43:01 -04:00
Arlo Breault
b441ae4bf4 Add an .htaccess file to unset X-Frame-Options 2018-04-17 16:05:39 -04:00
David Fifield
947636ae81 Change to standalone broker.
https://snowflake-reg-test.appspot.com/ for the client (needs domain fronting)
https://snowflake-broker.bamsoftware.com/ for the proxies (no fronting)

Note that fronting to App Engine doesn't currently actually work because
of https://bugs.torproject.org/25804; this commit doesn't change that.
2018-04-16 10:24:00 -07:00
David Fifield
a9630a8234 keroserene.net/snowflake → snowflake.torproject.org 2018-04-16 10:24:00 -07:00
David Fifield
a762becbaa Link to wiki page rather than github source code.
I'm intuiting that the purpose of linking to github was to show the
README, not to link to the source code per se, so I changed the link to
point to the wiki page rather than gitweb.torproject.org/....

https://bugs.torproject.org/23947#comment:15
2018-04-16 10:24:00 -07:00
David Fifield
9f1c7b12c8 Link to Snowflake wiki page rather than mailing list post.
The wiki page in turn links to the post.
2018-04-15 17:36:53 -07:00
David Fifield
933c117a48 Declare utf-8 in index.html. 2018-04-15 17:32:36 -07:00
David Fifield
5a1dffcceb Update "last updated" date; remove "~Serene" signoff. 2018-04-15 17:25:10 -07:00
David Fifield
bcef2ee7fb Add <title> to index.html and snowflake.html. 2018-04-15 17:23:16 -07:00
David Fifield
01d1f951e5 Add the cake build hint to proxy/README.md.
It was already in the root README.md, but proxy/README.md is where I
always look for it.
2018-04-15 17:13:26 -07:00
David Fifield
2e59838faf Documentation fix: current default relay.
Was missed in 3fe10f3e7c.
2018-04-15 17:07:32 -07:00
Arlo Breault
c62111c507 Freeze jasmine until tests are updated for newer version 2018-03-05 20:40:47 -05:00
Arlo Breault
99604ff15a Downgrade coffeelint line lengths to a "warning" 2017-10-18 11:39:17 -04:00
David Fifield
eca7ebb265 Bug 18628: Pass the client_ip parameter in the JavaScript proxy as well. 2017-10-14 15:06:36 -04:00
David Fifield
0c7ddeb1d0 Parse.ipFromSDP function. 2017-10-14 15:06:36 -04:00
David Fifield
0ccb4b7cc8 Have embed.html refresh itself once a day.
This is a hedge against any bugs that may cause the badge to hang when
left running for a long time, and it also means that badges will
effectively check for updated code once a day.
2017-07-15 14:38:01 -07:00
David Fifield
f2ee53e42e Use https links for keroserene.net. 2017-07-14 18:36:44 -07:00
Serene H
9f2e9a6ecb disable for TBB user agents. closes #37 2017-03-01 19:09:24 -08:00
Serene H
6d2b0ac420 move disable check to snowflakeIsDisabled 2017-03-01 18:51:24 -08:00
Serene H
3fe10f3e7c default to wss and some documentation updates, #40 2017-02-28 22:46:39 -08:00
Arlo Breault
d1ec51bfb9 Remove unused clientAddr from ProxyPair 2017-01-23 12:34:08 -08:00
Arlo Breault
5212eda6b2 Fix logging inactive to ui 2017-01-23 12:01:23 -08:00
Arlo Breault
3516599bae Fix lint complaints 2017-01-18 17:23:18 -08:00
Arlo Breault
61a2702ded Pass on exit code from spawned task so CI fails 2017-01-18 17:20:13 -08:00
Serene H
58d2854bbd implement snowflake-allow cookie check, messaging for when cookies disabled in options page. close #21 2017-01-02 14:43:45 -08:00
Serene H
c6b02fdaca implement options page opt-in button, messaging and styling.
clicking the badge links to options page, and tested no-js mode #21
2017-01-02 14:23:21 -08:00
Serene H
f2bbf80c7d begin options page for proxy #21 2017-01-02 13:41:28 -08:00
Arlo Breault
e295556254 Standalone snowflake
* Start of #30
2016-12-20 10:36:42 -08:00
Arlo Breault
c8c5d56b73 Remove deprecated callbacks 2016-12-20 10:35:08 -08:00
Arlo Breault
1d193a38a3 Use logger instead 2016-12-20 08:21:41 -08:00
Arlo Breault
77c41207ef Drop unmaintained coffee-snowflake.html 2016-12-20 08:21:35 -08:00
Serene H
47e1338290 initial client roundtrip estimate on broker 2016-09-20 06:28:11 -07:00
Serene H
0ae71952d2 additional proxy timeout check 2016-07-25 15:28:10 -07:00
Serene Han
361da32ecb lint proxypair 2016-05-18 13:21:01 -07:00
David Fifield
0690b0620d Make koch.jpg square and tile better.
It was wider than tall and there was a column of black pixels at the far
right.
2016-05-16 16:43:33 -07:00
Arlo Breault
81931fa8e7 Clear ws connection timeout on success/failure
* Follow up to 14fc6a13
2016-05-10 18:46:49 -07:00
Arlo Breault
064875cc29 Fix some logging 2016-05-10 17:04:03 -07:00
Serene Han
6a8c88fe64 fix proxy createAnswer error handling for updated WebRTC syntax 2016-05-02 11:10:52 -07:00
Arlo Breault
d567e2312f Feature detect with Modernizr
* A start on #34
2016-04-05 10:30:45 -07:00
Serene Han
14fc6a13c2 timout for websocket connection failure 2016-04-05 10:29:17 -07:00