Index: content/browser/renderer_host/media/media_stream_manager.cc |
diff --git a/content/browser/renderer_host/media/media_stream_manager.cc b/content/browser/renderer_host/media/media_stream_manager.cc |
index 839c0cb1411e529a53086eba615f945380d7ddc9..c6a4c25ce04e4b3d976c56623b26dd95e4b0dba0 100644 |
--- a/content/browser/renderer_host/media/media_stream_manager.cc |
+++ b/content/browser/renderer_host/media/media_stream_manager.cc |
@@ -11,6 +11,7 @@ |
#include "base/command_line.h" |
#include "base/compiler_specific.h" |
#include "base/logging.h" |
+#include "base/power_monitor/power_monitor.h" |
#include "base/rand_util.h" |
#include "base/run_loop.h" |
#include "base/strings/stringprintf.h" |
@@ -353,12 +354,24 @@ MediaStreamManager::MediaStreamManager(media::AudioManager* audio_manager) |
base::Bind(&MediaStreamManager::InitializeDeviceManagersOnIOThread, |
base::Unretained(this))); |
} |
+ |
+ base::PowerMonitor* power_monitor = base::PowerMonitor::Get(); |
+ // BrowserMainLoop always creates the PowerMonitor instance before creating |
+ // MediaStreamManager, but power_monitor may be NULL in unit tests. |
+ if (power_monitor) |
+ power_monitor->AddObserver(this); |
} |
MediaStreamManager::~MediaStreamManager() { |
DVLOG(1) << "~MediaStreamManager"; |
DCHECK(requests_.empty()); |
DCHECK(!device_task_runner_); |
+ |
+ base::PowerMonitor* power_monitor = base::PowerMonitor::Get(); |
+ // The PowerMonitor instance owned by BrowserMainLoops always outlives the |
+ // MediaStreamManager, but it may be NULL in unit tests. |
+ if (power_monitor) |
+ power_monitor->RemoveObserver(this); |
} |
VideoCaptureManager* MediaStreamManager::video_capture_manager() { |
@@ -1581,6 +1594,14 @@ void MediaStreamManager::SendMessageToNativeLog(const std::string& message) { |
base::Bind(DoAddLogMessage, message)); |
} |
+void MediaStreamManager::OnSuspend() { |
+ SendMessageToNativeLog("Power state suspended."); |
+} |
+ |
+void MediaStreamManager::OnResume() { |
+ SendMessageToNativeLog("Power state resumed."); |
+} |
+ |
void MediaStreamManager::AddLogMessageOnIOThread(const std::string& message) { |
// Get render process ids on the IO thread. |
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); |