summaryrefslogtreecommitdiffstats
path: root/chrome/renderer/prerender
diff options
context:
space:
mode:
authorscherkus@chromium.org <scherkus@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-07-02 22:25:55 +0000
committerscherkus@chromium.org <scherkus@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-07-02 22:25:55 +0000
commitd726eddc0fb9a344f5a584786307c8d9ffa16cd0 (patch)
tree9a2e9d2cfecae6f03f0f574a277e5ae1eb557334 /chrome/renderer/prerender
parentcd36c6e67313d9a1b21f6c5806dfab527778f1e8 (diff)
downloadchromium_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.cc50
-rw-r--r--chrome/renderer/prerender/prerender_webmediaplayer.h35
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);
};