OLD | NEW |
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_webrtc_peer_connection_handler.h" | 5 #include "content/shell/test_runner/mock_webrtc_peer_connection_handler.h" |
6 | 6 |
7 #include <stddef.h> | 7 #include <stddef.h> |
8 | 8 |
9 #include <string> | 9 #include <string> |
10 #include <utility> | 10 #include <utility> |
11 #include <vector> | 11 #include <vector> |
12 | 12 |
13 #include "base/bind.h" | 13 #include "base/bind.h" |
14 #include "base/bind_helpers.h" | 14 #include "base/bind_helpers.h" |
15 #include "components/test_runner/mock_webrtc_data_channel_handler.h" | 15 #include "content/shell/test_runner/mock_webrtc_data_channel_handler.h" |
16 #include "components/test_runner/mock_webrtc_dtmf_sender_handler.h" | 16 #include "content/shell/test_runner/mock_webrtc_dtmf_sender_handler.h" |
17 #include "components/test_runner/test_interfaces.h" | 17 #include "content/shell/test_runner/test_interfaces.h" |
18 #include "components/test_runner/web_test_delegate.h" | 18 #include "content/shell/test_runner/web_test_delegate.h" |
19 #include "third_party/WebKit/public/platform/WebMediaStream.h" | 19 #include "third_party/WebKit/public/platform/WebMediaStream.h" |
20 #include "third_party/WebKit/public/platform/WebMediaStreamSource.h" | 20 #include "third_party/WebKit/public/platform/WebMediaStreamSource.h" |
21 #include "third_party/WebKit/public/platform/WebMediaStreamTrack.h" | 21 #include "third_party/WebKit/public/platform/WebMediaStreamTrack.h" |
22 #include "third_party/WebKit/public/platform/WebRTCAnswerOptions.h" | 22 #include "third_party/WebKit/public/platform/WebRTCAnswerOptions.h" |
23 #include "third_party/WebKit/public/platform/WebRTCDataChannelInit.h" | 23 #include "third_party/WebKit/public/platform/WebRTCDataChannelInit.h" |
24 #include "third_party/WebKit/public/platform/WebRTCOfferOptions.h" | 24 #include "third_party/WebKit/public/platform/WebRTCOfferOptions.h" |
25 #include "third_party/WebKit/public/platform/WebRTCPeerConnectionHandlerClient.h
" | 25 #include "third_party/WebKit/public/platform/WebRTCPeerConnectionHandlerClient.h
" |
26 #include "third_party/WebKit/public/platform/WebRTCStatsResponse.h" | 26 #include "third_party/WebKit/public/platform/WebRTCStatsResponse.h" |
27 #include "third_party/WebKit/public/platform/WebRTCVoidRequest.h" | 27 #include "third_party/WebKit/public/platform/WebRTCVoidRequest.h" |
28 #include "third_party/WebKit/public/platform/WebString.h" | 28 #include "third_party/WebKit/public/platform/WebString.h" |
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
63 NOTREACHED(); | 63 NOTREACHED(); |
64 return 0.0f; | 64 return 0.0f; |
65 } | 65 } |
66 blink::WebString valueString() const override { | 66 blink::WebString valueString() const override { |
67 return blink::WebString::fromUTF8((*values_)[i].second); | 67 return blink::WebString::fromUTF8((*values_)[i].second); |
68 } | 68 } |
69 bool valueBool() const override { | 69 bool valueBool() const override { |
70 NOTREACHED(); | 70 NOTREACHED(); |
71 return false; | 71 return false; |
72 } | 72 } |
73 blink::WebString valueToString() const override { | 73 blink::WebString valueToString() const override { return valueString(); } |
74 return valueString(); | |
75 } | |
76 | 74 |
77 private: | 75 private: |
78 size_t i = 0; | 76 size_t i = 0; |
79 const std::vector<std::pair<std::string, std::string>>* values_; | 77 const std::vector<std::pair<std::string, std::string>>* values_; |
80 }; | 78 }; |
81 | 79 |
82 MockWebRTCLegacyStats(const char* id, const char* type_name, double timestamp) | 80 MockWebRTCLegacyStats(const char* id, const char* type_name, double timestamp) |
83 : id_(id), type_name_(type_name), timestamp_(timestamp) {} | 81 : id_(id), type_name_(type_name), timestamp_(timestamp) {} |
84 | 82 |
85 // blink::WebRTCLegacyStats | 83 // blink::WebRTCLegacyStats |
86 blink::WebString id() const override { | 84 blink::WebString id() const override { |
87 return blink::WebString::fromUTF8(id_); | 85 return blink::WebString::fromUTF8(id_); |
88 } | 86 } |
89 blink::WebString type() const override { | 87 blink::WebString type() const override { |
90 return blink::WebString::fromUTF8(type_name_); | 88 return blink::WebString::fromUTF8(type_name_); |
91 } | 89 } |
92 double timestamp() const override { | 90 double timestamp() const override { return timestamp_; } |
93 return timestamp_; | |
94 } | |
95 blink::WebRTCLegacyStatsMemberIterator* iterator() const override { | 91 blink::WebRTCLegacyStatsMemberIterator* iterator() const override { |
96 return new MemberIterator(&values_); | 92 return new MemberIterator(&values_); |
97 } | 93 } |
98 | 94 |
99 void addStatistic(const std::string& name, const std::string& value) { | 95 void addStatistic(const std::string& name, const std::string& value) { |
100 values_.push_back(std::make_pair(name, value)); | 96 values_.push_back(std::make_pair(name, value)); |
101 } | 97 } |
102 | 98 |
103 private: | 99 private: |
104 const std::string id_; | 100 const std::string id_; |
105 const std::string type_name_; | 101 const std::string type_name_; |
106 const double timestamp_; | 102 const double timestamp_; |
107 // (name, value) pairs. | 103 // (name, value) pairs. |
108 std::vector<std::pair<std::string, std::string>> values_; | 104 std::vector<std::pair<std::string, std::string>> values_; |
109 }; | 105 }; |
110 | 106 |
111 template<typename T> | 107 template <typename T> |
112 WebVector<T> sequenceWithValue(T value) { | 108 WebVector<T> sequenceWithValue(T value) { |
113 return WebVector<T>(&value, 1); | 109 return WebVector<T>(&value, 1); |
114 } | 110 } |
115 | 111 |
116 class MockWebRTCStatsMember : public blink::WebRTCStatsMember { | 112 class MockWebRTCStatsMember : public blink::WebRTCStatsMember { |
117 public: | 113 public: |
118 MockWebRTCStatsMember( | 114 MockWebRTCStatsMember(const std::string& name, |
119 const std::string& name, blink::WebRTCStatsMemberType type) | 115 blink::WebRTCStatsMemberType type) |
120 : name_(name), type_(type) {} | 116 : name_(name), type_(type) {} |
121 | 117 |
122 // blink::WebRTCStatsMember overrides. | 118 // blink::WebRTCStatsMember overrides. |
123 blink::WebString name() const override { | 119 blink::WebString name() const override { |
124 return blink::WebString::fromUTF8(name_); | 120 return blink::WebString::fromUTF8(name_); |
125 } | 121 } |
126 blink::WebRTCStatsMemberType type() const override { | 122 blink::WebRTCStatsMemberType type() const override { return type_; } |
127 return type_; | |
128 } | |
129 bool isDefined() const override { return true; } | 123 bool isDefined() const override { return true; } |
130 bool valueBool() const override { return true; } | 124 bool valueBool() const override { return true; } |
131 int32_t valueInt32() const override { return 42; } | 125 int32_t valueInt32() const override { return 42; } |
132 uint32_t valueUint32() const override { return 42; } | 126 uint32_t valueUint32() const override { return 42; } |
133 int64_t valueInt64() const override { return 42; } | 127 int64_t valueInt64() const override { return 42; } |
134 uint64_t valueUint64() const override { return 42; } | 128 uint64_t valueUint64() const override { return 42; } |
135 double valueDouble() const override { return 42.0; } | 129 double valueDouble() const override { return 42.0; } |
136 blink::WebString valueString() const override { | 130 blink::WebString valueString() const override { |
137 return blink::WebString::fromUTF8("42"); | 131 return blink::WebString::fromUTF8("42"); |
138 } | 132 } |
(...skipping 20 matching lines...) Expand all Loading... |
159 blink::WebString::fromUTF8("42")); | 153 blink::WebString::fromUTF8("42")); |
160 } | 154 } |
161 | 155 |
162 private: | 156 private: |
163 std::string name_; | 157 std::string name_; |
164 blink::WebRTCStatsMemberType type_; | 158 blink::WebRTCStatsMemberType type_; |
165 }; | 159 }; |
166 | 160 |
167 class MockWebRTCStats : public blink::WebRTCStats { | 161 class MockWebRTCStats : public blink::WebRTCStats { |
168 public: | 162 public: |
169 MockWebRTCStats( | 163 MockWebRTCStats(const std::string& id, |
170 const std::string& id, const std::string& type, double timestamp) | 164 const std::string& type, |
171 : id_(id), type_(type), timestamp_(timestamp) { | 165 double timestamp) |
172 } | 166 : id_(id), type_(type), timestamp_(timestamp) {} |
173 | 167 |
174 void addMember(const std::string& name, blink::WebRTCStatsMemberType type) { | 168 void addMember(const std::string& name, blink::WebRTCStatsMemberType type) { |
175 members_.push_back(std::make_pair(name, type)); | 169 members_.push_back(std::make_pair(name, type)); |
176 } | 170 } |
177 | 171 |
178 // blink::WebRTCStats overrides. | 172 // blink::WebRTCStats overrides. |
179 blink::WebString id() const override { | 173 blink::WebString id() const override { |
180 return blink::WebString::fromUTF8(id_); | 174 return blink::WebString::fromUTF8(id_); |
181 } | 175 } |
182 blink::WebString type() const override { | 176 blink::WebString type() const override { |
183 return blink::WebString::fromUTF8(type_); | 177 return blink::WebString::fromUTF8(type_); |
184 } | 178 } |
185 double timestamp() const override { | 179 double timestamp() const override { return timestamp_; } |
186 return timestamp_; | 180 size_t membersCount() const override { return members_.size(); } |
187 } | |
188 size_t membersCount() const override { | |
189 return members_.size(); | |
190 } | |
191 std::unique_ptr<WebRTCStatsMember> getMember(size_t i) const override { | 181 std::unique_ptr<WebRTCStatsMember> getMember(size_t i) const override { |
192 return std::unique_ptr<WebRTCStatsMember>(new MockWebRTCStatsMember( | 182 return std::unique_ptr<WebRTCStatsMember>( |
193 members_[i].first, members_[i].second)); | 183 new MockWebRTCStatsMember(members_[i].first, members_[i].second)); |
194 } | 184 } |
195 | 185 |
196 private: | 186 private: |
197 std::string id_; | 187 std::string id_; |
198 std::string type_; | 188 std::string type_; |
199 double timestamp_; | 189 double timestamp_; |
200 std::vector<std::pair<std::string, blink::WebRTCStatsMemberType>> members_; | 190 std::vector<std::pair<std::string, blink::WebRTCStatsMemberType>> members_; |
201 }; | 191 }; |
202 | 192 |
203 class MockWebRTCStatsReport : public blink::WebRTCStatsReport { | 193 class MockWebRTCStatsReport : public blink::WebRTCStatsReport { |
204 public: | 194 public: |
205 MockWebRTCStatsReport() : i_(0) {} | 195 MockWebRTCStatsReport() : i_(0) {} |
206 MockWebRTCStatsReport(const MockWebRTCStatsReport& other) | 196 MockWebRTCStatsReport(const MockWebRTCStatsReport& other) |
207 : stats_(other.stats_), i_(0) {} | 197 : stats_(other.stats_), i_(0) {} |
208 | 198 |
209 void AddStats(const MockWebRTCStats& stats) { | 199 void AddStats(const MockWebRTCStats& stats) { stats_.push_back(stats); } |
210 stats_.push_back(stats); | |
211 } | |
212 | 200 |
213 // blink::WebRTCStatsReport overrides. | 201 // blink::WebRTCStatsReport overrides. |
214 std::unique_ptr<blink::WebRTCStatsReport> copyHandle() const override { | 202 std::unique_ptr<blink::WebRTCStatsReport> copyHandle() const override { |
215 // Because this is just a mock, we copy the underlying stats instead of | 203 // Because this is just a mock, we copy the underlying stats instead of |
216 // referencing the same stats as the original report. | 204 // referencing the same stats as the original report. |
217 return std::unique_ptr<blink::WebRTCStatsReport>( | 205 return std::unique_ptr<blink::WebRTCStatsReport>( |
218 new MockWebRTCStatsReport(*this)); | 206 new MockWebRTCStatsReport(*this)); |
219 } | 207 } |
220 std::unique_ptr<WebRTCStats> getStats(WebString id) const override { | 208 std::unique_ptr<WebRTCStats> getStats(WebString id) const override { |
221 for (const MockWebRTCStats& stats : stats_) { | 209 for (const MockWebRTCStats& stats : stats_) { |
(...skipping 12 matching lines...) Expand all Loading... |
234 private: | 222 private: |
235 std::vector<MockWebRTCStats> stats_; | 223 std::vector<MockWebRTCStats> stats_; |
236 size_t i_; | 224 size_t i_; |
237 }; | 225 }; |
238 | 226 |
239 } // namespace | 227 } // namespace |
240 | 228 |
241 MockWebRTCPeerConnectionHandler::MockWebRTCPeerConnectionHandler() | 229 MockWebRTCPeerConnectionHandler::MockWebRTCPeerConnectionHandler() |
242 : weak_factory_(this) {} | 230 : weak_factory_(this) {} |
243 | 231 |
244 MockWebRTCPeerConnectionHandler::~MockWebRTCPeerConnectionHandler() { | 232 MockWebRTCPeerConnectionHandler::~MockWebRTCPeerConnectionHandler() {} |
245 } | |
246 | 233 |
247 MockWebRTCPeerConnectionHandler::MockWebRTCPeerConnectionHandler( | 234 MockWebRTCPeerConnectionHandler::MockWebRTCPeerConnectionHandler( |
248 WebRTCPeerConnectionHandlerClient* client, | 235 WebRTCPeerConnectionHandlerClient* client, |
249 TestInterfaces* interfaces) | 236 TestInterfaces* interfaces) |
250 : client_(client), | 237 : client_(client), |
251 stopped_(false), | 238 stopped_(false), |
252 stream_count_(0), | 239 stream_count_(0), |
253 interfaces_(interfaces), | 240 interfaces_(interfaces), |
254 weak_factory_(this) {} | 241 weak_factory_(this) {} |
255 | 242 |
(...skipping 94 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
350 local_description_ = local_description; | 337 local_description_ = local_description; |
351 PostRequestResult(request); | 338 PostRequestResult(request); |
352 } else { | 339 } else { |
353 PostRequestFailure(request); | 340 PostRequestFailure(request); |
354 } | 341 } |
355 } | 342 } |
356 | 343 |
357 void MockWebRTCPeerConnectionHandler::setRemoteDescription( | 344 void MockWebRTCPeerConnectionHandler::setRemoteDescription( |
358 const WebRTCVoidRequest& request, | 345 const WebRTCVoidRequest& request, |
359 const WebRTCSessionDescription& remote_description) { | 346 const WebRTCSessionDescription& remote_description) { |
360 | |
361 if (!remote_description.isNull() && remote_description.sdp() == "remote") { | 347 if (!remote_description.isNull() && remote_description.sdp() == "remote") { |
362 UpdateRemoteStreams(); | 348 UpdateRemoteStreams(); |
363 remote_description_ = remote_description; | 349 remote_description_ = remote_description; |
364 PostRequestResult(request); | 350 PostRequestResult(request); |
365 } else | 351 } else |
366 PostRequestFailure(request); | 352 PostRequestFailure(request); |
367 } | 353 } |
368 | 354 |
369 void MockWebRTCPeerConnectionHandler::UpdateRemoteStreams() { | 355 void MockWebRTCPeerConnectionHandler::UpdateRemoteStreams() { |
370 // Find all removed streams. | 356 // Find all removed streams. |
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
405 while (added_it != local_streams_.end()) { | 391 while (added_it != local_streams_.end()) { |
406 if (remote_streams_.find(added_it->first) != remote_streams_.end()) { | 392 if (remote_streams_.find(added_it->first) != remote_streams_.end()) { |
407 added_it++; | 393 added_it++; |
408 continue; | 394 continue; |
409 } | 395 } |
410 | 396 |
411 const blink::WebMediaStream& stream = added_it->second; | 397 const blink::WebMediaStream& stream = added_it->second; |
412 | 398 |
413 blink::WebVector<blink::WebMediaStreamTrack> local_audio_tracks; | 399 blink::WebVector<blink::WebMediaStreamTrack> local_audio_tracks; |
414 stream.audioTracks(local_audio_tracks); | 400 stream.audioTracks(local_audio_tracks); |
415 blink::WebVector<blink::WebMediaStreamTrack> | 401 blink::WebVector<blink::WebMediaStreamTrack> remote_audio_tracks( |
416 remote_audio_tracks(local_audio_tracks.size()); | 402 local_audio_tracks.size()); |
417 | 403 |
418 for (size_t i = 0; i < local_audio_tracks.size(); ++i) { | 404 for (size_t i = 0; i < local_audio_tracks.size(); ++i) { |
419 blink::WebMediaStreamSource webkit_source; | 405 blink::WebMediaStreamSource webkit_source; |
420 webkit_source.initialize(local_audio_tracks[i].id(), | 406 webkit_source.initialize(local_audio_tracks[i].id(), |
421 blink::WebMediaStreamSource::TypeAudio, | 407 blink::WebMediaStreamSource::TypeAudio, |
422 local_audio_tracks[i].id(), | 408 local_audio_tracks[i].id(), true /* remote */); |
423 true /* remote */); | |
424 remote_audio_tracks[i].initialize(webkit_source); | 409 remote_audio_tracks[i].initialize(webkit_source); |
425 } | 410 } |
426 | 411 |
427 blink::WebVector<blink::WebMediaStreamTrack> local_video_tracks; | 412 blink::WebVector<blink::WebMediaStreamTrack> local_video_tracks; |
428 stream.videoTracks(local_video_tracks); | 413 stream.videoTracks(local_video_tracks); |
429 blink::WebVector<blink::WebMediaStreamTrack> | 414 blink::WebVector<blink::WebMediaStreamTrack> remote_video_tracks( |
430 remote_video_tracks(local_video_tracks.size()); | 415 local_video_tracks.size()); |
431 for (size_t i = 0; i < local_video_tracks.size(); ++i) { | 416 for (size_t i = 0; i < local_video_tracks.size(); ++i) { |
432 blink::WebMediaStreamSource webkit_source; | 417 blink::WebMediaStreamSource webkit_source; |
433 webkit_source.initialize(local_video_tracks[i].id(), | 418 webkit_source.initialize(local_video_tracks[i].id(), |
434 blink::WebMediaStreamSource::TypeVideo, | 419 blink::WebMediaStreamSource::TypeVideo, |
435 local_video_tracks[i].id(), | 420 local_video_tracks[i].id(), true /* remote */); |
436 true /* remote */); | |
437 remote_video_tracks[i].initialize(webkit_source); | 421 remote_video_tracks[i].initialize(webkit_source); |
438 } | 422 } |
439 | 423 |
440 blink::WebMediaStream new_remote_stream; | 424 blink::WebMediaStream new_remote_stream; |
441 new_remote_stream.initialize(remote_audio_tracks, | 425 new_remote_stream.initialize(remote_audio_tracks, remote_video_tracks); |
442 remote_video_tracks); | |
443 remote_streams_[added_it->first] = new_remote_stream; | 426 remote_streams_[added_it->first] = new_remote_stream; |
444 client_->didAddRemoteStream(new_remote_stream); | 427 client_->didAddRemoteStream(new_remote_stream); |
445 ++added_it; | 428 ++added_it; |
446 } | 429 } |
447 } | 430 } |
448 | 431 |
449 WebRTCSessionDescription MockWebRTCPeerConnectionHandler::localDescription() { | 432 WebRTCSessionDescription MockWebRTCPeerConnectionHandler::localDescription() { |
450 return local_description_; | 433 return local_description_; |
451 } | 434 } |
452 | 435 |
(...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
528 stats.addMember("double", blink::WebRTCStatsMemberTypeDouble); | 511 stats.addMember("double", blink::WebRTCStatsMemberTypeDouble); |
529 stats.addMember("string", blink::WebRTCStatsMemberTypeString); | 512 stats.addMember("string", blink::WebRTCStatsMemberTypeString); |
530 stats.addMember("sequenceBool", blink::WebRTCStatsMemberTypeSequenceBool); | 513 stats.addMember("sequenceBool", blink::WebRTCStatsMemberTypeSequenceBool); |
531 stats.addMember("sequenceInt32", blink::WebRTCStatsMemberTypeSequenceInt32); | 514 stats.addMember("sequenceInt32", blink::WebRTCStatsMemberTypeSequenceInt32); |
532 stats.addMember("sequenceUint32", blink::WebRTCStatsMemberTypeSequenceUint32); | 515 stats.addMember("sequenceUint32", blink::WebRTCStatsMemberTypeSequenceUint32); |
533 stats.addMember("sequenceInt64", blink::WebRTCStatsMemberTypeSequenceInt64); | 516 stats.addMember("sequenceInt64", blink::WebRTCStatsMemberTypeSequenceInt64); |
534 stats.addMember("sequenceUint64", blink::WebRTCStatsMemberTypeSequenceUint64); | 517 stats.addMember("sequenceUint64", blink::WebRTCStatsMemberTypeSequenceUint64); |
535 stats.addMember("sequenceDouble", blink::WebRTCStatsMemberTypeSequenceDouble); | 518 stats.addMember("sequenceDouble", blink::WebRTCStatsMemberTypeSequenceDouble); |
536 stats.addMember("sequenceString", blink::WebRTCStatsMemberTypeSequenceString); | 519 stats.addMember("sequenceString", blink::WebRTCStatsMemberTypeSequenceString); |
537 report->AddStats(stats); | 520 report->AddStats(stats); |
538 callback->OnStatsDelivered(std::unique_ptr<blink::WebRTCStatsReport>( | 521 callback->OnStatsDelivered( |
539 report.release())); | 522 std::unique_ptr<blink::WebRTCStatsReport>(report.release())); |
540 } | 523 } |
541 | 524 |
542 void MockWebRTCPeerConnectionHandler::ReportCreationOfDataChannel() { | 525 void MockWebRTCPeerConnectionHandler::ReportCreationOfDataChannel() { |
543 WebRTCDataChannelInit init; | 526 WebRTCDataChannelInit init; |
544 WebRTCDataChannelHandler* remote_data_channel = | 527 WebRTCDataChannelHandler* remote_data_channel = |
545 new MockWebRTCDataChannelHandler("MockRemoteDataChannel", init, | 528 new MockWebRTCDataChannelHandler("MockRemoteDataChannel", init, |
546 interfaces_->GetDelegate()); | 529 interfaces_->GetDelegate()); |
547 client_->didAddRemoteDataChannel(remote_data_channel); | 530 client_->didAddRemoteDataChannel(remote_data_channel); |
548 } | 531 } |
549 | 532 |
550 WebRTCDataChannelHandler* MockWebRTCPeerConnectionHandler::createDataChannel( | 533 WebRTCDataChannelHandler* MockWebRTCPeerConnectionHandler::createDataChannel( |
551 const WebString& label, | 534 const WebString& label, |
552 const blink::WebRTCDataChannelInit& init) { | 535 const blink::WebRTCDataChannelInit& init) { |
553 interfaces_->GetDelegate()->PostTask( | 536 interfaces_->GetDelegate()->PostTask( |
554 base::Bind(&MockWebRTCPeerConnectionHandler::ReportCreationOfDataChannel, | 537 base::Bind(&MockWebRTCPeerConnectionHandler::ReportCreationOfDataChannel, |
555 weak_factory_.GetWeakPtr())); | 538 weak_factory_.GetWeakPtr())); |
556 | 539 |
557 // TODO(lukasza): Unclear if it is okay to return a different object than the | 540 // TODO(lukasza): Unclear if it is okay to return a different object than the |
558 // one created in ReportCreationOfDataChannel. | 541 // one created in ReportCreationOfDataChannel. |
559 return new MockWebRTCDataChannelHandler( | 542 return new MockWebRTCDataChannelHandler(label, init, |
560 label, init, interfaces_->GetDelegate()); | 543 interfaces_->GetDelegate()); |
561 } | 544 } |
562 | 545 |
563 WebRTCDTMFSenderHandler* MockWebRTCPeerConnectionHandler::createDTMFSender( | 546 WebRTCDTMFSenderHandler* MockWebRTCPeerConnectionHandler::createDTMFSender( |
564 const WebMediaStreamTrack& track) { | 547 const WebMediaStreamTrack& track) { |
565 return new MockWebRTCDTMFSenderHandler(track, interfaces_->GetDelegate()); | 548 return new MockWebRTCDTMFSenderHandler(track, interfaces_->GetDelegate()); |
566 } | 549 } |
567 | 550 |
568 void MockWebRTCPeerConnectionHandler::stop() { | 551 void MockWebRTCPeerConnectionHandler::stop() { |
569 stopped_ = true; | 552 stopped_ = true; |
570 weak_factory_.InvalidateWeakPtrs(); | 553 weak_factory_.InvalidateWeakPtrs(); |
571 } | 554 } |
572 | 555 |
573 } // namespace test_runner | 556 } // namespace test_runner |
OLD | NEW |