Implement https://wicg.github.io/page-lifecycle/spec.html for reducing CPU and memory usage by freezing and discarding low-priority tabs.
Freezing - CPU usage is throttled by suspending task queues.
Discarding - Memory usage is reduced by discarding the browsing context and reloading when needed.
The QWebEnginePage API should be extended to allow manual control over freezing and discarding. Additionally we should provide a simple builtin heuristic (similar to Chromium's CheckIfTabIsUsedInBackground), for detecting if hidden pages are doing useful work in the background and should therefore not be frozen or discarded.
In Chromium this is implemented by the "resource coordinator" service/component which contains all sorts of fancy heuristics, including a pretrained deep neural network for predicting tab priorities. As this component works at the level of tabs, it is therefore tied to Chromium UI and cannot be reused cleanly.