mirror of
https://gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/snowflake.git
synced 2025-10-13 20:11:19 -04:00
implement snowflake-allow cookie check, messaging for when cookies disabled in options page. close #21
This commit is contained in:
parent
c6b02fdaca
commit
58d2854bbd
2 changed files with 27 additions and 4 deletions
|
@ -12,6 +12,7 @@ DEFAULT_RELAY =
|
|||
host: '192.81.135.242'
|
||||
port: 9902
|
||||
COPY_PASTE_ENABLED = false
|
||||
COOKIE_NAME = "snowflake-allow";
|
||||
|
||||
silenceNotifications = false
|
||||
query = Query.parse(location)
|
||||
|
@ -51,6 +52,7 @@ class Snowflake
|
|||
state: MODE.INIT
|
||||
retries: 0
|
||||
|
||||
# Prepare the Snowflake with a Broker (to find clients) and optional UI.
|
||||
constructor: (@broker, @ui) ->
|
||||
rateLimitBytes = undefined
|
||||
if 'off' != query['ratelimit']
|
||||
|
@ -204,6 +206,13 @@ log = (msg) ->
|
|||
dbg = (msg) -> log msg if DEBUG or snowflake.ui?.debug
|
||||
|
||||
init = (isNode) ->
|
||||
cookies = Parse.cookie document.cookie
|
||||
# Do nothing if snowflake has not been opted in.
|
||||
if cookies[COOKIE_NAME] != "1"
|
||||
console.log 'Snowflake is not activate. Please click the badge to change options.';
|
||||
return
|
||||
|
||||
# Hook up to the debug UI if available.
|
||||
ui = if isNode then null else new UI()
|
||||
silenceNotifications = Params.getBool(query, 'silent', false)
|
||||
brokerUrl = Params.getString(query, 'broker', DEFAULT_BROKER)
|
||||
|
@ -219,7 +228,6 @@ init = (isNode) ->
|
|||
snowflake.beginWebRTC()
|
||||
|
||||
# Notification of closing tab with active proxy.
|
||||
# TODO: Opt-in/out parameter or cookie
|
||||
window.onbeforeunload = ->
|
||||
if !silenceNotifications && MODE.WEBRTC_READY == snowflake.state
|
||||
return CONFIRMATION_MESSAGE
|
||||
|
|
|
@ -77,6 +77,14 @@
|
|||
<div id="snowflake-status"></div>
|
||||
</div>
|
||||
|
||||
<div id='cookies-disabled' style='display:none'>
|
||||
<hr/>
|
||||
<p>
|
||||
Your browser has cookies disabled. You will need to enable them in order
|
||||
to set Snowflake preferences.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
|
||||
// Defaults to opt-in.
|
||||
|
@ -120,9 +128,16 @@ function refreshStatus() {
|
|||
}
|
||||
}
|
||||
|
||||
$buttons = document.getElementById('buttons');
|
||||
$buttons.style = '';
|
||||
refreshStatus();
|
||||
window.onload = function() {
|
||||
if (navigator.cookieEnabled) {
|
||||
// Both JS and cookies enabled -- display normal buttons.
|
||||
document.getElementById('buttons').style = '';
|
||||
} else {
|
||||
// Display the cookies disabled message if necessary.
|
||||
document.getElementById('cookies-disabled').style = '';
|
||||
}
|
||||
refreshStatus();
|
||||
}
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue