| 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 |