Commit 447c696a authored by Florent Castelli's avatar Florent Castelli Committed by Commit Bot

Don't trigger end of track when starting a new disabled track

Fix reporting a size of 2x2 on the video element during the loading
phase.

Bug: 684288
Change-Id: Id4adceefaf4c3df57a1ba41fd285862d72792b1a
Reviewed-on: https://chromium-review.googlesource.com/806215
Commit-Queue: Florent Castelli <orphis@chromium.org>
Commit-Queue: Guido Urdaneta <guidou@chromium.org>
Reviewed-by: default avatarGuido Urdaneta <guidou@chromium.org>
Cr-Commit-Position: refs/heads/master@{#523152}
parent dcaadbb6
...@@ -791,4 +791,11 @@ IN_PROC_BROWSER_TEST_F(WebRtcGetUserMediaBrowserTest, ...@@ -791,4 +791,11 @@ IN_PROC_BROWSER_TEST_F(WebRtcGetUserMediaBrowserTest,
ExecuteJavascriptAndWaitForOk("concurrentGetUserMediaStop()"); ExecuteJavascriptAndWaitForOk("concurrentGetUserMediaStop()");
} }
IN_PROC_BROWSER_TEST_F(WebRtcGetUserMediaBrowserTest, DisabledTrackVideoSize) {
ASSERT_TRUE(embedded_test_server()->Start());
GURL url(embedded_test_server()->GetURL("/media/getusermedia.html"));
NavigateToURL(shell(), url);
ExecuteJavascriptAndWaitForOk("disabledTrackVideoSize()");
}
} // namespace content } // namespace content
...@@ -200,8 +200,7 @@ void MediaStreamVideoRendererSink::Start() { ...@@ -200,8 +200,7 @@ void MediaStreamVideoRendererSink::Start() {
true); true);
if (video_track_.Source().GetReadyState() == if (video_track_.Source().GetReadyState() ==
blink::WebMediaStreamSource::kReadyStateEnded || blink::WebMediaStreamSource::kReadyStateEnded) {
!video_track_.IsEnabled()) {
io_task_runner_->PostTask( io_task_runner_->PostTask(
FROM_HERE, base::BindOnce(&FrameDeliverer::RenderEndOfStream, FROM_HERE, base::BindOnce(&FrameDeliverer::RenderEndOfStream,
base::Unretained(frame_deliverer_.get()))); base::Unretained(frame_deliverer_.get())));
......
...@@ -795,6 +795,24 @@ ...@@ -795,6 +795,24 @@
}).catch(failTest); }).catch(failTest);
} }
} }
function disabledTrackVideoSize() {
var videoElement = $('local-view-1');
navigator.mediaDevices.getUserMedia({
audio: true,
video: { width: { exact: 320 }, height: { exact: 240 }}
}).then(stream => {
stream.getVideoTracks()[0].enabled = false;
videoElement.onloadedmetadata = () => {
assertEquals(320, videoElement.videoWidth);
assertEquals(240, videoElement.videoHeight);
reportTestSuccess();
};
videoElement.srcObject = stream;
}).catch(failTest);
}
</script> </script>
</head> </head>
<body> <body>
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment