| Index: content/renderer/render_frame_impl.cc
|
| diff --git a/content/renderer/render_frame_impl.cc b/content/renderer/render_frame_impl.cc
|
| index af2987fda5b30c540abe6ed6ac8ce081e87930e2..8d5b0ac2e249158607c0ea4060208941ba2bce17 100644
|
| --- a/content/renderer/render_frame_impl.cc
|
| +++ b/content/renderer/render_frame_impl.cc
|
| @@ -652,6 +652,13 @@ void RenderFrameImpl::OnImeConfirmComposition(
|
|
|
| #endif // ENABLE_PLUGINS
|
|
|
| +MediaStreamDispatcher* RenderFrameImpl::GetMediaStreamDispatcher() {
|
| + if (!web_user_media_client_)
|
| + InitializeUserMediaClient();
|
| + return web_user_media_client_ ?
|
| + web_user_media_client_->media_stream_dispatcher() : NULL;
|
| +}
|
| +
|
| bool RenderFrameImpl::Send(IPC::Message* message) {
|
| if (is_detaching_) {
|
| delete message;
|
| @@ -1569,6 +1576,7 @@ void RenderFrameImpl::frameFocused() {
|
| void RenderFrameImpl::willClose(blink::WebFrame* frame) {
|
| DCHECK(!frame_ || frame_ == frame);
|
|
|
| + FOR_EACH_OBSERVER(RenderFrameObserver, observers_, FrameWillClose());
|
| FOR_EACH_OBSERVER(RenderViewObserver, render_view_->observers(),
|
| FrameWillClose(frame));
|
| }
|
| @@ -2775,10 +2783,8 @@ void RenderFrameImpl::willStartUsingPeerConnectionHandler(
|
| }
|
|
|
| blink::WebUserMediaClient* RenderFrameImpl::userMediaClient() {
|
| - // This can happen in tests, in which case it's OK to return NULL.
|
| - if (!InitializeUserMediaClient())
|
| - return NULL;
|
| -
|
| + if (!web_user_media_client_)
|
| + InitializeUserMediaClient();
|
| return web_user_media_client_;
|
| }
|
|
|
| @@ -3461,32 +3467,21 @@ void RenderFrameImpl::SyncSelectionIfRequired() {
|
| GetRenderWidget()->UpdateSelectionBounds();
|
| }
|
|
|
| -bool RenderFrameImpl::InitializeUserMediaClient() {
|
| - if (web_user_media_client_)
|
| - return true;
|
| -
|
| +void RenderFrameImpl::InitializeUserMediaClient() {
|
| if (!RenderThreadImpl::current()) // Will be NULL during unit tests.
|
| - return false;
|
| + return;
|
|
|
| #if defined(OS_ANDROID)
|
| if (CommandLine::ForCurrentProcess()->HasSwitch(switches::kDisableWebRTC))
|
| - return false;
|
| + return;
|
| #endif
|
|
|
| #if defined(ENABLE_WEBRTC)
|
| - if (!render_view_->media_stream_dispatcher_) {
|
| - render_view_->media_stream_dispatcher_ =
|
| - new MediaStreamDispatcher(render_view_.get());
|
| - }
|
| -
|
| - MediaStreamImpl* media_stream_impl = new MediaStreamImpl(
|
| - render_view_.get(),
|
| - render_view_->media_stream_dispatcher_,
|
| - RenderThreadImpl::current()->GetPeerConnectionDependencyFactory());
|
| - web_user_media_client_ = media_stream_impl;
|
| - return true;
|
| -#else
|
| - return false;
|
| + DCHECK(!web_user_media_client_);
|
| + web_user_media_client_ = new MediaStreamImpl(
|
| + this,
|
| + RenderThreadImpl::current()->GetPeerConnectionDependencyFactory(),
|
| + make_scoped_ptr(new MediaStreamDispatcher(this)).Pass());
|
| #endif
|
| }
|
|
|
|
|