| Index: content/renderer/render_frame_impl.cc
|
| diff --git a/content/renderer/render_frame_impl.cc b/content/renderer/render_frame_impl.cc
|
| index a7a3245b9a8777c4814053beef8bcd636bf0ebf9..5fe7eb2830c9954ea26a178daa19db7c8cab06ea 100644
|
| --- a/content/renderer/render_frame_impl.cc
|
| +++ b/content/renderer/render_frame_impl.cc
|
| @@ -91,6 +91,7 @@
|
| #include "third_party/WebKit/public/web/WebDocument.h"
|
| #include "third_party/WebKit/public/web/WebGlyphCache.h"
|
| #include "third_party/WebKit/public/web/WebLocalFrame.h"
|
| +#include "third_party/WebKit/public/web/WebMediaStreamRegistry.h"
|
| #include "third_party/WebKit/public/web/WebNavigationPolicy.h"
|
| #include "third_party/WebKit/public/web/WebPlugin.h"
|
| #include "third_party/WebKit/public/web/WebPluginParams.h"
|
| @@ -402,7 +403,6 @@ RenderFrameImpl::RenderFrameImpl(RenderViewImpl* render_view, int routing_id)
|
| selection_range_(gfx::Range::InvalidRange()),
|
| handling_select_range_(false),
|
| notification_provider_(NULL),
|
| - media_stream_client_(NULL),
|
| web_user_media_client_(NULL),
|
| weak_factory_(this) {
|
| RenderThread::Get()->AddRoute(routing_id_, this);
|
| @@ -635,13 +635,6 @@ void RenderFrameImpl::OnImeConfirmComposition(
|
|
|
| #endif // ENABLE_PLUGINS
|
|
|
| -void RenderFrameImpl::SetMediaStreamClientForTesting(
|
| - MediaStreamClient* media_stream_client) {
|
| - DCHECK(!media_stream_client_);
|
| - DCHECK(!web_user_media_client_);
|
| - media_stream_client_ = media_stream_client;
|
| -}
|
| -
|
| bool RenderFrameImpl::Send(IPC::Message* message) {
|
| if (is_detaching_) {
|
| delete message;
|
| @@ -1375,9 +1368,10 @@ blink::WebMediaPlayer* RenderFrameImpl::createMediaPlayer(
|
| blink::WebLocalFrame* frame,
|
| const blink::WebURL& url,
|
| blink::WebMediaPlayerClient* client) {
|
| - WebMediaPlayer* player = CreateWebMediaPlayerForMediaStream(url, client);
|
| - if (player)
|
| - return player;
|
| + blink::WebMediaStream web_stream(
|
| + blink::WebMediaStreamRegistry::lookupMediaStreamDescriptor(url));
|
| + if (!web_stream.isNull())
|
| + return CreateWebMediaPlayerForMediaStream(url, client);
|
|
|
| #if defined(OS_ANDROID)
|
| return CreateAndroidWebMediaPlayer(url, client);
|
| @@ -2733,7 +2727,7 @@ void RenderFrameImpl::willStartUsingPeerConnectionHandler(
|
|
|
| blink::WebUserMediaClient* RenderFrameImpl::userMediaClient() {
|
| // This can happen in tests, in which case it's OK to return NULL.
|
| - if (!InitializeMediaStreamClient())
|
| + if (!InitializeUserMediaClient())
|
| return NULL;
|
|
|
| return web_user_media_client_;
|
| @@ -3397,8 +3391,8 @@ void RenderFrameImpl::SyncSelectionIfRequired() {
|
| GetRenderWidget()->UpdateSelectionBounds();
|
| }
|
|
|
| -bool RenderFrameImpl::InitializeMediaStreamClient() {
|
| - if (media_stream_client_)
|
| +bool RenderFrameImpl::InitializeUserMediaClient() {
|
| + if (web_user_media_client_)
|
| return true;
|
|
|
| if (!RenderThreadImpl::current()) // Will be NULL during unit tests.
|
| @@ -3419,7 +3413,6 @@ bool RenderFrameImpl::InitializeMediaStreamClient() {
|
| render_view_.get(),
|
| render_view_->media_stream_dispatcher_,
|
| RenderThreadImpl::current()->GetPeerConnectionDependencyFactory());
|
| - media_stream_client_ = media_stream_impl;
|
| web_user_media_client_ = media_stream_impl;
|
| return true;
|
| #else
|
| @@ -3431,21 +3424,16 @@ WebMediaPlayer* RenderFrameImpl::CreateWebMediaPlayerForMediaStream(
|
| const blink::WebURL& url,
|
| WebMediaPlayerClient* client) {
|
| #if defined(ENABLE_WEBRTC)
|
| - if (!InitializeMediaStreamClient()) {
|
| - LOG(ERROR) << "Failed to initialize MediaStreamClient";
|
| - return NULL;
|
| - }
|
| - if (media_stream_client_->IsMediaStream(url)) {
|
| #if defined(OS_ANDROID) && defined(ARCH_CPU_ARMEL)
|
| - bool found_neon =
|
| - (android_getCpuFeatures() & ANDROID_CPU_ARM_FEATURE_NEON) != 0;
|
| - UMA_HISTOGRAM_BOOLEAN("Platform.WebRtcNEONFound", found_neon);
|
| + bool found_neon =
|
| + (android_getCpuFeatures() & ANDROID_CPU_ARM_FEATURE_NEON) != 0;
|
| + UMA_HISTOGRAM_BOOLEAN("Platform.WebRtcNEONFound", found_neon);
|
| #endif // defined(OS_ANDROID) && defined(ARCH_CPU_ARMEL)
|
| - return new WebMediaPlayerMS(frame_, client, weak_factory_.GetWeakPtr(),
|
| - media_stream_client_, new RenderMediaLog());
|
| - }
|
| -#endif // defined(ENABLE_WEBRTC)
|
| + return new WebMediaPlayerMS(frame_, client, weak_factory_.GetWeakPtr(),
|
| + new RenderMediaLog());
|
| +#else
|
| return NULL;
|
| +#endif // defined(ENABLE_WEBRTC)
|
| }
|
|
|
| #if defined(OS_ANDROID)
|
|
|