| Index: Source/core/html/track/VideoTrack.cpp
 | 
| diff --git a/Source/core/html/track/VideoTrack.cpp b/Source/core/html/track/VideoTrack.cpp
 | 
| new file mode 100644
 | 
| index 0000000000000000000000000000000000000000..75dba4b198f74fd672cc5e9c903d1bf4f00de3bd
 | 
| --- /dev/null
 | 
| +++ b/Source/core/html/track/VideoTrack.cpp
 | 
| @@ -0,0 +1,89 @@
 | 
| +// Copyright 2014 The Chromium Authors. All rights reserved.
 | 
| +// Use of this source code is governed by a BSD-style license that can be
 | 
| +// found in the LICENSE file.
 | 
| +
 | 
| +#include "config.h"
 | 
| +#include "core/html/track/VideoTrack.h"
 | 
| +
 | 
| +#include "core/html/HTMLMediaElement.h"
 | 
| +
 | 
| +namespace WebCore {
 | 
| +
 | 
| +VideoTrack::VideoTrack(HTMLMediaElement* mediaElement, const String& id, const AtomicString& kind, const AtomicString& label, const AtomicString& language)
 | 
| +    : TrackBase(TrackBase::VideoTrack, label, language, id)
 | 
| +    , m_selected(false)
 | 
| +{
 | 
| +    ASSERT(mediaElement);
 | 
| +    ASSERT(!id.isEmpty());
 | 
| +
 | 
| +    ScriptWrappable::init(this);
 | 
| +    setKind(kind);
 | 
| +    setMediaElement(mediaElement);
 | 
| +}
 | 
| +
 | 
| +VideoTrack::~VideoTrack()
 | 
| +{
 | 
| +}
 | 
| +
 | 
| +void VideoTrack::setSelected(bool selected)
 | 
| +{
 | 
| +    if (selected == m_selected)
 | 
| +        return;
 | 
| +
 | 
| +    m_selected = selected;
 | 
| +    if (mediaElement())
 | 
| +        mediaElement()->selectedVideoTrackChanged(m_selected ? id() : emptyAtom);
 | 
| +}
 | 
| +
 | 
| +const AtomicString& VideoTrack::alternativeKeyword()
 | 
| +{
 | 
| +    DEFINE_STATIC_LOCAL(const AtomicString, keyword, ("alternative", AtomicString::ConstructFromLiteral));
 | 
| +    return keyword;
 | 
| +}
 | 
| +
 | 
| +const AtomicString& VideoTrack::captionsKeyword()
 | 
| +{
 | 
| +    DEFINE_STATIC_LOCAL(const AtomicString, keyword, ("captions", AtomicString::ConstructFromLiteral));
 | 
| +    return keyword;
 | 
| +}
 | 
| +
 | 
| +const AtomicString& VideoTrack::mainKeyword()
 | 
| +{
 | 
| +    DEFINE_STATIC_LOCAL(const AtomicString, keyword, ("main", AtomicString::ConstructFromLiteral));
 | 
| +    return keyword;
 | 
| +}
 | 
| +
 | 
| +const AtomicString& VideoTrack::signKeyword()
 | 
| +{
 | 
| +    DEFINE_STATIC_LOCAL(const AtomicString, keyword, ("sign", AtomicString::ConstructFromLiteral));
 | 
| +    return keyword;
 | 
| +}
 | 
| +
 | 
| +const AtomicString& VideoTrack::subtitlesKeyword()
 | 
| +{
 | 
| +    DEFINE_STATIC_LOCAL(const AtomicString, keyword, ("subtitles", AtomicString::ConstructFromLiteral));
 | 
| +    return keyword;
 | 
| +}
 | 
| +
 | 
| +const AtomicString& VideoTrack::commentaryKeyword()
 | 
| +{
 | 
| +    DEFINE_STATIC_LOCAL(const AtomicString, keyword, ("commentary", AtomicString::ConstructFromLiteral));
 | 
| +    return keyword;
 | 
| +}
 | 
| +
 | 
| +bool VideoTrack::isValidKind(const AtomicString& kind) const
 | 
| +{
 | 
| +    return (kind == alternativeKeyword())
 | 
| +        || (kind == captionsKeyword())
 | 
| +        || (kind == mainKeyword())
 | 
| +        || (kind == signKeyword())
 | 
| +        || (kind == subtitlesKeyword())
 | 
| +        || (kind == commentaryKeyword());
 | 
| +}
 | 
| +
 | 
| +AtomicString VideoTrack::defaultKind() const
 | 
| +{
 | 
| +    return emptyAtom;
 | 
| +}
 | 
| +
 | 
| +}
 | 
| 
 |