Glimesh / glimesh.tv

Glimesh is a next generation live streaming platform built by the community, for the community.
https://glimesh.tv
Other
470 stars 79 forks source link

Support older browsers #404

Closed clone1018 closed 2 years ago

clone1018 commented 3 years ago

We found out this morning that Microsoft Edge 40.15063.674.0 does not support some function that LiveView uses. Apparently there's a polyfill that should help patch it for older browsers, however I did not catch what it was.

clone1018 commented 3 years ago

From NightmareJoker2 on Discord (Formatted for clarity):

Lemme chime in on this real quick: For regular users, yes, probably not everything has to work perfectly. They will either be well served with a recent version of Chromium or Firefox, and for the rest who aren't, nobody cares if a button is misaligned or some other stupid nonsense while they're editing their profile in a browser without support for playing WebRTC video. But it would still be a good idea to:

  1. pop a message telling the user to update their browser and/or operating system if it has reached the end of the support lifecycle or can't support the features of the website, and
  2. to ensure the OAuth flow works on even legacy browsers that are available by default on still supported operating systems (older versions of Windows Server, for example, 2012 and 2012 R2 come with IE 11), or supported browsers with poor modern web support (there are some of those in the Linux ecosystem).

Personally, I would go as far as making sure some method of passing OAuth grant flow is available even for devices without the ability to run a web browser at all (shortcode or device flow), even. Making the effort to gracefully polyfill some of the features is also trivial and takes using a feature detecting open source library at most for something that's not CSS, and then maybe it won't look as nice if a CSS feature isn't supported or a font not installed, but that's usually not the end of the world.

dori4n commented 3 years ago

Probably window.customElements of which a .get(name) call fails, though I did only just test this with Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.102 Safari/537.36 Edge/18.19041. The entire CustomElementRegistry isn't supported in Edge versions before 79 (i.e. new Chromium based Edge) and all versions of Internet Explorer. Polyfill is here: https://www.npmjs.com/package/@webcomponents/custom-elements

Cykotiq commented 3 years ago

I think a big part of this is knowing our user-base, Most of our users will be people streaming from home - probably from chrome or edge (maybe firefox). We are not likely to have a ton of business users, and if we do then hopefully they are able to install another browser or update the one they have. The cost (time) to benefit ratio is just not high enough to spend a ton of time supporting old browsers. Part of our brand (next-gen livestreaming) is to make use of the latest tech - ftl and webrtc - people shouldn't be that surprised when it doesn't work on old browsers (within reason).

If we're gonna do things the "right" way then we should do feature detection, not browser detection, to know if everything will work properly or not. From there we just have to do our best to degrade gracefully, and then when we can't degrade gracefully we can tell them their browser doesn't support a feature we need.

I don't think we need to worry about any of this until we are out of alpha though. We're not pretending to fully support all browsers or even be stable at this point, but it is something we should perhaps look at before we move to beta and eventually a full version of the site. By that time though, those browsers may be End-Of-Life (or liveview compatibility may improve) and we won't have to worry about it.

void-function commented 2 years ago

I'm currently using Firefox 91.5.0esr and video simply does not work. This browser is not old. I hope this can be fixed going forward. Yes, most of your users will be using the latest chrome browser; but, not all of them (and hopefully less and less of them!). I don't expect NetSurf to work or anything like that; but, FireFox esr not working?

I hope to see a fix for this, and thank-you for your time, really interested so far, it's just the site doesn't work, currently.

clone1018 commented 2 years ago

Hey there @void-function, custom elements (which this issue is mostly referencing) has been supported in Firefox since at least version 63. So you should be good to go :)!

Microsoft Edge version 40 was released in April 11, 2017 and uses a proprietary engine from Microsoft and will not be able to be used with Glimesh. Edge 44+ uses Chromium and is completely supported.

We'd love to help get Glimesh working on your browser, I suspect it's some adblocker or WebRTC disabler. If you can join our Discord, Tweet us, post on our Building Glimesh bugs section, or email us at support@glimesh.tv we can help out in more depth!


For now I'm going to close this ticket, there's no current browsers I'm aware of that do not support Glimesh due to functionality incompatibilities.