As a first step, browsers should make extensions more powerful again. It's a pain that extensions are so teethless these days.
Then we could make a powersaving extension. It would allow a page a cumulative number of ms to use the CPU/GPU and a max number of network requests. After that it would display "This page has exceeded its quota of resources. Should all JS be halted? You can always continue the JS by clicking the little PowerSaver icon".
Here is a fun way to tame power intensive tabs (tried it with Firefox and Chromium and it works for both):
top
Look at the ID of the most busy tab. Let's say it's 1234
kill -STOP 1234
Boom! Immediately the tab is frozen and it's CPU usage drops to zero.
kill -CONT 1234
Now it is alive again.
To pause all tabs:
pkill --signal STOP firefox
And to continue:
pkill --signal CONT firefox
For Chromium, just use "chromium" instead of "firefox".
So if we had something like native extensions, we could achieve a "pause button" by simply leveraging the STOP and CONT signal of the OS. If one were to look deeper into how browsers do their work, I wouldn't be surprised if we could target the signals more precisely and keep scrolling alive during the pause. Or we could CONT the process in case of a scroll event and then immediately STOP it again.
Another approach could be a "BrowserTamer" application that keeps the browser STOPped as long as there is no mouse/keyboard activity and CONT it for 100ms on scroll/keyboard activity. That could probably be implemented as a seperate program without help from the browsers themselfes.
> As a first step, browsers should make extensions more powerful again.
First, do note that hooking JS into everything also means a considerably less efficient browser. Extensibility has an overhead, extensibility in JS a much greater one.
Second, I don't see reason why something like this would ever be an extension, and not just default browser behavior. Are you viewing the page? Then it doesn't get to run unless you specifically allow it.
OR, make noscript the default state. There are very few websites that doesn't actually work just fine, and much faster without javascript enabled.
> As a first step, browsers should make extensions more powerful again.
That is a solution (though more like a remedy) to the symptom instead of the actual problem: Browsers trying to become operating systems and websites trying to be apps.
Then we could make a powersaving extension. It would allow a page a cumulative number of ms to use the CPU/GPU and a max number of network requests. After that it would display "This page has exceeded its quota of resources. Should all JS be halted? You can always continue the JS by clicking the little PowerSaver icon".
Here is a fun way to tame power intensive tabs (tried it with Firefox and Chromium and it works for both):
Look at the ID of the most busy tab. Let's say it's 1234 Boom! Immediately the tab is frozen and it's CPU usage drops to zero. Now it is alive again.To pause all tabs:
And to continue: For Chromium, just use "chromium" instead of "firefox".So if we had something like native extensions, we could achieve a "pause button" by simply leveraging the STOP and CONT signal of the OS. If one were to look deeper into how browsers do their work, I wouldn't be surprised if we could target the signals more precisely and keep scrolling alive during the pause. Or we could CONT the process in case of a scroll event and then immediately STOP it again.
Another approach could be a "BrowserTamer" application that keeps the browser STOPped as long as there is no mouse/keyboard activity and CONT it for 100ms on scroll/keyboard activity. That could probably be implemented as a seperate program without help from the browsers themselfes.