Replies: 4 comments 35 replies
-
I read the original discussion on this again and I think the Bromite patch is breaking on purpose for safe fallback. What if you use this patch instead: https://github.com/GrapheneOS/Vanadium/blob/12/patches/0051-most-private-WebRTC-IP-handling-policy-by-default.patch? Will it still break things? |
Beta Was this translation helpful? Give feedback.
-
Trash the policy. Stop doctoring. It cannot work because no one wants a crippled WebRTC. Instead, allow users to turn it off completely. [ x ] Disable WebRTC Make it enabled by default, like a conformant browser. And tell VPN users they need to check this ON to prevent IP leakage. In disabled state I expect RTCPeerConnection() to return null (Edit: or NotFoundError). This will ensure WebRTC apps don't "appear to work" while being hung with no user feedback. |
Beta Was this translation helpful? Give feedback.
-
after checking the code here is what i found. there are three options:
the logic of enable_multiple_routes has priority over enable_default_local_candidate, the latter is not taken into account if enable_multiple_routes = true @csagan5 I have not noticed any differences in the management of the cct, neither application nor functional. Would you give me a way to reproduce what you say? about the error condition: the documentation explicitly says
This is not actually true in chromium, because due to the filtering done on candidates instead of deleting the value, the passing of null is one per interface. But the documentation also says:
so it seems to me that there is already a way to know if the webrtc negotiation cannot be successful by verifying the lack of ice candidates or the status of the event. regarding the possibility of throwing an exception to the creation of RTCPeerConnection, although it does not seem foreseen in the ultimately, we could go back to default and remove the patch, after all having webrtc only active on the public interface i think has alternatively, as I said, it is possible to activate a content setting that allows a choice between (EDIT) |
Beta Was this translation helpful? Give feedback.
-
I have changed the way WebRTC is handled. A new flag is added and when it is enabled, |
Beta Was this translation helpful? Give feedback.
-
I have new findings regarding webRTC-policy patch.
There are two major issues. First, with your WebRTC patch, no ICE candidates are being generated. This prevents P2P connections from being established. The failure occurs without an error message or any explanation towards the user. This means that the WebRTC app developer is likely to receive complaints.
The second problem is even more severe. The connectionStateChange [1] event handler is never called. WebRTC apps often depend on this handler to be called at some point. If it is never called, it can cause flawless WebRTC apps to hang (!) without any user feedback. All web browsers call this handler on any OS - including Ungoogled-Chromium on Mac, Windows and Linux. But your implementation on Android does not, causing apps to hang.
Apps hanging for no apparent reason is a really bad experience. This is why I ask you to resolve these issues, for instance by returning error or "disconnect" messages where functionality is being disabled. If you break apps, at least let them fail graciously.
[1] https://developer.mozilla.org/en-US/docs/Web/API/RTCPeerConnection/connectionstatechange_event
Beta Was this translation helpful? Give feedback.
All reactions