Commit 8a9ec94f authored by Scott Graham's avatar Scott Graham

Revert of https://crrev.com/290125, causing browser crashes due to race

TBR=vrk@chromium.org
BUG=404767
NOTREECHECKS=true
NOTRY=true

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

Cr-Commit-Position: refs/heads/master@{#291798}
parent fad0d450
...@@ -3,20 +3,14 @@ ...@@ -3,20 +3,14 @@
// found in the LICENSE file. // found in the LICENSE file.
#include "content/browser/renderer_host/media/peer_connection_tracker_host.h" #include "content/browser/renderer_host/media/peer_connection_tracker_host.h"
#include "base/power_monitor/power_monitor.h"
#include "content/browser/media/webrtc_internals.h" #include "content/browser/media/webrtc_internals.h"
#include "content/common/media/peer_connection_tracker_messages.h" #include "content/common/media/peer_connection_tracker_messages.h"
#include "content/public/browser/render_process_host.h"
namespace content { namespace content {
PeerConnectionTrackerHost::PeerConnectionTrackerHost(int render_process_id) PeerConnectionTrackerHost::PeerConnectionTrackerHost(int render_process_id)
: BrowserMessageFilter(PeerConnectionTrackerMsgStart), : BrowserMessageFilter(PeerConnectionTrackerMsgStart),
render_process_id_(render_process_id) { render_process_id_(render_process_id) {}
base::PowerMonitor* power_monitor = base::PowerMonitor::Get();
if (power_monitor)
power_monitor->AddObserver(this);
}
bool PeerConnectionTrackerHost::OnMessageReceived(const IPC::Message& message) { bool PeerConnectionTrackerHost::OnMessageReceived(const IPC::Message& message) {
bool handled = true; bool handled = true;
...@@ -42,9 +36,6 @@ void PeerConnectionTrackerHost::OverrideThreadForMessage( ...@@ -42,9 +36,6 @@ void PeerConnectionTrackerHost::OverrideThreadForMessage(
} }
PeerConnectionTrackerHost::~PeerConnectionTrackerHost() { PeerConnectionTrackerHost::~PeerConnectionTrackerHost() {
base::PowerMonitor* power_monitor = base::PowerMonitor::Get();
if (power_monitor)
power_monitor->RemoveObserver(this);
} }
void PeerConnectionTrackerHost::OnAddPeerConnection( void PeerConnectionTrackerHost::OnAddPeerConnection(
...@@ -91,11 +82,4 @@ void PeerConnectionTrackerHost::OnGetUserMedia( ...@@ -91,11 +82,4 @@ void PeerConnectionTrackerHost::OnGetUserMedia(
video_constraints); video_constraints);
} }
void PeerConnectionTrackerHost::OnSuspend() {
content::RenderProcessHost* host =
content::RenderProcessHost::FromID(render_process_id_);
if (host)
host->Send(new PeerConnectionTracker_OnSuspend());
}
} // namespace content } // namespace content
...@@ -5,7 +5,6 @@ ...@@ -5,7 +5,6 @@
#ifndef CONTENT_BROWSER_RENDERER_HOST_MEDIA_PEER_CONNECTION_TRACKER_HOST_H_ #ifndef CONTENT_BROWSER_RENDERER_HOST_MEDIA_PEER_CONNECTION_TRACKER_HOST_H_
#define 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" #include "content/public/browser/browser_message_filter.h"
struct PeerConnectionInfo; struct PeerConnectionInfo;
...@@ -17,11 +16,9 @@ class ListValue; ...@@ -17,11 +16,9 @@ class ListValue;
namespace content { namespace content {
// This class is the host for PeerConnectionTracker in the browser process // This class is the host for PeerConnectionTracker in the browser process
// managed by RenderProcessHostImpl. It receives PeerConnection events from // managed by RenderProcessHostImpl. It passes IPC messages between
// PeerConnectionTracker as IPC messages that it forwards to WebRTCInternals. // WebRTCInternals and PeerConnectionTracker.
// It also forwards browser process events to PeerConnectionTracker via IPC. class PeerConnectionTrackerHost : public BrowserMessageFilter {
class PeerConnectionTrackerHost : public BrowserMessageFilter,
public base::PowerObserver {
public: public:
PeerConnectionTrackerHost(int render_process_id); PeerConnectionTrackerHost(int render_process_id);
...@@ -30,9 +27,6 @@ class PeerConnectionTrackerHost : public BrowserMessageFilter, ...@@ -30,9 +27,6 @@ class PeerConnectionTrackerHost : public BrowserMessageFilter,
virtual void OverrideThreadForMessage(const IPC::Message& message, virtual void OverrideThreadForMessage(const IPC::Message& message,
BrowserThread::ID* thread) OVERRIDE; BrowserThread::ID* thread) OVERRIDE;
// base::PowerObserver override.
virtual void OnSuspend() OVERRIDE;
protected: protected:
virtual ~PeerConnectionTrackerHost(); virtual ~PeerConnectionTrackerHost();
......
...@@ -40,4 +40,3 @@ IPC_MESSAGE_CONTROL5(PeerConnectionTrackerHost_GetUserMedia, ...@@ -40,4 +40,3 @@ IPC_MESSAGE_CONTROL5(PeerConnectionTrackerHost_GetUserMedia,
// Messages sent to PeerConnectionTracker. // Messages sent to PeerConnectionTracker.
IPC_MESSAGE_CONTROL0(PeerConnectionTracker_GetAllStats) IPC_MESSAGE_CONTROL0(PeerConnectionTracker_GetAllStats)
IPC_MESSAGE_CONTROL0(PeerConnectionTracker_OnSuspend)
...@@ -278,7 +278,6 @@ bool PeerConnectionTracker::OnControlMessageReceived( ...@@ -278,7 +278,6 @@ bool PeerConnectionTracker::OnControlMessageReceived(
bool handled = true; bool handled = true;
IPC_BEGIN_MESSAGE_MAP(PeerConnectionTracker, message) IPC_BEGIN_MESSAGE_MAP(PeerConnectionTracker, message)
IPC_MESSAGE_HANDLER(PeerConnectionTracker_GetAllStats, OnGetAllStats) IPC_MESSAGE_HANDLER(PeerConnectionTracker_GetAllStats, OnGetAllStats)
IPC_MESSAGE_HANDLER(PeerConnectionTracker_OnSuspend, OnSuspend)
IPC_MESSAGE_UNHANDLED(handled = false) IPC_MESSAGE_UNHANDLED(handled = false)
IPC_END_MESSAGE_MAP() IPC_END_MESSAGE_MAP()
return handled; return handled;
...@@ -298,13 +297,6 @@ void PeerConnectionTracker::OnGetAllStats() { ...@@ -298,13 +297,6 @@ void PeerConnectionTracker::OnGetAllStats() {
} }
} }
void PeerConnectionTracker::OnSuspend() {
for (PeerConnectionIdMap::iterator it = peer_connection_id_map_.begin();
it != peer_connection_id_map_.end(); ++it) {
it->first->stop();
}
}
void PeerConnectionTracker::RegisterPeerConnection( void PeerConnectionTracker::RegisterPeerConnection(
RTCPeerConnectionHandler* pc_handler, RTCPeerConnectionHandler* pc_handler,
const webrtc::PeerConnectionInterface::RTCConfiguration& config, const webrtc::PeerConnectionInterface::RTCConfiguration& config,
......
...@@ -161,9 +161,6 @@ class CONTENT_EXPORT PeerConnectionTracker : public RenderProcessObserver { ...@@ -161,9 +161,6 @@ class CONTENT_EXPORT PeerConnectionTracker : public RenderProcessObserver {
// IPC Message handler for getting all stats. // IPC Message handler for getting all stats.
void OnGetAllStats(); void OnGetAllStats();
// Called when the browser process reports a suspend event from the OS.
void OnSuspend();
void SendPeerConnectionUpdate(RTCPeerConnectionHandler* pc_handler, void SendPeerConnectionUpdate(RTCPeerConnectionHandler* pc_handler,
const std::string& callback_type, const std::string& callback_type,
const std::string& value); const std::string& value);
......
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