| 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 "components/test_runner/mock_webrtc_peer_connection_handler.h" |
| 6 | 6 |
| 7 #include <stddef.h> | 7 #include <stddef.h> |
| 8 | 8 |
| 9 #include "base/bind.h" |
| 10 #include "base/bind_helpers.h" |
| 9 #include "components/test_runner/mock_webrtc_data_channel_handler.h" | 11 #include "components/test_runner/mock_webrtc_data_channel_handler.h" |
| 10 #include "components/test_runner/mock_webrtc_dtmf_sender_handler.h" | 12 #include "components/test_runner/mock_webrtc_dtmf_sender_handler.h" |
| 11 #include "components/test_runner/test_interfaces.h" | 13 #include "components/test_runner/test_interfaces.h" |
| 14 #include "components/test_runner/web_task.h" |
| 12 #include "components/test_runner/web_test_delegate.h" | 15 #include "components/test_runner/web_test_delegate.h" |
| 13 #include "third_party/WebKit/public/platform/WebMediaStream.h" | 16 #include "third_party/WebKit/public/platform/WebMediaStream.h" |
| 14 #include "third_party/WebKit/public/platform/WebMediaStreamSource.h" | 17 #include "third_party/WebKit/public/platform/WebMediaStreamSource.h" |
| 15 #include "third_party/WebKit/public/platform/WebMediaStreamTrack.h" | 18 #include "third_party/WebKit/public/platform/WebMediaStreamTrack.h" |
| 16 #include "third_party/WebKit/public/platform/WebRTCAnswerOptions.h" | 19 #include "third_party/WebKit/public/platform/WebRTCAnswerOptions.h" |
| 17 #include "third_party/WebKit/public/platform/WebRTCDataChannelInit.h" | 20 #include "third_party/WebKit/public/platform/WebRTCDataChannelInit.h" |
| 18 #include "third_party/WebKit/public/platform/WebRTCOfferOptions.h" | 21 #include "third_party/WebKit/public/platform/WebRTCOfferOptions.h" |
| 19 #include "third_party/WebKit/public/platform/WebRTCPeerConnectionHandlerClient.h
" | 22 #include "third_party/WebKit/public/platform/WebRTCPeerConnectionHandlerClient.h
" |
| 20 #include "third_party/WebKit/public/platform/WebRTCStatsResponse.h" | 23 #include "third_party/WebKit/public/platform/WebRTCStatsResponse.h" |
| 21 #include "third_party/WebKit/public/platform/WebRTCVoidRequest.h" | 24 #include "third_party/WebKit/public/platform/WebRTCVoidRequest.h" |
| 22 #include "third_party/WebKit/public/platform/WebString.h" | 25 #include "third_party/WebKit/public/platform/WebString.h" |
| 23 #include "third_party/WebKit/public/platform/WebVector.h" | 26 #include "third_party/WebKit/public/platform/WebVector.h" |
| 24 | 27 |
| 25 using namespace blink; | 28 using namespace blink; |
| 26 | 29 |
| 27 namespace test_runner { | 30 namespace test_runner { |
| 28 | 31 |
| 29 class RTCSessionDescriptionRequestSuccededTask | 32 MockWebRTCPeerConnectionHandler::MockWebRTCPeerConnectionHandler() |
| 30 : public WebMethodTask<MockWebRTCPeerConnectionHandler> { | 33 : weak_factory_(this) {} |
| 31 public: | |
| 32 RTCSessionDescriptionRequestSuccededTask( | |
| 33 MockWebRTCPeerConnectionHandler* object, | |
| 34 const WebRTCSessionDescriptionRequest& request, | |
| 35 const WebRTCSessionDescription& result) | |
| 36 : WebMethodTask<MockWebRTCPeerConnectionHandler>(object), | |
| 37 request_(request), | |
| 38 result_(result) {} | |
| 39 | |
| 40 void RunIfValid() override { request_.requestSucceeded(result_); } | |
| 41 | |
| 42 private: | |
| 43 WebRTCSessionDescriptionRequest request_; | |
| 44 WebRTCSessionDescription result_; | |
| 45 }; | |
| 46 | |
| 47 class RTCSessionDescriptionRequestFailedTask | |
| 48 : public WebMethodTask<MockWebRTCPeerConnectionHandler> { | |
| 49 public: | |
| 50 RTCSessionDescriptionRequestFailedTask( | |
| 51 MockWebRTCPeerConnectionHandler* object, | |
| 52 const WebRTCSessionDescriptionRequest& request) | |
| 53 : WebMethodTask<MockWebRTCPeerConnectionHandler>(object), | |
| 54 request_(request) {} | |
| 55 | |
| 56 void RunIfValid() override { request_.requestFailed("TEST_ERROR"); } | |
| 57 | |
| 58 private: | |
| 59 WebRTCSessionDescriptionRequest request_; | |
| 60 }; | |
| 61 | |
| 62 class RTCStatsRequestSucceededTask | |
| 63 : public WebMethodTask<MockWebRTCPeerConnectionHandler> { | |
| 64 public: | |
| 65 RTCStatsRequestSucceededTask(MockWebRTCPeerConnectionHandler* object, | |
| 66 const blink::WebRTCStatsRequest& request, | |
| 67 const blink::WebRTCStatsResponse& response) | |
| 68 : WebMethodTask<MockWebRTCPeerConnectionHandler>(object), | |
| 69 request_(request), | |
| 70 response_(response) {} | |
| 71 | |
| 72 void RunIfValid() override { request_.requestSucceeded(response_); } | |
| 73 | |
| 74 private: | |
| 75 blink::WebRTCStatsRequest request_; | |
| 76 blink::WebRTCStatsResponse response_; | |
| 77 }; | |
| 78 | |
| 79 class RTCVoidRequestTask | |
| 80 : public WebMethodTask<MockWebRTCPeerConnectionHandler> { | |
| 81 public: | |
| 82 RTCVoidRequestTask(MockWebRTCPeerConnectionHandler* object, | |
| 83 const WebRTCVoidRequest& request, | |
| 84 bool succeeded) | |
| 85 : WebMethodTask<MockWebRTCPeerConnectionHandler>(object), | |
| 86 request_(request), | |
| 87 succeeded_(succeeded) {} | |
| 88 | |
| 89 void RunIfValid() override { | |
| 90 if (succeeded_) | |
| 91 request_.requestSucceeded(); | |
| 92 else | |
| 93 request_.requestFailed("TEST_ERROR"); | |
| 94 } | |
| 95 | |
| 96 private: | |
| 97 WebRTCVoidRequest request_; | |
| 98 bool succeeded_; | |
| 99 }; | |
| 100 | |
| 101 class RTCPeerConnectionStateTask | |
| 102 : public WebMethodTask<MockWebRTCPeerConnectionHandler> { | |
| 103 public: | |
| 104 RTCPeerConnectionStateTask( | |
| 105 MockWebRTCPeerConnectionHandler* object, | |
| 106 WebRTCPeerConnectionHandlerClient* client, | |
| 107 WebRTCPeerConnectionHandlerClient::ICEConnectionState connection_state, | |
| 108 WebRTCPeerConnectionHandlerClient::ICEGatheringState gathering_state) | |
| 109 : WebMethodTask<MockWebRTCPeerConnectionHandler>(object), | |
| 110 client_(client), | |
| 111 connection_state_(connection_state), | |
| 112 gathering_state_(gathering_state) {} | |
| 113 | |
| 114 void RunIfValid() override { | |
| 115 client_->didChangeICEGatheringState(gathering_state_); | |
| 116 client_->didChangeICEConnectionState(connection_state_); | |
| 117 } | |
| 118 | |
| 119 private: | |
| 120 WebRTCPeerConnectionHandlerClient* client_; | |
| 121 WebRTCPeerConnectionHandlerClient::ICEConnectionState connection_state_; | |
| 122 WebRTCPeerConnectionHandlerClient::ICEGatheringState gathering_state_; | |
| 123 }; | |
| 124 | |
| 125 class RemoteDataChannelTask | |
| 126 : public WebMethodTask<MockWebRTCPeerConnectionHandler> { | |
| 127 public: | |
| 128 RemoteDataChannelTask(MockWebRTCPeerConnectionHandler* object, | |
| 129 WebRTCPeerConnectionHandlerClient* client, | |
| 130 WebTestDelegate* delegate) | |
| 131 : WebMethodTask<MockWebRTCPeerConnectionHandler>(object), | |
| 132 client_(client), | |
| 133 delegate_(delegate) {} | |
| 134 | |
| 135 void RunIfValid() override { | |
| 136 WebRTCDataChannelInit init; | |
| 137 WebRTCDataChannelHandler* remote_data_channel = | |
| 138 new MockWebRTCDataChannelHandler( | |
| 139 "MockRemoteDataChannel", init, delegate_); | |
| 140 client_->didAddRemoteDataChannel(remote_data_channel); | |
| 141 } | |
| 142 | |
| 143 private: | |
| 144 WebRTCPeerConnectionHandlerClient* client_; | |
| 145 WebTestDelegate* delegate_; | |
| 146 }; | |
| 147 | |
| 148 ///////////////////// | |
| 149 | |
| 150 MockWebRTCPeerConnectionHandler::MockWebRTCPeerConnectionHandler() { | |
| 151 } | |
| 152 | 34 |
| 153 MockWebRTCPeerConnectionHandler::~MockWebRTCPeerConnectionHandler() { | 35 MockWebRTCPeerConnectionHandler::~MockWebRTCPeerConnectionHandler() { |
| 154 } | 36 } |
| 155 | 37 |
| 156 MockWebRTCPeerConnectionHandler::MockWebRTCPeerConnectionHandler( | 38 MockWebRTCPeerConnectionHandler::MockWebRTCPeerConnectionHandler( |
| 157 WebRTCPeerConnectionHandlerClient* client, | 39 WebRTCPeerConnectionHandlerClient* client, |
| 158 TestInterfaces* interfaces) | 40 TestInterfaces* interfaces) |
| 159 : client_(client), | 41 : client_(client), |
| 160 stopped_(false), | 42 stopped_(false), |
| 161 stream_count_(0), | 43 stream_count_(0), |
| 162 interfaces_(interfaces) { | 44 interfaces_(interfaces), |
| 45 weak_factory_(this) {} |
| 46 |
| 47 void MockWebRTCPeerConnectionHandler::ReportInitializeCompleted() { |
| 48 client_->didChangeICEGatheringState( |
| 49 WebRTCPeerConnectionHandlerClient::ICEGatheringStateComplete); |
| 50 client_->didChangeICEConnectionState( |
| 51 WebRTCPeerConnectionHandlerClient::ICEConnectionStateCompleted); |
| 163 } | 52 } |
| 164 | 53 |
| 165 bool MockWebRTCPeerConnectionHandler::initialize( | 54 bool MockWebRTCPeerConnectionHandler::initialize( |
| 166 const WebRTCConfiguration& configuration, | 55 const WebRTCConfiguration& configuration, |
| 167 const WebMediaConstraints& constraints) { | 56 const WebMediaConstraints& constraints) { |
| 168 interfaces_->GetDelegate()->PostTask(new RTCPeerConnectionStateTask( | 57 interfaces_->GetDelegate()->PostTask(new WebCallbackTask( |
| 169 this, | 58 base::Bind(&MockWebRTCPeerConnectionHandler::ReportInitializeCompleted, |
| 170 client_, | 59 weak_factory_.GetWeakPtr()))); |
| 171 WebRTCPeerConnectionHandlerClient::ICEConnectionStateCompleted, | |
| 172 WebRTCPeerConnectionHandlerClient::ICEGatheringStateComplete)); | |
| 173 return true; | 60 return true; |
| 174 } | 61 } |
| 175 | 62 |
| 176 void MockWebRTCPeerConnectionHandler::createOffer( | 63 void MockWebRTCPeerConnectionHandler::createOffer( |
| 177 const WebRTCSessionDescriptionRequest& request, | 64 const WebRTCSessionDescriptionRequest& request, |
| 178 const WebMediaConstraints& constraints) { | 65 const WebMediaConstraints& constraints) { |
| 179 interfaces_->GetDelegate()->PostTask( | 66 PostRequestFailure(request); |
| 180 new RTCSessionDescriptionRequestFailedTask(this, request)); | 67 } |
| 68 |
| 69 void MockWebRTCPeerConnectionHandler::PostRequestResult( |
| 70 const WebRTCSessionDescriptionRequest& request, |
| 71 const WebRTCSessionDescription& session_description) { |
| 72 interfaces_->GetDelegate()->PostTask(new WebCallbackTask( |
| 73 base::Bind(&WebRTCSessionDescriptionRequest::requestSucceeded, |
| 74 base::Owned(new WebRTCSessionDescriptionRequest(request)), |
| 75 session_description))); |
| 76 } |
| 77 |
| 78 void MockWebRTCPeerConnectionHandler::PostRequestFailure( |
| 79 const WebRTCSessionDescriptionRequest& request) { |
| 80 interfaces_->GetDelegate()->PostTask(new WebCallbackTask( |
| 81 base::Bind(&WebRTCSessionDescriptionRequest::requestFailed, |
| 82 base::Owned(new WebRTCSessionDescriptionRequest(request)), |
| 83 WebString("TEST_ERROR")))); |
| 84 } |
| 85 |
| 86 void MockWebRTCPeerConnectionHandler::PostRequestResult( |
| 87 const WebRTCVoidRequest& request) { |
| 88 interfaces_->GetDelegate()->PostTask(new WebCallbackTask( |
| 89 base::Bind(&WebRTCVoidRequest::requestSucceeded, |
| 90 base::Owned(new WebRTCVoidRequest(request))))); |
| 91 } |
| 92 |
| 93 void MockWebRTCPeerConnectionHandler::PostRequestFailure( |
| 94 const WebRTCVoidRequest& request) { |
| 95 interfaces_->GetDelegate()->PostTask(new WebCallbackTask(base::Bind( |
| 96 &WebRTCVoidRequest::requestFailed, |
| 97 base::Owned(new WebRTCVoidRequest(request)), WebString("TEST_ERROR")))); |
| 181 } | 98 } |
| 182 | 99 |
| 183 void MockWebRTCPeerConnectionHandler::createOffer( | 100 void MockWebRTCPeerConnectionHandler::createOffer( |
| 184 const WebRTCSessionDescriptionRequest& request, | 101 const WebRTCSessionDescriptionRequest& request, |
| 185 const blink::WebRTCOfferOptions& options) { | 102 const blink::WebRTCOfferOptions& options) { |
| 186 if (options.iceRestart() && options.voiceActivityDetection()) { | 103 if (options.iceRestart() && options.voiceActivityDetection()) { |
| 187 WebRTCSessionDescription session_description; | 104 WebRTCSessionDescription session_description; |
| 188 session_description.initialize("offer", "local"); | 105 session_description.initialize("offer", "local"); |
| 189 interfaces_->GetDelegate()->PostTask( | 106 PostRequestResult(request, session_description); |
| 190 new RTCSessionDescriptionRequestSuccededTask( | |
| 191 this, request, session_description)); | |
| 192 } else { | 107 } else { |
| 193 interfaces_->GetDelegate()->PostTask( | 108 PostRequestFailure(request); |
| 194 new RTCSessionDescriptionRequestFailedTask(this, request)); | |
| 195 } | 109 } |
| 196 } | 110 } |
| 197 | 111 |
| 198 void MockWebRTCPeerConnectionHandler::createAnswer( | 112 void MockWebRTCPeerConnectionHandler::createAnswer( |
| 199 const WebRTCSessionDescriptionRequest& request, | 113 const WebRTCSessionDescriptionRequest& request, |
| 200 const WebMediaConstraints& constraints) { | 114 const WebMediaConstraints& constraints) { |
| 201 if (!remote_description_.isNull()) { | 115 if (!remote_description_.isNull()) { |
| 202 WebRTCSessionDescription session_description; | 116 WebRTCSessionDescription session_description; |
| 203 session_description.initialize("answer", "local"); | 117 session_description.initialize("answer", "local"); |
| 204 interfaces_->GetDelegate()->PostTask( | 118 PostRequestResult(request, session_description); |
| 205 new RTCSessionDescriptionRequestSuccededTask( | 119 } else { |
| 206 this, request, session_description)); | 120 PostRequestFailure(request); |
| 207 } else | 121 } |
| 208 interfaces_->GetDelegate()->PostTask( | |
| 209 new RTCSessionDescriptionRequestFailedTask(this, request)); | |
| 210 } | 122 } |
| 211 | 123 |
| 212 void MockWebRTCPeerConnectionHandler::createAnswer( | 124 void MockWebRTCPeerConnectionHandler::createAnswer( |
| 213 const WebRTCSessionDescriptionRequest& request, | 125 const WebRTCSessionDescriptionRequest& request, |
| 214 const blink::WebRTCAnswerOptions& options) { | 126 const blink::WebRTCAnswerOptions& options) { |
| 215 if (options.voiceActivityDetection()) { | 127 if (options.voiceActivityDetection()) { |
| 216 WebRTCSessionDescription session_description; | 128 WebRTCSessionDescription session_description; |
| 217 session_description.initialize("answer", "local"); | 129 session_description.initialize("answer", "local"); |
| 218 interfaces_->GetDelegate()->PostTask( | 130 PostRequestResult(request, session_description); |
| 219 new RTCSessionDescriptionRequestSuccededTask(this, request, | |
| 220 session_description)); | |
| 221 } else { | 131 } else { |
| 222 interfaces_->GetDelegate()->PostTask( | 132 PostRequestFailure(request); |
| 223 new RTCSessionDescriptionRequestFailedTask(this, request)); | |
| 224 } | 133 } |
| 225 } | 134 } |
| 226 | 135 |
| 227 void MockWebRTCPeerConnectionHandler::setLocalDescription( | 136 void MockWebRTCPeerConnectionHandler::setLocalDescription( |
| 228 const WebRTCVoidRequest& request, | 137 const WebRTCVoidRequest& request, |
| 229 const WebRTCSessionDescription& local_description) { | 138 const WebRTCSessionDescription& local_description) { |
| 230 if (!local_description.isNull() && local_description.sdp() == "local") { | 139 if (!local_description.isNull() && local_description.sdp() == "local") { |
| 231 local_description_ = local_description; | 140 local_description_ = local_description; |
| 232 interfaces_->GetDelegate()->PostTask( | 141 PostRequestResult(request); |
| 233 new RTCVoidRequestTask(this, request, true)); | 142 } else { |
| 234 } else | 143 PostRequestFailure(request); |
| 235 interfaces_->GetDelegate()->PostTask( | 144 } |
| 236 new RTCVoidRequestTask(this, request, false)); | |
| 237 } | 145 } |
| 238 | 146 |
| 239 void MockWebRTCPeerConnectionHandler::setRemoteDescription( | 147 void MockWebRTCPeerConnectionHandler::setRemoteDescription( |
| 240 const WebRTCVoidRequest& request, | 148 const WebRTCVoidRequest& request, |
| 241 const WebRTCSessionDescription& remote_description) { | 149 const WebRTCSessionDescription& remote_description) { |
| 242 | 150 |
| 243 if (!remote_description.isNull() && remote_description.sdp() == "remote") { | 151 if (!remote_description.isNull() && remote_description.sdp() == "remote") { |
| 244 UpdateRemoteStreams(); | 152 UpdateRemoteStreams(); |
| 245 remote_description_ = remote_description; | 153 remote_description_ = remote_description; |
| 246 interfaces_->GetDelegate()->PostTask( | 154 PostRequestResult(request); |
| 247 new RTCVoidRequestTask(this, request, true)); | |
| 248 } else | 155 } else |
| 249 interfaces_->GetDelegate()->PostTask( | 156 PostRequestFailure(request); |
| 250 new RTCVoidRequestTask(this, request, false)); | |
| 251 } | 157 } |
| 252 | 158 |
| 253 void MockWebRTCPeerConnectionHandler::UpdateRemoteStreams() { | 159 void MockWebRTCPeerConnectionHandler::UpdateRemoteStreams() { |
| 254 // Find all removed streams. | 160 // Find all removed streams. |
| 255 // Set the readyState of the remote tracks to ended, remove them from the | 161 // Set the readyState of the remote tracks to ended, remove them from the |
| 256 // stream and notify the client. | 162 // stream and notify the client. |
| 257 StreamMap::iterator removed_it = remote_streams_.begin(); | 163 StreamMap::iterator removed_it = remote_streams_.begin(); |
| 258 while (removed_it != remote_streams_.end()) { | 164 while (removed_it != remote_streams_.end()) { |
| 259 if (local_streams_.find(removed_it->first) != local_streams_.end()) { | 165 if (local_streams_.find(removed_it->first) != local_streams_.end()) { |
| 260 removed_it++; | 166 removed_it++; |
| (...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 345 | 251 |
| 346 bool MockWebRTCPeerConnectionHandler::addICECandidate( | 252 bool MockWebRTCPeerConnectionHandler::addICECandidate( |
| 347 const WebRTCICECandidate& ice_candidate) { | 253 const WebRTCICECandidate& ice_candidate) { |
| 348 client_->didGenerateICECandidate(ice_candidate); | 254 client_->didGenerateICECandidate(ice_candidate); |
| 349 return true; | 255 return true; |
| 350 } | 256 } |
| 351 | 257 |
| 352 bool MockWebRTCPeerConnectionHandler::addICECandidate( | 258 bool MockWebRTCPeerConnectionHandler::addICECandidate( |
| 353 const WebRTCVoidRequest& request, | 259 const WebRTCVoidRequest& request, |
| 354 const WebRTCICECandidate& ice_candidate) { | 260 const WebRTCICECandidate& ice_candidate) { |
| 355 interfaces_->GetDelegate()->PostTask( | 261 PostRequestResult(request); |
| 356 new RTCVoidRequestTask(this, request, true)); | |
| 357 return true; | 262 return true; |
| 358 } | 263 } |
| 359 | 264 |
| 360 bool MockWebRTCPeerConnectionHandler::addStream( | 265 bool MockWebRTCPeerConnectionHandler::addStream( |
| 361 const WebMediaStream& stream, | 266 const WebMediaStream& stream, |
| 362 const WebMediaConstraints& constraints) { | 267 const WebMediaConstraints& constraints) { |
| 363 if (local_streams_.find(stream.id().utf8()) != local_streams_.end()) | 268 if (local_streams_.find(stream.id().utf8()) != local_streams_.end()) |
| 364 return false; | 269 return false; |
| 365 ++stream_count_; | 270 ++stream_count_; |
| 366 client_->negotiationNeeded(); | 271 client_->negotiationNeeded(); |
| (...skipping 20 matching lines...) Expand all Loading... |
| 387 response.addStatistic(report_index, "type", "video"); | 292 response.addStatistic(report_index, "type", "video"); |
| 388 } else { | 293 } else { |
| 389 for (int i = 0; i < stream_count_; ++i) { | 294 for (int i = 0; i < stream_count_; ++i) { |
| 390 size_t report_index = | 295 size_t report_index = |
| 391 response.addReport("Mock audio", "ssrc", current_date); | 296 response.addReport("Mock audio", "ssrc", current_date); |
| 392 response.addStatistic(report_index, "type", "audio"); | 297 response.addStatistic(report_index, "type", "audio"); |
| 393 report_index = response.addReport("Mock video", "ssrc", current_date); | 298 report_index = response.addReport("Mock video", "ssrc", current_date); |
| 394 response.addStatistic(report_index, "type", "video"); | 299 response.addStatistic(report_index, "type", "video"); |
| 395 } | 300 } |
| 396 } | 301 } |
| 397 interfaces_->GetDelegate()->PostTask( | 302 interfaces_->GetDelegate()->PostTask(new WebCallbackTask( |
| 398 new RTCStatsRequestSucceededTask(this, request, response)); | 303 base::Bind(&blink::WebRTCStatsRequest::requestSucceeded, |
| 304 base::Owned(new WebRTCStatsRequest(request)), response))); |
| 305 } |
| 306 |
| 307 void MockWebRTCPeerConnectionHandler::ReportCreationOfDataChannel() { |
| 308 WebRTCDataChannelInit init; |
| 309 WebRTCDataChannelHandler* remote_data_channel = |
| 310 new MockWebRTCDataChannelHandler("MockRemoteDataChannel", init, |
| 311 interfaces_->GetDelegate()); |
| 312 client_->didAddRemoteDataChannel(remote_data_channel); |
| 399 } | 313 } |
| 400 | 314 |
| 401 WebRTCDataChannelHandler* MockWebRTCPeerConnectionHandler::createDataChannel( | 315 WebRTCDataChannelHandler* MockWebRTCPeerConnectionHandler::createDataChannel( |
| 402 const WebString& label, | 316 const WebString& label, |
| 403 const blink::WebRTCDataChannelInit& init) { | 317 const blink::WebRTCDataChannelInit& init) { |
| 404 interfaces_->GetDelegate()->PostTask( | 318 interfaces_->GetDelegate()->PostTask(new WebCallbackTask( |
| 405 new RemoteDataChannelTask(this, client_, interfaces_->GetDelegate())); | 319 base::Bind(&MockWebRTCPeerConnectionHandler::ReportCreationOfDataChannel, |
| 320 weak_factory_.GetWeakPtr()))); |
| 406 | 321 |
| 322 // TODO(lukasza): Unclear if it is okay to return a different object than the |
| 323 // one created in ReportCreationOfDataChannel. |
| 407 return new MockWebRTCDataChannelHandler( | 324 return new MockWebRTCDataChannelHandler( |
| 408 label, init, interfaces_->GetDelegate()); | 325 label, init, interfaces_->GetDelegate()); |
| 409 } | 326 } |
| 410 | 327 |
| 411 WebRTCDTMFSenderHandler* MockWebRTCPeerConnectionHandler::createDTMFSender( | 328 WebRTCDTMFSenderHandler* MockWebRTCPeerConnectionHandler::createDTMFSender( |
| 412 const WebMediaStreamTrack& track) { | 329 const WebMediaStreamTrack& track) { |
| 413 return new MockWebRTCDTMFSenderHandler(track, interfaces_->GetDelegate()); | 330 return new MockWebRTCDTMFSenderHandler(track, interfaces_->GetDelegate()); |
| 414 } | 331 } |
| 415 | 332 |
| 416 void MockWebRTCPeerConnectionHandler::stop() { | 333 void MockWebRTCPeerConnectionHandler::stop() { |
| 417 stopped_ = true; | 334 stopped_ = true; |
| 418 task_list_.RevokeAll(); | 335 weak_factory_.InvalidateWeakPtrs(); |
| 419 } | 336 } |
| 420 | 337 |
| 421 } // namespace test_runner | 338 } // namespace test_runner |
| OLD | NEW |