Title: [273853] trunk/LayoutTests
Revision
273853
Author
peng.l...@apple.com
Date
2021-03-03 15:54:50 -0800 (Wed, 03 Mar 2021)

Log Message

[GPUP] Two tests related to media element state are flaky when media in GPU Process is enabled
https://bugs.webkit.org/show_bug.cgi?id=221688

Reviewed by Jer Noble.

This patch fixes two flaky tests by updating the expected value of a media element's "networkState"
in a "loadstart" event handler.

A video/audio element's network state may have changed from LOADING to IDLE before the "loadstart"
event handler executes. That will happen when the media player notifies the element with a network
state change (by calling HTMLMediaElement::setNetworkState()) from LOADING to LOADED quickly.
The code snippet is below:

```
void HTMLMediaElement::setNetworkState(MediaPlayer::NetworkState state)
{
    ...
    if (state == MediaPlayer::NetworkState::Loaded) {
        if (m_networkState != NETWORK_IDLE)
            changeNetworkStateFromLoadingToIdle();
        m_completelyLoaded = true;
    }
}
```

* media/W3C/audio/networkState/networkState_during_loadstart-expected.txt:
* media/W3C/audio/networkState/networkState_during_loadstart.html:
* media/W3C/video/networkState/networkState_during_loadstart-expected.txt:
* media/W3C/video/networkState/networkState_during_loadstart.html:
* platform/mac/TestExpectations:
* platform/wk2/TestExpectations:

Modified Paths

Diff

Modified: trunk/LayoutTests/ChangeLog (273852 => 273853)


--- trunk/LayoutTests/ChangeLog	2021-03-03 23:46:37 UTC (rev 273852)
+++ trunk/LayoutTests/ChangeLog	2021-03-03 23:54:50 UTC (rev 273853)
@@ -1,3 +1,37 @@
+2021-03-03  Peng Liu  <peng.l...@apple.com>
+
+        [GPUP] Two tests related to media element state are flaky when media in GPU Process is enabled
+        https://bugs.webkit.org/show_bug.cgi?id=221688
+
+        Reviewed by Jer Noble.
+
+        This patch fixes two flaky tests by updating the expected value of a media element's "networkState"
+        in a "loadstart" event handler.
+
+        A video/audio element's network state may have changed from LOADING to IDLE before the "loadstart"
+        event handler executes. That will happen when the media player notifies the element with a network
+        state change (by calling HTMLMediaElement::setNetworkState()) from LOADING to LOADED quickly.
+        The code snippet is below:
+
+        ```
+        void HTMLMediaElement::setNetworkState(MediaPlayer::NetworkState state)
+        {
+            ...
+            if (state == MediaPlayer::NetworkState::Loaded) {
+                if (m_networkState != NETWORK_IDLE)
+                    changeNetworkStateFromLoadingToIdle();
+                m_completelyLoaded = true;
+            }
+        }
+        ```
+
+        * media/W3C/audio/networkState/networkState_during_loadstart-expected.txt:
+        * media/W3C/audio/networkState/networkState_during_loadstart.html:
+        * media/W3C/video/networkState/networkState_during_loadstart-expected.txt:
+        * media/W3C/video/networkState/networkState_during_loadstart.html:
+        * platform/mac/TestExpectations:
+        * platform/wk2/TestExpectations:
+
 2021-03-03  Amir Mark Jr  <amir_m...@apple.com>
 
         [BigSur WK1 Release] media/video-aspect-ratio.html is a flakey timeout

Modified: trunk/LayoutTests/media/W3C/audio/networkState/networkState_during_loadstart-expected.txt (273852 => 273853)


--- trunk/LayoutTests/media/W3C/audio/networkState/networkState_during_loadstart-expected.txt	2021-03-03 23:46:37 UTC (rev 273852)
+++ trunk/LayoutTests/media/W3C/audio/networkState/networkState_during_loadstart-expected.txt	2021-03-03 23:54:50 UTC (rev 273853)
@@ -3,7 +3,7 @@
 On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
 
 
-PASS "2" is "2"
+PASS true is true
 
 TEST COMPLETE
 spec reference

Modified: trunk/LayoutTests/media/W3C/audio/networkState/networkState_during_loadstart.html (273852 => 273853)


--- trunk/LayoutTests/media/W3C/audio/networkState/networkState_during_loadstart.html	2021-03-03 23:46:37 UTC (rev 273852)
+++ trunk/LayoutTests/media/W3C/audio/networkState/networkState_during_loadstart.html	2021-03-03 23:54:50 UTC (rev 273853)
@@ -15,8 +15,7 @@
 var a = document.getElementById("a");
 a.addEventListener("loadstart", function() {
   t.step(function() {
-   assert_equals(a.networkState,
-   a.NETWORK_LOADING);
+   assert_true(a.networkState == a.NETWORK_LOADING || a.networkState == a.NETWORK_IDLE);
   });
   t.done();
   a.pause();

Modified: trunk/LayoutTests/media/W3C/video/networkState/networkState_during_loadstart-expected.txt (273852 => 273853)


--- trunk/LayoutTests/media/W3C/video/networkState/networkState_during_loadstart-expected.txt	2021-03-03 23:46:37 UTC (rev 273852)
+++ trunk/LayoutTests/media/W3C/video/networkState/networkState_during_loadstart-expected.txt	2021-03-03 23:54:50 UTC (rev 273853)
@@ -3,7 +3,7 @@
 On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
 
 
-PASS "2" is "2"
+PASS true is true
 
 TEST COMPLETE
 spec reference

Modified: trunk/LayoutTests/media/W3C/video/networkState/networkState_during_loadstart.html (273852 => 273853)


--- trunk/LayoutTests/media/W3C/video/networkState/networkState_during_loadstart.html	2021-03-03 23:46:37 UTC (rev 273852)
+++ trunk/LayoutTests/media/W3C/video/networkState/networkState_during_loadstart.html	2021-03-03 23:54:50 UTC (rev 273853)
@@ -14,8 +14,7 @@
 var v = document.getElementById("v");
 v.addEventListener("loadstart", function() {
   t.step(function() {
-   assert_equals(v.networkState,
-   v.NETWORK_LOADING);
+   assert_true(v.networkState == v.NETWORK_LOADING || v.networkState == v.NETWORK_IDLE);
   });
   t.done();
   v.pause();

Modified: trunk/LayoutTests/platform/mac/TestExpectations (273852 => 273853)


--- trunk/LayoutTests/platform/mac/TestExpectations	2021-03-03 23:46:37 UTC (rev 273852)
+++ trunk/LayoutTests/platform/mac/TestExpectations	2021-03-03 23:54:50 UTC (rev 273853)
@@ -731,7 +731,6 @@
 webkit.org/b/122042 media/media-controller-playback.html [ Pass Timeout ]
 webkit.org/b/122126 media/click-volume-bar-not-pausing.html [ Pass Timeout ]
 webkit.org/b/122507 media/track/track-cue-rendering.html [ Pass Failure ]
-webkit.org/b/123010 media/W3C/audio/networkState/networkState_during_loadstart.html [ Pass Failure ]
 webkit.org/b/123099 media/media-controller-time-clamp.html [ Pass Timeout ]
 webkit.org/b/123522 media/track/track-in-band-legacy-api.html [ Pass Failure Crash ]
 webkit.org/b/131855 media/event-attributes.html [ Pass Failure Timeout ]

Modified: trunk/LayoutTests/platform/wk2/TestExpectations (273852 => 273853)


--- trunk/LayoutTests/platform/wk2/TestExpectations	2021-03-03 23:46:37 UTC (rev 273852)
+++ trunk/LayoutTests/platform/wk2/TestExpectations	2021-03-03 23:54:50 UTC (rev 273853)
@@ -219,10 +219,6 @@
 # webkit.org/b/221697
 imported/w3c/web-platform-tests/html/semantics/embedded-content/media-elements/event_progress_noautoplay.html [ Failure ]
 
-# webkit.org/b/221688
-media/W3C/video/networkState/networkState_during_loadstart.html [ Failure Pass ]
-media/W3C/video/readyState/readyState_during_loadedmetadata.html [ Crash Pass ]
-
 # webkit.org/b/221685
 media/modern-media-controls/controls-visibility-support/controls-visibility-support-fullscreen-on-video.html [ Timeout Failure Pass ]
 media/modern-media-controls/fullscreen-support/fullscreen-support-press.html [ Timeout Pass ]
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to