OLD | NEW |
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 2909 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2920 render_thread->compositor_task_runner(), | 2920 render_thread->compositor_task_runner(), |
2921 std::move(mojo_media_player_renderer_factory), | 2921 std::move(mojo_media_player_renderer_factory), |
2922 base::Bind(&StreamTextureWrapperImpl::Create, | 2922 base::Bind(&StreamTextureWrapperImpl::Create, |
2923 render_thread->EnableStreamTextureCopy(), | 2923 render_thread->EnableStreamTextureCopy(), |
2924 render_thread->GetStreamTexureFactory(), | 2924 render_thread->GetStreamTexureFactory(), |
2925 base::ThreadTaskRunnerHandle::Get()))); | 2925 base::ThreadTaskRunnerHandle::Get()))); |
2926 | 2926 |
2927 factory_selector->SetUseMediaPlayer(UseMediaPlayerRenderer(url)); | 2927 factory_selector->SetUseMediaPlayer(UseMediaPlayerRenderer(url)); |
2928 #endif // defined(OS_ANDROID) | 2928 #endif // defined(OS_ANDROID) |
2929 | 2929 |
2930 std::unique_ptr<media::RendererFactory> media_renderer_factory; | 2930 bool use_mojo_renderer_factory = false; |
2931 media::RendererFactorySelector::FactoryType factory_type; | |
2932 | |
2933 #if defined(ENABLE_MOJO_RENDERER) | 2931 #if defined(ENABLE_MOJO_RENDERER) |
2934 #if BUILDFLAG(ENABLE_RUNTIME_MEDIA_RENDERER_SELECTION) | 2932 #if BUILDFLAG(ENABLE_RUNTIME_MEDIA_RENDERER_SELECTION) |
2935 if (base::CommandLine::ForCurrentProcess()->HasSwitch( | 2933 use_mojo_renderer_factory = |
2936 switches::kDisableMojoRenderer)) { | 2934 !base::CommandLine::ForCurrentProcess()->HasSwitch( |
2937 media_renderer_factory = base::MakeUnique<media::DefaultRendererFactory>( | 2935 switches::kDisableMojoRenderer); |
2938 media_log, GetDecoderFactory(), | 2936 #else |
2939 base::Bind(&RenderThreadImpl::GetGpuFactories, | 2937 use_mojo_renderer_factory = true; |
2940 base::Unretained(render_thread))); | 2938 #endif // BUILDFLAG(ENABLE_RUNTIME_MEDIA_RENDERER_SELECTION) |
| 2939 if (use_mojo_renderer_factory) { |
| 2940 factory_selector->AddFactory( |
| 2941 media::RendererFactorySelector::FactoryType::MOJO, |
| 2942 base::MakeUnique<media::MojoRendererFactory>( |
| 2943 base::Bind(&RenderThreadImpl::GetGpuFactories, |
| 2944 base::Unretained(render_thread)), |
| 2945 GetMediaInterfaceProvider())); |
| 2946 } |
| 2947 #endif // defined(ENABLE_MOJO_RENDERER) |
2941 | 2948 |
2942 factory_type = media::RendererFactorySelector::FactoryType::DEFAULT; | 2949 if (!use_mojo_renderer_factory) { |
| 2950 factory_selector->AddFactory( |
| 2951 media::RendererFactorySelector::FactoryType::DEFAULT, |
| 2952 base::MakeUnique<media::DefaultRendererFactory>( |
| 2953 media_log, GetDecoderFactory(), |
| 2954 base::Bind(&RenderThreadImpl::GetGpuFactories, |
| 2955 base::Unretained(render_thread)))); |
2943 } | 2956 } |
2944 #endif // BUILDFLAG(ENABLE_RUNTIME_MEDIA_RENDERER_SELECTION) | |
2945 if (!media_renderer_factory) { | |
2946 media_renderer_factory = base::MakeUnique<media::MojoRendererFactory>( | |
2947 base::Bind(&RenderThreadImpl::GetGpuFactories, | |
2948 base::Unretained(render_thread)), | |
2949 GetMediaInterfaceProvider()); | |
2950 | |
2951 factory_type = media::RendererFactorySelector::FactoryType::MOJO; | |
2952 } | |
2953 #else | |
2954 media_renderer_factory = base::MakeUnique<media::DefaultRendererFactory>( | |
2955 media_log, GetDecoderFactory(), | |
2956 base::Bind(&RenderThreadImpl::GetGpuFactories, | |
2957 base::Unretained(render_thread))); | |
2958 | |
2959 factory_type = media::RendererFactorySelector::FactoryType::DEFAULT; | |
2960 #endif // defined(ENABLE_MOJO_RENDERER) | |
2961 | 2957 |
2962 #if BUILDFLAG(ENABLE_MEDIA_REMOTING) | 2958 #if BUILDFLAG(ENABLE_MEDIA_REMOTING) |
2963 auto* const remoting_controller_ptr = remoting_controller.get(); | 2959 auto* const remoting_controller_ptr = remoting_controller.get(); |
2964 | 2960 |
2965 auto courier_factory = | 2961 auto courier_factory = |
2966 base::MakeUnique<media::remoting::CourierRendererFactory>( | 2962 base::MakeUnique<media::remoting::CourierRendererFactory>( |
2967 std::move(remoting_controller)); | 2963 std::move(remoting_controller)); |
2968 | 2964 |
2969 // base::Unretained is safe here because |factory_selector_| owns | 2965 // base::Unretained is safe here because |factory_selector_| owns |
2970 // |courier_factory|. | 2966 // |courier_factory|. |
2971 factory_selector->SetUseCourierCB(base::Bind( | 2967 factory_selector->SetUseCourierCB(base::Bind( |
2972 &media::remoting::CourierRendererFactory::ShouldCreateCourierRenderer, | 2968 &media::remoting::CourierRendererFactory::ShouldCreateCourierRenderer, |
2973 base::Unretained(courier_factory.get()))); | 2969 base::Unretained(courier_factory.get()))); |
2974 | 2970 |
2975 factory_selector->AddFactory( | 2971 factory_selector->AddFactory( |
2976 media::RendererFactorySelector::FactoryType::COURIER, | 2972 media::RendererFactorySelector::FactoryType::COURIER, |
2977 std::move(courier_factory)); | 2973 std::move(courier_factory)); |
2978 #endif | 2974 #endif |
2979 | 2975 |
2980 if (!url_index_.get() || url_index_->frame() != frame_) | 2976 if (!url_index_.get() || url_index_->frame() != frame_) |
2981 url_index_.reset(new media::UrlIndex(frame_)); | 2977 url_index_.reset(new media::UrlIndex(frame_)); |
2982 | 2978 |
2983 factory_selector->AddFactory(factory_type, std::move(media_renderer_factory)); | |
2984 factory_selector->SetBaseFactoryType(factory_type); | |
2985 | |
2986 media::WebMediaPlayerImpl* media_player = new media::WebMediaPlayerImpl( | 2979 media::WebMediaPlayerImpl* media_player = new media::WebMediaPlayerImpl( |
2987 frame_, client, encrypted_client, GetWebMediaPlayerDelegate(), | 2980 frame_, client, encrypted_client, GetWebMediaPlayerDelegate(), |
2988 std::move(factory_selector), url_index_, params); | 2981 std::move(factory_selector), url_index_, params); |
2989 | 2982 |
2990 #if defined(OS_ANDROID) // WMPI_CAST | 2983 #if defined(OS_ANDROID) // WMPI_CAST |
2991 media_player->SetMediaPlayerManager(GetMediaPlayerManager()); | 2984 media_player->SetMediaPlayerManager(GetMediaPlayerManager()); |
2992 media_player->SetDeviceScaleFactor(render_view_->GetDeviceScaleFactor()); | 2985 media_player->SetDeviceScaleFactor(render_view_->GetDeviceScaleFactor()); |
2993 #endif // defined(OS_ANDROID) | 2986 #endif // defined(OS_ANDROID) |
2994 | 2987 |
2995 #if BUILDFLAG(ENABLE_MEDIA_REMOTING) | 2988 #if BUILDFLAG(ENABLE_MEDIA_REMOTING) |
(...skipping 4021 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
7017 policy(info.default_policy), | 7010 policy(info.default_policy), |
7018 replaces_current_history_item(info.replaces_current_history_item), | 7011 replaces_current_history_item(info.replaces_current_history_item), |
7019 history_navigation_in_new_child_frame( | 7012 history_navigation_in_new_child_frame( |
7020 info.is_history_navigation_in_new_child_frame), | 7013 info.is_history_navigation_in_new_child_frame), |
7021 client_redirect(info.is_client_redirect), | 7014 client_redirect(info.is_client_redirect), |
7022 cache_disabled(info.is_cache_disabled), | 7015 cache_disabled(info.is_cache_disabled), |
7023 form(info.form), | 7016 form(info.form), |
7024 source_location(info.source_location) {} | 7017 source_location(info.source_location) {} |
7025 | 7018 |
7026 } // namespace content | 7019 } // namespace content |
OLD | NEW |