aboutsummaryrefslogtreecommitdiffstats
path: root/components/script/dom
diff options
context:
space:
mode:
authorFernando Jiménez Moreno <ferjmoreno@gmail.com>2019-10-07 10:51:56 +0200
committerFernando Jiménez Moreno <ferjmoreno@gmail.com>2019-11-20 13:32:38 +0100
commit31ce7a2b5cd96eaf6eca78f811d49379e6082774 (patch)
treed0b7a38a1973da504724e7c97d9fe5c8d61425f7 /components/script/dom
parentec7a4bf32d355f2f115da016ac6aebb034493f47 (diff)
downloadservo-31ce7a2b5cd96eaf6eca78f811d49379e6082774.tar.gz
servo-31ce7a2b5cd96eaf6eca78f811d49379e6082774.zip
Handle media session action, no default handling yet
Diffstat (limited to 'components/script/dom')
-rw-r--r--components/script/dom/mediasession.rs9
-rw-r--r--components/script/dom/webidls/MediaSession.webidl2
2 files changed, 9 insertions, 2 deletions
diff --git a/components/script/dom/mediasession.rs b/components/script/dom/mediasession.rs
index 4105ddb3b5f..139264953ca 100644
--- a/components/script/dom/mediasession.rs
+++ b/components/script/dom/mediasession.rs
@@ -2,6 +2,7 @@
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */
+use crate::dom::bindings::callback::ExceptionHandling;
use crate::dom::bindings::cell::DomRefCell;
use crate::dom::bindings::codegen::Bindings::MediaSessionBinding;
use crate::dom::bindings::codegen::Bindings::MediaSessionBinding::MediaSessionAction;
@@ -54,7 +55,13 @@ impl MediaSession {
}
pub fn handle_action(&self, action: MediaSessionActionType) {
- // TODO
+ if let Some(handler) = self.action_handlers.borrow().get(&action) {
+ if handler.Call__(ExceptionHandling::Report).is_err() {
+ warn!("Error calling MediaSessionActionHandler callback");
+ }
+ return;
+ }
+ // TODO default action.
}
}
diff --git a/components/script/dom/webidls/MediaSession.webidl b/components/script/dom/webidls/MediaSession.webidl
index 0096a0ffa50..12b3fe062ba 100644
--- a/components/script/dom/webidls/MediaSession.webidl
+++ b/components/script/dom/webidls/MediaSession.webidl
@@ -42,7 +42,7 @@ dictionary MediaSessionSeekToActionDetails : MediaSessionActionDetails {
boolean? fastSeek;
};
-callback MediaSessionActionHandler = void(MediaSessionActionDetails details);
+callback MediaSessionActionHandler = void(/*MediaSessionActionDetails details*/);
[Exposed=Window]
interface MediaSession {