From 1ab65005ae4d1925de357f42212bc2aaa972e77e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fernando=20Jim=C3=A9nez=20Moreno?= Date: Wed, 2 Oct 2019 17:27:26 +0200 Subject: Set MediaMetadata MediaSession owner --- components/script/dom/mediametadata.rs | 5 ++++- components/script/dom/mediasession.rs | 11 +++++++---- 2 files changed, 11 insertions(+), 5 deletions(-) (limited to 'components/script/dom') 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( -- cgit v1.2.3