Changeset 251460 in webkit


Ignore:
Timestamp:
Oct 22, 2019 2:49:22 PM (4 years ago)
Author:
cturner@igalia.com
Message:

media/W3C/video/networkState/networkState_during_progress.html is flaky
https://bugs.webkit.org/show_bug.cgi?id=76280

Reviewed by Eric Carlson.

The onprogress event must be received when networkState is
NETWORK_LOADING, make sure in the transition from loading to idle
that the progress event is fired synchronously, so that it is
received before the networkState changes to NETWORK_IDLE.

Source/WebCore:

Tested by media/W3C/video/networkState/networkState_during_progress.html

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::changeNetworkStateFromLoadingToIdle):

LayoutTests:

  • TestExpectations:
  • platform/gtk/TestExpectations:
  • platform/mac/TestExpectations:
  • platform/win/TestExpectations:
Location:
trunk
Files:
7 edited

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/ChangeLog

    r251449 r251460  
     12019-10-22  Charlie Turner  <cturner@igalia.com>
     2
     3        media/W3C/video/networkState/networkState_during_progress.html is flaky
     4        https://bugs.webkit.org/show_bug.cgi?id=76280
     5
     6        Reviewed by Eric Carlson.
     7
     8        The onprogress event must be received when networkState is
     9        NETWORK_LOADING, make sure in the transition from loading to idle
     10        that the progress event is fired synchronously, so that it is
     11        received before the networkState changes to NETWORK_IDLE.
     12
     13        * TestExpectations:
     14        * platform/gtk/TestExpectations:
     15        * platform/mac/TestExpectations:
     16        * platform/win/TestExpectations:
     17
    1182019-10-22  Russell Epstein  <repstein@apple.com>
    219
  • trunk/LayoutTests/TestExpectations

    r251437 r251460  
    831831webkit.org/b/139862 editing/spelling/editing-multiple-words-with-markers.html [ Timeout Pass ]
    832832webkit.org/b/139903 editing/spelling/grammar-paste.html [ Timeout Pass ]
    833 
    834 # media/W3C/video/networkState/networkState_during_progress.html is flaky
    835 webkit.org/b/76280 media/W3C/video/networkState/networkState_during_progress.html [ Pass Failure ]
    836833
    837834# This test will run slowly in debug mode, but is plenty fast in release.
  • trunk/LayoutTests/platform/gtk/TestExpectations

    r251431 r251460  
    15671567webkit.org/b/133001 fast/workers/worker-context-gc.html [ Pass Timeout ]
    15681568
    1569 webkit.org/b/133865 media/W3C/video/networkState/networkState_during_progress.html [ Failure Pass ]
    1570 
    15711569webkit.org/b/133869 media/video-seek-after-end.html [ Failure Pass ]
    15721570
  • trunk/LayoutTests/platform/mac/TestExpectations

    r251405 r251460  
    782782webkit.org/b/34331 http/tests/media/video-referer.html [ Pass Timeout ]
    783783webkit.org/b/35297 media/video-display-aspect-ratio.html [ Pass Failure ]
    784 webkit.org/b/82976 media/W3C/video/networkState/networkState_during_progress.html [ Pass Failure ]
    785784webkit.org/b/85525 media/video-played-reset.html [ Pass Failure ]
    786785webkit.org/b/112659 media/video-playing-and-pause.html [ Failure Timeout ]
  • trunk/LayoutTests/platform/win/TestExpectations

    r251377 r251460  
    897897media/encrypted-media/encrypted-media-not-loaded.html [ Skip ] # [ WontFix ]
    898898media/encrypted-media/encrypted-media-syntax.html [ Skip ] # [ WontFix ]
    899 
    900 webkit.org/b/103442 media/W3C/video/networkState/networkState_during_progress.html [ Skip ]
    901899
    902900# No CORS support for media elements is implemented yet.
  • trunk/Source/WebCore/ChangeLog

    r251458 r251460  
     12019-10-22  Charlie Turner  <cturner@igalia.com>
     2
     3        media/W3C/video/networkState/networkState_during_progress.html is flaky
     4        https://bugs.webkit.org/show_bug.cgi?id=76280
     5
     6        Reviewed by Eric Carlson.
     7
     8        The onprogress event must be received when networkState is
     9        NETWORK_LOADING, make sure in the transition from loading to idle
     10        that the progress event is fired synchronously, so that it is
     11        received before the networkState changes to NETWORK_IDLE.
     12
     13        Tested by media/W3C/video/networkState/networkState_during_progress.html
     14
     15        * html/HTMLMediaElement.cpp:
     16        (WebCore::HTMLMediaElement::changeNetworkStateFromLoadingToIdle):
     17
    1182019-10-22  Peng Liu  <peng.liu6@apple.com>
    219
  • trunk/Source/WebCore/html/HTMLMediaElement.cpp

    r251425 r251460  
    23712371        mediaControls()->bufferingProgressed();
    23722372
    2373     // Schedule one last progress event so we guarantee that at least one is fired
    2374     // for files that load very quickly.
    2375     scheduleEvent(eventNames().progressEvent);
     2373    // Schedule one last *synchronous* progress event so we guarantee
     2374    // that at least one is fired for files that load very
     2375    // quickly. This must be synchronous since it's very easy for the
     2376    // async queue to dispatch this to JS after we set m_networkState
     2377    // to IDLE below, which breaks the invariant of onprogress
     2378    // happening during NETWORK_LOADING.
     2379    dispatchEvent(Event::create(eventNames().progressEvent, Event::CanBubble::No, Event::IsCancelable::Yes));
     2380
     2381    m_networkState = NETWORK_IDLE;
    23762382    scheduleEvent(eventNames().suspendEvent);
    2377     m_networkState = NETWORK_IDLE;
    23782383}
    23792384
Note: See TracChangeset for help on using the changeset viewer.