[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]
[tor-commits] [snowflake/master] Snowflake badge works, and animates when serving client (issue #16) and some logging cleanups
commit 21c38a04ceac3cfa14dc932c979075c7b6cfbe76
Author: Serene Han <keroserene+git@xxxxxxxxx>
Date: Wed Feb 3 21:37:21 2016 -0800
Snowflake badge works, and animates when serving client (issue #16) and some logging cleanups
---
proxy/broker.coffee | 14 +++++++-------
proxy/proxypair.coffee | 19 +++++++++----------
proxy/snowflake.coffee | 11 ++++++-----
proxy/static/embed.html | 30 +++++++++++++++++++++---------
proxy/ui.coffee | 2 +-
5 files changed, 44 insertions(+), 32 deletions(-)
diff --git a/proxy/broker.coffee b/proxy/broker.coffee
index 0f5c4ab..2cc39f7 100644
--- a/proxy/broker.coffee
+++ b/proxy/broker.coffee
@@ -24,7 +24,7 @@ class Broker
constructor: (@url) ->
@clients = 0
@id = genSnowflakeID()
- log 'Contacting Broker at ' + @url + '\nSnowflake ID: ' + @id
+ dbg 'Contacting Broker at ' + @url + '\nSnowflake ID: ' + @id
# Ensure url has the right protocol + trailing slash.
@url = 'https://' + @url if 0 != @url.indexOf('https://', 0)
@url += '/' if '/' != @url.substr -1
@@ -61,8 +61,8 @@ class Broker
xhr.send @id
sendAnswer: (answer) ->
- log @id + ' - Sending answer back to broker...\n'
- log answer.sdp
+ dbg @id + ' - Sending answer back to broker...\n'
+ dbg answer.sdp
xhr = new XMLHttpRequest()
try
xhr.open 'POST', @url + 'answer'
@@ -74,12 +74,12 @@ class Broker
return if xhr.DONE != xhr.readyState
switch xhr.status
when STATUS_OK
- log 'Broker: Successfully replied with answer.'
- log xhr.responseText
+ dbg 'Broker: Successfully replied with answer.'
+ dbg xhr.responseText
when STATUS_GONE
- log 'Broker: No longer valid to reply with answer.'
+ dbg 'Broker: No longer valid to reply with answer.'
else
- log 'Broker ERROR: Unexpected ' + xhr.status +
+ dbg 'Broker ERROR: Unexpected ' + xhr.status +
' - ' + xhr.statusText
Status.set ' failure. Please refresh.'
xhr.send JSON.stringify(answer)
diff --git a/proxy/proxypair.coffee b/proxy/proxypair.coffee
index 3c62d13..83dc353 100644
--- a/proxy/proxypair.coffee
+++ b/proxy/proxypair.coffee
@@ -32,16 +32,15 @@ class ProxyPair
if null == evt.candidate
# TODO: Use a promise.all to tell Snowflake about all offers at once,
# once multiple proxypairs are supported.
- log 'Finished gathering ICE candidates.'
+ dbg 'Finished gathering ICE candidates.'
if COPY_PASTE_ENABLED
Signalling.send @pc.localDescription
else
snowflake.broker.sendAnswer @pc.localDescription
# OnDataChannel triggered remotely from the client when connection succeeds.
@pc.ondatachannel = (dc) =>
- console.log dc
channel = dc.channel
- log 'Data Channel established...'
+ dbg 'Data Channel established...'
@prepareDataChannel channel
@client = channel
@@ -52,19 +51,19 @@ class ProxyPair
catch e
log 'Invalid SDP message.'
return false
- log 'SDP ' + offer.type + ' successfully received.'
+ dbg 'SDP ' + offer.type + ' successfully received.'
true
prepareDataChannel: (channel) =>
channel.onopen = =>
- log 'Data channel opened!'
+ log 'WebRTC DataChannel opened!'
snowflake.state = MODE.WEBRTC_READY
ui.setActive true
# This is the point when the WebRTC datachannel is done, so the next step
# is to establish websocket to the server.
@connectRelay()
channel.onclose = ->
- log 'Data channel closed.'
+ log 'WebRTC DataChannel closed.'
ui.setStatus 'disconnected.'
snowflake.state = MODE.INIT
ui.setActive false
@@ -75,11 +74,11 @@ class ProxyPair
# Assumes WebRTC datachannel is connected.
connectRelay: =>
- log 'Connecting to relay...'
+ dbg 'Connecting to relay...'
@relay = makeWebsocket @relayAddr
@relay.label = 'websocket-relay'
@relay.onopen = =>
- log '\nRelay ' + @relay.label + ' connected!'
+ log @relay.label + ' connected!'
ui.setStatus 'connected'
@relay.onclose = @onClose
@relay.onerror = @onError
@@ -106,13 +105,13 @@ class ProxyPair
onClose: (event) =>
ws = event.target
- log(ws.label + ': closed.')
+ log ws.label + ' closed.'
@flush()
@maybeCleanup()
onError: (event) =>
ws = event.target
- log ws.label + ': error.'
+ log ws.label + ' error.'
@close()
# we can't rely on onclose_callback to cleanup, since one common error
# case is when the client fails to connect and the relay never starts.
diff --git a/proxy/snowflake.coffee b/proxy/snowflake.coffee
index 60c2751..a0cce74 100644
--- a/proxy/snowflake.coffee
+++ b/proxy/snowflake.coffee
@@ -118,7 +118,7 @@ class Snowflake
@retries++
recv.then (desc) =>
offer = JSON.parse desc
- log 'Received:\n\n' + offer.sdp + '\n'
+ dbg 'Received:\n\n' + offer.sdp + '\n'
@receiveOffer offer
, (err) ->
countdown(err, DEFAULT_BROKER_POLL_INTERVAL / 1000)
@@ -133,7 +133,7 @@ class Snowflake
sendAnswer: =>
next = (sdp) =>
- log 'webrtc: Answer ready.'
+ dbg 'webrtc: Answer ready.'
@proxyPair.pc.setLocalDescription sdp
promise = @proxyPair.pc.createAnswer next
promise.then next if promise
@@ -170,7 +170,7 @@ class Snowflake
# Close all existing ProxyPairs and begin finding new clients from scratch.
reset: ->
@cease()
- log '\nSnowflake resetting...'
+ log 'Snowflake resetting...'
@retries = 0
@beginWebRTC()
@@ -178,7 +178,6 @@ snowflake = null
broker = null
ui = null
-
# Signalling channel - just tells user to copy paste to the peer.
# Eventually this should go over the broker.
Signalling =
@@ -202,9 +201,11 @@ Signalling =
# Log to both console and UI if applicable.
log = (msg) ->
- console.log msg
+ console.log 'Snowflake: ' + msg
ui.log msg
+dbg = (msg) -> log msg if ui.debug
+
init = ->
ui = new UI()
log '== snowflake proxy =='
diff --git a/proxy/static/embed.html b/proxy/static/embed.html
index ae361c6..c59809e 100644
--- a/proxy/static/embed.html
+++ b/proxy/static/embed.html
@@ -13,23 +13,35 @@
body {
position: absolute;
width: 100%; height: 100%; top: 0; margin: 0 auto;
- background-color: #424;
- color: #000;
- text-align: center;
- font-size: 16px;
- font-variant: small-caps;
+ background-color: #424; color: #000;
+ font-size: 10px; letter-spacing: 1px; font-variant: small-caps;
+ text-align: center; cursor: default;
+ margin: 0; padding: 0;
}
#badge {
- margin: auto;
- width: 88px; height: 31px;
+ margin: auto; padding: 0;
+ width: 88px; height: 16px;
background-image: url('koch.jpg');
- color: #fff;
+ text-shadow: 0 0 5px #fef;
+ font-weight: 900;
+ }
+ .active {
+ -webkit-animation: bgScroll 8s linear infinite;
+ animation: bgScroll 8s linear infinite;
+ }
+ @-webkit-keyframes bgScroll {
+ from {background-position: 49% -4%;}
+ to {background-position: 49% 104%;}
+ }
+ @keyframes bgScroll {
+ from {background-position: 49% -4%;}
+ to {background-position: 49% 104%;}
}
</style>
</head>
<body>
<div id="badge">
- Snowflake
+ Internet Freedom
</div>
</body>
</html>
diff --git a/proxy/ui.coffee b/proxy/ui.coffee
index eb54854..648a88e 100644
--- a/proxy/ui.coffee
+++ b/proxy/ui.coffee
@@ -37,7 +37,7 @@ class UI
if debug
@$msglog.className = if connected then 'active' else ''
else
- # magic
+ @$badge.className = if connected then 'active' else ''
# Local input from keyboard into message window.
acceptInput: =>
_______________________________________________
tor-commits mailing list
tor-commits@xxxxxxxxxxxxxxxxxxxx
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits