Set MediaMetadata MediaSession owner

This commit is contained in:
Fernando Jiménez Moreno 2019-10-02 17:27:26 +02:00
parent 4b5b4d19bf
commit 1ab65005ae
2 changed files with 11 additions and 5 deletions

View file

@ -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 {

View file

@ -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(