| Index: Source/core/html/track/CueTimeline.cpp
|
| diff --git a/Source/core/html/track/CueTimeline.cpp b/Source/core/html/track/CueTimeline.cpp
|
| index 0a35f354c3131e2d80e711c9d0eb1a645eae79e0..141e1f3b9d5dcef5f218f1a92b54a74588494f6c 100644
|
| --- a/Source/core/html/track/CueTimeline.cpp
|
| +++ b/Source/core/html/track/CueTimeline.cpp
|
| @@ -26,16 +26,20 @@ CueTimeline::CueTimeline(HTMLMediaElement& mediaElement)
|
| void CueTimeline::addCues(TextTrack* track, const TextTrackCueList* cues)
|
| {
|
| ASSERT(track->mode() != TextTrack::disabledKeyword());
|
| -
|
| - TrackDisplayUpdateScope scope(*this);
|
| for (size_t i = 0; i < cues->length(); ++i)
|
| - addCue(cues->item(i)->track(), cues->item(i));
|
| + addCueInternal(cues->item(i));
|
| + updateActiveCues(mediaElement().currentTime());
|
| }
|
|
|
| void CueTimeline::addCue(TextTrack* track, PassRefPtrWillBeRawPtr<TextTrackCue> cue)
|
| {
|
| ASSERT(track->mode() != TextTrack::disabledKeyword());
|
| + addCueInternal(cue);
|
| + updateActiveCues(mediaElement().currentTime());
|
| +}
|
|
|
| +void CueTimeline::addCueInternal(PassRefPtrWillBeRawPtr<TextTrackCue> cue)
|
| +{
|
| // Negative duration cues need be treated in the interval tree as
|
| // zero-length cues.
|
| double endTime = std::max(cue->startTime(), cue->endTime());
|
| @@ -43,18 +47,23 @@ void CueTimeline::addCue(TextTrack* track, PassRefPtrWillBeRawPtr<TextTrackCue>
|
| CueInterval interval = m_cueTree.createInterval(cue->startTime(), endTime, cue.get());
|
| if (!m_cueTree.contains(interval))
|
| m_cueTree.add(interval);
|
| - updateActiveCues(mediaElement().currentTime());
|
| }
|
|
|
| void CueTimeline::removeCues(TextTrack*, const TextTrackCueList* cues)
|
| {
|
| - TrackDisplayUpdateScope scope(*this);
|
| for (size_t i = 0; i < cues->length(); ++i)
|
| - removeCue(cues->item(i)->track(), cues->item(i));
|
| + removeCueInternal(cues->item(i));
|
| + updateActiveCues(mediaElement().currentTime());
|
| }
|
|
|
| void CueTimeline::removeCue(TextTrack*, PassRefPtrWillBeRawPtr<TextTrackCue> cue)
|
| {
|
| + removeCueInternal(cue);
|
| + updateActiveCues(mediaElement().currentTime());
|
| +}
|
| +
|
| +void CueTimeline::removeCueInternal(PassRefPtrWillBeRawPtr<TextTrackCue> cue)
|
| +{
|
| // Negative duration cues need to be treated in the interval tree as
|
| // zero-length cues.
|
| double endTime = std::max(cue->startTime(), cue->endTime());
|
| @@ -72,7 +81,6 @@ void CueTimeline::removeCue(TextTrack*, PassRefPtrWillBeRawPtr<TextTrackCue> cue
|
| // removal shouldn't be done.
|
| cue->removeDisplayTree(TextTrackCue::DontNotifyRegion);
|
| }
|
| - updateActiveCues(mediaElement().currentTime());
|
| }
|
|
|
| static bool trackIndexCompare(TextTrack* a, TextTrack* b)
|
|
|