Index: content/renderer/render_view_impl.cc |
diff --git a/content/renderer/render_view_impl.cc b/content/renderer/render_view_impl.cc |
index e31f376f25eb0a06e309b7af5d06b40cff6b6573..fc2f23bfcf314aabe9c956d7974f242e6b2013f0 100644 |
--- a/content/renderer/render_view_impl.cc |
+++ b/content/renderer/render_view_impl.cc |
@@ -1942,13 +1942,23 @@ WebMediaPlayer* RenderViewImpl::createMediaPlayer( |
collection->AddVideoRenderer(renderer); |
video_renderer = renderer; |
- scoped_ptr<webkit_glue::WebMediaPlayerImpl> result( |
- new webkit_glue::WebMediaPlayerImpl(client, |
- AsWeakPtr(), |
- collection.release(), |
- message_loop_factory.release(), |
- media_stream_impl_.get(), |
- new RenderMediaLog())); |
+ scoped_ptr<webkit_glue::WebMediaPlayerImpl> result; |
+ if (content::GetContentClient()->renderer() |
+ ->ShouldOverrideCreateWebMediaPlayer(this)) { |
+ webkit_glue::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_glue::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), |
video_renderer)) { |