Commit 3c9a5e67 authored by Armando Miraglia's avatar Armando Miraglia Committed by Commit Bot

[getUserMedia] Fix reconfig when requests includes audio and video.

BUG=796964

Change-Id: I69cd354a43b51639234ae5e6b3aa15cc646b022d
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1841431Reviewed-by: default avatarGuido Urdaneta <guidou@chromium.org>
Commit-Queue: Guido Urdaneta <guidou@chromium.org>
Cr-Commit-Position: refs/heads/master@{#702903}
parent acdbed99
...@@ -793,6 +793,15 @@ IN_PROC_BROWSER_TEST_P(WebRtcGetUserMediaBrowserTest, ...@@ -793,6 +793,15 @@ IN_PROC_BROWSER_TEST_P(WebRtcGetUserMediaBrowserTest,
ExecuteJavascriptAndWaitForOk("getUserMediaEchoCancellationOnAndOff()"); ExecuteJavascriptAndWaitForOk("getUserMediaEchoCancellationOnAndOff()");
} }
IN_PROC_BROWSER_TEST_P(WebRtcGetUserMediaBrowserTest,
GetUserMediaEchoCancellationOnAndOffAndVideo) {
ASSERT_TRUE(embedded_test_server()->Start());
GURL url(embedded_test_server()->GetURL("/media/getusermedia.html"));
EXPECT_TRUE(NavigateToURL(shell(), url));
ExecuteJavascriptAndWaitForOk(
"getUserMediaEchoCancellationOnAndOffAndVideo()");
}
IN_PROC_BROWSER_TEST_P(WebRtcGetUserMediaBrowserTest, IN_PROC_BROWSER_TEST_P(WebRtcGetUserMediaBrowserTest,
GetAudioStreamAndCheckMutingInitiallyUnmuted) { GetAudioStreamAndCheckMutingInitiallyUnmuted) {
// Muting tests do not work with the out-of-process audio service. // Muting tests do not work with the out-of-process audio service.
......
...@@ -871,6 +871,33 @@ ...@@ -871,6 +871,33 @@
} }
} }
async function getUserMediaEchoCancellationOnAndOffAndVideo() {
try {
var streams;
streams = await navigator.mediaDevices.getUserMedia({
video: true,
audio: {
deviceId: {exact: "default"},
echoCancellation: {exact: true}
}
});
assertTrue(streams.getAudioTracks()[0].getSettings().echoCancellation);
streams = await navigator.mediaDevices.getUserMedia({
video: true,
audio: {
deviceId: {exact: "default"},
echoCancellation: {exact: false}
}
});
assertFalse(streams.getAudioTracks()[0].getSettings().echoCancellation);
reportTestSuccess();
} catch(err) {
failTest('getUserMedia() failed, error: ' + err.message);
}
}
var resolveTrackEndedAfterServiceCrash; var resolveTrackEndedAfterServiceCrash;
var trackEndedAfterServiceCrash = new Promise(function(resolve, reject) { var trackEndedAfterServiceCrash = new Promise(function(resolve, reject) {
resolveTrackEndedAfterServiceCrash = resolve; resolveTrackEndedAfterServiceCrash = resolve;
......
...@@ -744,7 +744,17 @@ void UserMediaProcessor::SelectVideoDeviceSettings( ...@@ -744,7 +744,17 @@ void UserMediaProcessor::SelectVideoDeviceSettings(
settings.device_id(); settings.device_id();
current_request_info_->SetVideoCaptureSettings( current_request_info_->SetVideoCaptureSettings(
settings, false /* is_content_capture */); settings, false /* is_content_capture */);
GenerateStreamForCurrentRequestInfo();
if (current_request_info_->web_request().Audio()) {
base::Optional<base::UnguessableToken> audio_session_id =
DetermineExistingAudioSessionId();
GenerateStreamForCurrentRequestInfo(
audio_session_id, audio_session_id.has_value()
? StreamSelectionStrategy::SEARCH_BY_SESSION_ID
: StreamSelectionStrategy::FORCE_NEW_STREAM);
} else {
GenerateStreamForCurrentRequestInfo();
}
} }
void UserMediaProcessor::SelectVideoContentSettings() { void UserMediaProcessor::SelectVideoContentSettings() {
......
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