Index: chrome/renderer/prerender/prerender_webmediaplayer.cc |
diff --git a/chrome/renderer/prerender/prerender_webmediaplayer.cc b/chrome/renderer/prerender/prerender_webmediaplayer.cc |
index dd7be9a3a74aacd70d6f7e276c63b8c578969e4b..60fd15aa952caced7e90a6fce607c90b4cd470d2 100644 |
--- a/chrome/renderer/prerender/prerender_webmediaplayer.cc |
+++ b/chrome/renderer/prerender/prerender_webmediaplayer.cc |
@@ -4,55 +4,25 @@ |
#include "chrome/renderer/prerender/prerender_webmediaplayer.h" |
+#include "base/callback_helpers.h" |
#include "chrome/common/prerender_messages.h" |
#include "content/public/renderer/render_view.h" |
-#include "third_party/WebKit/public/platform/WebURL.h" |
-#include "third_party/WebKit/public/web/WebMediaSource.h" |
-#include "webkit/renderer/media/webmediaplayer_delegate.h" |
namespace prerender { |
PrerenderWebMediaPlayer::PrerenderWebMediaPlayer( |
- content::RenderView* render_view, |
- WebKit::WebFrame* frame, |
- WebKit::WebMediaPlayerClient* client, |
- base::WeakPtr<webkit_media::WebMediaPlayerDelegate> delegate, |
- const webkit_media::WebMediaPlayerParams& params) |
- : RenderViewObserver(render_view), |
- WebMediaPlayerImpl(frame, client, delegate, params), |
- is_prerendering_(true), |
- url_loaded_(false), |
- cors_mode_(CORSModeUnspecified) { |
-} |
+ content::RenderView* render_view) |
+ : RenderViewObserver(render_view) {} |
PrerenderWebMediaPlayer::~PrerenderWebMediaPlayer() {} |
-void PrerenderWebMediaPlayer::load(const WebKit::WebURL& url, |
- CORSMode cors_mode) { |
- DCHECK(!url_loaded_); |
+void PrerenderWebMediaPlayer::DeferLoad(const base::Closure& closure) { |
if (is_prerendering_) { |
- url_to_load_.reset(new WebKit::WebURL(url)); |
- media_source_to_load_.reset(); |
- cors_mode_ = cors_mode; |
+ DCHECK(continue_loading_cb_.is_null()); |
+ continue_loading_cb_ = closure; |
return; |
} |
- url_loaded_ = true; |
- WebMediaPlayerImpl::load(url, cors_mode); |
-} |
- |
-void PrerenderWebMediaPlayer::load(const WebKit::WebURL& url, |
- WebKit::WebMediaSource* media_source, |
- CORSMode cors_mode) { |
- DCHECK(!url_loaded_); |
- if (is_prerendering_) { |
- url_to_load_.reset(new WebKit::WebURL(url)); |
- media_source_to_load_.reset(media_source); |
- cors_mode_ = cors_mode; |
- return; |
- } |
- |
- url_loaded_ = true; |
- WebMediaPlayerImpl::load(url, media_source, cors_mode); |
+ closure.Run(); |
} |
bool PrerenderWebMediaPlayer::OnMessageReceived(const IPC::Message& message) { |
@@ -72,13 +42,10 @@ void PrerenderWebMediaPlayer::OnSetIsPrerendering(bool is_prerendering) { |
return; |
is_prerendering_ = false; |
- if (!url_to_load_) |
+ if (continue_loading_cb_.is_null()) |
return; |
- if (media_source_to_load_) |
- load(*url_to_load_, media_source_to_load_.release(), cors_mode_); |
- else |
- load(*url_to_load_, cors_mode_); |
+ base::ResetAndReturn(&continue_loading_cb_).Run(); |
} |
} // namespace prerender |