Index: chrome/renderer/chrome_content_renderer_client.cc |
diff --git a/chrome/renderer/chrome_content_renderer_client.cc b/chrome/renderer/chrome_content_renderer_client.cc |
index 2ebbb3d4f9c61fc832fec3b6d53c98e7e30d0187..31228bb07bad8a09ba671d862bcd692cc3e0a31c 100644 |
--- a/chrome/renderer/chrome_content_renderer_client.cc |
+++ b/chrome/renderer/chrome_content_renderer_client.cc |
@@ -48,6 +48,7 @@ |
#include "chrome/renderer/page_load_histograms.h" |
#include "chrome/renderer/plugin_uma.h" |
#include "chrome/renderer/prerender/prerender_helper.h" |
+#include "chrome/renderer/prerender/prerender_webmediaplayer.h" |
#include "chrome/renderer/print_web_view_helper.h" |
#include "chrome/renderer/renderer_histogram_snapshots.h" |
#include "chrome/renderer/renderer_tracking.h" |
@@ -275,6 +276,26 @@ bool ChromeContentRendererClient::OverrideCreatePlugin( |
return true; |
} |
+bool ChromeContentRendererClient::ShouldOverrideCreateWebMediaPlayer( |
+ content::RenderView* view) { |
+ return prerender::PrerenderHelper::IsPrerendering(view); |
+} |
+ |
+void ChromeContentRendererClient::OverrideCreateWebMediaPlayer( |
+ content::RenderView* render_view, |
+ WebKit::WebMediaPlayerClient* client, |
+ base::WeakPtr<webkit_glue::WebMediaPlayerDelegate> delegate, |
+ media::FilterCollection* collection, |
+ media::MessageLoopFactory* message_loop_factory, |
+ webkit_glue::MediaStreamClient* media_stream_client, |
+ media::MediaLog* media_log, |
+ webkit_glue::WebMediaPlayerImpl** player) { |
+ DCHECK(ShouldOverrideCreateWebMediaPlayer(render_view)); |
+ *player = new prerender::PrerenderWebMediaPlayer(render_view, client, |
+ delegate, collection, message_loop_factory, media_stream_client, |
+ media_log); |
+} |
+ |
WebPlugin* ChromeContentRendererClient::CreatePlugin( |
content::RenderView* render_view, |
WebFrame* frame, |