summaryrefslogtreecommitdiff
path: root/Source/WebCore/html/track/TrackEvent.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'Source/WebCore/html/track/TrackEvent.cpp')
-rw-r--r--Source/WebCore/html/track/TrackEvent.cpp32
1 files changed, 22 insertions, 10 deletions
diff --git a/Source/WebCore/html/track/TrackEvent.cpp b/Source/WebCore/html/track/TrackEvent.cpp
index 16eb4d8be..7da7d5117 100644
--- a/Source/WebCore/html/track/TrackEvent.cpp
+++ b/Source/WebCore/html/track/TrackEvent.cpp
@@ -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
@@ -29,22 +29,34 @@
#include "TrackEvent.h"
-#include "EventNames.h"
-
namespace WebCore {
-TrackEventInit::TrackEventInit()
+static inline std::optional<TrackEvent::TrackEventTrack> convertToTrackEventTrack(Ref<TrackBase>&& track)
{
+ switch (track->type()) {
+ case TrackBase::BaseTrack:
+ return std::nullopt;
+ case TrackBase::TextTrack:
+ return TrackEvent::TrackEventTrack { RefPtr<TextTrack>(&downcast<TextTrack>(track.get())) };
+ case TrackBase::AudioTrack:
+ return TrackEvent::TrackEventTrack { RefPtr<AudioTrack>(&downcast<AudioTrack>(track.get())) };
+ case TrackBase::VideoTrack:
+ return TrackEvent::TrackEventTrack { RefPtr<VideoTrack>(&downcast<VideoTrack>(track.get())) };
+ }
+
+ ASSERT_NOT_REACHED();
+ return std::nullopt;
}
-
-TrackEvent::TrackEvent()
+TrackEvent::TrackEvent(const AtomicString& type, bool canBubble, bool cancelable, Ref<TrackBase>&& track)
+ : Event(type, canBubble, cancelable)
+ , m_track(convertToTrackEventTrack(WTFMove(track)))
{
}
-TrackEvent::TrackEvent(const AtomicString& type, const TrackEventInit& initializer)
- : Event(type, initializer)
- , m_track(initializer.track)
+TrackEvent::TrackEvent(const AtomicString& type, Init&& initializer, IsTrusted isTrusted)
+ : Event(type, initializer, isTrusted)
+ , m_track(WTFMove(initializer.track))
{
}