Chromium Code Reviews| 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 2900 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 2911 render_thread->compositor_task_runner(), | 2911 render_thread->compositor_task_runner(), |
| 2912 std::move(mojo_media_player_renderer_factory), | 2912 std::move(mojo_media_player_renderer_factory), |
| 2913 base::Bind(&StreamTextureWrapperImpl::Create, | 2913 base::Bind(&StreamTextureWrapperImpl::Create, |
| 2914 render_thread->EnableStreamTextureCopy(), | 2914 render_thread->EnableStreamTextureCopy(), |
| 2915 render_thread->GetStreamTexureFactory(), | 2915 render_thread->GetStreamTexureFactory(), |
| 2916 base::ThreadTaskRunnerHandle::Get()))); | 2916 base::ThreadTaskRunnerHandle::Get()))); |
| 2917 | 2917 |
| 2918 factory_selector->SetUseMediaPlayer(UseMediaPlayerRenderer(url)); | 2918 factory_selector->SetUseMediaPlayer(UseMediaPlayerRenderer(url)); |
| 2919 #endif // defined(OS_ANDROID) | 2919 #endif // defined(OS_ANDROID) |
| 2920 | 2920 |
| 2921 // |factory_type| will be overwritten in all possible path below, and the | 2921 bool use_mojo_renderer_factory = false; |
| 2922 // DEFAULT value is not accurate. However, this prevents the compiler from | |
| 2923 // issuing a -Wsometimes-uninitialized warning. | |
| 2924 // TODO(tguilbert): Remove |factory_type|, and clean up the logic. The work is | |
| 2925 // already completed and incrementally being submitted. See crbug.com/663503. | |
| 2926 auto factory_type = media::RendererFactorySelector::FactoryType::DEFAULT; | |
| 2927 std::unique_ptr<media::RendererFactory> media_renderer_factory; | |
| 2928 | |
| 2929 #if defined(ENABLE_MOJO_RENDERER) | 2922 #if defined(ENABLE_MOJO_RENDERER) |
| 2930 #if BUILDFLAG(ENABLE_RUNTIME_MEDIA_RENDERER_SELECTION) | 2923 #if BUILDFLAG(ENABLE_RUNTIME_MEDIA_RENDERER_SELECTION) |
| 2931 if (base::CommandLine::ForCurrentProcess()->HasSwitch( | 2924 use_mojo_renderer_factory = |
| 2932 switches::kDisableMojoRenderer)) { | 2925 !base::CommandLine::ForCurrentProcess()->HasSwitch( |
| 2933 media_renderer_factory = base::MakeUnique<media::DefaultRendererFactory>( | 2926 switches::kDisableMojoRenderer); |
| 2934 media_log.get(), GetDecoderFactory(), | 2927 #else |
| 2935 base::Bind(&RenderThreadImpl::GetGpuFactories, | 2928 use_mojo_renderer_factory = true; |
| 2936 base::Unretained(render_thread))); | 2929 #endif // BUILDFLAG(ENABLE_RUNTIME_MEDIA_RENDERER_SELECTION) |
| 2930 if (use_mojo_renderer_factory) { | |
| 2931 factory_selector->AddFactory( | |
| 2932 media::RendererFactorySelector::FactoryType::MOJO, | |
| 2933 base::MakeUnique<media::MojoRendererFactory>( | |
| 2934 base::Bind(&RenderThreadImpl::GetGpuFactories, | |
| 2935 base::Unretained(render_thread)), | |
| 2936 GetMediaInterfaceProvider())); | |
| 2937 } | |
| 2938 #endif // defined(ENABLE_MOJO_RENDERER) | |
| 2937 | 2939 |
| 2938 factory_type = media::RendererFactorySelector::FactoryType::DEFAULT; | 2940 if (!use_mojo_renderer_factory) { |
| 2941 factory_selector->AddFactory( | |
| 2942 media::RendererFactorySelector::FactoryType::DEFAULT, | |
| 2943 base::MakeUnique<media::DefaultRendererFactory>( | |
| 2944 media_log, GetDecoderFactory(), | |
| 2945 base::Bind(&RenderThreadImpl::GetGpuFactories, | |
| 2946 base::Unretained(render_thread)))); | |
| 2939 } | 2947 } |
| 2940 #endif // BUILDFLAG(ENABLE_RUNTIME_MEDIA_RENDERER_SELECTION) | |
| 2941 if (!media_renderer_factory) { | |
| 2942 media_renderer_factory = base::MakeUnique<media::MojoRendererFactory>( | |
| 2943 base::Bind(&RenderThreadImpl::GetGpuFactories, | |
| 2944 base::Unretained(render_thread)), | |
| 2945 GetMediaInterfaceProvider()); | |
| 2946 | |
| 2947 factory_type = media::RendererFactorySelector::FactoryType::MOJO; | |
| 2948 } | |
| 2949 #else | |
| 2950 media_renderer_factory = base::MakeUnique<media::DefaultRendererFactory>( | |
| 2951 media_log.get(), GetDecoderFactory(), | |
| 2952 base::Bind(&RenderThreadImpl::GetGpuFactories, | |
| 2953 base::Unretained(render_thread))); | |
| 2954 | |
| 2955 factory_type = media::RendererFactorySelector::FactoryType::DEFAULT; | |
| 2956 #endif // defined(ENABLE_MOJO_RENDERER) | |
| 2957 | 2948 |
| 2958 #if BUILDFLAG(ENABLE_MEDIA_REMOTING) | 2949 #if BUILDFLAG(ENABLE_MEDIA_REMOTING) |
| 2959 auto courier_factory = | 2950 auto courier_factory = |
| 2960 base::MakeUnique<media::remoting::CourierRendererFactory>( | 2951 base::MakeUnique<media::remoting::CourierRendererFactory>( |
| 2961 std::move(remoting_controller)); | 2952 std::move(remoting_controller)); |
| 2962 | 2953 |
| 2963 // base::Unretained is safe here because |factory_selector| owns | 2954 // base::Unretained is safe here because |factory_selector| owns |
| 2964 // |courier_factory|. | 2955 // |courier_factory|. |
| 2965 factory_selector->SetQueryIsRemotingActiveCB( | 2956 factory_selector->SetQueryIsRemotingActiveCB( |
| 2966 base::Bind(&media::remoting::CourierRendererFactory::IsRemotingActive, | 2957 base::Bind(&media::remoting::CourierRendererFactory::IsRemotingActive, |
| 2967 base::Unretained(courier_factory.get()))); | 2958 base::Unretained(courier_factory.get()))); |
| 2968 | 2959 |
| 2969 factory_selector->AddFactory( | 2960 factory_selector->AddFactory( |
| 2970 media::RendererFactorySelector::FactoryType::COURIER, | 2961 media::RendererFactorySelector::FactoryType::COURIER, |
| 2971 std::move(courier_factory)); | 2962 std::move(courier_factory)); |
| 2972 #endif | 2963 #endif |
| 2973 | 2964 |
| 2974 if (!url_index_.get() || url_index_->frame() != frame_) | 2965 if (!url_index_.get() || url_index_->frame() != frame_) |
| 2975 url_index_.reset(new media::UrlIndex(frame_)); | 2966 url_index_.reset(new media::UrlIndex(frame_)); |
| 2976 | 2967 |
| 2977 factory_selector->AddFactory(factory_type, std::move(media_renderer_factory)); | |
| 2978 factory_selector->SetBaseFactoryType(factory_type); | |
|
ncarter (slow)
2017/05/03 23:25:32
Is it no longer necessary to call SetBaseFactoryTy
tguilbert
2017/05/03 23:29:05
It is! Thank you for catching this!
| |
| 2979 | |
| 2980 std::unique_ptr<media::WebMediaPlayerParams> params( | 2968 std::unique_ptr<media::WebMediaPlayerParams> params( |
| 2981 new media::WebMediaPlayerParams( | 2969 new media::WebMediaPlayerParams( |
| 2982 std::move(media_log), | 2970 std::move(media_log), |
| 2983 base::Bind(&ContentRendererClient::DeferMediaLoad, | 2971 base::Bind(&ContentRendererClient::DeferMediaLoad, |
| 2984 base::Unretained(GetContentClient()->renderer()), | 2972 base::Unretained(GetContentClient()->renderer()), |
| 2985 static_cast<RenderFrame*>(this), | 2973 static_cast<RenderFrame*>(this), |
| 2986 GetWebMediaPlayerDelegate()->has_played_media()), | 2974 GetWebMediaPlayerDelegate()->has_played_media()), |
| 2987 audio_renderer_sink, render_thread->GetMediaThreadTaskRunner(), | 2975 audio_renderer_sink, render_thread->GetMediaThreadTaskRunner(), |
| 2988 render_thread->GetWorkerTaskRunner(), | 2976 render_thread->GetWorkerTaskRunner(), |
| 2989 render_thread->compositor_task_runner(), context_3d_cb, | 2977 render_thread->compositor_task_runner(), context_3d_cb, |
| (...skipping 4086 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 7076 policy(info.default_policy), | 7064 policy(info.default_policy), |
| 7077 replaces_current_history_item(info.replaces_current_history_item), | 7065 replaces_current_history_item(info.replaces_current_history_item), |
| 7078 history_navigation_in_new_child_frame( | 7066 history_navigation_in_new_child_frame( |
| 7079 info.is_history_navigation_in_new_child_frame), | 7067 info.is_history_navigation_in_new_child_frame), |
| 7080 client_redirect(info.is_client_redirect), | 7068 client_redirect(info.is_client_redirect), |
| 7081 cache_disabled(info.is_cache_disabled), | 7069 cache_disabled(info.is_cache_disabled), |
| 7082 form(info.form), | 7070 form(info.form), |
| 7083 source_location(info.source_location) {} | 7071 source_location(info.source_location) {} |
| 7084 | 7072 |
| 7085 } // namespace content | 7073 } // namespace content |
| OLD | NEW |