aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFernando Jiménez Moreno <ferjmoreno@gmail.com>2019-10-02 17:27:26 +0200
committerFernando Jiménez Moreno <ferjmoreno@gmail.com>2019-11-20 13:32:10 +0100
commit1ab65005ae4d1925de357f42212bc2aaa972e77e (patch)
tree0c1222db95d4b98066532b80aad17dd4cf062a0f
parent4b5b4d19bf897dc45c855fcdfc2294b12241d12f (diff)
downloadservo-1ab65005ae4d1925de357f42212bc2aaa972e77e.tar.gz
servo-1ab65005ae4d1925de357f42212bc2aaa972e77e.zip
Set MediaMetadata MediaSession owner
-rw-r--r--components/script/dom/mediametadata.rs5
-rw-r--r--components/script/dom/mediasession.rs11
2 files changed, 11 insertions, 5 deletions
diff --git a/components/script/dom/mediametadata.rs b/components/script/dom/mediametadata.rs
index f4d801506bc..db84df878c5 100644
--- a/components/script/dom/mediametadata.rs
+++ b/components/script/dom/mediametadata.rs
@@ -27,7 +27,6 @@ impl MediaMetadata {
fn new_inherited(init: &MediaMetadataInit) -> MediaMetadata {
MediaMetadata {
reflector_: Reflector::new(),
- // TODO(ferjm): Set active media session?
session: Default::default(),
title: DomRefCell::new(init.title.clone()),
artist: DomRefCell::new(init.artist.clone()),
@@ -56,6 +55,10 @@ impl MediaMetadata {
return;
}
}
+
+ pub fn set_session(&self, session: &MediaSession) {
+ self.session.set(Some(&session));
+ }
}
impl MediaMetadataMethods for MediaMetadata {
diff --git a/components/script/dom/mediasession.rs b/components/script/dom/mediasession.rs
index 010d51afa0c..bb33c523374 100644
--- a/components/script/dom/mediasession.rs
+++ b/components/script/dom/mediasession.rs
@@ -47,8 +47,11 @@ impl MediaSessionMethods for MediaSession {
self.metadata.get()
}
- fn SetMetadata(&self, value: Option<&MediaMetadata>) {
- self.metadata.set(value);
+ fn SetMetadata(&self, metadata: Option<&MediaMetadata>) {
+ if let Some(ref metadata) = metadata {
+ metadata.set_session(self);
+ }
+ self.metadata.set(metadata);
}
/// https://w3c.github.io/mediasession/#dom-mediasession-playbackstate
@@ -57,8 +60,8 @@ impl MediaSessionMethods for MediaSession {
}
/// https://w3c.github.io/mediasession/#dom-mediasession-playbackstate
- fn SetPlaybackState(&self, value: MediaSessionPlaybackState) {
- *self.playback_state.borrow_mut() = value;
+ fn SetPlaybackState(&self, state: MediaSessionPlaybackState) {
+ *self.playback_state.borrow_mut() = state;
}
fn SetActionHandler(