Taras recently blogged on how websites manage to ruin Firefox performance by continuing to do something even though their tab is no longer active — they keep updating the view that you cannot see. He wondered whether it would be possible to suspend these tabs from an extension. I looked into this and there is a way to suspend all timeouts for a tab — something that an extension could use. Getting the details right wasn’t quite trivial but I think that my extension gets it right now: Suspend background tabs. Enjoy!
This doesn’t completely disable all activity in the background tabs of course. Network requests will continue, videos will also keep playing. So I might implement some improvements in future. However, please have understanding that this is a very low priority side-project for me. So it’s best if you bring your code. The current code is here.