-
Notifications
You must be signed in to change notification settings - Fork 844
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
chrome 74 is identified as safari on http #935
Comments
I think it's reasonable to not shim on http for adapter by default, and if it's needed either stay on old version, fork, or just use https. Exception should be made for localhost perhaps (fairly common to consider localhost secure, but then again I guess feature detection isn't a problem in that case). |
getUserMedia was recently made [SecureContext] and does not exist when running on http. This lead, similar to the scenario in #764 to Chrome being detected as Safari, activating the wrong shims. RTCPeerConnection will still be available but can only be used for datachannels and receive-only contexts where adapter doesn't offer much benefit. Fixes #935, requires a major version bump.
+1 |
getUserMedia was recently made [SecureContext] and does not exist when running on http. This lead, similar to the scenario in #764 to Chrome being detected as Safari, activating the wrong shims. RTCPeerConnection will still be available but can only be used for datachannels and receive-only contexts where adapter doesn't offer much benefit. Fixes #935, requires a major version bump.
getUserMedia was recently made [SecureContext] and does not exist when running on http. This lead, similar to the scenario in #764 to Chrome being detected as Safari, activating the wrong shims. RTCPeerConnection will still be available but can only be used for datachannels and receive-only contexts where adapter doesn't offer much benefit. Fixes #935, requires a major version bump.
Guys, This proposal is absolutely unacceptable. Your case 1: recveive-only video is one of the most common uses of WebRTC. All the applications that just play live streams sent from servers, will be affected for no reason. We have thousands of users, doing video surveillance from IP cameras, and they don't run their webpages over https, they don't need to. They just use http. Look at this, you are going to break it for no reason: |
@mazzomazzo how is that going to break? This would be the equivalent of adapter not being there, not RTCPeerConnection disappearing. (i can see how it would break if you try the legacy offerToReceive* stuff in safari though) |
Chrome does not implement 100% of standard, so shims from adapter are used. Please correct me if I am wrong and explain how |
FWIW: I wouldn't recommend pulling adapter from github pages as this might lead to regressions when this gets updated without you knowing about it. if you have an alternative solution to #764 that does not require looking for prefixed names or UA sniffing i'd be happy to hear about it. |
|
|
|
First, using an old version of adapter will work for some time. We can’t
support everything, especially not with this project being largely a
volunteer effort. There isn’t a reliable way to detect specific browsers,
and feature detection is not always correct.
http is going the way of the dinosaurs. Chrome and other browsers are
dropping support for a lot of privileged APIs from insecure contexts.
Adapter tries to shim but here I don’t see how we can avoid dropping
support for http without a reliable way to detect browsers.
If you have a solution, please submit a PR with your suggested solution. I
certainly don’t have a better suggestion at this moment.
…On Thu, 28 Mar 2019 at 17:35, mazzomazzo ***@***.***> wrote:
Guys,
This proposal is absolutely unacceptable.
Your case 1: recveive-only video is one of the most common uses of WebRTC.
All the applications that just play live streams sent from servers, will
be affected for no reason. We have thousands of users, doing video
surveillance from IP cameras, and they don't run their webpages over https,
they don't need to. They just use http.
Look at this, you are going to break it for no reason:
http://livecam.nmu.edu/1/
http://livecam.nmu.edu/2/
http://livecam.nmu.edu/3/
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
<#935 (comment)>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/AARZRKVE9gymSInIU1k_6RGGGLgCDJWjks5vbNLegaJpZM4cOveX>
.
|
the other alternative would be to check for webkitRTCPeerConnection iff webkitGetUserMedia is not there . We assumed I think that doesn't apply to safari (which does not have webkitRTCPeerConnection) and for Edge (which oddly exposes that) we can detect its edge-y ness by checking for RTCIceGatherer. |
Fixes #935 which is the chrome detection on insecure contexts where webkitGetUserMedia was removed along with getUserMedia in M74+. Fallback is to check for webkitRTCPeerConnection which avoiding Edge by checking for RTCIceGatherer.
This should be fixed (without dropping http support) in v7.2.3 which just landed on npm as well as adapter-latest.js |
a variant of #764:
Chrome 74 makes getUserMedia securecontext, i.e. not available when using http and not https. This leads to chrome being detected as Safari (due to UA sniffing, bad!)
I expect Mozilla to follow here which means Firefox detection would be broken too
One potential solution might be to not run any shims on http and detect as unknown browser there. This isn't going to work great but there are just two legitimate use-cases on http:
so the impact might be limited.
The text was updated successfully, but these errors were encountered: