Skip to content
  • eric.carlson@apple.com's avatar
    Make TextTrackCue more mutable · ffedf376
    eric.carlson@apple.com authored
    https://bugs.webkit.org/show_bug.cgi?id=72555
    
    Reviewed by Anders Carlsson.
    
    Source/WebCore: 
    
    Test: media/track/track-cue-mutable.html
    
    * html/HTMLMediaElement.cpp:
    (WebCore::HTMLMediaElement::updateActiveTextTrackCues): Do nothing if the "ignore cue updates"
        flag is set
    (WebCore::HTMLMediaElement::textTrackAddCues): Block cue updates until all of the new cues have
        been added, then call updateActiveTextTrackCues so update the display if necessary.
    (WebCore::HTMLMediaElement::textTrackRemoveCues): Block cue updates until all of the new cues have
        been removed, then call updateActiveTextTrackCues so update the display if necessary.
    (WebCore::HTMLMediaElement::textTrackAddCue): Call updateActiveTextTrackCues so update the display if necessary.
    (WebCore::HTMLMediaElement::textTrackRemoveCue): Ditto.
    * html/HTMLMediaElement.h:
    (WebCore::HTMLMediaElement::ignoreTrackDisplayUpdateRequests):
    (WebCore::HTMLMediaElement::beginIgnoringTrackDisplayUpdateRequests):
    (WebCore::HTMLMediaElement::endIgnoringTrackDisplayUpdateRequests):
    
    * html/TextTrack.cpp:
    (WebCore::TextTrack::cueWillChange): New, remove the cue from the media element because its
        position in the interval tree is based on start and end times.
    (WebCore::TextTrack::cueDidChange): Add the cue to the media element.
    * html/TextTrack.h:
    
    * html/TextTrackCue.cpp:
    (WebCore::startKeyword): New, use a static String for the constant.
    (WebCore::middleKeyword): Ditto.
    (WebCore::endKeyword): Ditto.
    (WebCore::horizontalKeyword): Ditto.
    (WebCore::verticalKeyword): Ditto.
    (WebCore::verticallrKeyword): Ditto.
    (WebCore::TextTrackCue::cueWillChange): New, tell the track the cue is about to change.
    (WebCore::TextTrackCue::cueDidChange): New, tell the track the cue has changed.
    (WebCore::TextTrackCue::setId): New, attribute is mutable.
    (WebCore::TextTrackCue::setStartTime): Ditto.
    (WebCore::TextTrackCue::setEndTime): Ditto.
    (WebCore::TextTrackCue::setPauseOnExit): Ditto.
    (WebCore::TextTrackCue::direction): Ditto.
    (WebCore::TextTrackCue::setDirection): Ditto.
    (WebCore::TextTrackCue::setSnapToLines): Ditto.
    (WebCore::TextTrackCue::setLinePosition): Ditto.
    (WebCore::TextTrackCue::setTextPosition): Ditto.
    (WebCore::TextTrackCue::setSize): Ditto.
    (WebCore::TextTrackCue::alignment): Ditto.
    (WebCore::TextTrackCue::setAlignment): Ditto.
    (WebCore::TextTrackCue::parseSettings): Use the static strings.
    * html/TextTrackCue.h:
    (WebCore::TextTrackCue::id):
    (WebCore::TextTrackCue::startTime):
    (WebCore::TextTrackCue::endTime):
    (WebCore::TextTrackCue::pauseOnExit):
    * html/TextTrackCue.idl:
    
    LayoutTests: 
    
    * media/track/track-cue-mutable-expected.txt: Added.
    * media/track/track-cue-mutable.html: Added.
    
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@104327 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    ffedf376