Firefox, Noscript, jerky video playback - Solution

Updated: August 11, 2023

If you're using Firefox (as you should), then you also may want to consider Noscript (as you should), for it helps transform the Javascript jungle that is the modern Web into something more pristine and palatable. But, the problem is, Noscript can be a little tricky to configure for normies, and it does take some understanding to utilize effectively. Then, there could be odd bugs. Like the one I will describe right now.

I wanted to play a video in Firefox. One of them streaming services. Find an episode of something you like, watch it. Of course, beforehand, I enabled scripts on the streaming service domain, all of the necessary and required bits and pieces. And the playback started just fine ... except, every 10 seconds or so, there would be this jerky effect, like a couple of frames dropping. Or perhaps networking buffering. Weird. Well, I decided I could not let it be, and started exploring and investigating. Long story short, the pathfinding led me to Noscript. After me, people.

Noscript has vast capabilities

If you look inside Noscript settings, General tab, you will see that it can handle a dozen different categories of Web elements. So not only does it block scripts, it can also take care of frames, WebGL, ping functionality in Web sites (not what you think, but hey), LAN access (believe it, some sites can and will want to access your localhost to figure out which ports you're using and whatnot), CSS, fonts, and then some. For example, the third-party font loading block is a great little thing, as it stops annoying sites from loading their pointless remote fonts. Lovely jubbly.

Noscript settings

Naturally, you need to understand what these Web elements do before you block or allow them. This means you also need to decide what you want to allow for Trusted or Temporarily Trusted sites. But let's assume that you do actually allow everything for Trusted sites. Then, everything should work, right?

Problem & solution

The jerky video playback made me think that the issue might be somewhere in the graphics/display stack, and somehow related to how Firefox works. So I did an elimination quest. I made sure that Firefox uses HW acceleration, but that was seemingly not enough. I disabled Noscript completely, and the playback was just fine, smooth and clear. Hm. So Noscript is definitely involved, somehow. I then zoned in on WebGL, as it seems like the next logical thing to look for.

It took a lot of burrowing through Firefox settings and options and configurations, but, as it turns out, even if you do have WebGL enabled in Noscript, there's an overriding global setting that you need to toggle on before you can really access and enjoy WebGL stuff. Under about:config, look for:

noscript.forbidWebGL

WebGL config

This setting is marked as true, regardless of what you see in the Noscript UI. Toggle it off, restart your browser, enable scripts and such on the desired website, start watching video playback, and now, you will notice that there are no more jerky, dropped-frame effects. Job done. Revert after watching, if you want.

Conclusion

I really like Noscript, and I use it everywhere I can. But I am a bit baffled by the "hidden" settings, and the fact it can make life a bit more difficult for ordinary users, even nerds if they don't really suspect that there are options that can't be changed through the UI. I guess the solution would be to expose this, including the relevant explanation and rationale for the default state, so the users can make the right decision.

In my case, it was a matter of temporarily allowing WebGL, before toggling the option back after I've done watching the videos. Hopefully, you will find this tutorial useful. I will keep on playing with Noscript, as seemingly there's always another layer of optimization that can be introduced into the everyday browsing workflow. Well, we're done, see ya.

Cheers.