Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(553)

Unified Diff: content/renderer/media/webmediaplayer_ms.cc

Issue 1570043002: Implement MediaSession on top of the WebMediaPlayerDelegate. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@media_session
Patch Set: Merge. Cleanup. Fix RequestPlay. Created 4 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: content/renderer/media/webmediaplayer_ms.cc
diff --git a/content/renderer/media/webmediaplayer_ms.cc b/content/renderer/media/webmediaplayer_ms.cc
index e302d9dcd93942855a9fcf649416c213952e3f51..d032362f1c935822963d6267d929da2b448f381c 100644
--- a/content/renderer/media/webmediaplayer_ms.cc
+++ b/content/renderer/media/webmediaplayer_ms.cc
@@ -50,8 +50,7 @@ WebMediaPlayerMS::WebMediaPlayerMS(
media::GpuVideoAcceleratorFactories* gpu_factories,
const blink::WebString& sink_id,
const blink::WebSecurityOrigin& security_origin)
- : RenderFrameObserver(RenderFrame::FromWebFrame(frame)),
- frame_(frame),
+ : frame_(frame),
network_state_(WebMediaPlayer::NetworkStateEmpty),
ready_state_(WebMediaPlayer::ReadyStateHaveNothing),
buffered_(static_cast<size_t>(0)),
@@ -72,6 +71,9 @@ WebMediaPlayerMS::WebMediaPlayerMS(
: url::Origin(security_origin)) {
DVLOG(1) << __FUNCTION__;
DCHECK(client);
+ if (delegate)
+ delegate->AddObserver(this);
+
media_log_->AddEvent(
media_log_->CreateEvent(media::MediaLogEvent::WEBMEDIAPLAYER_CREATED));
}
@@ -161,8 +163,10 @@ void WebMediaPlayerMS::play() {
if (audio_renderer_.get())
audio_renderer_->Play();
- if (delegate_.get())
- delegate_->DidPlay(this);
+ if (delegate_.get()) {
+ delegate_->DidPlay(this, hasVideo(), hasAudio(), false,
+ media::kInfiniteDuration());
+ }
}
paused_ = false;
@@ -185,7 +189,7 @@ void WebMediaPlayerMS::pause() {
audio_renderer_->Pause();
if (delegate_.get())
- delegate_->DidPause(this);
+ delegate_->DidPause(this, false);
}
paused_ = true;
@@ -360,7 +364,7 @@ unsigned WebMediaPlayerMS::videoDecodedByteCount() const {
return 0;
}
-void WebMediaPlayerMS::WasHidden() {
+void WebMediaPlayerMS::OnHidden() {
#if defined(OS_ANDROID)
DCHECK(thread_checker_.CalledOnValidThread());
DCHECK(!render_frame_suspended_);
@@ -374,7 +378,7 @@ void WebMediaPlayerMS::WasHidden() {
#endif // defined(OS_ANDROID)
}
-void WebMediaPlayerMS::WasShown() {
+void WebMediaPlayerMS::OnShown() {
#if defined(OS_ANDROID)
DCHECK(thread_checker_.CalledOnValidThread());
@@ -382,6 +386,16 @@ void WebMediaPlayerMS::WasShown() {
#endif // defined(OS_ANDROID)
}
+void WebMediaPlayerMS::OnPlay() {
+ play();
+ client_->playbackStateChanged();
+}
+
+void WebMediaPlayerMS::OnPause() {
+ pause();
+ client_->playbackStateChanged();
+}
+
bool WebMediaPlayerMS::copyVideoTextureToPlatformTexture(
blink::WebGraphicsContext3D* web_graphics_context,
unsigned int texture,

Powered by Google App Engine
This is Rietveld 408576698