Commit ba3db738 authored by jiayl@chromium.org's avatar jiayl@chromium.org

Adds power state suspend/resume messages to the webrtc native log.

BUG=357683

NOTRY=true

TESTED= try jobs passed

Review URL: https://codereview.chromium.org/217303002

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@260305 0039d316-1c4b-4281-b951-d872f2087c98
parent 745fe5b1
...@@ -11,6 +11,7 @@ ...@@ -11,6 +11,7 @@
#include "base/command_line.h" #include "base/command_line.h"
#include "base/compiler_specific.h" #include "base/compiler_specific.h"
#include "base/logging.h" #include "base/logging.h"
#include "base/power_monitor/power_monitor.h"
#include "base/rand_util.h" #include "base/rand_util.h"
#include "base/run_loop.h" #include "base/run_loop.h"
#include "base/strings/stringprintf.h" #include "base/strings/stringprintf.h"
...@@ -359,12 +360,24 @@ MediaStreamManager::MediaStreamManager(media::AudioManager* audio_manager) ...@@ -359,12 +360,24 @@ MediaStreamManager::MediaStreamManager(media::AudioManager* audio_manager)
base::Bind(&MediaStreamManager::InitializeDeviceManagersOnIOThread, base::Bind(&MediaStreamManager::InitializeDeviceManagersOnIOThread,
base::Unretained(this))); 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() { MediaStreamManager::~MediaStreamManager() {
DVLOG(1) << "~MediaStreamManager"; DVLOG(1) << "~MediaStreamManager";
DCHECK(requests_.empty()); DCHECK(requests_.empty());
DCHECK(!device_task_runner_); 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() { VideoCaptureManager* MediaStreamManager::video_capture_manager() {
...@@ -1592,6 +1605,14 @@ void MediaStreamManager::SendMessageToNativeLog(const std::string& message) { ...@@ -1592,6 +1605,14 @@ void MediaStreamManager::SendMessageToNativeLog(const std::string& message) {
base::Bind(DoAddLogMessage, 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) { void MediaStreamManager::AddLogMessageOnIOThread(const std::string& message) {
// Get render process ids on the IO thread. // Get render process ids on the IO thread.
DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO));
......
...@@ -31,6 +31,7 @@ ...@@ -31,6 +31,7 @@
#include "base/memory/ref_counted.h" #include "base/memory/ref_counted.h"
#include "base/memory/scoped_ptr.h" #include "base/memory/scoped_ptr.h"
#include "base/message_loop/message_loop.h" #include "base/message_loop/message_loop.h"
#include "base/power_monitor/power_observer.h"
#include "base/system_monitor/system_monitor.h" #include "base/system_monitor/system_monitor.h"
#include "content/browser/renderer_host/media/media_stream_provider.h" #include "content/browser/renderer_host/media/media_stream_provider.h"
#include "content/common/content_export.h" #include "content/common/content_export.h"
...@@ -57,6 +58,7 @@ class VideoCaptureManager; ...@@ -57,6 +58,7 @@ class VideoCaptureManager;
class CONTENT_EXPORT MediaStreamManager class CONTENT_EXPORT MediaStreamManager
: public MediaStreamProviderListener, : public MediaStreamProviderListener,
public base::MessageLoop::DestructionObserver, public base::MessageLoop::DestructionObserver,
public base::PowerObserver,
public base::SystemMonitor::DevicesChangedObserver { public base::SystemMonitor::DevicesChangedObserver {
public: public:
// Callback to deliver the result of a media request. // Callback to deliver the result of a media request.
...@@ -193,6 +195,10 @@ class CONTENT_EXPORT MediaStreamManager ...@@ -193,6 +195,10 @@ class CONTENT_EXPORT MediaStreamManager
// logging from webrtcLoggingPrivate API. Safe to call from any thread. // logging from webrtcLoggingPrivate API. Safe to call from any thread.
static void SendMessageToNativeLog(const std::string& message); static void SendMessageToNativeLog(const std::string& message);
// base::PowerObserver overrides.
virtual void OnSuspend() OVERRIDE;
virtual void OnResume() OVERRIDE;
protected: protected:
// Used for testing. // Used for testing.
MediaStreamManager(); MediaStreamManager();
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment