- 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()