diff options
author | scherkus@chromium.org <scherkus@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-07-02 22:25:55 +0000 |
---|---|---|
committer | scherkus@chromium.org <scherkus@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-07-02 22:25:55 +0000 |
commit | d726eddc0fb9a344f5a584786307c8d9ffa16cd0 (patch) | |
tree | 9a2e9d2cfecae6f03f0f574a277e5ae1eb557334 /chrome/renderer/prerender | |
parent | cd36c6e67313d9a1b21f6c5806dfab527778f1e8 (diff) | |
download | chromium_src-d726eddc0fb9a344f5a584786307c8d9ffa16cd0.zip chromium_src-d726eddc0fb9a344f5a584786307c8d9ffa16cd0.tar.gz chromium_src-d726eddc0fb9a344f5a584786307c8d9ffa16cd0.tar.bz2 |
Update content API in preparation for migrating webkit/renderer/media/ to content/renderer/media/.
The biggest change is to replace the coarse-grained WebMediaPlayer-based content API with finer-grained APIs for controlling media resource loads (e.g., prerendering) and media stream audio/video rendering (e.g., WebRTC layout tests).
BUG=239826,251306
Review URL: https://chromiumcodereview.appspot.com/18123002
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@209797 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/renderer/prerender')
-rw-r--r-- | chrome/renderer/prerender/prerender_webmediaplayer.cc | 50 | ||||
-rw-r--r-- | chrome/renderer/prerender/prerender_webmediaplayer.h | 35 |
2 files changed, 16 insertions, 69 deletions
diff --git a/chrome/renderer/prerender/prerender_webmediaplayer.cc b/chrome/renderer/prerender/prerender_webmediaplayer.cc index dd7be9a..c81402c 100644 --- a/chrome/renderer/prerender/prerender_webmediaplayer.cc +++ b/chrome/renderer/prerender/prerender_webmediaplayer.cc @@ -4,57 +4,23 @@ #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) + const base::Closure& closure) : RenderViewObserver(render_view), - WebMediaPlayerImpl(frame, client, delegate, params), is_prerendering_(true), - url_loaded_(false), - cors_mode_(CORSModeUnspecified) { + continue_loading_cb_(closure) { + DCHECK(!continue_loading_cb_.is_null()); } PrerenderWebMediaPlayer::~PrerenderWebMediaPlayer() {} -void PrerenderWebMediaPlayer::load(const WebKit::WebURL& url, - CORSMode cors_mode) { - DCHECK(!url_loaded_); - if (is_prerendering_) { - url_to_load_.reset(new WebKit::WebURL(url)); - media_source_to_load_.reset(); - cors_mode_ = cors_mode; - 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); -} - bool PrerenderWebMediaPlayer::OnMessageReceived(const IPC::Message& message) { IPC_BEGIN_MESSAGE_MAP(PrerenderWebMediaPlayer, message) IPC_MESSAGE_HANDLER(PrerenderMsg_SetIsPrerendering, OnSetIsPrerendering) @@ -72,13 +38,7 @@ void PrerenderWebMediaPlayer::OnSetIsPrerendering(bool is_prerendering) { return; is_prerendering_ = false; - if (!url_to_load_) - 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 diff --git a/chrome/renderer/prerender/prerender_webmediaplayer.h b/chrome/renderer/prerender/prerender_webmediaplayer.h index da0b4d3..60f9403 100644 --- a/chrome/renderer/prerender/prerender_webmediaplayer.h +++ b/chrome/renderer/prerender/prerender_webmediaplayer.h @@ -5,33 +5,23 @@ #ifndef CHROME_RENDERER_PRERENDER_PRERENDER_WEBMEDIAPLAYER_H_ #define CHROME_RENDERER_PRERENDER_PRERENDER_WEBMEDIAPLAYER_H_ -#include "base/memory/scoped_ptr.h" -#include "base/memory/weak_ptr.h" +#include "base/callback.h" #include "content/public/renderer/render_view_observer.h" -#include "webkit/renderer/media/webmediaplayer_impl.h" namespace prerender { -// Substitute for WebMediaPlayerImpl to be used in prerendered pages. Defers -// the loading of the media till the prerendered page is swapped in. -class PrerenderWebMediaPlayer - : public content::RenderViewObserver, - public webkit_media::WebMediaPlayerImpl { +// Defers media player loading in prerendered pages until the prerendered page +// is swapped in. +// +// TODO(scherkus): Rename as this class no longer inherits WebMediaPlayer. +class PrerenderWebMediaPlayer : public content::RenderViewObserver { public: - PrerenderWebMediaPlayer( - content::RenderView* render_view, - WebKit::WebFrame* frame, - WebKit::WebMediaPlayerClient* client, - base::WeakPtr<webkit_media::WebMediaPlayerDelegate> delegate, - const webkit_media::WebMediaPlayerParams& params); + // Will run |closure| to continue loading the media resource once the page is + // swapped in. + PrerenderWebMediaPlayer(content::RenderView* render_view, + const base::Closure& closure); virtual ~PrerenderWebMediaPlayer(); - // WebMediaPlayerImpl methods: - virtual void load(const WebKit::WebURL& url, CORSMode cors_mode) OVERRIDE; - virtual void load(const WebKit::WebURL& url, - WebKit::WebMediaSource* media_source, - CORSMode cors_mode) OVERRIDE; - private: // RenderViewObserver method: virtual bool OnMessageReceived(const IPC::Message& message) OVERRIDE; @@ -39,10 +29,7 @@ class PrerenderWebMediaPlayer void OnSetIsPrerendering(bool is_prerendering); bool is_prerendering_; - bool url_loaded_; - scoped_ptr<WebKit::WebURL> url_to_load_; - scoped_ptr<WebKit::WebMediaSource> media_source_to_load_; - CORSMode cors_mode_; + base::Closure continue_loading_cb_; DISALLOW_COPY_AND_ASSIGN(PrerenderWebMediaPlayer); }; |