| 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
|
|
|