Changeset 200833 in webkit


Ignore:
Timestamp:
May 13, 2016, 3:39:45 AM (9 years ago)
Author:
Carlos Garcia Campos
Message:

Merge r200039 - Stop listening for "media can start" notifications when media player is cleared
https://bugs.webkit.org/show_bug.cgi?id=156985
<rdar://problem/23158505>

Reviewed by Jer Noble.

No new tests, I have not been able to create a test that reliably reproduces this.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::loadInternal): Add logging.
(WebCore::HTMLMediaElement::selectMediaResource): Assert and return early if there is

no media player.

(WebCore::HTMLMediaElement::clearMediaPlayer): Stop listening for can start notifications.
(WebCore::HTMLMediaElement::visibilityStateChanged): Add logging.
(WebCore::HTMLMediaElement::mediaCanStart): Ditto.

Location:
releases/WebKitGTK/webkit-2.12/Source/WebCore
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • releases/WebKitGTK/webkit-2.12/Source/WebCore/ChangeLog

    r200832 r200833  
     12016-04-25  Eric Carlson  <eric.carlson@apple.com>
     2
     3        Stop listening for "media can start" notifications when media player is cleared
     4        https://bugs.webkit.org/show_bug.cgi?id=156985
     5        <rdar://problem/23158505>
     6
     7        Reviewed by Jer Noble.
     8
     9        No new tests, I have not been able to create a test that reliably reproduces this.
     10
     11        * html/HTMLMediaElement.cpp:
     12        (WebCore::HTMLMediaElement::loadInternal): Add logging.
     13        (WebCore::HTMLMediaElement::selectMediaResource): Assert and return early if there is
     14          no media player.
     15        (WebCore::HTMLMediaElement::clearMediaPlayer): Stop listening for can start notifications.
     16        (WebCore::HTMLMediaElement::visibilityStateChanged): Add logging.
     17        (WebCore::HTMLMediaElement::mediaCanStart): Ditto.
     18
    1192016-04-25  Daniel Bates  <dabates@apple.com>
    220
  • releases/WebKitGTK/webkit-2.12/Source/WebCore/html/HTMLMediaElement.cpp

    r199461 r200833  
    11241124void HTMLMediaElement::loadInternal()
    11251125{
     1126    LOG(Media, "HTMLMediaElement::loadInternal(%p)", this);
     1127
    11261128    // Some of the code paths below this function dispatch the BeforeLoad event. This ASSERT helps
    11271129    // us catch those bugs more quickly without needing all the branches to align to actually
     
    11311133    // If we can't start a load right away, start it later.
    11321134    if (!m_mediaSession->pageAllowsDataLoading(*this)) {
     1135        LOG(Media, "HTMLMediaElement::loadInternal(%p) - not allowed to load in background, waiting", this);
    11331136        setShouldDelayLoadEvent(false);
    11341137        if (m_isWaitingUntilMediaCanStart)
    11351138            return;
     1139        m_isWaitingUntilMediaCanStart = true;
    11361140        document().addMediaCanStartListener(this);
    1137         m_isWaitingUntilMediaCanStart = true;
    11381141        return;
    11391142    }
     
    11701173{
    11711174    LOG(Media, "HTMLMediaElement::selectMediaResource(%p)", this);
     1175
     1176    ASSERT(m_player);
     1177    if (!m_player)
     1178        return;
    11721179
    11731180    enum Mode { attribute, children };
     
    49814988#endif
    49824989
     4990    if (m_isWaitingUntilMediaCanStart) {
     4991        m_isWaitingUntilMediaCanStart = false;
     4992        document().removeMediaCanStartListener(this);
     4993    }
     4994
    49834995    m_player = nullptr;
    49844996
     
    51205132void HTMLMediaElement::visibilityStateChanged()
    51215133{
    5122     LOG(Media, "HTMLMediaElement::visibilityStateChanged(%p)", this);
    51235134    m_elementIsHidden = document().hidden();
     5135    LOG(Media, "HTMLMediaElement::visibilityStateChanged(%p) - visible = %s", this, boolString(!m_elementIsHidden));
    51245136    updateSleepDisabling();
    51255137    m_mediaSession->visibilityChanged();
     
    55175529void HTMLMediaElement::mediaCanStart()
    55185530{
    5519     LOG(Media, "HTMLMediaElement::mediaCanStart(%p)", this);
     5531    LOG(Media, "HTMLMediaElement::mediaCanStart(%p) - m_isWaitingUntilMediaCanStart = %s, m_pausedInternal = %s",
     5532        this, boolString(m_isWaitingUntilMediaCanStart), boolString(m_pausedInternal) );
    55205533
    55215534    ASSERT(m_isWaitingUntilMediaCanStart || m_pausedInternal);
Note: See TracChangeset for help on using the changeset viewer.