Changeset 218268 in webkit


Ignore:
Timestamp:
Jun 14, 2017 10:32:48 AM (7 years ago)
Author:
jer.noble@apple.com
Message:

Flaky Test: media/media-source/media-source-unnecessary-seek-seeked.html
https://bugs.webkit.org/show_bug.cgi?id=173344

Reviewed by Eric Carlson.

Separate the concept of "the page has asked us to seek" from "we have asked the
media player to seek". When the media engine tells us its ready state has changed
after the page has requested a seek, but before the media element has asked its
player to perform the seek, we were previously firing a seeked event. Now we'll
check this new ivar and see that we aren't expecting a seek to finish yet.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::HTMLMediaElement):
(WebCore::HTMLMediaElement::setReadyState):
(WebCore::HTMLMediaElement::finishSeek):
(WebCore::HTMLMediaElement::mediaPlayerTimeChanged):

  • html/HTMLMediaElement.h:
Location:
trunk/Source/WebCore
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/ChangeLog

    r218264 r218268  
     12017-06-14  Jer Noble  <jer.noble@apple.com>
     2
     3        Flaky Test: media/media-source/media-source-unnecessary-seek-seeked.html
     4        https://bugs.webkit.org/show_bug.cgi?id=173344
     5
     6        Reviewed by Eric Carlson.
     7
     8        Separate the concept of "the page has asked us to seek" from "we have asked the
     9        media player to seek". When the media engine tells us its ready state has changed
     10        after the page has requested a seek, but before the media element has asked its
     11        player to perform the seek, we were previously firing a seeked event. Now we'll
     12        check this new ivar and see that we aren't expecting a seek to finish yet.
     13
     14        * html/HTMLMediaElement.cpp:
     15        (WebCore::HTMLMediaElement::HTMLMediaElement):
     16        (WebCore::HTMLMediaElement::setReadyState):
     17        (WebCore::HTMLMediaElement::finishSeek):
     18        (WebCore::HTMLMediaElement::mediaPlayerTimeChanged):
     19        * html/HTMLMediaElement.h:
     20
    1212017-06-14  Matt Lewis  <jlewis3@apple.com>
    222
  • trunk/Source/WebCore/html/HTMLMediaElement.cpp

    r218229 r218268  
    416416    , m_paused(true)
    417417    , m_seeking(false)
     418    , m_seekRequested(false)
    418419    , m_sentStalledEvent(false)
    419420    , m_sentEndEvent(false)
     
    23642365
    23652366        // 4.8.10.10 step 14 & 15.
    2366         if (!m_player->seeking() && m_readyState >= HAVE_CURRENT_DATA)
     2367        if (m_seekRequested && !m_player->seeking() && m_readyState >= HAVE_CURRENT_DATA)
    23672368            finishSeek();
    23682369    } else {
     
    27562757
    27572758    // 11 - Set the current playback position to the given new playback position
     2759    m_seekRequested = true;
    27582760    m_player->seekWithTolerance(time, negativeTolerance, positiveTolerance);
    27592761
     
    27662768{
    27672769    m_seeking = false;
     2770    m_seekRequested = false;
    27682771    m_pendingSeekType = NoSeek;
    27692772    invalidateCachedTime();
     
    44194422
    44204423    // 4.8.10.9 step 14 & 15.  Needed if no ReadyState change is associated with the seek.
    4421     if (m_seeking && m_readyState >= HAVE_CURRENT_DATA && !m_player->seeking())
     4424    if (m_seekRequested && m_readyState >= HAVE_CURRENT_DATA && !m_player->seeking())
    44224425        finishSeek();
    44234426   
  • trunk/Source/WebCore/html/HTMLMediaElement.h

    r218016 r218268  
    996996    bool m_paused : 1;
    997997    bool m_seeking : 1;
     998    bool m_seekRequested : 1;
    998999
    9991000    // data has not been loaded since sending a "stalled" event
Note: See TracChangeset for help on using the changeset viewer.