Changeset 220472 in webkit


Ignore:
Timestamp:
Aug 9, 2017 12:13:51 PM (7 years ago)
Author:
commit-queue@webkit.org
Message:

Old subtitle track is not deleted on 'src' attribute change event
https://bugs.webkit.org/show_bug.cgi?id=175031

Patch by Kirill Ovchinnikov <kirill.ovchinnikov@lge.com> on 2017-08-09
Reviewed by Eric Carlson.

Source/WebCore:

Test: media/track/text-track-src-change.html

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::textTrackReadyStateChanged):

  • html/HTMLTrackElement.cpp:

(WebCore::HTMLTrackElement::loadTimerFired):

  • html/shadow/MediaControls.cpp:

(WebCore::MediaControls::clearTextDisplayContainer):

  • html/shadow/MediaControls.h:

LayoutTests:

  • media/track/text-track-src-change-expected.txt: Added.
  • media/track/text-track-src-change.html: Added.
Location:
trunk
Files:
2 added
6 edited

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/ChangeLog

    r220463 r220472  
     12017-08-09  Kirill Ovchinnikov  <kirill.ovchinnikov@lge.com>
     2
     3        Old subtitle track is not deleted on 'src' attribute change event
     4        https://bugs.webkit.org/show_bug.cgi?id=175031
     5
     6        Reviewed by Eric Carlson.
     7
     8        * media/track/text-track-src-change-expected.txt: Added.
     9        * media/track/text-track-src-change.html: Added.
     10
    1112017-08-09  Nan Wang  <n_wang@apple.com>
    212
  • trunk/Source/WebCore/ChangeLog

    r220465 r220472  
     12017-08-09  Kirill Ovchinnikov  <kirill.ovchinnikov@lge.com>
     2
     3        Old subtitle track is not deleted on 'src' attribute change event
     4        https://bugs.webkit.org/show_bug.cgi?id=175031
     5
     6        Reviewed by Eric Carlson.
     7
     8        Test: media/track/text-track-src-change.html
     9
     10        * html/HTMLMediaElement.cpp:
     11        (WebCore::HTMLMediaElement::textTrackReadyStateChanged):
     12        * html/HTMLTrackElement.cpp:
     13        (WebCore::HTMLTrackElement::loadTimerFired):
     14        * html/shadow/MediaControls.cpp:
     15        (WebCore::MediaControls::clearTextDisplayContainer):
     16        * html/shadow/MediaControls.h:
     17
    1182017-08-09  Ryan Haddad  <ryanhaddad@apple.com>
    219
  • trunk/Source/WebCore/html/HTMLMediaElement.cpp

    r220414 r220472  
    18561856void HTMLMediaElement::textTrackReadyStateChanged(TextTrack* track)
    18571857{
     1858    if (track->readinessState() != TextTrack::Loading
     1859        && track->mode() != TextTrack::Mode::Disabled) {
     1860        // The display trees exist as long as the track is active, in this case,
     1861        // and if the same track is loaded again (for example if the src attribute was changed),
     1862        // cues can be accumulated with the old ones, that's why they needs to be flushed
     1863        if (hasMediaControls())
     1864            mediaControls()->clearTextDisplayContainer();
     1865        updateTextTrackDisplay();
     1866    }
    18581867    if (m_player && m_textTracksWhenResourceSelectionBegan.contains(track)) {
    18591868        if (track->readinessState() != TextTrack::Loading)
  • trunk/Source/WebCore/html/HTMLTrackElement.cpp

    r219237 r220472  
    203203    }
    204204
     205    // When src attribute is changed we need to flush all collected track data
     206    if (m_track)
     207        m_track->removeAllCues();
     208
    205209    track().scheduleLoad(url);
    206210}
  • trunk/Source/WebCore/html/shadow/MediaControls.cpp

    r218748 r220472  
    413413}
    414414
     415void MediaControls::clearTextDisplayContainer()
     416{
     417    if (m_textDisplayContainer)
     418        m_textDisplayContainer->removeChildren();
     419}
     420
    415421#endif
    416422
  • trunk/Source/WebCore/html/shadow/MediaControls.h

    r218748 r220472  
    102102    virtual void updateTextTrackDisplay();
    103103    virtual void textTrackPreferencesChanged();
     104    virtual void clearTextDisplayContainer();
    104105#endif
    105106
Note: See TracChangeset for help on using the changeset viewer.