Index: content/renderer/render_view_impl.cc |
diff --git a/content/renderer/render_view_impl.cc b/content/renderer/render_view_impl.cc |
index 9f3d137e58b9ab1644c10df011a2ebec3126bcf7..5aa908cf7ba3b63136b472374e0d1ee9056ba4be 100644 |
--- a/content/renderer/render_view_impl.cc |
+++ b/content/renderer/render_view_impl.cc |
@@ -1911,13 +1911,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; |