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