Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(342)

Side by Side Diff: content/renderer/render_frame_impl.cc

Issue 2712983004: Simplify/Cleanup MediaClient (Closed)
Patch Set: Little fixes Created 3 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "content/renderer/render_frame_impl.h" 5 #include "content/renderer/render_frame_impl.h"
6 6
7 #include <map> 7 #include <map>
8 #include <string> 8 #include <string>
9 #include <utility> 9 #include <utility>
10 #include <vector> 10 #include <vector>
(...skipping 2784 matching lines...) Expand 10 before | Expand all | Expand 10 after
2795 return NULL; 2795 return NULL;
2796 2796
2797 WebPluginParams params_to_use = params; 2797 WebPluginParams params_to_use = params;
2798 params_to_use.mimeType = WebString::fromUTF8(mime_type); 2798 params_to_use.mimeType = WebString::fromUTF8(mime_type);
2799 return CreatePlugin(frame, info, params_to_use, nullptr /* throttler */); 2799 return CreatePlugin(frame, info, params_to_use, nullptr /* throttler */);
2800 #else 2800 #else
2801 return NULL; 2801 return NULL;
2802 #endif // BUILDFLAG(ENABLE_PLUGINS) 2802 #endif // BUILDFLAG(ENABLE_PLUGINS)
2803 } 2803 }
2804 2804
2805 const scoped_refptr<RenderMediaLog>& RenderFrameImpl::GetMediaLog() {
2806 if (!media_log_.get()) {
2807 media_log_ =
2808 new RenderMediaLog(url::Origin(frame_->getSecurityOrigin()).GetURL());
2809 }
2810
2811 return media_log_;
2812 }
2813
2805 blink::WebMediaPlayer* RenderFrameImpl::createMediaPlayer( 2814 blink::WebMediaPlayer* RenderFrameImpl::createMediaPlayer(
2806 const blink::WebMediaPlayerSource& source, 2815 const blink::WebMediaPlayerSource& source,
2807 WebMediaPlayerClient* client, 2816 WebMediaPlayerClient* client,
2808 WebMediaPlayerEncryptedMediaClient* encrypted_client, 2817 WebMediaPlayerEncryptedMediaClient* encrypted_client,
2809 WebContentDecryptionModule* initial_cdm, 2818 WebContentDecryptionModule* initial_cdm,
2810 const blink::WebString& sink_id) { 2819 const blink::WebString& sink_id) {
2811 blink::WebMediaStream web_stream = 2820 blink::WebMediaStream web_stream =
2812 GetWebMediaStreamFromWebMediaPlayerSource(source); 2821 GetWebMediaStreamFromWebMediaPlayerSource(source);
2813 if (!web_stream.isNull()) 2822 if (!web_stream.isNull())
2814 return CreateWebMediaPlayerForMediaStream(client, sink_id, 2823 return CreateWebMediaPlayerForMediaStream(client, sink_id,
(...skipping 15 matching lines...) Expand all
2830 sink_id.utf8(), frame_->getSecurityOrigin()); 2839 sink_id.utf8(), frame_->getSecurityOrigin());
2831 // We need to keep a reference to the context provider (see crbug.com/610527) 2840 // We need to keep a reference to the context provider (see crbug.com/610527)
2832 // but media/ can't depend on cc/, so for now, just keep a reference in the 2841 // but media/ can't depend on cc/, so for now, just keep a reference in the
2833 // callback. 2842 // callback.
2834 // TODO(piman): replace media::Context3D to scoped_refptr<ContextProvider> in 2843 // TODO(piman): replace media::Context3D to scoped_refptr<ContextProvider> in
2835 // media/ once ContextProvider is in gpu/. 2844 // media/ once ContextProvider is in gpu/.
2836 media::WebMediaPlayerParams::Context3DCB context_3d_cb = base::Bind( 2845 media::WebMediaPlayerParams::Context3DCB context_3d_cb = base::Bind(
2837 &GetSharedMainThreadContext3D, 2846 &GetSharedMainThreadContext3D,
2838 RenderThreadImpl::current()->SharedMainThreadContextProvider()); 2847 RenderThreadImpl::current()->SharedMainThreadContextProvider());
2839 2848
2840 scoped_refptr<media::MediaLog> media_log(
2841 new RenderMediaLog(url::Origin(frame_->getSecurityOrigin()).GetURL()));
2842
2843 bool embedded_media_experience_enabled = false; 2849 bool embedded_media_experience_enabled = false;
2844 #if defined(OS_ANDROID) 2850 #if defined(OS_ANDROID)
2845 if (!UseMediaPlayerRenderer(url) && !media_surface_manager_) 2851 if (!UseMediaPlayerRenderer(url) && !media_surface_manager_)
2846 media_surface_manager_ = new RendererSurfaceViewManager(this); 2852 media_surface_manager_ = new RendererSurfaceViewManager(this);
2847 embedded_media_experience_enabled = 2853 embedded_media_experience_enabled =
2848 GetWebkitPreferences().embedded_media_experience_enabled; 2854 GetWebkitPreferences().embedded_media_experience_enabled;
2849 #endif // defined(OS_ANDROID) 2855 #endif // defined(OS_ANDROID)
2850 2856
2851 #if BUILDFLAG(ENABLE_MEDIA_REMOTING) 2857 #if BUILDFLAG(ENABLE_MEDIA_REMOTING)
2852 media::mojom::RemotingSourcePtr remoting_source; 2858 media::mojom::RemotingSourcePtr remoting_source;
2853 media::mojom::RemotingSourceRequest remoting_source_request(&remoting_source); 2859 media::mojom::RemotingSourceRequest remoting_source_request(&remoting_source);
2854 media::mojom::RemoterPtr remoter; 2860 media::mojom::RemoterPtr remoter;
2855 GetRemoterFactory()->Create(std::move(remoting_source), 2861 GetRemoterFactory()->Create(std::move(remoting_source),
2856 mojo::MakeRequest(&remoter)); 2862 mojo::MakeRequest(&remoter));
2857 using RemotingController = media::remoting::RendererController; 2863 using RemotingController = media::remoting::RendererController;
2858 std::unique_ptr<RemotingController> remoting_controller( 2864 std::unique_ptr<RemotingController> remoting_controller(
2859 new RemotingController(new media::remoting::SharedSession( 2865 new RemotingController(new media::remoting::SharedSession(
2860 std::move(remoting_source_request), std::move(remoter)))); 2866 std::move(remoting_source_request), std::move(remoter))));
2861 base::WeakPtr<media::MediaObserver> media_observer = 2867 base::WeakPtr<media::MediaObserver> media_observer =
2862 remoting_controller->GetWeakPtr(); 2868 remoting_controller->GetWeakPtr();
2863 #else 2869 #else
2864 base::WeakPtr<media::MediaObserver> media_observer = nullptr; 2870 base::WeakPtr<media::MediaObserver> media_observer = nullptr;
2865 #endif 2871 #endif
2866 2872
2867 media::WebMediaPlayerParams params( 2873 media::WebMediaPlayerParams params(
2868 base::Bind(&ContentRendererClient::DeferMediaLoad, 2874 base::Bind(&ContentRendererClient::DeferMediaLoad,
2869 base::Unretained(GetContentClient()->renderer()), 2875 base::Unretained(GetContentClient()->renderer()),
2870 static_cast<RenderFrame*>(this), 2876 static_cast<RenderFrame*>(this),
2871 GetWebMediaPlayerDelegate()->has_played_media()), 2877 GetWebMediaPlayerDelegate()->has_played_media()),
2872 audio_renderer_sink, media_log, render_thread->GetMediaThreadTaskRunner(), 2878 audio_renderer_sink, GetMediaLog(),
2879 render_thread->GetMediaThreadTaskRunner(),
2873 render_thread->GetWorkerTaskRunner(), 2880 render_thread->GetWorkerTaskRunner(),
2874 render_thread->compositor_task_runner(), context_3d_cb, 2881 render_thread->compositor_task_runner(), context_3d_cb,
2875 base::Bind(&v8::Isolate::AdjustAmountOfExternalAllocatedMemory, 2882 base::Bind(&v8::Isolate::AdjustAmountOfExternalAllocatedMemory,
2876 base::Unretained(blink::mainThreadIsolate())), 2883 base::Unretained(blink::mainThreadIsolate())),
2877 initial_cdm, media_surface_manager_, media_observer, 2884 initial_cdm, media_surface_manager_, media_observer,
2878 // TODO(avayvod, asvitkine): Query the value directly when it is available 2885 // TODO(avayvod, asvitkine): Query the value directly when it is available
2879 // in the renderer process. See https://crbug.com/681160. 2886 // in the renderer process. See https://crbug.com/681160.
2880 GetWebkitPreferences().max_keyframe_distance_to_disable_background_video, 2887 GetWebkitPreferences().max_keyframe_distance_to_disable_background_video,
2881 GetWebkitPreferences().enable_instant_source_buffer_gc, 2888 GetWebkitPreferences().enable_instant_source_buffer_gc,
2882 GetContentClient()->renderer()->AllowMediaSuspend(), 2889 GetContentClient()->renderer()->AllowMediaSuspend(),
(...skipping 18 matching lines...) Expand all
2901 render_thread->EnableStreamTextureCopy(), 2908 render_thread->EnableStreamTextureCopy(),
2902 render_thread->GetStreamTexureFactory(), 2909 render_thread->GetStreamTexureFactory(),
2903 base::ThreadTaskRunnerHandle::Get())); 2910 base::ThreadTaskRunnerHandle::Get()));
2904 #endif // defined(OS_ANDROID) 2911 #endif // defined(OS_ANDROID)
2905 } else { 2912 } else {
2906 #if defined(ENABLE_MOJO_RENDERER) 2913 #if defined(ENABLE_MOJO_RENDERER)
2907 #if BUILDFLAG(ENABLE_RUNTIME_MEDIA_RENDERER_SELECTION) 2914 #if BUILDFLAG(ENABLE_RUNTIME_MEDIA_RENDERER_SELECTION)
2908 if (base::CommandLine::ForCurrentProcess()->HasSwitch( 2915 if (base::CommandLine::ForCurrentProcess()->HasSwitch(
2909 switches::kDisableMojoRenderer)) { 2916 switches::kDisableMojoRenderer)) {
2910 media_renderer_factory = base::MakeUnique<media::DefaultRendererFactory>( 2917 media_renderer_factory = base::MakeUnique<media::DefaultRendererFactory>(
2911 media_log, GetDecoderFactory(), 2918 GetMediaLog(), GetDecoderFactory(),
2912 base::Bind(&RenderThreadImpl::GetGpuFactories, 2919 base::Bind(&RenderThreadImpl::GetGpuFactories,
2913 base::Unretained(render_thread))); 2920 base::Unretained(render_thread)));
2914 } 2921 }
2915 #endif // BUILDFLAG(ENABLE_RUNTIME_MEDIA_RENDERER_SELECTION) 2922 #endif // BUILDFLAG(ENABLE_RUNTIME_MEDIA_RENDERER_SELECTION)
2916 if (!media_renderer_factory) { 2923 if (!media_renderer_factory) {
2917 media_renderer_factory = base::MakeUnique<media::MojoRendererFactory>( 2924 media_renderer_factory = base::MakeUnique<media::MojoRendererFactory>(
2918 base::Bind(&RenderThreadImpl::GetGpuFactories, 2925 base::Bind(&RenderThreadImpl::GetGpuFactories,
2919 base::Unretained(render_thread)), 2926 base::Unretained(render_thread)),
2920 GetMediaInterfaceProvider()); 2927 GetMediaInterfaceProvider());
2921 } 2928 }
2922 #else 2929 #else
2923 media_renderer_factory = base::MakeUnique<media::DefaultRendererFactory>( 2930 media_renderer_factory = base::MakeUnique<media::DefaultRendererFactory>(
2924 media_log, GetDecoderFactory(), 2931 GetMediaLog(), GetDecoderFactory(),
2925 base::Bind(&RenderThreadImpl::GetGpuFactories, 2932 base::Bind(&RenderThreadImpl::GetGpuFactories,
2926 base::Unretained(render_thread))); 2933 base::Unretained(render_thread)));
2927 #endif // defined(ENABLE_MOJO_RENDERER) 2934 #endif // defined(ENABLE_MOJO_RENDERER)
2928 } 2935 }
2929 2936
2930 #if BUILDFLAG(ENABLE_MEDIA_REMOTING) 2937 #if BUILDFLAG(ENABLE_MEDIA_REMOTING)
2931 auto* const remoting_controller_ptr = remoting_controller.get(); 2938 auto* const remoting_controller_ptr = remoting_controller.get();
2932 media_renderer_factory = 2939 media_renderer_factory =
2933 base::MakeUnique<media::remoting::AdaptiveRendererFactory>( 2940 base::MakeUnique<media::remoting::AdaptiveRendererFactory>(
2934 std::move(media_renderer_factory), std::move(remoting_controller)); 2941 std::move(media_renderer_factory), std::move(remoting_controller));
(...skipping 1727 matching lines...) Expand 10 before | Expand all | Expand 10 after
4662 } 4669 }
4663 4670
4664 blink::WebEncryptedMediaClient* RenderFrameImpl::encryptedMediaClient() { 4671 blink::WebEncryptedMediaClient* RenderFrameImpl::encryptedMediaClient() {
4665 if (!web_encrypted_media_client_) { 4672 if (!web_encrypted_media_client_) {
4666 web_encrypted_media_client_.reset(new media::WebEncryptedMediaClientImpl( 4673 web_encrypted_media_client_.reset(new media::WebEncryptedMediaClientImpl(
4667 // base::Unretained(this) is safe because WebEncryptedMediaClientImpl 4674 // base::Unretained(this) is safe because WebEncryptedMediaClientImpl
4668 // is destructed before |this|, and does not give away ownership of the 4675 // is destructed before |this|, and does not give away ownership of the
4669 // callback. 4676 // callback.
4670 base::Bind(&RenderFrameImpl::AreSecureCodecsSupported, 4677 base::Bind(&RenderFrameImpl::AreSecureCodecsSupported,
4671 base::Unretained(this)), 4678 base::Unretained(this)),
4672 GetCdmFactory(), GetMediaPermission())); 4679 GetCdmFactory(), GetMediaPermission(), GetMediaLog()));
4673 } 4680 }
4674 return web_encrypted_media_client_.get(); 4681 return web_encrypted_media_client_.get();
4675 } 4682 }
4676 4683
4677 blink::WebString RenderFrameImpl::userAgentOverride() { 4684 blink::WebString RenderFrameImpl::userAgentOverride() {
4678 if (!render_view_->webview() || !render_view_->webview()->mainFrame() || 4685 if (!render_view_->webview() || !render_view_->webview()->mainFrame() ||
4679 render_view_->renderer_preferences_.user_agent_override.empty()) { 4686 render_view_->renderer_preferences_.user_agent_override.empty()) {
4680 return blink::WebString(); 4687 return blink::WebString();
4681 } 4688 }
4682 4689
(...skipping 2304 matching lines...) Expand 10 before | Expand all | Expand 10 after
6987 policy(info.defaultPolicy), 6994 policy(info.defaultPolicy),
6988 replaces_current_history_item(info.replacesCurrentHistoryItem), 6995 replaces_current_history_item(info.replacesCurrentHistoryItem),
6989 history_navigation_in_new_child_frame( 6996 history_navigation_in_new_child_frame(
6990 info.isHistoryNavigationInNewChildFrame), 6997 info.isHistoryNavigationInNewChildFrame),
6991 client_redirect(info.isClientRedirect), 6998 client_redirect(info.isClientRedirect),
6992 cache_disabled(info.isCacheDisabled), 6999 cache_disabled(info.isCacheDisabled),
6993 form(info.form), 7000 form(info.form),
6994 source_location(info.sourceLocation) {} 7001 source_location(info.sourceLocation) {}
6995 7002
6996 } // namespace content 7003 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698