Upstream version 10.39.225.0
[platform/framework/web/crosswalk.git] / src / content / browser / renderer_host / media / peer_connection_tracker_host.h
index 6a411e8..07dda23 100644 (file)
@@ -5,6 +5,7 @@
 #ifndef CONTENT_BROWSER_RENDERER_HOST_MEDIA_PEER_CONNECTION_TRACKER_HOST_H_
 #define CONTENT_BROWSER_RENDERER_HOST_MEDIA_PEER_CONNECTION_TRACKER_HOST_H_
 
+#include "base/power_monitor/power_observer.h"
 #include "content/public/browser/browser_message_filter.h"
 
 struct PeerConnectionInfo;
@@ -16,9 +17,11 @@ class ListValue;
 namespace content {
 
 // This class is the host for PeerConnectionTracker in the browser process
-// managed by RenderProcessHostImpl. It passes IPC messages between
-// WebRTCInternals and PeerConnectionTracker.
-class PeerConnectionTrackerHost : public BrowserMessageFilter {
+// managed by RenderProcessHostImpl. It receives PeerConnection events from
+// PeerConnectionTracker as IPC messages that it forwards to WebRTCInternals.
+// It also forwards browser process events to PeerConnectionTracker via IPC.
+class PeerConnectionTrackerHost : public BrowserMessageFilter,
+                                  public base::PowerObserver {
  public:
   PeerConnectionTrackerHost(int render_process_id);
 
@@ -26,6 +29,11 @@ class PeerConnectionTrackerHost : public BrowserMessageFilter {
   virtual bool OnMessageReceived(const IPC::Message& message) OVERRIDE;
   virtual void OverrideThreadForMessage(const IPC::Message& message,
                                         BrowserThread::ID* thread) OVERRIDE;
+  virtual void OnChannelConnected(int32 peer_pid) OVERRIDE;
+  virtual void OnChannelClosing() OVERRIDE;
+
+  // base::PowerObserver override.
+  virtual void OnSuspend() OVERRIDE;
 
  protected:
   virtual ~PeerConnectionTrackerHost();
@@ -42,6 +50,7 @@ class PeerConnectionTrackerHost : public BrowserMessageFilter {
                       bool video,
                       const std::string& audio_constraints,
                       const std::string& video_constraints);
+  void SendOnSuspendOnUIThread();
 
   int render_process_id_;