| 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> | 7 #include <string> |
| 8 #include <utility> | 8 #include <utility> |
| 9 #include <vector> | 9 #include <vector> |
| 10 | 10 |
| (...skipping 184 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 195 // the blink::WebRTCSessionDescriptionRequest. | 195 // the blink::WebRTCSessionDescriptionRequest. |
| 196 class CreateSessionDescriptionRequest | 196 class CreateSessionDescriptionRequest |
| 197 : public webrtc::CreateSessionDescriptionObserver { | 197 : public webrtc::CreateSessionDescriptionObserver { |
| 198 public: | 198 public: |
| 199 explicit CreateSessionDescriptionRequest( | 199 explicit CreateSessionDescriptionRequest( |
| 200 const blink::WebRTCSessionDescriptionRequest& request, | 200 const blink::WebRTCSessionDescriptionRequest& request, |
| 201 RTCPeerConnectionHandler* handler, | 201 RTCPeerConnectionHandler* handler, |
| 202 PeerConnectionTracker::Action action) | 202 PeerConnectionTracker::Action action) |
| 203 : webkit_request_(request), tracker_(handler, action) {} | 203 : webkit_request_(request), tracker_(handler, action) {} |
| 204 | 204 |
| 205 virtual void OnSuccess(webrtc::SessionDescriptionInterface* desc) OVERRIDE { | 205 virtual void OnSuccess(webrtc::SessionDescriptionInterface* desc) override { |
| 206 tracker_.TrackOnSuccess(desc); | 206 tracker_.TrackOnSuccess(desc); |
| 207 webkit_request_.requestSucceeded(CreateWebKitSessionDescription(desc)); | 207 webkit_request_.requestSucceeded(CreateWebKitSessionDescription(desc)); |
| 208 delete desc; | 208 delete desc; |
| 209 } | 209 } |
| 210 virtual void OnFailure(const std::string& error) OVERRIDE { | 210 virtual void OnFailure(const std::string& error) override { |
| 211 tracker_.TrackOnFailure(error); | 211 tracker_.TrackOnFailure(error); |
| 212 webkit_request_.requestFailed(base::UTF8ToUTF16(error)); | 212 webkit_request_.requestFailed(base::UTF8ToUTF16(error)); |
| 213 } | 213 } |
| 214 | 214 |
| 215 protected: | 215 protected: |
| 216 virtual ~CreateSessionDescriptionRequest() {} | 216 virtual ~CreateSessionDescriptionRequest() {} |
| 217 | 217 |
| 218 private: | 218 private: |
| 219 blink::WebRTCSessionDescriptionRequest webkit_request_; | 219 blink::WebRTCSessionDescriptionRequest webkit_request_; |
| 220 SessionDescriptionRequestTracker tracker_; | 220 SessionDescriptionRequestTracker tracker_; |
| 221 }; | 221 }; |
| 222 | 222 |
| 223 // Class mapping responses from calls to libjingle | 223 // Class mapping responses from calls to libjingle |
| 224 // SetLocalDescription/SetRemoteDescription and a blink::WebRTCVoidRequest. | 224 // SetLocalDescription/SetRemoteDescription and a blink::WebRTCVoidRequest. |
| 225 class SetSessionDescriptionRequest | 225 class SetSessionDescriptionRequest |
| 226 : public webrtc::SetSessionDescriptionObserver { | 226 : public webrtc::SetSessionDescriptionObserver { |
| 227 public: | 227 public: |
| 228 explicit SetSessionDescriptionRequest( | 228 explicit SetSessionDescriptionRequest( |
| 229 const blink::WebRTCVoidRequest& request, | 229 const blink::WebRTCVoidRequest& request, |
| 230 RTCPeerConnectionHandler* handler, | 230 RTCPeerConnectionHandler* handler, |
| 231 PeerConnectionTracker::Action action) | 231 PeerConnectionTracker::Action action) |
| 232 : webkit_request_(request), tracker_(handler, action) {} | 232 : webkit_request_(request), tracker_(handler, action) {} |
| 233 | 233 |
| 234 virtual void OnSuccess() OVERRIDE { | 234 virtual void OnSuccess() override { |
| 235 tracker_.TrackOnSuccess(NULL); | 235 tracker_.TrackOnSuccess(NULL); |
| 236 webkit_request_.requestSucceeded(); | 236 webkit_request_.requestSucceeded(); |
| 237 } | 237 } |
| 238 virtual void OnFailure(const std::string& error) OVERRIDE { | 238 virtual void OnFailure(const std::string& error) override { |
| 239 tracker_.TrackOnFailure(error); | 239 tracker_.TrackOnFailure(error); |
| 240 webkit_request_.requestFailed(base::UTF8ToUTF16(error)); | 240 webkit_request_.requestFailed(base::UTF8ToUTF16(error)); |
| 241 } | 241 } |
| 242 | 242 |
| 243 protected: | 243 protected: |
| 244 virtual ~SetSessionDescriptionRequest() {} | 244 virtual ~SetSessionDescriptionRequest() {} |
| 245 | 245 |
| 246 private: | 246 private: |
| 247 blink::WebRTCVoidRequest webkit_request_; | 247 blink::WebRTCVoidRequest webkit_request_; |
| 248 SessionDescriptionRequestTracker tracker_; | 248 SessionDescriptionRequestTracker tracker_; |
| 249 }; | 249 }; |
| 250 | 250 |
| 251 // Class mapping responses from calls to libjingle | 251 // Class mapping responses from calls to libjingle |
| 252 // GetStats into a blink::WebRTCStatsCallback. | 252 // GetStats into a blink::WebRTCStatsCallback. |
| 253 class StatsResponse : public webrtc::StatsObserver { | 253 class StatsResponse : public webrtc::StatsObserver { |
| 254 public: | 254 public: |
| 255 explicit StatsResponse(const scoped_refptr<LocalRTCStatsRequest>& request) | 255 explicit StatsResponse(const scoped_refptr<LocalRTCStatsRequest>& request) |
| 256 : request_(request.get()), response_(request_->createResponse().get()) { | 256 : request_(request.get()), response_(request_->createResponse().get()) { |
| 257 // Measure the overall time it takes to satisfy a getStats request. | 257 // Measure the overall time it takes to satisfy a getStats request. |
| 258 TRACE_EVENT_ASYNC_BEGIN0("webrtc", "getStats_Native", this); | 258 TRACE_EVENT_ASYNC_BEGIN0("webrtc", "getStats_Native", this); |
| 259 } | 259 } |
| 260 | 260 |
| 261 virtual void OnComplete(const StatsReports& reports) OVERRIDE { | 261 virtual void OnComplete(const StatsReports& reports) override { |
| 262 TRACE_EVENT0("webrtc", "StatsResponse::OnComplete") | 262 TRACE_EVENT0("webrtc", "StatsResponse::OnComplete") |
| 263 for (StatsReports::const_iterator it = reports.begin(); | 263 for (StatsReports::const_iterator it = reports.begin(); |
| 264 it != reports.end(); ++it) { | 264 it != reports.end(); ++it) { |
| 265 if ((*it)->values.size() > 0) { | 265 if ((*it)->values.size() > 0) { |
| 266 AddReport(*(*it)); | 266 AddReport(*(*it)); |
| 267 } | 267 } |
| 268 } | 268 } |
| 269 | 269 |
| 270 // Record the getSync operation as done before calling into Blink so that | 270 // Record the getSync operation as done before calling into Blink so that |
| 271 // we don't skew the perf measurements of the native code with whatever the | 271 // we don't skew the perf measurements of the native code with whatever the |
| (...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 343 } | 343 } |
| 344 | 344 |
| 345 namespace { | 345 namespace { |
| 346 | 346 |
| 347 class PeerConnectionUMAObserver : public webrtc::UMAObserver { | 347 class PeerConnectionUMAObserver : public webrtc::UMAObserver { |
| 348 public: | 348 public: |
| 349 PeerConnectionUMAObserver() {} | 349 PeerConnectionUMAObserver() {} |
| 350 virtual ~PeerConnectionUMAObserver() {} | 350 virtual ~PeerConnectionUMAObserver() {} |
| 351 | 351 |
| 352 virtual void IncrementCounter( | 352 virtual void IncrementCounter( |
| 353 webrtc::PeerConnectionUMAMetricsCounter counter) OVERRIDE { | 353 webrtc::PeerConnectionUMAMetricsCounter counter) override { |
| 354 UMA_HISTOGRAM_ENUMERATION("WebRTC.PeerConnection.IPMetrics", | 354 UMA_HISTOGRAM_ENUMERATION("WebRTC.PeerConnection.IPMetrics", |
| 355 counter, | 355 counter, |
| 356 webrtc::kBoundary); | 356 webrtc::kBoundary); |
| 357 } | 357 } |
| 358 | 358 |
| 359 virtual void AddHistogramSample( | 359 virtual void AddHistogramSample( |
| 360 webrtc::PeerConnectionUMAMetricsName type, int value) OVERRIDE { | 360 webrtc::PeerConnectionUMAMetricsName type, int value) override { |
| 361 switch (type) { | 361 switch (type) { |
| 362 case webrtc::kTimeToConnect: | 362 case webrtc::kTimeToConnect: |
| 363 UMA_HISTOGRAM_MEDIUM_TIMES( | 363 UMA_HISTOGRAM_MEDIUM_TIMES( |
| 364 "WebRTC.PeerConnection.TimeToConnect", | 364 "WebRTC.PeerConnection.TimeToConnect", |
| 365 base::TimeDelta::FromMilliseconds(value)); | 365 base::TimeDelta::FromMilliseconds(value)); |
| 366 break; | 366 break; |
| 367 case webrtc::kNetworkInterfaces_IPv4: | 367 case webrtc::kNetworkInterfaces_IPv4: |
| 368 UMA_HISTOGRAM_COUNTS_100("WebRTC.PeerConnection.IPv4Interfaces", | 368 UMA_HISTOGRAM_COUNTS_100("WebRTC.PeerConnection.IPv4Interfaces", |
| 369 value); | 369 value); |
| 370 break; | 370 break; |
| (...skipping 678 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1049 webrtc::SessionDescriptionInterface* native_desc = | 1049 webrtc::SessionDescriptionInterface* native_desc = |
| 1050 dependency_factory_->CreateSessionDescription(type, sdp, error); | 1050 dependency_factory_->CreateSessionDescription(type, sdp, error); |
| 1051 | 1051 |
| 1052 LOG_IF(ERROR, !native_desc) << "Failed to create native session description." | 1052 LOG_IF(ERROR, !native_desc) << "Failed to create native session description." |
| 1053 << " Type: " << type << " SDP: " << sdp; | 1053 << " Type: " << type << " SDP: " << sdp; |
| 1054 | 1054 |
| 1055 return native_desc; | 1055 return native_desc; |
| 1056 } | 1056 } |
| 1057 | 1057 |
| 1058 } // namespace content | 1058 } // namespace content |
| OLD | NEW |