From 01308240ddb40d6b246fffb184240c5ba0960426 Mon Sep 17 00:00:00 2001 From: Jean-Yves Avenard Date: Thu, 14 Jul 2016 18:28:19 +1000 Subject: [PATCH] Bug 1286722: [MSE] P1. Add mediasource event handler attributes. r=bz See https://github.com/w3c/media-source/issues/66 MozReview-Commit-ID: 9fANabkz5ud --HG-- extra : rebase_source : 37ef4885191942c56cc2ff0e198c5cbc7cab0c4a --- dom/base/nsGkAtomList.h | 10 ++++++++++ dom/media/mediasource/MediaSource.h | 5 +++++ dom/media/mediasource/SourceBuffer.h | 7 +++++++ dom/media/mediasource/SourceBufferList.h | 4 ++++ dom/webidl/MediaSource.webidl | 3 +++ dom/webidl/SourceBuffer.webidl | 5 +++++ dom/webidl/SourceBufferList.webidl | 2 ++ 7 files changed, 36 insertions(+) diff --git a/dom/base/nsGkAtomList.h b/dom/base/nsGkAtomList.h index 103e294581b0..ef1394c1407b 100644 --- a/dom/base/nsGkAtomList.h +++ b/dom/base/nsGkAtomList.h @@ -2454,3 +2454,13 @@ GK_ATOM(nsuri_mathml, "http://www.w3.org/1998/Math/MathML") GK_ATOM(nsuri_rdf, "http://www.w3.org/1999/02/22-rdf-syntax-ns#") GK_ATOM(nsuri_xul, "http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul") GK_ATOM(nsuri_svg, "http://www.w3.org/2000/svg") + +// MSE +GK_ATOM(onsourceopen, "onsourceopen") +GK_ATOM(onsourceended, "onsourceended") +GK_ATOM(onsourceclosed, "onsourceclosed") +GK_ATOM(onupdatestart, "onupdatestart") +GK_ATOM(onupdate, "onupdate") +GK_ATOM(onupdateend, "onupdateend") +GK_ATOM(onaddsourcebuffer, "onaddsourcebuffer") +GK_ATOM(onremovesourcebuffer, "onremovesourcebuffer") diff --git a/dom/media/mediasource/MediaSource.h b/dom/media/mediasource/MediaSource.h index 7d4a21cbde58..0f7b91350042 100644 --- a/dom/media/mediasource/MediaSource.h +++ b/dom/media/mediasource/MediaSource.h @@ -72,6 +72,11 @@ public: static bool IsTypeSupported(const GlobalObject&, const nsAString& aType); static bool Enabled(JSContext* cx, JSObject* aGlobal); + + IMPL_EVENT_HANDLER(sourceopen); + IMPL_EVENT_HANDLER(sourceended); + IMPL_EVENT_HANDLER(sourceclosed); + /** End WebIDL Methods. */ NS_DECL_ISUPPORTS_INHERITED diff --git a/dom/media/mediasource/SourceBuffer.h b/dom/media/mediasource/SourceBuffer.h index 0644c65d3ae3..429998776e93 100644 --- a/dom/media/mediasource/SourceBuffer.h +++ b/dom/media/mediasource/SourceBuffer.h @@ -87,6 +87,13 @@ public: void AbortBufferAppend(); void Remove(double aStart, double aEnd, ErrorResult& aRv); + + IMPL_EVENT_HANDLER(updatestart); + IMPL_EVENT_HANDLER(update); + IMPL_EVENT_HANDLER(updateend); + IMPL_EVENT_HANDLER(error); + IMPL_EVENT_HANDLER(abort); + /** End WebIDL Methods. */ NS_DECL_ISUPPORTS_INHERITED diff --git a/dom/media/mediasource/SourceBufferList.h b/dom/media/mediasource/SourceBufferList.h index c8714c34eb0c..d144fc75736c 100644 --- a/dom/media/mediasource/SourceBufferList.h +++ b/dom/media/mediasource/SourceBufferList.h @@ -35,6 +35,10 @@ public: SourceBuffer* IndexedGetter(uint32_t aIndex, bool& aFound); uint32_t Length(); + + IMPL_EVENT_HANDLER(addsourcebuffer); + IMPL_EVENT_HANDLER(removesourcebuffer); + /** End WebIDL methods. */ NS_DECL_ISUPPORTS_INHERITED diff --git a/dom/webidl/MediaSource.webidl b/dom/webidl/MediaSource.webidl index 95a7026fe9fc..63691e090d7a 100644 --- a/dom/webidl/MediaSource.webidl +++ b/dom/webidl/MediaSource.webidl @@ -28,6 +28,9 @@ interface MediaSource : EventTarget { readonly attribute MediaSourceReadyState readyState; [SetterThrows] attribute unrestricted double duration; + attribute EventHandler onsourceopen; + attribute EventHandler onsourceended; + attribute EventHandler onsourceclosed; [NewObject, Throws] SourceBuffer addSourceBuffer(DOMString type); [Throws] diff --git a/dom/webidl/SourceBuffer.webidl b/dom/webidl/SourceBuffer.webidl index a3ac4a02725c..a1d9f98cfdcc 100644 --- a/dom/webidl/SourceBuffer.webidl +++ b/dom/webidl/SourceBuffer.webidl @@ -31,6 +31,11 @@ interface SourceBuffer : EventTarget { attribute double appendWindowStart; [SetterThrows] attribute unrestricted double appendWindowEnd; + attribute EventHandler onupdatestart; + attribute EventHandler onupdate; + attribute EventHandler onupdateend; + attribute EventHandler onerror; + attribute EventHandler onabort; [Throws] void appendBuffer(ArrayBuffer data); [Throws] diff --git a/dom/webidl/SourceBufferList.webidl b/dom/webidl/SourceBufferList.webidl index badbfd8252be..15c302622a66 100644 --- a/dom/webidl/SourceBufferList.webidl +++ b/dom/webidl/SourceBufferList.webidl @@ -13,5 +13,7 @@ [Func="mozilla::dom::MediaSource::Enabled"] interface SourceBufferList : EventTarget { readonly attribute unsigned long length; + attribute EventHandler onaddsourcebuffer; + attribute EventHandler onremovesourcebuffer; getter SourceBuffer (unsigned long index); };