media-source
user.js
media-source | user.js | |
---|---|---|
1 | 682 | |
266 | 9,132 | |
0.4% | 1.5% | |
6.9 | 6.8 | |
about 1 month ago | 4 days ago | |
HTML | JavaScript | |
GNU General Public License v3.0 or later | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
media-source
-
Chrome 0day is being exploited now for CVE-2022-1096; update immediately
It depends heavily on the website we're talking about but there's generally a lot going on when streaming video on the web.
Usually what happens at the core is that JavaScript will download video, audio and subtitles progressively through small chunks of data called "segments" and push them to JS-exposed buffers called 'SourceBuffer'. Deciding which chunk to download, downloading them and pushing them already require a lot of JavaScript (for example, you need to decide which video and audio quality to download through adaptive algorithms, which tend to be quite complex, moreover there's also a lot of media events that needs reaction to, like when seeking, rebuffering, changing track etc.). You also have a lot of JavaScript there to limit risks of playback stalling and if you have DRMs, a lot of JavaScript there to be able to recuperate the right decryption keys (an operation you generally wish to finish as soon as possible as it is often the last step before playback).
On some websites, you might want to play with as low latency as possible between the broadcaster and the user. In those cases, you might want to optimize your JS code, have very small checking intervals, and you might again prefer to run as much code as possible in a worker to avoid rebuffering due to the risk of the main thread being too occupied doing other things to push media segments.
Even on non-low-latency contents, some websites which already have a lot of JavaScript running beside video playback such as at least Facebook and YouTube pushed browsers for quite some time now to be able to use the main JavaScript media streaming APIs in a worker (https://github.com/w3c/media-source/issues/175), e.g. in another thread.
You could also have complex contents (lot of audio and subtitles languages, many audio and video qualities, multiple decryption keys, long duration etc.) that may lead to big performance and memory issue when parsing them on the JS-side. Those contents are usually described through a file named "manifest" or "playlist" which in this case can take a lot of resources to process (the document can be up to a huge 15MB XML where I work), often leading either the linked JavaScript to run in a worker or to use webassembly (a solution we chosed). Even more if you consider live contents, where this document might have to be regularly refreshed.
You might also want to apply some processing on the media played, for example transmuxing mpeg-ts segments to MP4 ones so they can be played by more browsers. Those are very frequent operations that can be performance-sensitive and are also often performed in another thread.
Again it very much depends on the website and I mainly know the use cases I personally encountered. Generally, adaptive media player are very complex JavaScript beasts.
Also performance issues and poor memory management from the browser-side can lead to a lot of issues. A recurring issue at my work is bad performance leading through side-effect to a very poor quality being played (due to the high overhead in loading segments, pushing them to the buffer etc.).
All these would suffer without a powerful and featureful JS engine like we generally have today on most browsers.
user.js
-
It's getting hard to use and recommend Firefox, I'm afraid for the free web
Re: firefox and privacy, if you want to use firefox for privacy, consider using https://github.com/arkenfox/user.js . There is a case to be made that Firefox (with arkenfox's user.js) is one of the best privacy-respecting but still fairly usable browsers.
-
In 2024, please switch to Firefox
For extensions, I recommend people follow the recommendations[1] in the arkenfox repo and either harden their firefox or use librewolf. Umatrix is unmaintained since 2019.
[1] https://github.com/arkenfox/user.js/wiki/4.1-Extensions
-
Most secure and privacy oriented alternative to mail.app
For macOS : Thunderbird and you can harden it even more with this : https://github.com/arkenfox/user.js
-
Which Firefox user.js file do you recommend for piracy?
only arkenfox
- What privacy-related preferences keep breaking my Twitter?
- Anonimlik Rehberi
-
Lock Down Firefox - Network Hardening - FOSS - git clone
This article is shit. https://github.com/arkenfox/user.js/ is what you want.
-
Waterfox G6.0.2 had whitelisted search deal partner www.bing.com against user extensions in extensions.webextensions.restrictedDomains
If you make time to dig through settings and change them away from their official use (99% of users don't), then you should use a customized setup (in this case, a user.js). That way, you're good to go no matter what Firefox fork you use.
-
Google Chrome just rolled out a new way to track you and serve ads
> Firefox remains a stable option to come back to everytime
Don't get me wrong, I've been using Firefox for the last decade and I don't intend on using anything else for the foreseeable future, but Mozilla has no idea what they're doing with Firefox nowadays. Firefox View is the most useless thing I've ever seen, that expiring "independent voices" theme picker was some weird hippie stunt[1], the latest UI redesign which split the tab from the window looks hideous, and it's not like Firefox doesn't have things you can tweak for a more private experience[2]. I miss Firefox Test Pilot where they tried out different new features, I found a lot of them to be very useful but sadly lots of them didn't make it.
[1] https://blog.mozilla.org/en/products/firefox/firefox-news/in...
[2] https://github.com/arkenfox/user.js/
-
I don't understand what's so good about Firefox
Like others have said you can customize the browser to the point that it doesn't even look like the default anymore. Or customize it to maximize privacy.
What are some alternatives?
ECMAScript 6 compatibility table - ECMAScript compatibility tables
Better-Fox - An up-to-date user.js to speed up and secure Firefox [Moved to: https://github.com/yokoffing/BetterFox]
V8 - The official mirror of the V8 Git repository
privacytools.io - 🛡🛠 You are being watched. Protect your privacy against global mass surveillance.
quickjs - Public repository of the QuickJS Javascript Engine.
Librefox - Librefox: Firefox with privacy enhancements
tiny-snitch - an interactive firewall for inbound and outbound connections
settings
idm-trial-reset - Use IDM forever without cracking
AmIUnique - Learn how identifiable you are on the Internet
bromite - Bromite is a Chromium fork with ad blocking and privacy enhancements; take back your browser!
Fenix - ⚠️ Fenix (Firefox for Android) moved to a new repository. It is now developed and maintained as part of: https://github.com/mozilla-mobile/firefox-android