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

Unified Diff: components/test_runner/mock_web_user_media_client.cc

Issue 1371373002: Extend components/test_runner's generated WebMediaStream to have a ChromeMock VideoTrack and Source (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: mazzoni@ comments, web_view/test_runner build, rebase, cleaned up requestUserMedia() Created 5 years, 2 months 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: components/test_runner/mock_web_user_media_client.cc
diff --git a/components/test_runner/mock_web_user_media_client.cc b/components/test_runner/mock_web_user_media_client.cc
index f30fac9924beb9f87cb5df90cdd323c0e7a15871..f0fa659d2b4d648d9505e75ce5a61a4cba596b46 100644
--- a/components/test_runner/mock_web_user_media_client.cc
+++ b/components/test_runner/mock_web_user_media_client.cc
@@ -7,6 +7,7 @@
#include "base/logging.h"
#include "base/macros.h"
#include "components/test_runner/mock_constraints.h"
+#include "components/test_runner/renderer/mock_video_capturer_source.h"
#include "components/test_runner/web_test_delegate.h"
#include "third_party/WebKit/public/platform/WebMediaConstraints.h"
#include "third_party/WebKit/public/platform/WebMediaDeviceInfo.h"
@@ -18,7 +19,6 @@
#include "third_party/WebKit/public/platform/WebVector.h"
#include "third_party/WebKit/public/web/WebDocument.h"
#include "third_party/WebKit/public/web/WebMediaDevicesRequest.h"
-#include "third_party/WebKit/public/web/WebMediaStreamRegistry.h"
#include "third_party/WebKit/public/web/WebUserMediaRequest.h"
using blink::WebMediaConstraints;
@@ -126,7 +126,7 @@ class SourcesRequestTask : public WebMethodTask<MockWebUserMediaClient> {
DISALLOW_COPY_AND_ASSIGN(SourcesRequestTask);
};
-class MockExtraData : public WebMediaStream::ExtraData {
+class MockStreamExtraData : public WebMediaStream::ExtraData {
public:
int foo;
};
@@ -135,61 +135,54 @@ MockWebUserMediaClient::MockWebUserMediaClient(WebTestDelegate* delegate)
: delegate_(delegate) {}
void MockWebUserMediaClient::requestUserMedia(
- const WebUserMediaRequest& stream_request) {
- DCHECK(!stream_request.isNull());
- WebUserMediaRequest request = stream_request;
+ const WebUserMediaRequest& request) {
+ DCHECK(!request.isNull());
- if (request.ownerDocument().isNull() || !request.ownerDocument().frame()) {
- delegate_->PostTask(
- new UserMediaRequestPermissionDeniedTask(this, request));
+ if (request.ownerDocument().isNull() || !request.ownerDocument().frame()) {
+ delegate_->PostTask(
+ new UserMediaRequestPermissionDeniedTask(this, request));
return;
- }
-
- WebMediaConstraints constraints = request.audioConstraints();
- WebString failed_constraint;
- if (!constraints.isNull() &&
- !MockConstraints::VerifyConstraints(constraints, &failed_constraint)) {
- delegate_->PostTask(new UserMediaRequestConstraintFailedTask(
- this, request, failed_constraint));
- return;
- }
- constraints = request.videoConstraints();
- if (!constraints.isNull() &&
- !MockConstraints::VerifyConstraints(constraints, &failed_constraint)) {
- delegate_->PostTask(new UserMediaRequestConstraintFailedTask(
- this, request, failed_constraint));
- return;
- }
-
- const size_t zero = 0;
- const size_t one = 1;
- WebVector<WebMediaStreamTrack> audio_tracks(request.audio() ? one : zero);
- WebVector<WebMediaStreamTrack> video_tracks(request.video() ? one : zero);
-
- if (request.audio()) {
- WebMediaStreamSource source;
- source.initialize("MockAudioDevice#1",
- WebMediaStreamSource::TypeAudio,
- "Mock audio device",
- false /* remote */, true /* readonly */);
- audio_tracks[0].initialize(source);
- }
-
- if (request.video()) {
- WebMediaStreamSource source;
- source.initialize("MockVideoDevice#1",
- WebMediaStreamSource::TypeVideo,
- "Mock video device",
- false /* remote */, true /* readonly */);
- video_tracks[0].initialize(source);
- }
-
- WebMediaStream stream;
- stream.initialize(audio_tracks, video_tracks);
-
- stream.setExtraData(new MockExtraData());
-
- delegate_->PostTask(new UserMediaRequestTask(this, request, stream));
+ }
+
+ const WebMediaConstraints audio_constraints = request.audioConstraints();
+ WebString failed_constraint;
+ if (!audio_constraints.isNull() &&
+ !MockConstraints::VerifyConstraints(audio_constraints,
+ &failed_constraint)) {
+ delegate_->PostTask(new UserMediaRequestConstraintFailedTask(
+ this, request, failed_constraint));
+ return;
+ }
+ const WebMediaConstraints video_constraints = request.videoConstraints();
+ if (!video_constraints.isNull() &&
+ !MockConstraints::VerifyConstraints(video_constraints,
+ &failed_constraint)) {
+ delegate_->PostTask(new UserMediaRequestConstraintFailedTask(
+ this, request, failed_constraint));
+ return;
+ }
+
+ WebMediaStream stream;
+ stream.initialize(WebVector<WebMediaStreamTrack>(),
+ WebVector<WebMediaStreamTrack>());
+ stream.setExtraData(new MockStreamExtraData());
+
+ if (request.audio()) {
+ WebMediaStreamSource source;
+ source.initialize("MockAudioDevice#1",
+ WebMediaStreamSource::TypeAudio,
+ "Mock audio device",
+ false /* remote */,
+ true /* readonly */);
+ WebMediaStreamTrack web_track;
+ web_track.initialize(source);
+ stream.addTrack(web_track);
+ }
+
+ if (request.video())
+ AddVideoTrackToMediaStream(&stream);
+
+ delegate_->PostTask(new UserMediaRequestTask(this, request, stream));
}
void MockWebUserMediaClient::cancelUserMediaRequest(
@@ -231,7 +224,6 @@ void MockWebUserMediaClient::requestMediaDevices(
WebString::fromUTF8(test_devices[i].label),
WebString::fromUTF8(test_devices[i].group_id));
}
-
delegate_->PostTask(new MediaDevicesRequestTask(this, request, devices));
}

Powered by Google App Engine
This is Rietveld 408576698