summaryrefslogtreecommitdiff
path: root/Source/WebCore/html/track/TrackEvent.h
diff options
context:
space:
mode:
Diffstat (limited to 'Source/WebCore/html/track/TrackEvent.h')
-rw-r--r--Source/WebCore/html/track/TrackEvent.h48
1 files changed, 24 insertions, 24 deletions
diff --git a/Source/WebCore/html/track/TrackEvent.h b/Source/WebCore/html/track/TrackEvent.h
index 3c7e43a45..8432633d2 100644
--- a/Source/WebCore/html/track/TrackEvent.h
+++ b/Source/WebCore/html/track/TrackEvent.h
@@ -10,10 +10,10 @@
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
- * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
@@ -23,48 +23,48 @@
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
-#ifndef TrackEvent_h
-#define TrackEvent_h
+#pragma once
#if ENABLE(VIDEO_TRACK)
+#include "AudioTrack.h"
#include "Event.h"
-#include "TrackBase.h"
+#include "TextTrack.h"
+#include "VideoTrack.h"
namespace WebCore {
-struct TrackEventInit : public EventInit {
- TrackEventInit();
-
- RefPtr<TrackBase> track;
-};
-
-class TrackEvent : public Event {
+class TrackEvent final : public Event {
public:
virtual ~TrackEvent();
- static PassRefPtr<TrackEvent> create()
+ static Ref<TrackEvent> create(const AtomicString& type, bool canBubble, bool cancelable, Ref<TrackBase>&& track)
{
- return adoptRef(new TrackEvent);
+ return adoptRef(*new TrackEvent(type, canBubble, cancelable, WTFMove(track)));
}
- static PassRefPtr<TrackEvent> create(const AtomicString& type, const TrackEventInit& initializer)
+ using TrackEventTrack = Variant<RefPtr<VideoTrack>, RefPtr<AudioTrack>, RefPtr<TextTrack>>;
+
+ struct Init : public EventInit {
+ std::optional<TrackEventTrack> track;
+ };
+
+ static Ref<TrackEvent> create(const AtomicString& type, Init&& initializer, IsTrusted isTrusted = IsTrusted::No)
{
- return adoptRef(new TrackEvent(type, initializer));
+ return adoptRef(*new TrackEvent(type, WTFMove(initializer), isTrusted));
}
- virtual EventInterface eventInterface() const override;
-
- TrackBase* track() const { return m_track.get(); }
+ std::optional<TrackEventTrack> track() const { return m_track; }
private:
- TrackEvent();
- TrackEvent(const AtomicString& type, const TrackEventInit& initializer);
+ TrackEvent(const AtomicString& type, bool canBubble, bool cancelable, Ref<TrackBase>&&);
+ TrackEvent(const AtomicString& type, Init&& initializer, IsTrusted);
+
+ EventInterface eventInterface() const override;
- RefPtr<TrackBase> m_track;
+ std::optional<TrackEventTrack> m_track;
};
} // namespace WebCore
-#endif
-#endif
+#endif // ENABLE(VIDEO_TRACK)