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

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

Issue 1530063002: Switch from build-time to run-time flags for Project Spitzer. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years 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 <vector> 9 #include <vector>
10 10
(...skipping 196 matching lines...) Expand 10 before | Expand all | Expand 10 after
207 #include "content/renderer/media/cdm/renderer_cdm_manager.h" 207 #include "content/renderer/media/cdm/renderer_cdm_manager.h"
208 #endif 208 #endif
209 209
210 #if defined(ENABLE_MOJO_MEDIA) 210 #if defined(ENABLE_MOJO_MEDIA)
211 #include "media/mojo/services/mojo_cdm_factory.h" 211 #include "media/mojo/services/mojo_cdm_factory.h"
212 #include "mojo/application/public/cpp/connect.h" 212 #include "mojo/application/public/cpp/connect.h"
213 #include "mojo/application/public/interfaces/shell.mojom.h" 213 #include "mojo/application/public/interfaces/shell.mojom.h"
214 #include "mojo/public/cpp/bindings/interface_request.h" 214 #include "mojo/public/cpp/bindings/interface_request.h"
215 #endif 215 #endif
216 216
217 #if defined(ENABLE_MOJO_MEDIA) && !defined(ENABLE_MEDIA_PIPELINE_ON_ANDROID) 217 #if defined(ENABLE_MOJO_MEDIA) // && TODO(xhwang): What condition to make this?
DaleCurtis 2015/12/16 00:06:40 Xiaohan, what do you want to do with these?
xhwang 2015/12/17 01:09:58 How about #if defined(ENABLE_MOJO_MEDIA) && !def
DaleCurtis 2015/12/17 01:23:23 Sounds good to me; I wasn't sure if Cast or some o
218 #include "media/mojo/services/mojo_renderer_factory.h" 218 #include "media/mojo/services/mojo_renderer_factory.h"
219 #else 219 #else
220 #include "media/renderers/default_renderer_factory.h" 220 #include "media/renderers/default_renderer_factory.h"
221 #endif 221 #endif
222 222
223 #if defined(ENABLE_WEBVR) 223 #if defined(ENABLE_WEBVR)
224 #include "content/renderer/vr/vr_dispatcher.h" 224 #include "content/renderer/vr/vr_dispatcher.h"
225 #endif 225 #endif
226 226
227 using blink::WebContentDecryptionModule; 227 using blink::WebContentDecryptionModule;
(...skipping 318 matching lines...) Expand 10 before | Expand all | Expand 10 after
546 FrameMsg_UILoadMetricsReportType::Value report_type = 546 FrameMsg_UILoadMetricsReportType::Value report_type =
547 static_cast<FrameMsg_UILoadMetricsReportType::Value>( 547 static_cast<FrameMsg_UILoadMetricsReportType::Value>(
548 request->inputPerfMetricReportPolicy()); 548 request->inputPerfMetricReportPolicy());
549 return CommonNavigationParams( 549 return CommonNavigationParams(
550 request->url(), referrer, extra_data->transition_type(), 550 request->url(), referrer, extra_data->transition_type(),
551 FrameMsg_Navigate_Type::NORMAL, true, should_replace_current_entry, 551 FrameMsg_Navigate_Type::NORMAL, true, should_replace_current_entry,
552 ui_timestamp, report_type, GURL(), GURL(), LOFI_UNSPECIFIED, 552 ui_timestamp, report_type, GURL(), GURL(), LOFI_UNSPECIFIED,
553 base::TimeTicks::Now()); 553 base::TimeTicks::Now());
554 } 554 }
555 555
556 #if !defined(OS_ANDROID) || defined(ENABLE_MEDIA_PIPELINE_ON_ANDROID)
557 media::Context3D GetSharedMainThreadContext3D() { 556 media::Context3D GetSharedMainThreadContext3D() {
558 cc::ContextProvider* provider = 557 cc::ContextProvider* provider =
559 RenderThreadImpl::current()->SharedMainThreadContextProvider().get(); 558 RenderThreadImpl::current()->SharedMainThreadContextProvider().get();
560 if (!provider) 559 if (!provider)
561 return media::Context3D(); 560 return media::Context3D();
562 return media::Context3D(provider->ContextGL(), provider->GrContext()); 561 return media::Context3D(provider->ContextGL(), provider->GrContext());
563 } 562 }
564 #endif
565 563
566 bool IsReload(FrameMsg_Navigate_Type::Value navigation_type) { 564 bool IsReload(FrameMsg_Navigate_Type::Value navigation_type) {
567 return navigation_type == FrameMsg_Navigate_Type::RELOAD || 565 return navigation_type == FrameMsg_Navigate_Type::RELOAD ||
568 navigation_type == FrameMsg_Navigate_Type::RELOAD_IGNORING_CACHE || 566 navigation_type == FrameMsg_Navigate_Type::RELOAD_IGNORING_CACHE ||
569 navigation_type == FrameMsg_Navigate_Type::RELOAD_ORIGINAL_REQUEST_URL; 567 navigation_type == FrameMsg_Navigate_Type::RELOAD_ORIGINAL_REQUEST_URL;
570 } 568 }
571 569
572 RenderFrameImpl::CreateRenderFrameImplFunction g_create_render_frame_impl = 570 RenderFrameImpl::CreateRenderFrameImplFunction g_create_render_frame_impl =
573 nullptr; 571 nullptr;
574 572
(...skipping 1709 matching lines...) Expand 10 before | Expand all | Expand 10 after
2284 #endif // defined(VIDEO_HOLE) 2282 #endif // defined(VIDEO_HOLE)
2285 2283
2286 blink::WebMediaStream web_stream( 2284 blink::WebMediaStream web_stream(
2287 blink::WebMediaStreamRegistry::lookupMediaStreamDescriptor(url)); 2285 blink::WebMediaStreamRegistry::lookupMediaStreamDescriptor(url));
2288 if (!web_stream.isNull()) 2286 if (!web_stream.isNull())
2289 return CreateWebMediaPlayerForMediaStream(client, sink_id, 2287 return CreateWebMediaPlayerForMediaStream(client, sink_id,
2290 frame->securityOrigin()); 2288 frame->securityOrigin());
2291 2289
2292 RenderThreadImpl* render_thread = RenderThreadImpl::current(); 2290 RenderThreadImpl* render_thread = RenderThreadImpl::current();
2293 2291
2294 #if defined(OS_ANDROID) && !defined(ENABLE_MEDIA_PIPELINE_ON_ANDROID)
2295 scoped_refptr<media::RestartableAudioRendererSink> audio_renderer_sink;
2296 media::WebMediaPlayerParams::Context3DCB context_3d_cb;
2297 #else
2298 scoped_refptr<media::RestartableAudioRendererSink> audio_renderer_sink = 2292 scoped_refptr<media::RestartableAudioRendererSink> audio_renderer_sink =
2299 render_thread->GetAudioRendererMixerManager()->CreateInput( 2293 render_thread->GetAudioRendererMixerManager()->CreateInput(
2300 routing_id_, sink_id.utf8(), frame->securityOrigin()); 2294 routing_id_, sink_id.utf8(), frame->securityOrigin());
2301 media::WebMediaPlayerParams::Context3DCB context_3d_cb = 2295 media::WebMediaPlayerParams::Context3DCB context_3d_cb =
2302 base::Bind(&GetSharedMainThreadContext3D); 2296 base::Bind(&GetSharedMainThreadContext3D);
2303 #endif // defined(OS_ANDROID) && !defined(ENABLE_MEDIA_PIPELINE_ON_ANDROID)
2304 2297
2305 scoped_refptr<media::MediaLog> media_log(new RenderMediaLog()); 2298 scoped_refptr<media::MediaLog> media_log(new RenderMediaLog());
2306 media::WebMediaPlayerParams params( 2299 media::WebMediaPlayerParams params(
2307 base::Bind(&ContentRendererClient::DeferMediaLoad, 2300 base::Bind(&ContentRendererClient::DeferMediaLoad,
2308 base::Unretained(GetContentClient()->renderer()), 2301 base::Unretained(GetContentClient()->renderer()),
2309 static_cast<RenderFrame*>(this), 2302 static_cast<RenderFrame*>(this),
2310 GetWebMediaPlayerDelegate()->has_played_media()), 2303 GetWebMediaPlayerDelegate()->has_played_media()),
2311 audio_renderer_sink, media_log, render_thread->GetMediaThreadTaskRunner(), 2304 audio_renderer_sink, media_log, render_thread->GetMediaThreadTaskRunner(),
2312 render_thread->GetWorkerTaskRunner(), 2305 render_thread->GetWorkerTaskRunner(),
2313 render_thread->compositor_task_runner(), context_3d_cb, 2306 render_thread->compositor_task_runner(), context_3d_cb,
2314 base::Bind(&v8::Isolate::AdjustAmountOfExternalAllocatedMemory, 2307 base::Bind(&v8::Isolate::AdjustAmountOfExternalAllocatedMemory,
2315 base::Unretained(blink::mainThreadIsolate())), 2308 base::Unretained(blink::mainThreadIsolate())),
2316 GetMediaPermission(), initial_cdm); 2309 GetMediaPermission(), initial_cdm);
2317 2310
2318 // TODO(xhwang, watk): Find a better way to specify these ifdef conditions. 2311 #if defined(OS_ANDROID)
2319 #if defined(OS_ANDROID) && !defined(ENABLE_MEDIA_PIPELINE_ON_ANDROID)
2320 return CreateAndroidWebMediaPlayer(client, encrypted_client, params);
2321 #else
2322 #if defined(ENABLE_MEDIA_PIPELINE_ON_ANDROID)
2323 if (!base::CommandLine::ForCurrentProcess()->HasSwitch( 2312 if (!base::CommandLine::ForCurrentProcess()->HasSwitch(
2324 switches::kEnableUnifiedMediaPipeline)) { 2313 switches::kEnableUnifiedMediaPipeline)) {
2314 // TODO(sandersd): This check should be grown to include HLS and blacklist
2315 // checks. http://crbug.com/516765
2325 return CreateAndroidWebMediaPlayer(client, encrypted_client, params); 2316 return CreateAndroidWebMediaPlayer(client, encrypted_client, params);
2326 } 2317 }
2327 #endif // defined(ENABLE_MEDIA_PIPELINE_ON_ANDROID) 2318 #endif // defined(OS_ANDROID)
2328 2319
2329 #if defined(ENABLE_MOJO_MEDIA) && !defined(ENABLE_MEDIA_PIPELINE_ON_ANDROID) 2320 #if defined(ENABLE_MOJO_MEDIA) //&& TODO(xhwang): What should this be?
2330 scoped_ptr<media::RendererFactory> media_renderer_factory( 2321 scoped_ptr<media::RendererFactory> media_renderer_factory(
2331 new media::MojoRendererFactory(GetMediaServiceFactory())); 2322 new media::MojoRendererFactory(GetMediaServiceFactory()));
2332 #else 2323 #else
2333 scoped_ptr<media::RendererFactory> media_renderer_factory = 2324 scoped_ptr<media::RendererFactory> media_renderer_factory =
2334 GetContentClient()->renderer()->CreateMediaRendererFactory( 2325 GetContentClient()->renderer()->CreateMediaRendererFactory(
2335 this, render_thread->GetGpuFactories(), media_log); 2326 this, render_thread->GetGpuFactories(), media_log);
2336 2327
2337 if (!media_renderer_factory.get()) { 2328 if (!media_renderer_factory.get()) {
2338 media_renderer_factory.reset(new media::DefaultRendererFactory( 2329 media_renderer_factory.reset(new media::DefaultRendererFactory(
2339 media_log, render_thread->GetGpuFactories(), 2330 media_log, render_thread->GetGpuFactories(),
2340 *render_thread->GetAudioHardwareConfig())); 2331 *render_thread->GetAudioHardwareConfig()));
2341 } 2332 }
2342 #endif // defined(ENABLE_MOJO_MEDIA) && 2333 #endif // defined(ENABLE_MOJO_MEDIA)
2343 // !defined(ENABLE_MEDIA_PIPELINE_ON_ANDROID)
2344 2334
2345 if (!url_index_.get() || url_index_->frame() != frame) { 2335 if (!url_index_.get() || url_index_->frame() != frame)
2346 url_index_.reset(new media::UrlIndex(frame)); 2336 url_index_.reset(new media::UrlIndex(frame));
2347 }
2348 2337
2349 return new media::WebMediaPlayerImpl( 2338 return new media::WebMediaPlayerImpl(
2350 frame, client, encrypted_client, GetWebMediaPlayerDelegate()->AsWeakPtr(), 2339 frame, client, encrypted_client, GetWebMediaPlayerDelegate()->AsWeakPtr(),
2351 media_renderer_factory.Pass(), GetCdmFactory(), url_index_, params); 2340 media_renderer_factory.Pass(), GetCdmFactory(), url_index_, params);
2352 #endif // defined(OS_ANDROID) && !defined(ENABLE_MEDIA_PIPELINE_ON_ANDROID)
2353 } 2341 }
2354 2342
2355 blink::WebMediaSession* RenderFrameImpl::createMediaSession() { 2343 blink::WebMediaSession* RenderFrameImpl::createMediaSession() {
2356 #if defined(OS_ANDROID) 2344 #if defined(OS_ANDROID)
2357 return new WebMediaSessionAndroid(GetMediaSessionManager()); 2345 return new WebMediaSessionAndroid(GetMediaSessionManager());
2358 #else 2346 #else
2359 return nullptr; 2347 return nullptr;
2360 #endif // defined(OS_ANDROID) 2348 #endif // defined(OS_ANDROID)
2361 } 2349 }
2362 2350
(...skipping 3274 matching lines...) Expand 10 before | Expand all | Expand 10 after
5637 media::ConvertToSwitchOutputDeviceCB(web_callbacks); 5625 media::ConvertToSwitchOutputDeviceCB(web_callbacks);
5638 scoped_refptr<media::AudioOutputDevice> device = 5626 scoped_refptr<media::AudioOutputDevice> device =
5639 AudioDeviceFactory::NewOutputDevice(routing_id_, 0, sink_id.utf8(), 5627 AudioDeviceFactory::NewOutputDevice(routing_id_, 0, sink_id.utf8(),
5640 security_origin); 5628 security_origin);
5641 media::OutputDeviceStatus status = device->GetDeviceStatus(); 5629 media::OutputDeviceStatus status = device->GetDeviceStatus();
5642 device->Stop(); 5630 device->Stop();
5643 callback.Run(status); 5631 callback.Run(status);
5644 } 5632 }
5645 5633
5646 } // namespace content 5634 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698