Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 "content/renderer/media/rtc_peer_connection_handler.h" | 5 #include "content/renderer/media/rtc_peer_connection_handler.h" |
| 6 | 6 |
| 7 #include <string.h> | 7 #include <string.h> |
| 8 | 8 |
| 9 #include <string> | 9 #include <string> |
| 10 #include <utility> | 10 #include <utility> |
| (...skipping 22 matching lines...) Expand all Loading... | |
| 33 #include "content/renderer/media/webrtc/rtc_stats.h" | 33 #include "content/renderer/media/webrtc/rtc_stats.h" |
| 34 #include "content/renderer/media/webrtc/webrtc_media_stream_adapter.h" | 34 #include "content/renderer/media/webrtc/webrtc_media_stream_adapter.h" |
| 35 #include "content/renderer/media/webrtc_audio_device_impl.h" | 35 #include "content/renderer/media/webrtc_audio_device_impl.h" |
| 36 #include "content/renderer/media/webrtc_uma_histograms.h" | 36 #include "content/renderer/media/webrtc_uma_histograms.h" |
| 37 #include "content/renderer/render_thread_impl.h" | 37 #include "content/renderer/render_thread_impl.h" |
| 38 #include "media/base/media_switches.h" | 38 #include "media/base/media_switches.h" |
| 39 #include "third_party/WebKit/public/platform/WebMediaConstraints.h" | 39 #include "third_party/WebKit/public/platform/WebMediaConstraints.h" |
| 40 #include "third_party/WebKit/public/platform/WebRTCAnswerOptions.h" | 40 #include "third_party/WebKit/public/platform/WebRTCAnswerOptions.h" |
| 41 #include "third_party/WebKit/public/platform/WebRTCConfiguration.h" | 41 #include "third_party/WebKit/public/platform/WebRTCConfiguration.h" |
| 42 #include "third_party/WebKit/public/platform/WebRTCDataChannelInit.h" | 42 #include "third_party/WebKit/public/platform/WebRTCDataChannelInit.h" |
| 43 #include "third_party/WebKit/public/platform/WebRTCError.h" | |
| 43 #include "third_party/WebKit/public/platform/WebRTCICECandidate.h" | 44 #include "third_party/WebKit/public/platform/WebRTCICECandidate.h" |
| 44 #include "third_party/WebKit/public/platform/WebRTCLegacyStats.h" | 45 #include "third_party/WebKit/public/platform/WebRTCLegacyStats.h" |
| 45 #include "third_party/WebKit/public/platform/WebRTCOfferOptions.h" | 46 #include "third_party/WebKit/public/platform/WebRTCOfferOptions.h" |
| 46 #include "third_party/WebKit/public/platform/WebRTCSessionDescription.h" | 47 #include "third_party/WebKit/public/platform/WebRTCSessionDescription.h" |
| 47 #include "third_party/WebKit/public/platform/WebRTCSessionDescriptionRequest.h" | 48 #include "third_party/WebKit/public/platform/WebRTCSessionDescriptionRequest.h" |
| 48 #include "third_party/WebKit/public/platform/WebRTCVoidRequest.h" | 49 #include "third_party/WebKit/public/platform/WebRTCVoidRequest.h" |
| 49 #include "third_party/WebKit/public/platform/WebURL.h" | 50 #include "third_party/WebKit/public/platform/WebURL.h" |
| 50 #include "third_party/webrtc/pc/mediasession.h" | 51 #include "third_party/webrtc/pc/mediasession.h" |
| 51 | 52 |
| 52 using webrtc::DataChannelInterface; | 53 using webrtc::DataChannelInterface; |
| (...skipping 100 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 153 | 154 |
| 154 std::string sdp; | 155 std::string sdp; |
| 155 if (!native_desc->ToString(&sdp)) { | 156 if (!native_desc->ToString(&sdp)) { |
| 156 LOG(ERROR) << "Failed to get SDP string of native session description."; | 157 LOG(ERROR) << "Failed to get SDP string of native session description."; |
| 157 return blink::WebRTCSessionDescription(); | 158 return blink::WebRTCSessionDescription(); |
| 158 } | 159 } |
| 159 | 160 |
| 160 return CreateWebKitSessionDescription(sdp, native_desc->type()); | 161 return CreateWebKitSessionDescription(sdp, native_desc->type()); |
| 161 } | 162 } |
| 162 | 163 |
| 164 void ConvertToWebKitRTCError(const webrtc::RTCError& webrtc_error, | |
| 165 blink::WebRTCError* blink_error) { | |
| 166 switch (webrtc_error.type()) { | |
| 167 case webrtc::RTCErrorType::NONE: | |
| 168 blink_error->setType(blink::WebRTCErrorType::kNone); | |
| 169 break; | |
| 170 case webrtc::RTCErrorType::UNSUPPORTED_PARAMETER: | |
| 171 blink_error->setType(blink::WebRTCErrorType::kUnsupportedParameter); | |
| 172 break; | |
| 173 case webrtc::RTCErrorType::INVALID_PARAMETER: | |
| 174 blink_error->setType(blink::WebRTCErrorType::kInvalidParameter); | |
| 175 break; | |
| 176 case webrtc::RTCErrorType::INVALID_RANGE: | |
| 177 blink_error->setType(blink::WebRTCErrorType::kInvalidRange); | |
| 178 break; | |
| 179 case webrtc::RTCErrorType::SYNTAX_ERROR: | |
| 180 blink_error->setType(blink::WebRTCErrorType::kSyntaxError); | |
| 181 break; | |
| 182 case webrtc::RTCErrorType::INVALID_STATE: | |
| 183 blink_error->setType(blink::WebRTCErrorType::kInvalidState); | |
| 184 break; | |
| 185 case webrtc::RTCErrorType::INVALID_MODIFICATION: | |
| 186 blink_error->setType(blink::WebRTCErrorType::kInvalidModification); | |
| 187 break; | |
| 188 case webrtc::RTCErrorType::NETWORK_ERROR: | |
| 189 blink_error->setType(blink::WebRTCErrorType::kNetworkError); | |
| 190 break; | |
| 191 case webrtc::RTCErrorType::INTERNAL_ERROR: | |
| 192 blink_error->setType(blink::WebRTCErrorType::kInternalError); | |
| 193 break; | |
| 194 default: | |
|
perkj_chrome
2017/01/12 08:56:19
nit: remove default to make sure this has to be up
Taylor_Brandstetter
2017/01/13 19:14:19
Done.
| |
| 195 blink_error->setType(blink::WebRTCErrorType::kInternalError); | |
| 196 break; | |
| 197 } | |
| 198 } | |
| 199 | |
| 163 void RunClosureWithTrace(const base::Closure& closure, | 200 void RunClosureWithTrace(const base::Closure& closure, |
| 164 const char* trace_event_name) { | 201 const char* trace_event_name) { |
| 165 TRACE_EVENT0("webrtc", trace_event_name); | 202 TRACE_EVENT0("webrtc", trace_event_name); |
| 166 closure.Run(); | 203 closure.Run(); |
| 167 } | 204 } |
| 168 | 205 |
| 169 void RunSynchronousClosure(const base::Closure& closure, | 206 void RunSynchronousClosure(const base::Closure& closure, |
| 170 const char* trace_event_name, | 207 const char* trace_event_name, |
| 171 base::WaitableEvent* event) { | 208 base::WaitableEvent* event) { |
| 172 { | 209 { |
| (...skipping 1214 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1387 native_peer_connection_); | 1424 native_peer_connection_); |
| 1388 RunSynchronousClosureOnSignalingThread( | 1425 RunSynchronousClosureOnSignalingThread( |
| 1389 base::Bind(&GetSdpAndTypeFromSessionDescription, description_cb, | 1426 base::Bind(&GetSdpAndTypeFromSessionDescription, description_cb, |
| 1390 base::Unretained(&sdp), base::Unretained(&type)), | 1427 base::Unretained(&sdp), base::Unretained(&type)), |
| 1391 "remoteDescription"); | 1428 "remoteDescription"); |
| 1392 | 1429 |
| 1393 return CreateWebKitSessionDescription(sdp, type); | 1430 return CreateWebKitSessionDescription(sdp, type); |
| 1394 } | 1431 } |
| 1395 | 1432 |
| 1396 bool RTCPeerConnectionHandler::setConfiguration( | 1433 bool RTCPeerConnectionHandler::setConfiguration( |
| 1397 const blink::WebRTCConfiguration& blink_config) { | 1434 const blink::WebRTCConfiguration& blink_config, |
| 1435 blink::WebRTCError& error) { | |
| 1398 DCHECK(thread_checker_.CalledOnValidThread()); | 1436 DCHECK(thread_checker_.CalledOnValidThread()); |
| 1399 TRACE_EVENT0("webrtc", "RTCPeerConnectionHandler::setConfiguration"); | 1437 TRACE_EVENT0("webrtc", "RTCPeerConnectionHandler::setConfiguration"); |
| 1400 GetNativeRtcConfiguration(blink_config, &configuration_); | 1438 GetNativeRtcConfiguration(blink_config, &configuration_); |
| 1401 | 1439 |
| 1402 if (peer_connection_tracker_) | 1440 if (peer_connection_tracker_) |
| 1403 peer_connection_tracker_->TrackSetConfiguration(this, configuration_); | 1441 peer_connection_tracker_->TrackSetConfiguration(this, configuration_); |
| 1404 | 1442 |
| 1405 return native_peer_connection_->SetConfiguration(configuration_); | 1443 webrtc::RTCError webrtc_error; |
| 1444 bool ret = | |
| 1445 native_peer_connection_->SetConfiguration(configuration_, &webrtc_error); | |
| 1446 ConvertToWebKitRTCError(webrtc_error, &error); | |
| 1447 return ret; | |
| 1406 } | 1448 } |
| 1407 | 1449 |
| 1408 bool RTCPeerConnectionHandler::addICECandidate( | 1450 bool RTCPeerConnectionHandler::addICECandidate( |
| 1409 const blink::WebRTCVoidRequest& request, | 1451 const blink::WebRTCVoidRequest& request, |
| 1410 const blink::WebRTCICECandidate& candidate) { | 1452 const blink::WebRTCICECandidate& candidate) { |
| 1411 DCHECK(thread_checker_.CalledOnValidThread()); | 1453 DCHECK(thread_checker_.CalledOnValidThread()); |
| 1412 TRACE_EVENT0("webrtc", "RTCPeerConnectionHandler::addICECandidate"); | 1454 TRACE_EVENT0("webrtc", "RTCPeerConnectionHandler::addICECandidate"); |
| 1413 // Libjingle currently does not accept callbacks for addICECandidate. | 1455 // Libjingle currently does not accept callbacks for addICECandidate. |
| 1414 // For that reason we are going to call callbacks from here. | 1456 // For that reason we are going to call callbacks from here. |
| 1415 | 1457 |
| (...skipping 539 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1955 } | 1997 } |
| 1956 | 1998 |
| 1957 void RTCPeerConnectionHandler::ResetUMAStats() { | 1999 void RTCPeerConnectionHandler::ResetUMAStats() { |
| 1958 DCHECK(thread_checker_.CalledOnValidThread()); | 2000 DCHECK(thread_checker_.CalledOnValidThread()); |
| 1959 num_local_candidates_ipv6_ = 0; | 2001 num_local_candidates_ipv6_ = 0; |
| 1960 num_local_candidates_ipv4_ = 0; | 2002 num_local_candidates_ipv4_ = 0; |
| 1961 ice_connection_checking_start_ = base::TimeTicks(); | 2003 ice_connection_checking_start_ = base::TimeTicks(); |
| 1962 memset(ice_state_seen_, 0, sizeof(ice_state_seen_)); | 2004 memset(ice_state_seen_, 0, sizeof(ice_state_seen_)); |
| 1963 } | 2005 } |
| 1964 } // namespace content | 2006 } // namespace content |
| OLD | NEW |