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

Unified Diff: content/renderer/render_frame_impl.cc

Issue 2819973002: Fix incorrect collation of media logs. (Closed)
Patch Set: Fix typo in comment. 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « content/renderer/render_frame_impl.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: content/renderer/render_frame_impl.cc
diff --git a/content/renderer/render_frame_impl.cc b/content/renderer/render_frame_impl.cc
index 6922b947253cc39923dc5db901a027ecb94979f6..32ad5da72f24ffd359bdddac2004fb1b10c34c3d 100644
--- a/content/renderer/render_frame_impl.cc
+++ b/content/renderer/render_frame_impl.cc
@@ -2808,26 +2808,17 @@ blink::WebPlugin* RenderFrameImpl::CreatePlugin(
#endif // BUILDFLAG(ENABLE_PLUGINS)
}
-const scoped_refptr<RenderMediaLog>& RenderFrameImpl::GetMediaLog() {
- if (!media_log_.get()) {
- media_log_ =
- new RenderMediaLog(url::Origin(frame_->GetSecurityOrigin()).GetURL());
- }
-
- return media_log_;
-}
-
blink::WebMediaPlayer* RenderFrameImpl::CreateMediaPlayer(
const blink::WebMediaPlayerSource& source,
WebMediaPlayerClient* client,
WebMediaPlayerEncryptedMediaClient* encrypted_client,
WebContentDecryptionModule* initial_cdm,
const blink::WebString& sink_id) {
+ blink::WebSecurityOrigin security_origin = frame_->GetSecurityOrigin();
blink::WebMediaStream web_stream =
GetWebMediaStreamFromWebMediaPlayerSource(source);
if (!web_stream.IsNull())
- return CreateWebMediaPlayerForMediaStream(client, sink_id,
- frame_->GetSecurityOrigin());
+ return CreateWebMediaPlayerForMediaStream(client, sink_id, security_origin);
// If |source| was not a MediaStream, it must be a URL.
// TODO(guidou): Fix this when support for other srcObject types is added.
@@ -2842,7 +2833,7 @@ blink::WebMediaPlayer* RenderFrameImpl::CreateMediaPlayer(
scoped_refptr<media::SwitchableAudioRendererSink> audio_renderer_sink =
AudioDeviceFactory::NewSwitchableAudioRendererSink(
AudioDeviceFactory::kSourceMediaElement, routing_id_, 0,
- sink_id.Utf8(), frame_->GetSecurityOrigin());
+ sink_id.Utf8(), security_origin);
// We need to keep a reference to the context provider (see crbug.com/610527)
// but media/ can't depend on cc/, so for now, just keep a reference in the
// callback.
@@ -2852,6 +2843,13 @@ blink::WebMediaPlayer* RenderFrameImpl::CreateMediaPlayer(
&GetSharedMainThreadContext3D,
RenderThreadImpl::current()->SharedMainThreadContextProvider());
+ // This must be created for every new WebMediaPlayer, each instance generates
+ // a new player id which is used to collate logs on the browser side.
+ // TODO(chcunningham, dalecurtis): This should be switched to a unique_ptr
+ // owned by WebMediaPlayer to avoid this confusion. http://crbug.com/711818.
+ scoped_refptr<media::MediaLog> media_log(
+ new RenderMediaLog(url::Origin(security_origin).GetURL()));
+
bool embedded_media_experience_enabled = false;
#if defined(OS_ANDROID)
if (!UseMediaPlayerRenderer(url) && !media_surface_manager_)
@@ -2891,8 +2889,7 @@ blink::WebMediaPlayer* RenderFrameImpl::CreateMediaPlayer(
base::Unretained(GetContentClient()->renderer()),
static_cast<RenderFrame*>(this),
GetWebMediaPlayerDelegate()->has_played_media()),
- audio_renderer_sink, GetMediaLog(),
- render_thread->GetMediaThreadTaskRunner(),
+ audio_renderer_sink, media_log, render_thread->GetMediaThreadTaskRunner(),
render_thread->GetWorkerTaskRunner(),
render_thread->compositor_task_runner(), context_3d_cb,
base::Bind(&v8::Isolate::AdjustAmountOfExternalAllocatedMemory,
@@ -2930,7 +2927,7 @@ blink::WebMediaPlayer* RenderFrameImpl::CreateMediaPlayer(
if (base::CommandLine::ForCurrentProcess()->HasSwitch(
switches::kDisableMojoRenderer)) {
media_renderer_factory = base::MakeUnique<media::DefaultRendererFactory>(
- GetMediaLog(), GetDecoderFactory(),
+ media_log, GetDecoderFactory(),
base::Bind(&RenderThreadImpl::GetGpuFactories,
base::Unretained(render_thread)));
}
@@ -2943,7 +2940,7 @@ blink::WebMediaPlayer* RenderFrameImpl::CreateMediaPlayer(
}
#else
media_renderer_factory = base::MakeUnique<media::DefaultRendererFactory>(
- GetMediaLog(), GetDecoderFactory(),
+ media_log, GetDecoderFactory(),
base::Bind(&RenderThreadImpl::GetGpuFactories,
base::Unretained(render_thread)));
#endif // defined(ENABLE_MOJO_RENDERER)
@@ -4674,7 +4671,8 @@ blink::WebEncryptedMediaClient* RenderFrameImpl::EncryptedMediaClient() {
// callback.
base::Bind(&RenderFrameImpl::AreSecureCodecsSupported,
base::Unretained(this)),
- GetCdmFactory(), GetMediaPermission(), GetMediaLog()));
+ GetCdmFactory(), GetMediaPermission(),
+ new RenderMediaLog(url::Origin(frame_->GetSecurityOrigin()).GetURL())));
}
return web_encrypted_media_client_.get();
}
« 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