diff options
Diffstat (limited to 'Source/WebCore/html/track/TrackEvent.cpp')
-rw-r--r-- | Source/WebCore/html/track/TrackEvent.cpp | 32 |
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)) { } |