| Index: content/renderer/render_thread_impl.cc
|
| diff --git a/content/renderer/render_thread_impl.cc b/content/renderer/render_thread_impl.cc
|
| index 5e8db708edbb397c655e02f4a414fad57bd1aaff..d497df843aab33b3aa16687227d2580fc07cb61c 100644
|
| --- a/content/renderer/render_thread_impl.cc
|
| +++ b/content/renderer/render_thread_impl.cc
|
| @@ -346,7 +346,7 @@ void RenderThreadImpl::Init() {
|
| db_message_filter_ = new DBMessageFilter();
|
| AddFilter(db_message_filter_.get());
|
|
|
| - vc_manager_ = new VideoCaptureImplManager();
|
| + vc_manager_.reset(new VideoCaptureImplManager());
|
| AddFilter(vc_manager_->video_capture_message_filter());
|
|
|
| #if defined(ENABLE_WEBRTC)
|
| @@ -360,7 +360,7 @@ void RenderThreadImpl::Init() {
|
| webrtc_identity_service_.reset(new WebRTCIdentityService());
|
|
|
| media_stream_factory_.reset(new MediaStreamDependencyFactory(
|
| - vc_manager_.get(), p2p_socket_dispatcher_.get()));
|
| + p2p_socket_dispatcher_.get()));
|
| AddObserver(media_stream_factory_.get());
|
| #endif // defined(ENABLE_WEBRTC)
|
|
|
| @@ -440,7 +440,13 @@ void RenderThreadImpl::Shutdown() {
|
| RemoveFilter(audio_message_filter_.get());
|
| audio_message_filter_ = NULL;
|
|
|
| + // |media_stream_factory_| produces users of |vc_manager_| so it must be
|
| + // destroyed first.
|
| +#if defined(ENABLE_WEBRTC)
|
| + media_stream_factory_.reset();
|
| +#endif
|
| RemoveFilter(vc_manager_->video_capture_message_filter());
|
| + vc_manager_.reset();
|
|
|
| RemoveFilter(db_message_filter_.get());
|
| db_message_filter_ = NULL;
|
|
|