commit 095f4a0510213e4d61993b91d93d07e4194a296e Author: Arlo Breault arlolra@gmail.com Date: Wed Jul 3 15:35:01 2019 +0200
Warn when WebRTC isn't detected in the webext
Trac 31067 --- proxy/init-badge.coffee | 4 ++++ proxy/init-webext.coffee | 6 ++++++ proxy/shims.coffee | 4 ---- proxy/util.coffee | 2 ++ proxy/webext/popup.js | 14 +++++++++++--- 5 files changed, 23 insertions(+), 7 deletions(-)
diff --git a/proxy/init-badge.coffee b/proxy/init-badge.coffee index eead5b0..c4c9604 100644 --- a/proxy/init-badge.coffee +++ b/proxy/init-badge.coffee @@ -2,6 +2,10 @@ Entry point. ###
+if (not TESTING? or not TESTING) and not Util.featureDetect() + console.log 'webrtc feature not detected. shutting down' + return + snowflake = null
query = Query.parse(location) diff --git a/proxy/init-webext.coffee b/proxy/init-webext.coffee index c2f47bf..716604f 100644 --- a/proxy/init-webext.coffee +++ b/proxy/init-webext.coffee @@ -17,6 +17,12 @@ log = (msg) ->
dbg = (msg) -> log msg if debug
+if not Util.featureDetect() + chrome.runtime.onConnect.addListener (port) -> + port.postMessage + missingFeature: true + return + init = () -> config = new Config ui = new WebExtUI() diff --git a/proxy/shims.coffee b/proxy/shims.coffee index dc7412f..8d3b979 100644 --- a/proxy/shims.coffee +++ b/proxy/shims.coffee @@ -31,9 +31,5 @@ else SessionDescription = window.RTCSessionDescription || window.mozRTCSessionDescription
- if typeof PeerConnection isnt 'function' - console.log 'webrtc feature not detected. shutting down' - return - WebSocket = window.WebSocket XMLHttpRequest = window.XMLHttpRequest diff --git a/proxy/util.coffee b/proxy/util.coffee index 02b6024..61fe6be 100644 --- a/proxy/util.coffee +++ b/proxy/util.coffee @@ -34,6 +34,8 @@ class Util return true return false
+ @featureDetect = () -> + return typeof PeerConnection is 'function'
class Query ### diff --git a/proxy/webext/popup.js b/proxy/webext/popup.js index 55891d4..0bf489d 100644 --- a/proxy/webext/popup.js +++ b/proxy/webext/popup.js @@ -3,11 +3,19 @@ const port = chrome.runtime.connect({ });
port.onMessage.addListener((m) => { - const active = m.active; const div = document.getElementById('active'); - const img = div.querySelector('img'); - const enabled = m.enabled const ps = div.querySelectorAll('p'); + if (m.missingFeature) { + div.querySelector('img').src = "icons/status-off.png"; + ps[0].innerText = "Snowflake is off"; + ps[1].innerText = "WebRTC feature is not detected."; + ps[1].style.color = 'firebrick'; + document.querySelector('.toggle').style.display = 'none'; + return; + } + const active = m.active; + const img = div.querySelector('img'); + const enabled = m.enabled; const clients = active ? 1 : 0; const enabledText = document.getElementById('toggle'); if (enabled) {
tor-commits@lists.torproject.org