Title: [210730] trunk
Revision
210730
Author
eric.carl...@apple.com
Date
2017-01-13 06:26:17 -0800 (Fri, 13 Jan 2017)

Log Message

REGRESSION (r210621): [mac-wk2] LayoutTest fast/mediastream/MediaStream-video-element-video-tracks-disabled-then-enabled.html timing out
https://bugs.webkit.org/show_bug.cgi?id=166980
Source/WebCore:


Unreviewed, fix test broken by r210621.

No new tests, updated fast/mediastream/MediaStream-video-element-video-tracks-disabled-then-enabled.html
and results.

* platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.mm:
(-[WebAVSampleBufferStatusChangeListener observeValueForKeyPath:ofObject:change:context:]):
  Drive-by fix: null-check parent.
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::layerStatusDidChange): Do nothing if the layer
  has changed since the KVO notification.

LayoutTests:

        
Unreviewed, fix test broken by r210621.

* fast/mediastream/MediaStream-video-element-video-tracks-disabled-then-enabled-expected.txt:
* fast/mediastream/MediaStream-video-element-video-tracks-disabled-then-enabled.html:
* platform/mac-wk2/TestExpectations: Un-skip fixed test.

Modified Paths

Diff

Modified: trunk/LayoutTests/ChangeLog (210729 => 210730)


--- trunk/LayoutTests/ChangeLog	2017-01-13 08:24:54 UTC (rev 210729)
+++ trunk/LayoutTests/ChangeLog	2017-01-13 14:26:17 UTC (rev 210730)
@@ -1,3 +1,14 @@
+2017-01-13  Eric Carlson  <eric.carl...@apple.com>
+
+        REGRESSION (r210621): [mac-wk2] LayoutTest fast/mediastream/MediaStream-video-element-video-tracks-disabled-then-enabled.html timing out
+        https://bugs.webkit.org/show_bug.cgi?id=166980
+        
+        Unreviewed, fix test broken by r210621.
+
+        * fast/mediastream/MediaStream-video-element-video-tracks-disabled-then-enabled-expected.txt:
+        * fast/mediastream/MediaStream-video-element-video-tracks-disabled-then-enabled.html:
+        * platform/mac-wk2/TestExpectations: Un-skip fixed test.
+
 2017-01-12  Gyuyoung Kim  <gyuyoung....@webkit.org>
 
         [EFL] Skip to test imported/w3c/web-platform-tests

Modified: trunk/LayoutTests/fast/mediastream/MediaStream-video-element-video-tracks-disabled-then-enabled-expected.txt (210729 => 210730)


--- trunk/LayoutTests/fast/mediastream/MediaStream-video-element-video-tracks-disabled-then-enabled-expected.txt	2017-01-13 08:24:54 UTC (rev 210729)
+++ trunk/LayoutTests/fast/mediastream/MediaStream-video-element-video-tracks-disabled-then-enabled-expected.txt	2017-01-13 14:26:17 UTC (rev 210730)
@@ -7,7 +7,7 @@
 video.src = ""
 
  === beginning round of pixel tests ===
-PASS pixel was white
+PASS pixel was black
 
  === all video tracks disabled ===
 PASS pixel was black.
@@ -19,7 +19,7 @@
 video.play()
 
  === beginning round of pixel tests ===
-PASS pixel was white
+PASS pixel was black
 
  === all video tracks disabled ===
 PASS pixel was black.

Modified: trunk/LayoutTests/fast/mediastream/MediaStream-video-element-video-tracks-disabled-then-enabled.html (210729 => 210730)


--- trunk/LayoutTests/fast/mediastream/MediaStream-video-element-video-tracks-disabled-then-enabled.html	2017-01-13 08:24:54 UTC (rev 210729)
+++ trunk/LayoutTests/fast/mediastream/MediaStream-video-element-video-tracks-disabled-then-enabled.html	2017-01-13 14:26:17 UTC (rev 210730)
@@ -14,6 +14,7 @@
     let context;
     let mediaStream;
     let video;
+    let havePlayed = false;
     
     let buffer;
 
@@ -57,6 +58,7 @@
             evalAndLog('video.play()');
             beginTestRound();
         } else
+            video.pause();
             finishJSTest();
     }
 
@@ -81,7 +83,7 @@
         context.drawImage(video, 0, 0, canvas.width, canvas.height);
         buffer = context.getImageData(30, 242, 1, 1).data;
 
-        if (mediaStream.getVideoTracks()[0].enabled)
+        if (mediaStream.getVideoTracks()[0].enabled && havePlayed)
             return isPixelWhite(buffer);
         else
             return isPixelBlack(buffer);
@@ -100,7 +102,7 @@
     function beginTestRound()
     {
         debug('<br> === beginning round of pixel tests ===');
-        attempt(1, checkPixels, disableAllTracks, 'pixel was white');
+        attempt(1, checkPixels, disableAllTracks, 'pixel was black');
     }
 
     function canplay()

Modified: trunk/LayoutTests/platform/mac-wk2/TestExpectations (210729 => 210730)


--- trunk/LayoutTests/platform/mac-wk2/TestExpectations	2017-01-13 08:24:54 UTC (rev 210729)
+++ trunk/LayoutTests/platform/mac-wk2/TestExpectations	2017-01-13 14:26:17 UTC (rev 210730)
@@ -611,5 +611,3 @@
 webkit.org/b/166765 [ Debug ] http/tests/pointer-lock/iframe-sandboxed-nested-allow-pointer-lock.html [ Crash ]
 webkit.org/b/166765 [ Debug ] http/tests/pointer-lock/pointerlockelement-same-origin.html [ Crash ]
 webkit.org/b/166765 [ Debug ] pointer-lock/lock-lost-on-alert.html [ Crash ]
-
-webkit.org/b/166980 fast/mediastream/MediaStream-video-element-video-tracks-disabled-then-enabled.html [ Timeout ]

Modified: trunk/Source/WebCore/ChangeLog (210729 => 210730)


--- trunk/Source/WebCore/ChangeLog	2017-01-13 08:24:54 UTC (rev 210729)
+++ trunk/Source/WebCore/ChangeLog	2017-01-13 14:26:17 UTC (rev 210730)
@@ -1,3 +1,19 @@
+2017-01-13  Eric Carlson  <eric.carl...@apple.com>
+
+        REGRESSION (r210621): [mac-wk2] LayoutTest fast/mediastream/MediaStream-video-element-video-tracks-disabled-then-enabled.html timing out
+        https://bugs.webkit.org/show_bug.cgi?id=166980
+
+        Unreviewed, fix test broken by r210621.
+
+        No new tests, updated fast/mediastream/MediaStream-video-element-video-tracks-disabled-then-enabled.html
+        and results.
+
+        * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.mm:
+        (-[WebAVSampleBufferStatusChangeListener observeValueForKeyPath:ofObject:change:context:]):
+          Drive-by fix: null-check parent.
+        (WebCore::MediaPlayerPrivateMediaStreamAVFObjC::layerStatusDidChange): Do nothing if the layer
+          has changed since the KVO notification.
+
 2017-01-13  Carlos Garcia Campos  <cgar...@igalia.com>
 
         [SOUP] Simplify cookie storage handling

Modified: trunk/Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.mm (210729 => 210730)


--- trunk/Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.mm	2017-01-13 08:24:54 UTC (rev 210729)
+++ trunk/Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.mm	2017-01-13 14:26:17 UTC (rev 210730)
@@ -161,6 +161,9 @@
         ASSERT([keyPath isEqualToString:@"status"]);
 
         callOnMainThread([protectedSelf = WTFMove(protectedSelf), layer = WTFMove(layer), status = WTFMove(status)] {
+            if (!protectedSelf->_parent)
+                return;
+
             protectedSelf->_parent->layerStatusDidChange(layer.get(), status.get());
         });
 
@@ -172,6 +175,9 @@
         ASSERT([keyPath isEqualToString:@"status"]);
 
         callOnMainThread([protectedSelf = WTFMove(protectedSelf), renderer = WTFMove(renderer), status = WTFMove(status)] {
+            if (!protectedSelf->_parent)
+                return;
+
             protectedSelf->_parent->rendererStatusDidChange(renderer.get(), status.get());
         });
     } else
@@ -492,10 +498,15 @@
 
 void MediaPlayerPrivateMediaStreamAVFObjC::layerStatusDidChange(AVSampleBufferDisplayLayer* layer, NSNumber* status)
 {
-    ASSERT_UNUSED(layer, layer == m_sampleBufferDisplayLayer);
-    ASSERT(m_activeVideoTrack);
-    if (status.integerValue == AVQueuedSampleBufferRenderingStatusRendering)
-        m_videoTrackMap.get(m_activeVideoTrack->id())->setTimelineOffset(MediaTime::invalidTime());
+    if (status.integerValue != AVQueuedSampleBufferRenderingStatusRendering)
+        return;
+
+    if (layer != m_sampleBufferDisplayLayer || !m_activeVideoTrack)
+        return;
+
+    auto track = m_videoTrackMap.get(m_activeVideoTrack->id());
+    if (track)
+        track->setTimelineOffset(MediaTime::invalidTime());
 }
 
 void MediaPlayerPrivateMediaStreamAVFObjC::flushRenderers()
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to