Index: third_party/WebKit/Source/core/html/track/LoadableTextTrack.cpp |
diff --git a/third_party/WebKit/Source/core/html/track/LoadableTextTrack.cpp b/third_party/WebKit/Source/core/html/track/LoadableTextTrack.cpp |
index a8078faff80667687abc31e791aa07083cc835d5..c61c4fd9a6b425d5b5dad9a559e28296d4db28e3 100644 |
--- a/third_party/WebKit/Source/core/html/track/LoadableTextTrack.cpp |
+++ b/third_party/WebKit/Source/core/html/track/LoadableTextTrack.cpp |
@@ -35,7 +35,6 @@ |
: TextTrack(subtitlesKeyword(), emptyAtom, emptyAtom, emptyAtom, TrackElement) |
, m_trackElement(track) |
{ |
- DCHECK(m_trackElement); |
} |
LoadableTextTrack::~LoadableTextTrack() |
@@ -44,6 +43,7 @@ |
bool LoadableTextTrack::isDefault() const |
{ |
+ ASSERT(m_trackElement); |
return m_trackElement->fastHasAttribute(HTMLNames::defaultAttr); |
} |
@@ -62,15 +62,22 @@ |
} |
} |
-size_t LoadableTextTrack::trackElementIndex() const |
+size_t LoadableTextTrack::trackElementIndex() |
{ |
- // Count the number of preceding <track> elements (== the index.) |
+ ASSERT(m_trackElement); |
+ ASSERT(m_trackElement->parentNode()); |
+ |
size_t index = 0; |
- const HTMLTrackElement* track = m_trackElement; |
- while ((track = Traversal<HTMLTrackElement>::previousSibling(*track))) |
+ for (HTMLTrackElement* track = Traversal<HTMLTrackElement>::firstChild(*m_trackElement->parentNode()); track; track = Traversal<HTMLTrackElement>::nextSibling(*track)) { |
+ if (!track->parentNode()) |
+ continue; |
+ if (track == m_trackElement) |
+ return index; |
++index; |
+ } |
+ ASSERT_NOT_REACHED(); |
- return index; |
+ return 0; |
} |
DEFINE_TRACE(LoadableTextTrack) |