Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1077)

Unified Diff: content/renderer/media/user_media_client_impl.cc

Issue 2550493003: Add new device ID unit tests to UserMediaClientImpl. (Closed)
Patch Set: hta@'s comments Created 4 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: content/renderer/media/user_media_client_impl.cc
diff --git a/content/renderer/media/user_media_client_impl.cc b/content/renderer/media/user_media_client_impl.cc
index 2381c460580c126d7733acfb87bcaf6e1a154aa6..b7cccf798c82c70fe6efabcf384042b1a65fed5f 100644
--- a/content/renderer/media/user_media_client_impl.cc
+++ b/content/renderer/media/user_media_client_impl.cc
@@ -240,6 +240,13 @@ void UserMediaClientImpl::requestUserMedia(
// webGetUserMedia.
UpdateWebRTCMethodCount(WEBKIT_GET_USER_MEDIA);
DCHECK(CalledOnValidThread());
+ DCHECK(!user_media_request.isNull());
+ // ownerDocument may be null if we are in a test.
+ // In that case, it's OK to not check frame().
+ DCHECK(user_media_request.ownerDocument().isNull() ||
+ render_frame()->GetWebFrame() ==
+ static_cast<blink::WebFrame*>(
+ user_media_request.ownerDocument().frame()));
hbos_chromium 2016/12/05 16:30:31 I take it that this is still needed even though th
Guido Urdaneta 2016/12/05 17:23:52 For some definition of needed :) It doesn't seem t
if (RenderThreadImpl::current()) {
RenderThreadImpl::current()->peer_connection_tracker()->TrackGetUserMedia(
@@ -249,61 +256,41 @@ void UserMediaClientImpl::requestUserMedia(
int request_id = g_next_request_id++;
std::unique_ptr<StreamControls> controls = base::MakeUnique<StreamControls>();
- // |user_media_request| can't be mocked. So in order to test at all we check
- // if it isNull.
- // TODO(guidou): Remove this test-specific code path.
- if (user_media_request.isNull()) {
- // We are in a test.
- controls->audio.requested = true;
- controls->video.requested = true;
+ bool enable_automatic_output_device_selection = false;
+ bool request_audio_input_devices = false;
+ if (user_media_request.audio()) {
+ CopyConstraintsToTrackControls(user_media_request.audioConstraints(),
+ &controls->audio,
+ &request_audio_input_devices);
+ CopyHotwordAndLocalEchoToStreamControls(
+ user_media_request.audioConstraints(), controls.get());
+ // Check if this input device should be used to select a matching output
+ // device for audio rendering.
+ GetConstraintValueAsBoolean(
+ user_media_request.audioConstraints(),
+ &blink::WebMediaTrackConstraintSet::renderToAssociatedSink,
+ &enable_automatic_output_device_selection);
+ }
+ bool request_video_input_devices = false;
+ if (user_media_request.video()) {
+ CopyConstraintsToTrackControls(user_media_request.videoConstraints(),
+ &controls->video,
+ &request_video_input_devices);
+ }
+
+ url::Origin security_origin = user_media_request.getSecurityOrigin();
+ if (request_audio_input_devices || request_video_input_devices) {
+ GetMediaDevicesDispatcher()->EnumerateDevices(
+ request_audio_input_devices, request_video_input_devices,
+ false /* request_audio_output_devices */, security_origin,
+ base::Bind(&UserMediaClientImpl::SelectUserMediaDevice,
+ weak_factory_.GetWeakPtr(), request_id, user_media_request,
+ base::Passed(&controls),
+ enable_automatic_output_device_selection, security_origin));
+ } else {
FinalizeRequestUserMedia(
request_id, user_media_request, std::move(controls),
- false /* automatic_output_device_selection */, url::Origin());
- } else {
- // ownerDocument may be null if we are in a test.
- // In that case, it's OK to not check frame().
- DCHECK(user_media_request.ownerDocument().isNull() ||
- render_frame()->GetWebFrame() ==
- static_cast<blink::WebFrame*>(
- user_media_request.ownerDocument().frame()));
-
- bool enable_automatic_output_device_selection = false;
- bool request_audio_input_devices = false;
- if (user_media_request.audio()) {
- CopyConstraintsToTrackControls(user_media_request.audioConstraints(),
- &controls->audio,
- &request_audio_input_devices);
- CopyHotwordAndLocalEchoToStreamControls(
- user_media_request.audioConstraints(), controls.get());
- // Check if this input device should be used to select a matching output
- // device for audio rendering.
- GetConstraintValueAsBoolean(
- user_media_request.audioConstraints(),
- &blink::WebMediaTrackConstraintSet::renderToAssociatedSink,
- &enable_automatic_output_device_selection);
- }
- bool request_video_input_devices = false;
- if (user_media_request.video()) {
- CopyConstraintsToTrackControls(user_media_request.videoConstraints(),
- &controls->video,
- &request_video_input_devices);
- }
-
- url::Origin security_origin = user_media_request.getSecurityOrigin();
- if (request_audio_input_devices || request_video_input_devices) {
- GetMediaDevicesDispatcher()->EnumerateDevices(
- request_audio_input_devices, request_video_input_devices,
- false /* request_audio_output_devices */, security_origin,
- base::Bind(&UserMediaClientImpl::SelectUserMediaDevice,
- weak_factory_.GetWeakPtr(), request_id, user_media_request,
- base::Passed(&controls),
- enable_automatic_output_device_selection,
- security_origin));
- } else {
- FinalizeRequestUserMedia(
- request_id, user_media_request, std::move(controls),
- enable_automatic_output_device_selection, security_origin);
- }
+ enable_automatic_output_device_selection, security_origin);
}
}
@@ -445,29 +432,16 @@ void UserMediaClientImpl::OnStreamGenerated(
}
request_info->generated = true;
- // WebUserMediaRequest don't have an implementation in unit tests.
- // Therefore we need to check for isNull here and initialize the
- // constraints.
- blink::WebUserMediaRequest* request = &(request_info->request);
- blink::WebMediaConstraints audio_constraints;
- blink::WebMediaConstraints video_constraints;
- if (request->isNull()) {
- audio_constraints.initialize();
- video_constraints.initialize();
- } else {
- audio_constraints = request->audioConstraints();
- video_constraints = request->videoConstraints();
- }
-
+ DCHECK(!request_info->request.isNull());
blink::WebVector<blink::WebMediaStreamTrack> audio_track_vector(
audio_array.size());
- CreateAudioTracks(audio_array, audio_constraints, &audio_track_vector,
- request_info);
+ CreateAudioTracks(audio_array, request_info->request.audioConstraints(),
+ &audio_track_vector, request_info);
blink::WebVector<blink::WebMediaStreamTrack> video_track_vector(
video_array.size());
- CreateVideoTracks(video_array, video_constraints, &video_track_vector,
- request_info);
+ CreateVideoTracks(video_array, request_info->request.videoConstraints(),
+ &video_track_vector, request_info);
blink::WebString webkit_id = base::UTF8ToUTF16(label);
blink::WebMediaStream* web_stream = &(request_info->web_stream);

Powered by Google App Engine
This is Rietveld 408576698