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

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

Issue 2822353003: Simplify RFI::CreateMediaPlayer (Closed)
Patch Set: Fix build errors Created 3 years, 7 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
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 150 matching lines...) Expand 10 before | Expand all | Expand 10 after
161 #include "media/base/cdm_factory.h" 161 #include "media/base/cdm_factory.h"
162 #include "media/base/decoder_factory.h" 162 #include "media/base/decoder_factory.h"
163 #include "media/base/media.h" 163 #include "media/base/media.h"
164 #include "media/base/media_log.h" 164 #include "media/base/media_log.h"
165 #include "media/base/media_switches.h" 165 #include "media/base/media_switches.h"
166 #include "media/base/renderer_factory_selector.h" 166 #include "media/base/renderer_factory_selector.h"
167 #include "media/blink/url_index.h" 167 #include "media/blink/url_index.h"
168 #include "media/blink/webencryptedmediaclient_impl.h" 168 #include "media/blink/webencryptedmediaclient_impl.h"
169 #include "media/blink/webmediaplayer_impl.h" 169 #include "media/blink/webmediaplayer_impl.h"
170 #include "media/media_features.h" 170 #include "media/media_features.h"
171 #include "media/renderers/default_renderer_factory.h"
171 #include "media/renderers/gpu_video_accelerator_factories.h" 172 #include "media/renderers/gpu_video_accelerator_factories.h"
172 #include "mojo/edk/js/core.h" 173 #include "mojo/edk/js/core.h"
173 #include "mojo/edk/js/support.h" 174 #include "mojo/edk/js/support.h"
174 #include "net/base/data_url.h" 175 #include "net/base/data_url.h"
175 #include "net/base/load_flags.h" 176 #include "net/base/load_flags.h"
176 #include "net/base/net_errors.h" 177 #include "net/base/net_errors.h"
177 #include "net/base/registry_controlled_domains/registry_controlled_domain.h" 178 #include "net/base/registry_controlled_domains/registry_controlled_domain.h"
178 #include "net/http/http_util.h" 179 #include "net/http/http_util.h"
179 #include "ppapi/features/features.h" 180 #include "ppapi/features/features.h"
180 #include "services/service_manager/public/cpp/connector.h" 181 #include "services/service_manager/public/cpp/connector.h"
(...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after
267 #endif 268 #endif
268 269
269 #if defined(ENABLE_MOJO_CDM) 270 #if defined(ENABLE_MOJO_CDM)
270 #include "media/mojo/clients/mojo_cdm_factory.h" // nogncheck 271 #include "media/mojo/clients/mojo_cdm_factory.h" // nogncheck
271 #endif 272 #endif
272 273
273 #if defined(ENABLE_MOJO_RENDERER) 274 #if defined(ENABLE_MOJO_RENDERER)
274 #include "media/mojo/clients/mojo_renderer_factory.h" // nogncheck 275 #include "media/mojo/clients/mojo_renderer_factory.h" // nogncheck
275 #endif 276 #endif
276 277
277 #if !defined(ENABLE_MOJO_RENDERER) || \
278 BUILDFLAG(ENABLE_RUNTIME_MEDIA_RENDERER_SELECTION)
279 #include "media/renderers/default_renderer_factory.h" // nogncheck
280 #endif
281
282 #if defined(ENABLE_MOJO_AUDIO_DECODER) || defined(ENABLE_MOJO_VIDEO_DECODER) 278 #if defined(ENABLE_MOJO_AUDIO_DECODER) || defined(ENABLE_MOJO_VIDEO_DECODER)
283 #include "media/mojo/clients/mojo_decoder_factory.h" // nogncheck 279 #include "media/mojo/clients/mojo_decoder_factory.h" // nogncheck
284 #endif 280 #endif
285 281
286 #if BUILDFLAG(ENABLE_MEDIA_REMOTING) 282 #if BUILDFLAG(ENABLE_MEDIA_REMOTING)
287 #include "media/remoting/courier_renderer_factory.h" // nogncheck 283 #include "media/remoting/courier_renderer_factory.h" // nogncheck
288 #include "media/remoting/remoting_cdm_controller.h" // nogncheck 284 #include "media/remoting/remoting_cdm_controller.h" // nogncheck
289 #include "media/remoting/remoting_cdm_factory.h" // nogncheck 285 #include "media/remoting/remoting_cdm_factory.h" // nogncheck
290 #include "media/remoting/renderer_controller.h" // nogncheck 286 #include "media/remoting/renderer_controller.h" // nogncheck
291 #include "media/remoting/shared_session.h" // nogncheck 287 #include "media/remoting/shared_session.h" // nogncheck
(...skipping 2619 matching lines...) Expand 10 before | Expand all | Expand 10 after
2911 render_thread->compositor_task_runner(), 2907 render_thread->compositor_task_runner(),
2912 std::move(mojo_media_player_renderer_factory), 2908 std::move(mojo_media_player_renderer_factory),
2913 base::Bind(&StreamTextureWrapperImpl::Create, 2909 base::Bind(&StreamTextureWrapperImpl::Create,
2914 render_thread->EnableStreamTextureCopy(), 2910 render_thread->EnableStreamTextureCopy(),
2915 render_thread->GetStreamTexureFactory(), 2911 render_thread->GetStreamTexureFactory(),
2916 base::ThreadTaskRunnerHandle::Get()))); 2912 base::ThreadTaskRunnerHandle::Get())));
2917 2913
2918 factory_selector->SetUseMediaPlayer(UseMediaPlayerRenderer(url)); 2914 factory_selector->SetUseMediaPlayer(UseMediaPlayerRenderer(url));
2919 #endif // defined(OS_ANDROID) 2915 #endif // defined(OS_ANDROID)
2920 2916
2921 // |factory_type| will be overwritten in all possible path below, and the 2917 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) 2918 #if defined(ENABLE_MOJO_RENDERER)
2930 #if BUILDFLAG(ENABLE_RUNTIME_MEDIA_RENDERER_SELECTION) 2919 #if BUILDFLAG(ENABLE_RUNTIME_MEDIA_RENDERER_SELECTION)
2931 if (base::CommandLine::ForCurrentProcess()->HasSwitch( 2920 use_mojo_renderer_factory =
2932 switches::kDisableMojoRenderer)) { 2921 !base::CommandLine::ForCurrentProcess()->HasSwitch(
2933 media_renderer_factory = base::MakeUnique<media::DefaultRendererFactory>( 2922 switches::kDisableMojoRenderer);
2934 media_log.get(), GetDecoderFactory(), 2923 #else
2935 base::Bind(&RenderThreadImpl::GetGpuFactories, 2924 use_mojo_renderer_factory = true;
2936 base::Unretained(render_thread))); 2925 #endif // BUILDFLAG(ENABLE_RUNTIME_MEDIA_RENDERER_SELECTION)
2926 if (use_mojo_renderer_factory) {
2927 factory_selector->AddFactory(
2928 media::RendererFactorySelector::FactoryType::MOJO,
2929 base::MakeUnique<media::MojoRendererFactory>(
2930 base::Bind(&RenderThreadImpl::GetGpuFactories,
2931 base::Unretained(render_thread)),
2932 GetMediaInterfaceProvider()));
2937 2933
2938 factory_type = media::RendererFactorySelector::FactoryType::DEFAULT; 2934 factory_selector->SetBaseFactoryType(
2935 media::RendererFactorySelector::FactoryType::MOJO);
2939 } 2936 }
2940 #endif // BUILDFLAG(ENABLE_RUNTIME_MEDIA_RENDERER_SELECTION) 2937 #endif // defined(ENABLE_MOJO_RENDERER)
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 2938
2947 factory_type = media::RendererFactorySelector::FactoryType::MOJO; 2939 if (!use_mojo_renderer_factory) {
2940 factory_selector->AddFactory(
2941 media::RendererFactorySelector::FactoryType::DEFAULT,
2942 base::MakeUnique<media::DefaultRendererFactory>(
2943 media_log.get(), GetDecoderFactory(),
2944 base::Bind(&RenderThreadImpl::GetGpuFactories,
2945 base::Unretained(render_thread))));
2946
2947 factory_selector->SetBaseFactoryType(
2948 media::RendererFactorySelector::FactoryType::DEFAULT);
2948 } 2949 }
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 2950
2958 #if BUILDFLAG(ENABLE_MEDIA_REMOTING) 2951 #if BUILDFLAG(ENABLE_MEDIA_REMOTING)
2959 auto courier_factory = 2952 auto courier_factory =
2960 base::MakeUnique<media::remoting::CourierRendererFactory>( 2953 base::MakeUnique<media::remoting::CourierRendererFactory>(
2961 std::move(remoting_controller)); 2954 std::move(remoting_controller));
2962 2955
2963 // base::Unretained is safe here because |factory_selector| owns 2956 // base::Unretained is safe here because |factory_selector| owns
2964 // |courier_factory|. 2957 // |courier_factory|.
2965 factory_selector->SetQueryIsRemotingActiveCB( 2958 factory_selector->SetQueryIsRemotingActiveCB(
2966 base::Bind(&media::remoting::CourierRendererFactory::IsRemotingActive, 2959 base::Bind(&media::remoting::CourierRendererFactory::IsRemotingActive,
2967 base::Unretained(courier_factory.get()))); 2960 base::Unretained(courier_factory.get())));
2968 2961
2969 factory_selector->AddFactory( 2962 factory_selector->AddFactory(
2970 media::RendererFactorySelector::FactoryType::COURIER, 2963 media::RendererFactorySelector::FactoryType::COURIER,
2971 std::move(courier_factory)); 2964 std::move(courier_factory));
2972 #endif 2965 #endif
2973 2966
2974 if (!url_index_.get() || url_index_->frame() != frame_) 2967 if (!url_index_.get() || url_index_->frame() != frame_)
2975 url_index_.reset(new media::UrlIndex(frame_)); 2968 url_index_.reset(new media::UrlIndex(frame_));
2976 2969
2977 factory_selector->AddFactory(factory_type, std::move(media_renderer_factory));
2978 factory_selector->SetBaseFactoryType(factory_type);
2979
2980 std::unique_ptr<media::WebMediaPlayerParams> params( 2970 std::unique_ptr<media::WebMediaPlayerParams> params(
2981 new media::WebMediaPlayerParams( 2971 new media::WebMediaPlayerParams(
2982 std::move(media_log), 2972 std::move(media_log),
2983 base::Bind(&ContentRendererClient::DeferMediaLoad, 2973 base::Bind(&ContentRendererClient::DeferMediaLoad,
2984 base::Unretained(GetContentClient()->renderer()), 2974 base::Unretained(GetContentClient()->renderer()),
2985 static_cast<RenderFrame*>(this), 2975 static_cast<RenderFrame*>(this),
2986 GetWebMediaPlayerDelegate()->has_played_media()), 2976 GetWebMediaPlayerDelegate()->has_played_media()),
2987 audio_renderer_sink, render_thread->GetMediaThreadTaskRunner(), 2977 audio_renderer_sink, render_thread->GetMediaThreadTaskRunner(),
2988 render_thread->GetWorkerTaskRunner(), 2978 render_thread->GetWorkerTaskRunner(),
2989 render_thread->compositor_task_runner(), context_3d_cb, 2979 render_thread->compositor_task_runner(), context_3d_cb,
(...skipping 4086 matching lines...) Expand 10 before | Expand all | Expand 10 after
7076 policy(info.default_policy), 7066 policy(info.default_policy),
7077 replaces_current_history_item(info.replaces_current_history_item), 7067 replaces_current_history_item(info.replaces_current_history_item),
7078 history_navigation_in_new_child_frame( 7068 history_navigation_in_new_child_frame(
7079 info.is_history_navigation_in_new_child_frame), 7069 info.is_history_navigation_in_new_child_frame),
7080 client_redirect(info.is_client_redirect), 7070 client_redirect(info.is_client_redirect),
7081 cache_disabled(info.is_cache_disabled), 7071 cache_disabled(info.is_cache_disabled),
7082 form(info.form), 7072 form(info.form),
7083 source_location(info.source_location) {} 7073 source_location(info.source_location) {}
7084 7074
7085 } // namespace content 7075 } // namespace content
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698