TabManager (soon to be LifecycleManager) will be responsible for transitioning renderers to throttled and background modes, in addition to discarding. This is necessary on all platforms. As such, it should be enabled on all platforms.
Since TabManager is aware of TabModels (for tracking which tabs are actually visible, recently selected, etc) we need a TabModelObserver on all platforms. One exists on Android, but there's no native equivalent.
TabManager uses the TabStripModelObserver to track changes to audibility state. This is very round-about and it should be directly trackable via WebContentsObserver.
Note that a bunch of code paths that are currently desktop only (TabStripModelObserver) should be made cross-platform by having a platform-agnostic equivalent of TabStripModel. This allows knowing which WebContents are directly related to tabs in the UI, for example.
Comment 1 by chrisha@chromium.org
, May 1 2018