content/browser/loader/power_save_block_resource_throttle.cc|h depends on content/public/browser/power_save_blocker.h.
PowerSaveBlockResourceThrottle is used in ResourceDispatcherHostImpl to avoid having the computer go into power saving mode while uploading data (I'm not sure why we do it only for uploads, and not downloads). This seems generally useful for all networking clients, so we want to have the network service continue to trigger this.
PowerSaveBlocker[Impl] is used by a variety of other functionality though, from a quick look: media cast, drive uploader, devtools, downloads, webrtc, and an extensions api. So it obviously can't just move into networking.
I looked at moving the whole thing into something like //components/power_save_blocker. However, Android has some dependencies on WebContents, ChromeOS and Linux on //chromeos and //dbus for DBus, so that would be slightly non-trivial. (Windows and Mac look like they'd be fine). It seems like it should be a separate thing in the long run though.
So I think I'll try the direct approach of having content provide a PowerSaveBlocker mojo service in RenderProcessHostImpl.
See also: bug 607741 and bug 609607 .
Comment 1 by jam@chromium.org
, May 17 2016