Skip to content
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

Browser compatibility #2739

Open
HT-7 opened this issue Oct 8, 2023 · 0 comments
Open

Browser compatibility #2739

HT-7 opened this issue Oct 8, 2023 · 0 comments

Comments

@HT-7
Copy link

HT-7 commented Oct 8, 2023

First of all, thank you for creating this amazing project and facilitating video embedding for many websites around the web. Inspite of any criticism, keep in mind that I appreciate the good work you have done.


The current version of plyr.js, 3.7.8, does not support Google Chrome and Chromium 72, where as plyr 3.6.9 did support Chrome and Chromium 72. While plyr usually falls back to the native HTML5 player of the browser, the failed execution of plyr causes other scripts on websites that use plyr to not load.

Wait, what? You want us to support a Chrome version from 2019? Why don't you just update your browser?

I obviously use fairly recent versions of web browsers most of the time, since they are more secure and more stable. However, some embedded systems like smart TVs have browsers that can not be updated. People also might be in school or work environments where browsers would require administrative privileges to update and the operating system is routinely reset from an image that contains an older browser version, or they might be unable to update their browser due to the Linux dependency hell.

We can not ask all schools in the world to update their operating system images. It would be far easier to just improve compatibility with earlier browsers.

Likewise, a website that relies on plyr.js might update to a new version of plyr.js, unknowingly breaking compatibility.

Another problem is that newer versions of web browsers might only be supported on smartphones with non-replaceable batteries, since smartphones with replaceable batteries are sadly barely produced these days. Streaming video is a heavy workload task, causing a phone battery to wear down and lose capacity quickly, so one might want to do it on a smartphone whose battery is replaceable without enormous difficulty.

Therefore, it would be good if plyr.js supported older browsers that work on smartphones from a time where replaceable batteries were common.

Also, with each browser update comes the risk that something that worked before is suddenly broken, or useful functionality is revoked.

As an infamous example, Google took away the ability to turn off the pull-to-refresh gesture through chrome://flags in Chrome and Chromium for Android in 2019, which also took derivatives with it. Since scrolling up is far more common than refreshing the page, pull-to-refresh causes frequent unwanted page reloads, making browsing unenjoyable. Avoiding pull-to-refresh is a walk on eggshells. Pull-to-refresh was intended as a helpful shortcut, but in practice, it is anything but that. Pull-to-refresh is a gross inconvenience and, dare I say, a voluntarily implemented bug.

In 2019, Google also posed an ultimatum to the developers of Kiwi browser, a Chromium derivative. "Remove background video playback or else your app will be kicked from the Play Store." Background video playback not only is essential to productivity, but desktop computers and laptops with Windows and Linux (but I presume not Chrome OS, which is crippled and locked-down garbage that no one should use anyway) could play videos in background for decades, so should portable pocket-sized computers not be able to do it too? Therefore, people are forced to use versions of Kiwi browser from early 2019 or earlier to play videos in background.

This is why plyr.js needs to support versions of Google Chrome for Android and Google Chromium for Android that were released before Google enforced the pull-to-refresh bug to be activated at all times, and before Google threatened the Kiwi Browser developers into removing background playback.


An alternative to supporting 2019 browsers again is to exit gracefully without an exception error.

Since the user interface of plyr.js has, besides feature additions, barely changed since 2019 (when it even supported browsers from 2017), it should not be so difficult to support a browser from 2019. To test the compatibility, a feature check can be used (guide).

Another way is graceful degradation, by making basic functionality such as the seek bar and speed controls and volume controls work in 2019 browsers, and advanced functionality such as subtitles and picture-in-picture only in more recent browsers. If the browser is not so recent, only the basic features are loaded by plyr.js .

Thank you for your consideration.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant