As a user, I would be willing to have a tab in my browser perform computing such as crypto currency mining. I would be willing to do this in lieu advertising.
This is essentially a donation feature. While it wouldn't displace all forms of advertising, it would certainly be a good option for websites who want a direct conversion between visits and crypto currency.
I envision a math engine embedded into the browser. The browser controls the entirety of this engine and has set usage options. This is not a general computing feature and a website can never execute arbitrary code in this manner. JavaScript is bad.
The engine can be set to use a percentage of a processor. The default would be one thread kept on one core. One suggestion for advanced user would be to reserve a whole core and all its threads to this task, while the browser is the main item focused. This would need some additional explanation and tweaking.
Examples:
- A gamer might have a browser open and in view on one monitor while playing a game, and the impact must be minimal.
- A laptop user would need this feature turned off while on battery power.
Perhaps a laptop user would still need the core/thread(s) to only process under a certain percentage of capability, to allow for the fastest charge possible.
Visiting a tab will add it to a queue. The suggested processing is lengthened or incremented by such things as:
- The length of time the tab is open.
- The length of time the tab is "in the foreground" (actually being read at that moment)
- The length of time the browser is in view (focused or not).
The further down a page is scrolled.
More things could be determined as valuable, such as using specific website features. Linking the intensity of donated user CPU cycles this to the website's server's memory, CPU, or bandwidth usage would be ideal.
Queue programming is something well-understood by programmers, and I won't describe it here. The basic idea is that the processing requested by multiple websites, and at different priorities, will be handled properly.
Cryptocurrency mining is the obvious use, but this feature could provide a default to donate cycles to projects like protein folding, processing astronomical data, etc.