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

Side by Side 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 unified diff | Download patch
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "components/test_runner/mock_web_user_media_client.h" 5 #include "components/test_runner/mock_web_user_media_client.h"
6 6
7 #include "base/logging.h" 7 #include "base/logging.h"
8 #include "base/macros.h" 8 #include "base/macros.h"
9 #include "components/test_runner/mock_constraints.h" 9 #include "components/test_runner/mock_constraints.h"
10 #include "components/test_runner/renderer/mock_video_capturer_source.h"
10 #include "components/test_runner/web_test_delegate.h" 11 #include "components/test_runner/web_test_delegate.h"
11 #include "third_party/WebKit/public/platform/WebMediaConstraints.h" 12 #include "third_party/WebKit/public/platform/WebMediaConstraints.h"
12 #include "third_party/WebKit/public/platform/WebMediaDeviceInfo.h" 13 #include "third_party/WebKit/public/platform/WebMediaDeviceInfo.h"
13 #include "third_party/WebKit/public/platform/WebMediaStream.h" 14 #include "third_party/WebKit/public/platform/WebMediaStream.h"
14 #include "third_party/WebKit/public/platform/WebMediaStreamSource.h" 15 #include "third_party/WebKit/public/platform/WebMediaStreamSource.h"
15 #include "third_party/WebKit/public/platform/WebMediaStreamTrack.h" 16 #include "third_party/WebKit/public/platform/WebMediaStreamTrack.h"
16 #include "third_party/WebKit/public/platform/WebMediaStreamTrackSourcesRequest.h " 17 #include "third_party/WebKit/public/platform/WebMediaStreamTrackSourcesRequest.h "
17 #include "third_party/WebKit/public/platform/WebSourceInfo.h" 18 #include "third_party/WebKit/public/platform/WebSourceInfo.h"
18 #include "third_party/WebKit/public/platform/WebVector.h" 19 #include "third_party/WebKit/public/platform/WebVector.h"
19 #include "third_party/WebKit/public/web/WebDocument.h" 20 #include "third_party/WebKit/public/web/WebDocument.h"
20 #include "third_party/WebKit/public/web/WebMediaDevicesRequest.h" 21 #include "third_party/WebKit/public/web/WebMediaDevicesRequest.h"
21 #include "third_party/WebKit/public/web/WebMediaStreamRegistry.h"
22 #include "third_party/WebKit/public/web/WebUserMediaRequest.h" 22 #include "third_party/WebKit/public/web/WebUserMediaRequest.h"
23 23
24 using blink::WebMediaConstraints; 24 using blink::WebMediaConstraints;
25 using blink::WebMediaDeviceInfo; 25 using blink::WebMediaDeviceInfo;
26 using blink::WebMediaDevicesRequest; 26 using blink::WebMediaDevicesRequest;
27 using blink::WebMediaStream; 27 using blink::WebMediaStream;
28 using blink::WebMediaStreamSource; 28 using blink::WebMediaStreamSource;
29 using blink::WebMediaStreamTrack; 29 using blink::WebMediaStreamTrack;
30 using blink::WebMediaStreamTrackSourcesRequest; 30 using blink::WebMediaStreamTrackSourcesRequest;
31 using blink::WebSourceInfo; 31 using blink::WebSourceInfo;
(...skipping 87 matching lines...) Expand 10 before | Expand all | Expand 10 after
119 119
120 void RunIfValid() override { request_.requestSucceeded(result_); } 120 void RunIfValid() override { request_.requestSucceeded(result_); }
121 121
122 private: 122 private:
123 WebMediaStreamTrackSourcesRequest request_; 123 WebMediaStreamTrackSourcesRequest request_;
124 WebVector<WebSourceInfo> result_; 124 WebVector<WebSourceInfo> result_;
125 125
126 DISALLOW_COPY_AND_ASSIGN(SourcesRequestTask); 126 DISALLOW_COPY_AND_ASSIGN(SourcesRequestTask);
127 }; 127 };
128 128
129 class MockExtraData : public WebMediaStream::ExtraData { 129 class MockStreamExtraData : public WebMediaStream::ExtraData {
130 public: 130 public:
131 int foo; 131 int foo;
132 }; 132 };
133 133
134 MockWebUserMediaClient::MockWebUserMediaClient(WebTestDelegate* delegate) 134 MockWebUserMediaClient::MockWebUserMediaClient(WebTestDelegate* delegate)
135 : delegate_(delegate) {} 135 : delegate_(delegate) {}
136 136
137 void MockWebUserMediaClient::requestUserMedia( 137 void MockWebUserMediaClient::requestUserMedia(
138 const WebUserMediaRequest& stream_request) { 138 const WebUserMediaRequest& request) {
139 DCHECK(!stream_request.isNull()); 139 DCHECK(!request.isNull());
140 WebUserMediaRequest request = stream_request;
141 140
142 if (request.ownerDocument().isNull() || !request.ownerDocument().frame()) { 141 if (request.ownerDocument().isNull() || !request.ownerDocument().frame()) {
143 delegate_->PostTask( 142 delegate_->PostTask(
144 new UserMediaRequestPermissionDeniedTask(this, request)); 143 new UserMediaRequestPermissionDeniedTask(this, request));
145 return; 144 return;
146 } 145 }
147 146
148 WebMediaConstraints constraints = request.audioConstraints(); 147 const WebMediaConstraints audio_constraints = request.audioConstraints();
149 WebString failed_constraint; 148 WebString failed_constraint;
150 if (!constraints.isNull() && 149 if (!audio_constraints.isNull() &&
151 !MockConstraints::VerifyConstraints(constraints, &failed_constraint)) { 150 !MockConstraints::VerifyConstraints(audio_constraints,
152 delegate_->PostTask(new UserMediaRequestConstraintFailedTask( 151 &failed_constraint)) {
153 this, request, failed_constraint)); 152 delegate_->PostTask(new UserMediaRequestConstraintFailedTask(
154 return; 153 this, request, failed_constraint));
155 } 154 return;
156 constraints = request.videoConstraints(); 155 }
157 if (!constraints.isNull() && 156 const WebMediaConstraints video_constraints = request.videoConstraints();
158 !MockConstraints::VerifyConstraints(constraints, &failed_constraint)) { 157 if (!video_constraints.isNull() &&
159 delegate_->PostTask(new UserMediaRequestConstraintFailedTask( 158 !MockConstraints::VerifyConstraints(video_constraints,
160 this, request, failed_constraint)); 159 &failed_constraint)) {
161 return; 160 delegate_->PostTask(new UserMediaRequestConstraintFailedTask(
162 } 161 this, request, failed_constraint));
162 return;
163 }
163 164
164 const size_t zero = 0; 165 WebMediaStream stream;
165 const size_t one = 1; 166 stream.initialize(WebVector<WebMediaStreamTrack>(),
166 WebVector<WebMediaStreamTrack> audio_tracks(request.audio() ? one : zero); 167 WebVector<WebMediaStreamTrack>());
167 WebVector<WebMediaStreamTrack> video_tracks(request.video() ? one : zero); 168 stream.setExtraData(new MockStreamExtraData());
168 169
169 if (request.audio()) { 170 if (request.audio()) {
170 WebMediaStreamSource source; 171 WebMediaStreamSource source;
171 source.initialize("MockAudioDevice#1", 172 source.initialize("MockAudioDevice#1",
172 WebMediaStreamSource::TypeAudio, 173 WebMediaStreamSource::TypeAudio,
173 "Mock audio device", 174 "Mock audio device",
174 false /* remote */, true /* readonly */); 175 false /* remote */,
175 audio_tracks[0].initialize(source); 176 true /* readonly */);
176 } 177 WebMediaStreamTrack web_track;
178 web_track.initialize(source);
179 stream.addTrack(web_track);
180 }
177 181
178 if (request.video()) { 182 if (request.video())
179 WebMediaStreamSource source; 183 AddVideoTrackToMediaStream(&stream);
180 source.initialize("MockVideoDevice#1",
181 WebMediaStreamSource::TypeVideo,
182 "Mock video device",
183 false /* remote */, true /* readonly */);
184 video_tracks[0].initialize(source);
185 }
186 184
187 WebMediaStream stream; 185 delegate_->PostTask(new UserMediaRequestTask(this, request, stream));
188 stream.initialize(audio_tracks, video_tracks);
189
190 stream.setExtraData(new MockExtraData());
191
192 delegate_->PostTask(new UserMediaRequestTask(this, request, stream));
193 } 186 }
194 187
195 void MockWebUserMediaClient::cancelUserMediaRequest( 188 void MockWebUserMediaClient::cancelUserMediaRequest(
196 const WebUserMediaRequest&) { 189 const WebUserMediaRequest&) {
197 } 190 }
198 191
199 void MockWebUserMediaClient::requestMediaDevices( 192 void MockWebUserMediaClient::requestMediaDevices(
200 const WebMediaDevicesRequest& request) { 193 const WebMediaDevicesRequest& request) {
201 struct { 194 struct {
202 const char* device_id; 195 const char* device_id;
(...skipping 21 matching lines...) Expand all
224 }, 217 },
225 }; 218 };
226 219
227 WebVector<WebMediaDeviceInfo> devices(arraysize(test_devices)); 220 WebVector<WebMediaDeviceInfo> devices(arraysize(test_devices));
228 for (size_t i = 0; i < arraysize(test_devices); ++i) { 221 for (size_t i = 0; i < arraysize(test_devices); ++i) {
229 devices[i].initialize(WebString::fromUTF8(test_devices[i].device_id), 222 devices[i].initialize(WebString::fromUTF8(test_devices[i].device_id),
230 test_devices[i].kind, 223 test_devices[i].kind,
231 WebString::fromUTF8(test_devices[i].label), 224 WebString::fromUTF8(test_devices[i].label),
232 WebString::fromUTF8(test_devices[i].group_id)); 225 WebString::fromUTF8(test_devices[i].group_id));
233 } 226 }
234
235 delegate_->PostTask(new MediaDevicesRequestTask(this, request, devices)); 227 delegate_->PostTask(new MediaDevicesRequestTask(this, request, devices));
236 } 228 }
237 229
238 void MockWebUserMediaClient::cancelMediaDevicesRequest( 230 void MockWebUserMediaClient::cancelMediaDevicesRequest(
239 const WebMediaDevicesRequest&) { 231 const WebMediaDevicesRequest&) {
240 } 232 }
241 233
242 void MockWebUserMediaClient::requestSources( 234 void MockWebUserMediaClient::requestSources(
243 const blink::WebMediaStreamTrackSourcesRequest& request) { 235 const blink::WebMediaStreamTrackSourcesRequest& request) {
244 struct { 236 struct {
(...skipping 21 matching lines...) Expand all
266 sources[i].initialize(WebString::fromUTF8(test_sources[i].id), 258 sources[i].initialize(WebString::fromUTF8(test_sources[i].id),
267 test_sources[i].kind, 259 test_sources[i].kind,
268 WebString::fromUTF8(test_sources[i].label), 260 WebString::fromUTF8(test_sources[i].label),
269 test_sources[i].facing); 261 test_sources[i].facing);
270 } 262 }
271 263
272 delegate_->PostTask(new SourcesRequestTask(this, request, sources)); 264 delegate_->PostTask(new SourcesRequestTask(this, request, sources));
273 } 265 }
274 266
275 } // namespace test_runner 267 } // namespace test_runner
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698