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

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

Issue 2827483002: Merge M59: "Fix incorrect collation of media logs." (Closed)
Patch Set: 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
« no previous file with comments | « content/renderer/render_frame_impl.h ('k') | 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 2790 matching lines...) Expand 10 before | Expand all | Expand 10 after
2801 return NULL; 2801 return NULL;
2802 2802
2803 WebPluginParams params_to_use = params; 2803 WebPluginParams params_to_use = params;
2804 params_to_use.mime_type = WebString::FromUTF8(mime_type); 2804 params_to_use.mime_type = WebString::FromUTF8(mime_type);
2805 return CreatePlugin(frame, info, params_to_use, nullptr /* throttler */); 2805 return CreatePlugin(frame, info, params_to_use, nullptr /* throttler */);
2806 #else 2806 #else
2807 return NULL; 2807 return NULL;
2808 #endif // BUILDFLAG(ENABLE_PLUGINS) 2808 #endif // BUILDFLAG(ENABLE_PLUGINS)
2809 } 2809 }
2810 2810
2811 const scoped_refptr<RenderMediaLog>& RenderFrameImpl::GetMediaLog() {
2812 if (!media_log_.get()) {
2813 media_log_ =
2814 new RenderMediaLog(url::Origin(frame_->GetSecurityOrigin()).GetURL());
2815 }
2816
2817 return media_log_;
2818 }
2819
2820 blink::WebMediaPlayer* RenderFrameImpl::CreateMediaPlayer( 2811 blink::WebMediaPlayer* RenderFrameImpl::CreateMediaPlayer(
2821 const blink::WebMediaPlayerSource& source, 2812 const blink::WebMediaPlayerSource& source,
2822 WebMediaPlayerClient* client, 2813 WebMediaPlayerClient* client,
2823 WebMediaPlayerEncryptedMediaClient* encrypted_client, 2814 WebMediaPlayerEncryptedMediaClient* encrypted_client,
2824 WebContentDecryptionModule* initial_cdm, 2815 WebContentDecryptionModule* initial_cdm,
2825 const blink::WebString& sink_id) { 2816 const blink::WebString& sink_id) {
2817 blink::WebSecurityOrigin security_origin = frame_->GetSecurityOrigin();
2826 blink::WebMediaStream web_stream = 2818 blink::WebMediaStream web_stream =
2827 GetWebMediaStreamFromWebMediaPlayerSource(source); 2819 GetWebMediaStreamFromWebMediaPlayerSource(source);
2828 if (!web_stream.IsNull()) 2820 if (!web_stream.IsNull())
2829 return CreateWebMediaPlayerForMediaStream(client, sink_id, 2821 return CreateWebMediaPlayerForMediaStream(client, sink_id, security_origin);
2830 frame_->GetSecurityOrigin());
2831 2822
2832 // If |source| was not a MediaStream, it must be a URL. 2823 // If |source| was not a MediaStream, it must be a URL.
2833 // TODO(guidou): Fix this when support for other srcObject types is added. 2824 // TODO(guidou): Fix this when support for other srcObject types is added.
2834 DCHECK(source.IsURL()); 2825 DCHECK(source.IsURL());
2835 blink::WebURL url = source.GetAsURL(); 2826 blink::WebURL url = source.GetAsURL();
2836 2827
2837 RenderThreadImpl* render_thread = RenderThreadImpl::current(); 2828 RenderThreadImpl* render_thread = RenderThreadImpl::current();
2838 // Render thread may not exist in tests, returning nullptr if it does not. 2829 // Render thread may not exist in tests, returning nullptr if it does not.
2839 if (!render_thread) 2830 if (!render_thread)
2840 return nullptr; 2831 return nullptr;
2841 2832
2842 scoped_refptr<media::SwitchableAudioRendererSink> audio_renderer_sink = 2833 scoped_refptr<media::SwitchableAudioRendererSink> audio_renderer_sink =
2843 AudioDeviceFactory::NewSwitchableAudioRendererSink( 2834 AudioDeviceFactory::NewSwitchableAudioRendererSink(
2844 AudioDeviceFactory::kSourceMediaElement, routing_id_, 0, 2835 AudioDeviceFactory::kSourceMediaElement, routing_id_, 0,
2845 sink_id.Utf8(), frame_->GetSecurityOrigin()); 2836 sink_id.Utf8(), security_origin);
2846 // We need to keep a reference to the context provider (see crbug.com/610527) 2837 // We need to keep a reference to the context provider (see crbug.com/610527)
2847 // but media/ can't depend on cc/, so for now, just keep a reference in the 2838 // but media/ can't depend on cc/, so for now, just keep a reference in the
2848 // callback. 2839 // callback.
2849 // TODO(piman): replace media::Context3D to scoped_refptr<ContextProvider> in 2840 // TODO(piman): replace media::Context3D to scoped_refptr<ContextProvider> in
2850 // media/ once ContextProvider is in gpu/. 2841 // media/ once ContextProvider is in gpu/.
2851 media::WebMediaPlayerParams::Context3DCB context_3d_cb = base::Bind( 2842 media::WebMediaPlayerParams::Context3DCB context_3d_cb = base::Bind(
2852 &GetSharedMainThreadContext3D, 2843 &GetSharedMainThreadContext3D,
2853 RenderThreadImpl::current()->SharedMainThreadContextProvider()); 2844 RenderThreadImpl::current()->SharedMainThreadContextProvider());
2854 2845
2846 // This must be created for every new WebMediaPlayer, each instance generates
2847 // a new player id which is used to collate logs on the browser side.
2848 // TODO(chcunningham, dalecurtis): This should be switched to a unique_ptr
2849 // owned by WebMediaPlayer to avoid this confusion. http://crbug.com/711818.
2850 scoped_refptr<media::MediaLog> media_log(
2851 new RenderMediaLog(url::Origin(security_origin).GetURL()));
2852
2855 bool embedded_media_experience_enabled = false; 2853 bool embedded_media_experience_enabled = false;
2856 #if defined(OS_ANDROID) 2854 #if defined(OS_ANDROID)
2857 if (!UseMediaPlayerRenderer(url) && !media_surface_manager_) 2855 if (!UseMediaPlayerRenderer(url) && !media_surface_manager_)
2858 media_surface_manager_ = new RendererSurfaceViewManager(this); 2856 media_surface_manager_ = new RendererSurfaceViewManager(this);
2859 embedded_media_experience_enabled = 2857 embedded_media_experience_enabled =
2860 GetWebkitPreferences().embedded_media_experience_enabled; 2858 GetWebkitPreferences().embedded_media_experience_enabled;
2861 #endif // defined(OS_ANDROID) 2859 #endif // defined(OS_ANDROID)
2862 2860
2863 #if BUILDFLAG(ENABLE_MEDIA_REMOTING) 2861 #if BUILDFLAG(ENABLE_MEDIA_REMOTING)
2864 media::mojom::RemotingSourcePtr remoting_source; 2862 media::mojom::RemotingSourcePtr remoting_source;
(...skipping 19 matching lines...) Expand all
2884 base::TimeDelta::FromMilliseconds(base::GetFieldTrialParamByFeatureAsInt( 2882 base::TimeDelta::FromMilliseconds(base::GetFieldTrialParamByFeatureAsInt(
2885 media::kBackgroundVideoTrackOptimization, 2883 media::kBackgroundVideoTrackOptimization,
2886 "max_keyframe_distance_media_source_ms", 2884 "max_keyframe_distance_media_source_ms",
2887 base::TimeDelta::FromSeconds(10).InMilliseconds())); 2885 base::TimeDelta::FromSeconds(10).InMilliseconds()));
2888 2886
2889 media::WebMediaPlayerParams params( 2887 media::WebMediaPlayerParams params(
2890 base::Bind(&ContentRendererClient::DeferMediaLoad, 2888 base::Bind(&ContentRendererClient::DeferMediaLoad,
2891 base::Unretained(GetContentClient()->renderer()), 2889 base::Unretained(GetContentClient()->renderer()),
2892 static_cast<RenderFrame*>(this), 2890 static_cast<RenderFrame*>(this),
2893 GetWebMediaPlayerDelegate()->has_played_media()), 2891 GetWebMediaPlayerDelegate()->has_played_media()),
2894 audio_renderer_sink, GetMediaLog(), 2892 audio_renderer_sink, media_log, render_thread->GetMediaThreadTaskRunner(),
2895 render_thread->GetMediaThreadTaskRunner(),
2896 render_thread->GetWorkerTaskRunner(), 2893 render_thread->GetWorkerTaskRunner(),
2897 render_thread->compositor_task_runner(), context_3d_cb, 2894 render_thread->compositor_task_runner(), context_3d_cb,
2898 base::Bind(&v8::Isolate::AdjustAmountOfExternalAllocatedMemory, 2895 base::Bind(&v8::Isolate::AdjustAmountOfExternalAllocatedMemory,
2899 base::Unretained(blink::MainThreadIsolate())), 2896 base::Unretained(blink::MainThreadIsolate())),
2900 initial_cdm, media_surface_manager_, media_observer, 2897 initial_cdm, media_surface_manager_, media_observer,
2901 max_keyframe_distance_to_disable_background_video, 2898 max_keyframe_distance_to_disable_background_video,
2902 max_keyframe_distance_to_disable_background_video_mse, 2899 max_keyframe_distance_to_disable_background_video_mse,
2903 GetWebkitPreferences().enable_instant_source_buffer_gc, 2900 GetWebkitPreferences().enable_instant_source_buffer_gc,
2904 GetContentClient()->renderer()->AllowMediaSuspend(), 2901 GetContentClient()->renderer()->AllowMediaSuspend(),
2905 embedded_media_experience_enabled); 2902 embedded_media_experience_enabled);
(...skipping 17 matching lines...) Expand all
2923 render_thread->EnableStreamTextureCopy(), 2920 render_thread->EnableStreamTextureCopy(),
2924 render_thread->GetStreamTexureFactory(), 2921 render_thread->GetStreamTexureFactory(),
2925 base::ThreadTaskRunnerHandle::Get())); 2922 base::ThreadTaskRunnerHandle::Get()));
2926 #endif // defined(OS_ANDROID) 2923 #endif // defined(OS_ANDROID)
2927 } else { 2924 } else {
2928 #if defined(ENABLE_MOJO_RENDERER) 2925 #if defined(ENABLE_MOJO_RENDERER)
2929 #if BUILDFLAG(ENABLE_RUNTIME_MEDIA_RENDERER_SELECTION) 2926 #if BUILDFLAG(ENABLE_RUNTIME_MEDIA_RENDERER_SELECTION)
2930 if (base::CommandLine::ForCurrentProcess()->HasSwitch( 2927 if (base::CommandLine::ForCurrentProcess()->HasSwitch(
2931 switches::kDisableMojoRenderer)) { 2928 switches::kDisableMojoRenderer)) {
2932 media_renderer_factory = base::MakeUnique<media::DefaultRendererFactory>( 2929 media_renderer_factory = base::MakeUnique<media::DefaultRendererFactory>(
2933 GetMediaLog(), GetDecoderFactory(), 2930 media_log, GetDecoderFactory(),
2934 base::Bind(&RenderThreadImpl::GetGpuFactories, 2931 base::Bind(&RenderThreadImpl::GetGpuFactories,
2935 base::Unretained(render_thread))); 2932 base::Unretained(render_thread)));
2936 } 2933 }
2937 #endif // BUILDFLAG(ENABLE_RUNTIME_MEDIA_RENDERER_SELECTION) 2934 #endif // BUILDFLAG(ENABLE_RUNTIME_MEDIA_RENDERER_SELECTION)
2938 if (!media_renderer_factory) { 2935 if (!media_renderer_factory) {
2939 media_renderer_factory = base::MakeUnique<media::MojoRendererFactory>( 2936 media_renderer_factory = base::MakeUnique<media::MojoRendererFactory>(
2940 base::Bind(&RenderThreadImpl::GetGpuFactories, 2937 base::Bind(&RenderThreadImpl::GetGpuFactories,
2941 base::Unretained(render_thread)), 2938 base::Unretained(render_thread)),
2942 GetMediaInterfaceProvider()); 2939 GetMediaInterfaceProvider());
2943 } 2940 }
2944 #else 2941 #else
2945 media_renderer_factory = base::MakeUnique<media::DefaultRendererFactory>( 2942 media_renderer_factory = base::MakeUnique<media::DefaultRendererFactory>(
2946 GetMediaLog(), GetDecoderFactory(), 2943 media_log, GetDecoderFactory(),
2947 base::Bind(&RenderThreadImpl::GetGpuFactories, 2944 base::Bind(&RenderThreadImpl::GetGpuFactories,
2948 base::Unretained(render_thread))); 2945 base::Unretained(render_thread)));
2949 #endif // defined(ENABLE_MOJO_RENDERER) 2946 #endif // defined(ENABLE_MOJO_RENDERER)
2950 } 2947 }
2951 2948
2952 #if BUILDFLAG(ENABLE_MEDIA_REMOTING) 2949 #if BUILDFLAG(ENABLE_MEDIA_REMOTING)
2953 auto* const remoting_controller_ptr = remoting_controller.get(); 2950 auto* const remoting_controller_ptr = remoting_controller.get();
2954 media_renderer_factory = 2951 media_renderer_factory =
2955 base::MakeUnique<media::remoting::AdaptiveRendererFactory>( 2952 base::MakeUnique<media::remoting::AdaptiveRendererFactory>(
2956 std::move(media_renderer_factory), std::move(remoting_controller)); 2953 std::move(media_renderer_factory), std::move(remoting_controller));
(...skipping 1710 matching lines...) Expand 10 before | Expand all | Expand 10 after
4667 } 4664 }
4668 4665
4669 blink::WebEncryptedMediaClient* RenderFrameImpl::EncryptedMediaClient() { 4666 blink::WebEncryptedMediaClient* RenderFrameImpl::EncryptedMediaClient() {
4670 if (!web_encrypted_media_client_) { 4667 if (!web_encrypted_media_client_) {
4671 web_encrypted_media_client_.reset(new media::WebEncryptedMediaClientImpl( 4668 web_encrypted_media_client_.reset(new media::WebEncryptedMediaClientImpl(
4672 // base::Unretained(this) is safe because WebEncryptedMediaClientImpl 4669 // base::Unretained(this) is safe because WebEncryptedMediaClientImpl
4673 // is destructed before |this|, and does not give away ownership of the 4670 // is destructed before |this|, and does not give away ownership of the
4674 // callback. 4671 // callback.
4675 base::Bind(&RenderFrameImpl::AreSecureCodecsSupported, 4672 base::Bind(&RenderFrameImpl::AreSecureCodecsSupported,
4676 base::Unretained(this)), 4673 base::Unretained(this)),
4677 GetCdmFactory(), GetMediaPermission(), GetMediaLog())); 4674 GetCdmFactory(), GetMediaPermission(),
4675 new RenderMediaLog(url::Origin(frame_->GetSecurityOrigin()).GetURL())));
4678 } 4676 }
4679 return web_encrypted_media_client_.get(); 4677 return web_encrypted_media_client_.get();
4680 } 4678 }
4681 4679
4682 blink::WebString RenderFrameImpl::UserAgentOverride() { 4680 blink::WebString RenderFrameImpl::UserAgentOverride() {
4683 if (!render_view_->webview() || !render_view_->webview()->MainFrame() || 4681 if (!render_view_->webview() || !render_view_->webview()->MainFrame() ||
4684 render_view_->renderer_preferences_.user_agent_override.empty()) { 4682 render_view_->renderer_preferences_.user_agent_override.empty()) {
4685 return blink::WebString(); 4683 return blink::WebString();
4686 } 4684 }
4687 4685
(...skipping 2305 matching lines...) Expand 10 before | Expand all | Expand 10 after
6993 policy(info.default_policy), 6991 policy(info.default_policy),
6994 replaces_current_history_item(info.replaces_current_history_item), 6992 replaces_current_history_item(info.replaces_current_history_item),
6995 history_navigation_in_new_child_frame( 6993 history_navigation_in_new_child_frame(
6996 info.is_history_navigation_in_new_child_frame), 6994 info.is_history_navigation_in_new_child_frame),
6997 client_redirect(info.is_client_redirect), 6995 client_redirect(info.is_client_redirect),
6998 cache_disabled(info.is_cache_disabled), 6996 cache_disabled(info.is_cache_disabled),
6999 form(info.form), 6997 form(info.form),
7000 source_location(info.source_location) {} 6998 source_location(info.source_location) {}
7001 6999
7002 } // namespace content 7000 } // namespace content
OLDNEW
« no previous file with comments | « content/renderer/render_frame_impl.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698