Index: content/renderer/render_view_impl.cc |
diff --git a/content/renderer/render_view_impl.cc b/content/renderer/render_view_impl.cc |
index a8513016977f421f951dea955a68a2a47402d2bb..3ba374e81bbd2a6a3102e1b8e0ab93b36b011fbe 100644 |
--- a/content/renderer/render_view_impl.cc |
+++ b/content/renderer/render_view_impl.cc |
@@ -1933,13 +1933,23 @@ WebMediaPlayer* RenderViewImpl::createMediaPlayer( |
collection->AddAudioRenderer(new AudioRendererImpl()); |
} |
- scoped_ptr<webkit_media::WebMediaPlayerImpl> result( |
- new webkit_media::WebMediaPlayerImpl(client, |
- AsWeakPtr(), |
- collection.release(), |
- message_loop_factory.release(), |
- media_stream_impl_.get(), |
- new RenderMediaLog())); |
+ scoped_ptr<webkit_media::WebMediaPlayerImpl> result; |
+ if (content::GetContentClient()->renderer() |
+ ->ShouldOverrideCreateWebMediaPlayer(this)) { |
+ webkit_media::WebMediaPlayerImpl* result_ptr; |
+ content::GetContentClient()->renderer()->OverrideCreateWebMediaPlayer( |
+ this, client, AsWeakPtr(), collection.release(), |
+ message_loop_factory.release(), media_stream_impl_.get(), |
+ new RenderMediaLog(), &result_ptr); |
+ DCHECK(result_ptr); |
+ result.reset(result_ptr); |
+ } else { |
+ result.reset(new webkit_media::WebMediaPlayerImpl(client, AsWeakPtr(), |
+ collection.release(), message_loop_factory.release(), |
+ media_stream_impl_.get(), new RenderMediaLog())); |
+ } |
+ DCHECK(result.get()); |
+ |
if (!result->Initialize(frame, |
cmd_line->HasSwitch(switches::kSimpleDataSource))) { |
return NULL; |