Commit d7ae3c65 authored by vasilii@chromium.org's avatar vasilii@chromium.org

Revert 272504 "Destroy all rtc peer connection handlers before s..."

On Win7 Tests (dbg)(2) these tests

FocusElementCallsFocusedNodeChanged
GetCompositionCharacterBoundsTest
MessageOrderInDidChangeSelection
OnExtendSelectionAndDelete
OnImeTypeChanged
OnSetTextDirection
SendCandidateWindowEvents
SetEditableSelectionAndComposition

fail with timeout.
http://build.chromium.org/p/chromium.win/builders/Win7%20Tests%20%28dbg%29%282%29/builds/21101/steps/content_browsertests/logs/stdio

> Destroy all rtc peer connection handlers before shutting down blink
> 
> The connection handlers will otherwise continue to call into blink which
> is bound to crash after it was shut down.
> 
> BUG=337572
> R=perkj@chromium.org,adamk@chromium.org
> 
> Review URL: https://codereview.chromium.org/292163002

TBR=jochen@chromium.org

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

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@272540 0039d316-1c4b-4281-b951-d872f2087c98
parent a0ba7d7a
......@@ -10,7 +10,6 @@
#include "base/command_line.h"
#include "base/debug/trace_event.h"
#include "base/lazy_instance.h"
#include "base/logging.h"
#include "base/memory/scoped_ptr.h"
#include "base/metrics/histogram.h"
......@@ -318,8 +317,6 @@ void LocalRTCStatsResponse::addStatistic(size_t report,
impl_.addStatistic(report, name, value);
}
namespace {
class PeerConnectionUMAObserver : public webrtc::UMAObserver {
public:
PeerConnectionUMAObserver() {}
......@@ -354,11 +351,6 @@ class PeerConnectionUMAObserver : public webrtc::UMAObserver {
}
};
base::LazyInstance<std::set<RTCPeerConnectionHandler*> >::Leaky
g_peer_connection_handlers = LAZY_INSTANCE_INITIALIZER;
} // namespace
RTCPeerConnectionHandler::RTCPeerConnectionHandler(
blink::WebRTCPeerConnectionHandlerClient* client,
PeerConnectionDependencyFactory* dependency_factory)
......@@ -367,11 +359,9 @@ RTCPeerConnectionHandler::RTCPeerConnectionHandler(
frame_(NULL),
peer_connection_tracker_(NULL),
num_data_channels_created_(0) {
g_peer_connection_handlers.Get().insert(this);
}
RTCPeerConnectionHandler::~RTCPeerConnectionHandler() {
g_peer_connection_handlers.Get().erase(this);
if (peer_connection_tracker_)
peer_connection_tracker_->UnregisterPeerConnection(this);
STLDeleteValues(&remote_streams_);
......@@ -380,18 +370,6 @@ RTCPeerConnectionHandler::~RTCPeerConnectionHandler() {
"WebRTC.NumDataChannelsPerPeerConnection", num_data_channels_created_);
}
// static
void RTCPeerConnectionHandler::DestructAllHandlers() {
std::set<RTCPeerConnectionHandler*> handlers(
g_peer_connection_handlers.Get().begin(),
g_peer_connection_handlers.Get().end());
for (std::set<RTCPeerConnectionHandler*>::iterator handler = handlers.begin();
handler != handlers.end();
++handler) {
(*handler)->client_->releasePeerConnectionHandler();
}
}
void RTCPeerConnectionHandler::associateWithFrame(blink::WebFrame* frame) {
DCHECK(frame);
frame_ = frame;
......
......@@ -88,9 +88,6 @@ class CONTENT_EXPORT RTCPeerConnectionHandler
PeerConnectionDependencyFactory* dependency_factory);
virtual ~RTCPeerConnectionHandler();
// Destroy all existing RTCPeerConnectionHandler objects.
static void DestructAllHandlers();
void associateWithFrame(blink::WebFrame* frame);
// Initialize method only used for unit test.
......
......@@ -79,7 +79,6 @@
#include "content/renderer/media/midi_message_filter.h"
#include "content/renderer/media/peer_connection_tracker.h"
#include "content/renderer/media/renderer_gpu_video_accelerator_factories.h"
#include "content/renderer/media/rtc_peer_connection_handler.h"
#include "content/renderer/media/video_capture_impl_manager.h"
#include "content/renderer/media/video_capture_message_filter.h"
#include "content/renderer/media/webrtc/peer_connection_dependency_factory.h"
......@@ -535,8 +534,6 @@ void RenderThreadImpl::Shutdown() {
audio_message_filter_ = NULL;
#if defined(ENABLE_WEBRTC)
RTCPeerConnectionHandler::DestructAllHandlers();
peer_connection_factory_.reset();
#endif
RemoveFilter(vc_manager_->video_capture_message_filter());
......
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