diff options
Diffstat (limited to 'Source/WebCore/html/track/LoadableTextTrack.h')
-rw-r--r-- | Source/WebCore/html/track/LoadableTextTrack.h | 60 |
1 files changed, 28 insertions, 32 deletions
diff --git a/Source/WebCore/html/track/LoadableTextTrack.h b/Source/WebCore/html/track/LoadableTextTrack.h index 970c3322d..ba9c76fb2 100644 --- a/Source/WebCore/html/track/LoadableTextTrack.h +++ b/Source/WebCore/html/track/LoadableTextTrack.h @@ -1,5 +1,6 @@ /* * Copyright (C) 2011 Google Inc. All rights reserved. + * Copyright (C) 2011-2017 Apple Inc. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -10,10 +11,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,61 +24,56 @@ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#ifndef LoadableTextTrack_h -#define LoadableTextTrack_h +#pragma once #if ENABLE(VIDEO_TRACK) #include "TextTrack.h" #include "TextTrackLoader.h" -#include <wtf/Vector.h> namespace WebCore { class HTMLTrackElement; -class LoadableTextTrack; -class LoadableTextTrack : public TextTrack, private TextTrackLoaderClient { +class LoadableTextTrack final : public TextTrack, private TextTrackLoaderClient { public: - static PassRefPtr<LoadableTextTrack> create(HTMLTrackElement* track, const String& kind, const String& label, const String& language) + static Ref<LoadableTextTrack> create(HTMLTrackElement& track, const String& kind, const String& label, const String& language) { - return adoptRef(new LoadableTextTrack(track, kind, label, language)); + return adoptRef(*new LoadableTextTrack(track, kind, label, language)); } - virtual ~LoadableTextTrack(); void scheduleLoad(const URL&); - virtual void clearClient() override; - - virtual AtomicString id() const override; - size_t trackElementIndex(); - HTMLTrackElement* trackElement() { return m_trackElement; } - void setTrackElement(HTMLTrackElement*); - virtual Element* element() override; + HTMLTrackElement* trackElement() const { return m_trackElement; } + void clearElement() { m_trackElement = nullptr; } - virtual bool isDefault() const override { return m_isDefault; } - virtual void setIsDefault(bool isDefault) override { m_isDefault = isDefault; } + void setIsDefault(bool isDefault) final { m_isDefault = isDefault; } private: - // TextTrackLoaderClient - virtual void newCuesAvailable(TextTrackLoader*) override; - virtual void cueLoadingCompleted(TextTrackLoader*, bool loadingFailed) override; -#if ENABLE(WEBVTT_REGIONS) - virtual void newRegionsAvailable(TextTrackLoader*); -#endif + LoadableTextTrack(HTMLTrackElement&, const String& kind, const String& label, const String& language); + + void newCuesAvailable(TextTrackLoader*) final; + void cueLoadingCompleted(TextTrackLoader*, bool loadingFailed) final; + void newRegionsAvailable(TextTrackLoader*) final; - LoadableTextTrack(HTMLTrackElement*, const String& kind, const String& label, const String& language); + AtomicString id() const final; + bool isDefault() const final { return m_isDefault; } + Element* element() final; - void loadTimerFired(Timer<LoadableTextTrack>&); + void loadTimerFired(); HTMLTrackElement* m_trackElement; - Timer<LoadableTextTrack> m_loadTimer; - OwnPtr<TextTrackLoader> m_loader; + Timer m_loadTimer; + std::unique_ptr<TextTrackLoader> m_loader; URL m_url; - bool m_isDefault; + bool m_isDefault { false }; }; + } // namespace WebCore -#endif -#endif +SPECIALIZE_TYPE_TRAITS_BEGIN(WebCore::LoadableTextTrack) + static bool isType(const WebCore::TextTrack& track) { return track.trackType() == WebCore::TextTrack::TrackElement; } +SPECIALIZE_TYPE_TRAITS_END() + +#endif // ENABLE(VIDEO_TRACK) |