diff options
30 files changed, 123 insertions, 116 deletions
diff --git a/content/content_renderer.gypi b/content/content_renderer.gypi index 52ce045..5230639 100644 --- a/content/content_renderer.gypi +++ b/content/content_renderer.gypi @@ -53,6 +53,7 @@ 'public/renderer/context_menu_client.h', 'public/renderer/document_state.cc', 'public/renderer/document_state.h', + 'public/renderer/media_stream_audio_renderer.h', 'public/renderer/navigation_state.cc', 'public/renderer/navigation_state.h', 'public/renderer/pepper_plugin_instance.h', @@ -75,6 +76,7 @@ 'public/renderer/resource_fetcher.h', 'public/renderer/video_encode_accelerator.cc', 'public/renderer/video_encode_accelerator.h', + 'public/renderer/video_frame_provider.h', ], 'public_renderer_plugin_sources': [ 'public/renderer/plugin_instance_throttler.h', @@ -273,8 +275,6 @@ 'renderer/media/media_permission_dispatcher.h', 'renderer/media/media_stream_audio_level_calculator.cc', 'renderer/media/media_stream_audio_level_calculator.h', - 'renderer/media/media_stream_audio_renderer.cc', - 'renderer/media/media_stream_audio_renderer.h', 'renderer/media/media_stream_center.h', 'renderer/media/media_stream_constraints_util.cc', 'renderer/media/media_stream_constraints_util.h', @@ -302,8 +302,6 @@ 'renderer/media/video_capture_impl_manager.h', 'renderer/media/video_capture_message_filter.cc', 'renderer/media/video_capture_message_filter.h', - 'renderer/media/video_frame_provider.cc', - 'renderer/media/video_frame_provider.h', 'renderer/media/webmediaplayer_ms.cc', 'renderer/media/webmediaplayer_ms.h', 'renderer/memory_benchmarking_extension.cc', @@ -577,6 +575,7 @@ 'public/renderer/media_stream_api.h', 'public/renderer/media_stream_audio_sink.cc', 'public/renderer/media_stream_audio_sink.h', + 'public/renderer/media_stream_renderer_factory.h', 'public/renderer/media_stream_sink.h', 'public/renderer/media_stream_video_sink.cc', 'public/renderer/media_stream_video_sink.h', @@ -599,8 +598,8 @@ 'renderer/media/media_stream_center.cc', 'renderer/media/media_stream_dispatcher.cc', 'renderer/media/media_stream_registry_interface.h', - 'renderer/media/media_stream_renderer_factory.cc', - 'renderer/media/media_stream_renderer_factory.h', + 'renderer/media/media_stream_renderer_factory_impl.cc', + 'renderer/media/media_stream_renderer_factory_impl.h', 'renderer/media/media_stream_source.cc', 'renderer/media/media_stream_source.h', 'renderer/media/media_stream_video_capturer_source.cc', diff --git a/content/content_shell.gypi b/content/content_shell.gypi index 36da97b..8e45fd7 100644 --- a/content/content_shell.gypi +++ b/content/content_shell.gypi @@ -224,6 +224,10 @@ 'shell/renderer/layout_test/layout_test_render_process_observer.h', 'shell/renderer/layout_test/leak_detector.cc', 'shell/renderer/layout_test/leak_detector.h', + 'shell/renderer/layout_test/test_media_stream_renderer_factory.cc', + 'shell/renderer/layout_test/test_media_stream_renderer_factory.h', + 'shell/renderer/layout_test/test_video_frame_provider.cc', + 'shell/renderer/layout_test/test_video_frame_provider.h', 'shell/renderer/shell_content_renderer_client.cc', 'shell/renderer/shell_content_renderer_client.h', 'shell/renderer/shell_render_view_observer.cc', diff --git a/content/content_tests.gypi b/content/content_tests.gypi index 72a3b643..09fee67 100644 --- a/content/content_tests.gypi +++ b/content/content_tests.gypi @@ -9,10 +9,6 @@ 'public/test/nested_message_pump_android.cc', 'public/test/nested_message_pump_android.h', 'test/layouttest_support.cc', - 'test/test_media_stream_renderer_factory.cc', - 'test/test_media_stream_renderer_factory.h', - 'test/test_video_frame_provider.cc', - 'test/test_video_frame_provider.h', ], 'test_support_content_sources': [ # TODO(phajdan.jr): All of those files should live in content/test (if @@ -624,8 +620,8 @@ 'common/inter_process_time_ticks_converter_unittest.cc', 'common/mac/attributed_string_coder_unittest.mm', 'common/mac/font_descriptor_unittest.mm', - 'common/origin_util_unittest.cc', 'common/one_writer_seqlock_unittest.cc', + 'common/origin_util_unittest.cc', 'common/page_state_serialization_unittest.cc', 'common/page_zoom_unittest.cc', 'common/plugin_list_unittest.cc', diff --git a/content/public/renderer/content_renderer_client.cc b/content/public/renderer/content_renderer_client.cc index df391b64..1918fbd 100644 --- a/content/public/renderer/content_renderer_client.cc +++ b/content/public/renderer/content_renderer_client.cc @@ -4,6 +4,7 @@ #include "content/public/renderer/content_renderer_client.h" +#include "content/public/renderer/media_stream_renderer_factory.h" #include "media/base/renderer_factory.h" #include "third_party/WebKit/public/platform/modules/app_banner/WebAppBannerClient.h" #include "third_party/WebKit/public/web/WebPluginPlaceholder.h" @@ -182,6 +183,11 @@ ContentRendererClient::CreateMediaRendererFactory( return nullptr; } +scoped_ptr<MediaStreamRendererFactory> +ContentRendererClient::CreateMediaStreamRendererFactory() { + return nullptr; +} + bool ContentRendererClient::ShouldReportDetailedMessageForSource( const base::string16& source) const { return false; diff --git a/content/public/renderer/content_renderer_client.h b/content/public/renderer/content_renderer_client.h index 1d4a47e..db82fb3 100644 --- a/content/public/renderer/content_renderer_client.h +++ b/content/public/renderer/content_renderer_client.h @@ -64,6 +64,7 @@ struct KeySystemInfo; namespace content { class BrowserPluginDelegate; class DocumentState; +class MediaStreamRendererFactory; class RenderFrame; class RenderView; class SynchronousCompositor; @@ -261,6 +262,10 @@ class CONTENT_EXPORT ContentRendererClient { RenderFrame* render_frame, const scoped_refptr<media::MediaLog>& media_log); + // Allows an embedder to provide a MediaStreamRendererFactory. + virtual scoped_ptr<MediaStreamRendererFactory> + CreateMediaStreamRendererFactory(); + // Gives the embedder a chance to register the key system(s) it supports by // populating |key_systems|. virtual void AddKeySystems(std::vector<media::KeySystemInfo>* key_systems); diff --git a/content/renderer/media/media_stream_audio_renderer.h b/content/public/renderer/media_stream_audio_renderer.h index 41e3223..21479b9 100644 --- a/content/renderer/media/media_stream_audio_renderer.h +++ b/content/public/renderer/media_stream_audio_renderer.h @@ -2,8 +2,8 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#ifndef CONTENT_RENDERER_MEDIA_MEDIA_STREAM_AUDIO_RENDERER_H_ -#define CONTENT_RENDERER_MEDIA_MEDIA_STREAM_AUDIO_RENDERER_H_ +#ifndef CONTENT_PUBLIC_RENDERER_MEDIA_STREAM_AUDIO_RENDERER_H_ +#define CONTENT_PUBLIC_RENDERER_MEDIA_STREAM_AUDIO_RENDERER_H_ #include "base/memory/ref_counted.h" #include "base/time/time.h" @@ -40,13 +40,9 @@ class MediaStreamAudioRenderer protected: friend class base::RefCountedThreadSafe<MediaStreamAudioRenderer>; - MediaStreamAudioRenderer(); - virtual ~MediaStreamAudioRenderer(); - - private: - DISALLOW_COPY_AND_ASSIGN(MediaStreamAudioRenderer); + virtual ~MediaStreamAudioRenderer() {} }; } // namespace content -#endif // CONTENT_RENDERER_MEDIA_MEDIA_STREAM_AUDIO_RENDERER_H_ +#endif // CONTENT_PUBLIC_RENDERER_MEDIA_STREAM_AUDIO_RENDERER_H_ diff --git a/content/renderer/media/media_stream_renderer_factory.h b/content/public/renderer/media_stream_renderer_factory.h index 86a644e..f4cc79e 100644 --- a/content/renderer/media/media_stream_renderer_factory.h +++ b/content/public/renderer/media_stream_renderer_factory.h @@ -2,14 +2,13 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#ifndef CONTENT_RENDERER_MEDIA_MEDIA_STREAM_RENDERER_FACTORY_H_ -#define CONTENT_RENDERER_MEDIA_MEDIA_STREAM_RENDERER_FACTORY_H_ +#ifndef CONTENT_PUBLIC_RENDERER_MEDIA_STREAM_RENDERER_FACTORY_H_ +#define CONTENT_PUBLIC_RENDERER_MEDIA_STREAM_RENDERER_FACTORY_H_ #include "base/callback.h" #include "base/memory/ref_counted.h" -#include "content/common/content_export.h" -#include "content/renderer/media/media_stream_audio_renderer.h" -#include "content/renderer/media/video_frame_provider.h" +#include "content/public/renderer/media_stream_audio_renderer.h" +#include "content/public/renderer/video_frame_provider.h" #include "url/gurl.h" namespace content { @@ -18,24 +17,20 @@ namespace content { // video feeds from a MediaStream provided an URL. // The factory methods are virtual in order for blink layouttests to be able to // override them. -class CONTENT_EXPORT MediaStreamRendererFactory { +class MediaStreamRendererFactory { public: - MediaStreamRendererFactory(); - virtual ~MediaStreamRendererFactory(); + virtual ~MediaStreamRendererFactory() {} virtual scoped_refptr<VideoFrameProvider> GetVideoFrameProvider( const GURL& url, const base::Closure& error_cb, - const VideoFrameProvider::RepaintCB& repaint_cb); + const VideoFrameProvider::RepaintCB& repaint_cb) = 0; virtual scoped_refptr<MediaStreamAudioRenderer> GetAudioRenderer( const GURL& url, - int render_frame_id); - - private: - DISALLOW_COPY_AND_ASSIGN(MediaStreamRendererFactory); + int render_frame_id) = 0; }; } // namespace content -#endif // CONTENT_RENDERER_MEDIA_MEDIA_STREAM_RENDERER_FACTORY_H_ +#endif // CONTENT_PUBLIC_RENDERER_MEDIA_STREAM_RENDERER_FACTORY_H_ diff --git a/content/renderer/media/video_frame_provider.h b/content/public/renderer/video_frame_provider.h index 8d9278f..08e51da 100644 --- a/content/renderer/media/video_frame_provider.h +++ b/content/public/renderer/video_frame_provider.h @@ -2,12 +2,11 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#ifndef CONTENT_RENDERER_MEDIA_VIDEO_FRAME_PROVIDER_H_ -#define CONTENT_RENDERER_MEDIA_VIDEO_FRAME_PROVIDER_H_ +#ifndef CONTENT_PUBLIC_RENDERER_VIDEO_FRAME_PROVIDER_H_ +#define CONTENT_PUBLIC_RENDERER_VIDEO_FRAME_PROVIDER_H_ #include "base/callback.h" #include "base/memory/ref_counted.h" -#include "content/common/content_export.h" namespace media { class VideoFrame; @@ -18,7 +17,7 @@ namespace content { // Define an interface to provide a sequence of video frames to clients. // TODO(wjia): remove ref count. // TODO(wjia): rename interface so it doesn't clash with cc::VideoFrameProvider. -class CONTENT_EXPORT VideoFrameProvider +class VideoFrameProvider : public base::RefCountedThreadSafe<VideoFrameProvider> { public: typedef base::Callback<void(const scoped_refptr<media::VideoFrame>&)> @@ -41,13 +40,10 @@ class CONTENT_EXPORT VideoFrameProvider protected: friend class base::RefCountedThreadSafe<VideoFrameProvider>; - VideoFrameProvider(); - virtual ~VideoFrameProvider(); + virtual ~VideoFrameProvider() {} - private: - DISALLOW_COPY_AND_ASSIGN(VideoFrameProvider); }; } // namespace content -#endif // CONTENT_RENDERER_MEDIA_VIDEO_FRAME_PROVIDER_H_ +#endif // CONTENT_PUBLIC_RENDERER_VIDEO_FRAME_PROVIDER_H_ diff --git a/content/renderer/BUILD.gn b/content/renderer/BUILD.gn index bba336d..6bd5180 100644 --- a/content/renderer/BUILD.gn +++ b/content/renderer/BUILD.gn @@ -110,8 +110,6 @@ source_set("renderer") { sources -= [ "media/media_stream_audio_level_calculator.cc", "media/media_stream_audio_level_calculator.h", - "media/media_stream_audio_renderer.cc", - "media/media_stream_audio_renderer.h", "media/media_stream_center.h", "media/media_stream_constraints_util.cc", "media/media_stream_constraints_util.h", diff --git a/content/renderer/media/media_stream_audio_renderer.cc b/content/renderer/media/media_stream_audio_renderer.cc deleted file mode 100644 index 0d9f1dd..0000000 --- a/content/renderer/media/media_stream_audio_renderer.cc +++ /dev/null @@ -1,12 +0,0 @@ -// Copyright 2013 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#include "content/renderer/media/media_stream_audio_renderer.h" - -namespace content { - -MediaStreamAudioRenderer::MediaStreamAudioRenderer() {} -MediaStreamAudioRenderer::~MediaStreamAudioRenderer() {} - -} // namespace content diff --git a/content/renderer/media/media_stream_renderer_factory.cc b/content/renderer/media/media_stream_renderer_factory_impl.cc index 20ee8ad..cfc37a7 100644 --- a/content/renderer/media/media_stream_renderer_factory.cc +++ b/content/renderer/media/media_stream_renderer_factory_impl.cc @@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#include "content/renderer/media/media_stream_renderer_factory.h" +#include "content/renderer/media/media_stream_renderer_factory_impl.h" #include "base/strings/utf_string_conversions.h" #include "content/renderer/media/media_stream.h" @@ -62,7 +62,7 @@ scoped_refptr<WebRtcAudioRenderer> CreateRemoteAudioRenderer( if (stream->GetAudioTracks().empty()) return NULL; - DVLOG(1) << "MediaStreamRendererFactory::CreateRemoteAudioRenderer label:" + DVLOG(1) << "MediaStreamRendererFactoryImpl::CreateRemoteAudioRenderer label:" << stream->label(); // TODO(tommi): Change the default value of session_id to be @@ -83,7 +83,7 @@ scoped_refptr<WebRtcAudioRenderer> CreateRemoteAudioRenderer( scoped_refptr<WebRtcLocalAudioRenderer> CreateLocalAudioRenderer( const blink::WebMediaStreamTrack& audio_track, int render_frame_id) { - DVLOG(1) << "MediaStreamRendererFactory::CreateLocalAudioRenderer"; + DVLOG(1) << "MediaStreamRendererFactoryImpl::CreateLocalAudioRenderer"; int session_id = 0, sample_rate = 0, buffer_size = 0; if (!GetAuthorizedDeviceInfoForAudioRenderer(&session_id, @@ -104,14 +104,14 @@ scoped_refptr<WebRtcLocalAudioRenderer> CreateLocalAudioRenderer( } // namespace -MediaStreamRendererFactory::MediaStreamRendererFactory() { +MediaStreamRendererFactoryImpl::MediaStreamRendererFactoryImpl() { } -MediaStreamRendererFactory::~MediaStreamRendererFactory() { +MediaStreamRendererFactoryImpl::~MediaStreamRendererFactoryImpl() { } scoped_refptr<VideoFrameProvider> -MediaStreamRendererFactory::GetVideoFrameProvider( +MediaStreamRendererFactoryImpl::GetVideoFrameProvider( const GURL& url, const base::Closure& error_cb, const VideoFrameProvider::RepaintCB& repaint_cb) { @@ -119,7 +119,7 @@ MediaStreamRendererFactory::GetVideoFrameProvider( blink::WebMediaStreamRegistry::lookupMediaStreamDescriptor(url); DCHECK(!web_stream.isNull()); - DVLOG(1) << "MediaStreamRendererFactory::GetVideoFrameProvider stream:" + DVLOG(1) << "MediaStreamRendererFactoryImpl::GetVideoFrameProvider stream:" << base::UTF16ToUTF8(web_stream.id()); blink::WebVector<blink::WebMediaStreamTrack> video_tracks; @@ -133,7 +133,7 @@ MediaStreamRendererFactory::GetVideoFrameProvider( } scoped_refptr<MediaStreamAudioRenderer> -MediaStreamRendererFactory::GetAudioRenderer(const GURL& url, +MediaStreamRendererFactoryImpl::GetAudioRenderer(const GURL& url, int render_frame_id) { blink::WebMediaStream web_stream = blink::WebMediaStreamRegistry::lookupMediaStreamDescriptor(url); @@ -141,7 +141,7 @@ MediaStreamRendererFactory::GetAudioRenderer(const GURL& url, if (web_stream.isNull() || !web_stream.extraData()) return NULL; // This is not a valid stream. - DVLOG(1) << "MediaStreamRendererFactory::GetAudioRenderer stream:" + DVLOG(1) << "MediaStreamRendererFactoryImpl::GetAudioRenderer stream:" << base::UTF16ToUTF8(web_stream.id()); MediaStream* native_stream = MediaStream::GetMediaStream(web_stream); diff --git a/content/renderer/media/media_stream_renderer_factory_impl.h b/content/renderer/media/media_stream_renderer_factory_impl.h new file mode 100644 index 0000000..3bfad63 --- /dev/null +++ b/content/renderer/media/media_stream_renderer_factory_impl.h @@ -0,0 +1,32 @@ +// Copyright 2014 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef CONTENT_RENDERER_MEDIA_MEDIA_STREAM_RENDERER_FACTORY_IMPL_H_ +#define CONTENT_RENDERER_MEDIA_MEDIA_STREAM_RENDERER_FACTORY_IMPL_H_ + +#include "content/public/renderer/media_stream_renderer_factory.h" + +namespace content { + +class MediaStreamRendererFactoryImpl : public MediaStreamRendererFactory { + public: + MediaStreamRendererFactoryImpl(); + ~MediaStreamRendererFactoryImpl() override; + + scoped_refptr<VideoFrameProvider> GetVideoFrameProvider( + const GURL& url, + const base::Closure& error_cb, + const VideoFrameProvider::RepaintCB& repaint_cb) override; + + scoped_refptr<MediaStreamAudioRenderer> GetAudioRenderer( + const GURL& url, + int render_frame_id) override; + + private: + DISALLOW_COPY_AND_ASSIGN(MediaStreamRendererFactoryImpl); +}; + +} // namespace content + +#endif // CONTENT_RENDERER_MEDIA_MEDIA_STREAM_RENDERER_FACTORY_IMPL_H_ diff --git a/content/renderer/media/rtc_video_renderer.h b/content/renderer/media/rtc_video_renderer.h index edaec04..67a62af 100644 --- a/content/renderer/media/rtc_video_renderer.h +++ b/content/renderer/media/rtc_video_renderer.h @@ -10,7 +10,7 @@ #include "content/common/content_export.h" #include "content/common/media/video_capture.h" #include "content/public/renderer/media_stream_video_sink.h" -#include "content/renderer/media/video_frame_provider.h" +#include "content/public/renderer/video_frame_provider.h" #include "third_party/WebKit/public/platform/WebMediaStreamTrack.h" #include "ui/gfx/geometry/size.h" diff --git a/content/renderer/media/video_frame_provider.cc b/content/renderer/media/video_frame_provider.cc deleted file mode 100644 index 48f50e0..0000000 --- a/content/renderer/media/video_frame_provider.cc +++ /dev/null @@ -1,13 +0,0 @@ -// Copyright 2013 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#include "content/renderer/media/video_frame_provider.h" - -namespace content { - -VideoFrameProvider::VideoFrameProvider() {} - -VideoFrameProvider::~VideoFrameProvider() {} - -} // namespace content diff --git a/content/renderer/media/webmediaplayer_ms.cc b/content/renderer/media/webmediaplayer_ms.cc index bbf65b7..3bf82bb 100644 --- a/content/renderer/media/webmediaplayer_ms.cc +++ b/content/renderer/media/webmediaplayer_ms.cc @@ -13,10 +13,10 @@ #include "cc/blink/context_provider_web_context.h" #include "cc/blink/web_layer_impl.h" #include "cc/layers/video_layer.h" +#include "content/public/renderer/media_stream_audio_renderer.h" +#include "content/public/renderer/media_stream_renderer_factory.h" #include "content/public/renderer/render_view.h" -#include "content/renderer/media/media_stream_audio_renderer.h" -#include "content/renderer/media/media_stream_renderer_factory.h" -#include "content/renderer/media/video_frame_provider.h" +#include "content/public/renderer/video_frame_provider.h" #include "content/renderer/render_frame_impl.h" #include "content/renderer/render_thread_impl.h" #include "gpu/blink/webgraphicscontext3d_impl.h" diff --git a/content/renderer/media/webrtc_audio_renderer.h b/content/renderer/media/webrtc_audio_renderer.h index 6d718e4..86a00a2f 100644 --- a/content/renderer/media/webrtc_audio_renderer.h +++ b/content/renderer/media/webrtc_audio_renderer.h @@ -9,7 +9,7 @@ #include "base/synchronization/lock.h" #include "base/threading/non_thread_safe.h" #include "base/threading/thread_checker.h" -#include "content/renderer/media/media_stream_audio_renderer.h" +#include "content/public/renderer/media_stream_audio_renderer.h" #include "content/renderer/media/webrtc_audio_device_impl.h" #include "media/base/audio_decoder.h" #include "media/base/audio_pull_fifo.h" diff --git a/content/renderer/media/webrtc_audio_renderer_unittest.cc b/content/renderer/media/webrtc_audio_renderer_unittest.cc index 2d97f1f..06238dc 100644 --- a/content/renderer/media/webrtc_audio_renderer_unittest.cc +++ b/content/renderer/media/webrtc_audio_renderer_unittest.cc @@ -5,9 +5,9 @@ #include <vector> #include "base/single_thread_task_runner.h" +#include "content/public/renderer/media_stream_audio_renderer.h" #include "content/renderer/media/audio_device_factory.h" #include "content/renderer/media/audio_message_filter.h" -#include "content/renderer/media/media_stream_audio_renderer.h" #include "content/renderer/media/webrtc/mock_peer_connection_dependency_factory.h" #include "content/renderer/media/webrtc_audio_device_impl.h" #include "content/renderer/media/webrtc_audio_renderer.h" diff --git a/content/renderer/media/webrtc_local_audio_renderer.h b/content/renderer/media/webrtc_local_audio_renderer.h index 86147a4..3ee17f0 100644 --- a/content/renderer/media/webrtc_local_audio_renderer.h +++ b/content/renderer/media/webrtc_local_audio_renderer.h @@ -13,8 +13,8 @@ #include "base/synchronization/lock.h" #include "base/threading/thread_checker.h" #include "content/common/content_export.h" +#include "content/public/renderer/media_stream_audio_renderer.h" #include "content/public/renderer/media_stream_audio_sink.h" -#include "content/renderer/media/media_stream_audio_renderer.h" #include "content/renderer/media/webrtc_audio_device_impl.h" #include "content/renderer/media/webrtc_local_audio_track.h" #include "third_party/WebKit/public/platform/WebMediaStreamTrack.h" diff --git a/content/renderer/render_frame_impl.cc b/content/renderer/render_frame_impl.cc index c548fe0..6c1cf84 100644 --- a/content/renderer/render_frame_impl.cc +++ b/content/renderer/render_frame_impl.cc @@ -80,7 +80,7 @@ #include "content/renderer/media/crypto/render_cdm_factory.h" #include "content/renderer/media/media_permission_dispatcher.h" #include "content/renderer/media/media_stream_dispatcher.h" -#include "content/renderer/media/media_stream_renderer_factory.h" +#include "content/renderer/media/media_stream_renderer_factory_impl.h" #include "content/renderer/media/midi_dispatcher.h" #include "content/renderer/media/render_media_log.h" #include "content/renderer/media/user_media_client_impl.h" @@ -4569,9 +4569,13 @@ WebMediaPlayer* RenderFrameImpl::CreateWebMediaPlayerForMediaStream( scoped_ptr<MediaStreamRendererFactory> RenderFrameImpl::CreateRendererFactory() { + scoped_ptr<MediaStreamRendererFactory> factory = + GetContentClient()->renderer()->CreateMediaStreamRendererFactory(); + if (factory.get()) + return factory.Pass(); #if defined(ENABLE_WEBRTC) return scoped_ptr<MediaStreamRendererFactory>( - new MediaStreamRendererFactory()); + new MediaStreamRendererFactoryImpl()); #else return scoped_ptr<MediaStreamRendererFactory>( static_cast<MediaStreamRendererFactory*>(NULL)); diff --git a/content/renderer/render_frame_impl.h b/content/renderer/render_frame_impl.h index a394bef..69a9439 100644 --- a/content/renderer/render_frame_impl.h +++ b/content/renderer/render_frame_impl.h @@ -742,8 +742,7 @@ class CONTENT_EXPORT RenderFrameImpl blink::WebMediaPlayerClient* client); // Creates a factory object used for creating audio and video renderers. - // The method is virtual so that layouttests can override it. - virtual scoped_ptr<MediaStreamRendererFactory> CreateRendererFactory(); + scoped_ptr<MediaStreamRendererFactory> CreateRendererFactory(); // Checks that the RenderView is ready to display the navigation to |url|. If // the return value is false, the navigation should be abandoned. diff --git a/content/shell/BUILD.gn b/content/shell/BUILD.gn index f263c20..5f00dde 100644 --- a/content/shell/BUILD.gn +++ b/content/shell/BUILD.gn @@ -162,6 +162,10 @@ static_library("content_shell_lib") { "renderer/layout_test/layout_test_render_process_observer.h", "renderer/layout_test/leak_detector.cc", "renderer/layout_test/leak_detector.h", + "renderer/layout_test/test_media_stream_renderer_factory.cc", + "renderer/layout_test/test_media_stream_renderer_factory.h", + "renderer/layout_test/test_video_frame_provider.cc", + "renderer/layout_test/test_video_frame_provider.h", "renderer/shell_content_renderer_client.cc", "renderer/shell_content_renderer_client.h", "renderer/shell_render_view_observer.cc", diff --git a/content/shell/renderer/DEPS b/content/shell/renderer/DEPS index 8b18709..97240fd 100644 --- a/content/shell/renderer/DEPS +++ b/content/shell/renderer/DEPS @@ -1,4 +1,5 @@ include_rules = [ "+gin", "+components/web_cache/renderer", + "+media", ] diff --git a/content/shell/renderer/layout_test/layout_test_content_renderer_client.cc b/content/shell/renderer/layout_test/layout_test_content_renderer_client.cc index c4fbdf7..ff01415 100644 --- a/content/shell/renderer/layout_test/layout_test_content_renderer_client.cc +++ b/content/shell/renderer/layout_test/layout_test_content_renderer_client.cc @@ -17,6 +17,7 @@ #include "content/shell/renderer/layout_test/blink_test_runner.h" #include "content/shell/renderer/layout_test/layout_test_render_frame_observer.h" #include "content/shell/renderer/layout_test/layout_test_render_process_observer.h" +#include "content/shell/renderer/layout_test/test_media_stream_renderer_factory.h" #include "content/shell/renderer/shell_render_view_observer.h" #include "content/shell/renderer/test_runner/app_banner_client.h" #include "content/shell/renderer/test_runner/mock_credential_manager_client.h" @@ -171,6 +172,16 @@ LayoutTestContentRendererClient::CreateAppBannerClient( return interfaces->CreateAppBannerClient(); } +scoped_ptr<MediaStreamRendererFactory> +LayoutTestContentRendererClient::CreateMediaStreamRendererFactory() { +#if defined(ENABLE_WEBRTC) + return scoped_ptr<MediaStreamRendererFactory>( + new TestMediaStreamRendererFactory()); +#else + return nullptr; +#endif +} + void LayoutTestContentRendererClient::WebTestProxyCreated( RenderView* render_view, WebTestProxyBase* proxy) { diff --git a/content/shell/renderer/layout_test/layout_test_content_renderer_client.h b/content/shell/renderer/layout_test/layout_test_content_renderer_client.h index a20db61..a1ae6a9 100644 --- a/content/shell/renderer/layout_test/layout_test_content_renderer_client.h +++ b/content/shell/renderer/layout_test/layout_test_content_renderer_client.h @@ -45,6 +45,8 @@ class LayoutTestContentRendererClient : public ShellContentRendererClient { blink::WebThemeEngine* OverrideThemeEngine() override; scoped_ptr<blink::WebAppBannerClient> CreateAppBannerClient( RenderFrame* render_frame) override; + scoped_ptr<MediaStreamRendererFactory> CreateMediaStreamRendererFactory() + override; private: void WebTestProxyCreated(RenderView* render_view, WebTestProxyBase* proxy); diff --git a/content/test/test_media_stream_renderer_factory.cc b/content/shell/renderer/layout_test/test_media_stream_renderer_factory.cc index 1f4ccda..0c07c5a 100644 --- a/content/test/test_media_stream_renderer_factory.cc +++ b/content/shell/renderer/layout_test/test_media_stream_renderer_factory.cc @@ -2,10 +2,9 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#include "content/test/test_media_stream_renderer_factory.h" +#include "content/shell/renderer/layout_test/test_media_stream_renderer_factory.h" -#include "content/renderer/media/media_stream_audio_renderer.h" -#include "content/test/test_video_frame_provider.h" +#include "content/shell/renderer/layout_test/test_video_frame_provider.h" #include "third_party/WebKit/public/platform/WebMediaStream.h" #include "third_party/WebKit/public/platform/WebMediaStreamTrack.h" #include "third_party/WebKit/public/web/WebMediaStreamRegistry.h" diff --git a/content/test/test_media_stream_renderer_factory.h b/content/shell/renderer/layout_test/test_media_stream_renderer_factory.h index a2bb0d7..2b9a294 100644 --- a/content/test/test_media_stream_renderer_factory.h +++ b/content/shell/renderer/layout_test/test_media_stream_renderer_factory.h @@ -2,11 +2,11 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#ifndef CONTENT_TEST_TEST_MEDIA_STREAM_RENDERER_FACTORY_H_ -#define CONTENT_TEST_TEST_MEDIA_STREAM_RENDERER_FACTORY_H_ +#ifndef CONTENT_SHELL_RENDERER_LAYOUT_TEST_TEST_MEDIA_STREAM_RENDERER_FACTORY_H_ +#define CONTENT_SHELL_RENDERER_LAYOUT_TEST_TEST_MEDIA_STREAM_RENDERER_FACTORY_H_ #include "base/callback_forward.h" -#include "content/renderer/media/media_stream_renderer_factory.h" +#include "content/public/renderer/media_stream_renderer_factory.h" #include "third_party/WebKit/public/platform/WebURL.h" namespace content { @@ -31,4 +31,4 @@ class TestMediaStreamRendererFactory : public MediaStreamRendererFactory { } // namespace content -#endif // CONTENT_TEST_TEST_MEDIA_STREAM_RENDERER_FACTORY_H_ +#endif // CONTENT_SHELL_RENDERER_LAYOUT_TEST_TEST_MEDIA_STREAM_RENDERER_FACTORY_H_ diff --git a/content/test/test_video_frame_provider.cc b/content/shell/renderer/layout_test/test_video_frame_provider.cc index d568359..0989572 100644 --- a/content/test/test_video_frame_provider.cc +++ b/content/shell/renderer/layout_test/test_video_frame_provider.cc @@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#include "content/test/test_video_frame_provider.h" +#include "content/shell/renderer/layout_test/test_video_frame_provider.h" #include "base/bind.h" #include "base/location.h" diff --git a/content/test/test_video_frame_provider.h b/content/shell/renderer/layout_test/test_video_frame_provider.h index d3a4590..00ee3c8 100644 --- a/content/test/test_video_frame_provider.h +++ b/content/shell/renderer/layout_test/test_video_frame_provider.h @@ -2,11 +2,11 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#ifndef CONTENT_TEST_TEST_VIDEO_FRAME_PROVIDER_H_ -#define CONTENT_TEST_TEST_VIDEO_FRAME_PROVIDER_H_ +#ifndef CONTENT_SHELL_RENDERER_LAYOUT_TEST_TEST_VIDEO_FRAME_PROVIDER_H_ +#define CONTENT_SHELL_RENDERER_LAYOUT_TEST_TEST_VIDEO_FRAME_PROVIDER_H_ #include "base/time/time.h" -#include "content/renderer/media/video_frame_provider.h" +#include "content/public/renderer/video_frame_provider.h" #include "ui/gfx/geometry/size.h" namespace base { @@ -60,4 +60,4 @@ class TestVideoFrameProvider : public VideoFrameProvider { } // namespace content -#endif // CONTENT_TEST_TEST_VIDEO_FRAME_PROVIDER_H_ +#endif // CONTENT_SHELL_RENDERER_LAYOUT_TEST_TEST_VIDEO_FRAME_PROVIDER_H_ diff --git a/content/shell/renderer/test_runner/web_frame_test_proxy.h b/content/shell/renderer/test_runner/web_frame_test_proxy.h index 058a273..8045f28 100644 --- a/content/shell/renderer/test_runner/web_frame_test_proxy.h +++ b/content/shell/renderer/test_runner/web_frame_test_proxy.h @@ -11,7 +11,6 @@ #include "content/shell/renderer/test_runner/test_runner.h" #include "content/shell/renderer/test_runner/web_test_delegate.h" #include "content/shell/renderer/test_runner/web_test_proxy.h" -#include "content/test/test_media_stream_renderer_factory.h" #include "third_party/WebKit/public/platform/WebString.h" namespace content { @@ -283,13 +282,6 @@ class WebFrameTestProxy : public Base { } private: -#if defined(ENABLE_WEBRTC) - scoped_ptr<MediaStreamRendererFactory> CreateRendererFactory() override { - return scoped_ptr<MediaStreamRendererFactory>( - new TestMediaStreamRendererFactory()); - } -#endif - WebTestProxyBase* base_proxy_; DISALLOW_COPY_AND_ASSIGN(WebFrameTestProxy); diff --git a/content/test/BUILD.gn b/content/test/BUILD.gn index 7fd7144..987b075 100644 --- a/content/test/BUILD.gn +++ b/content/test/BUILD.gn @@ -228,13 +228,6 @@ if (!is_ios) { if (is_android) { deps += [ ":jni" ] } - - if (!enable_webrtc) { - sources -= [ - "test_media_stream_renderer_factory.cc", - "test_media_stream_renderer_factory.h", - ] - } } if (is_android) { |