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/cronet/android/cronet_url_request_adapter.h" | 5 #include "components/cronet/android/cronet_url_request_adapter.h" |
6 | 6 |
7 #include <limits> | 7 #include <limits> |
8 #include <utility> | 8 #include <utility> |
9 #include <vector> | 9 #include <vector> |
10 | 10 |
(...skipping 384 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
395 << " on chromium request: " << initial_url_.possibly_invalid_spec(); | 395 << " on chromium request: " << initial_url_.possibly_invalid_spec(); |
396 JNIEnv* env = base::android::AttachCurrentThread(); | 396 JNIEnv* env = base::android::AttachCurrentThread(); |
397 cronet::Java_CronetUrlRequest_onError( | 397 cronet::Java_CronetUrlRequest_onError( |
398 env, owner_.obj(), NetErrorToUrlRequestError(net_error), net_error, | 398 env, owner_.obj(), NetErrorToUrlRequestError(net_error), net_error, |
399 net_error_details.quic_connection_error, | 399 net_error_details.quic_connection_error, |
400 ConvertUTF8ToJavaString(env, net::ErrorToString(net_error)).obj(), | 400 ConvertUTF8ToJavaString(env, net::ErrorToString(net_error)).obj(), |
401 request->GetTotalReceivedBytes()); | 401 request->GetTotalReceivedBytes()); |
402 } | 402 } |
403 | 403 |
404 void CronetURLRequestAdapter::MaybeReportMetrics(JNIEnv* env) const { | 404 void CronetURLRequestAdapter::MaybeReportMetrics(JNIEnv* env) const { |
405 if (!enable_metrics_) { | 405 // If there was an exception while starting the CronetUrlRequest, there won't |
| 406 // be a native URLRequest. In this case, the caller gets the exception |
| 407 // immediately, and the onFailed callback isn't called, so don't report |
| 408 // metrics either. |
| 409 if (!enable_metrics_ || !url_request_) { |
406 return; | 410 return; |
407 } | 411 } |
408 net::LoadTimingInfo metrics; | 412 net::LoadTimingInfo metrics; |
409 url_request_->GetLoadTimingInfo(&metrics); | 413 url_request_->GetLoadTimingInfo(&metrics); |
410 base::Time start_time = metrics.request_start_time; | 414 base::Time start_time = metrics.request_start_time; |
411 base::TimeTicks start_ticks = metrics.request_start; | 415 base::TimeTicks start_ticks = metrics.request_start; |
412 Java_CronetUrlRequest_onMetricsCollected( | 416 Java_CronetUrlRequest_onMetricsCollected( |
413 env, owner_.obj(), | 417 env, owner_.obj(), |
414 metrics_util::ConvertTime(start_ticks, start_ticks, start_time), | 418 metrics_util::ConvertTime(start_ticks, start_ticks, start_time), |
415 metrics_util::ConvertTime(metrics.connect_timing.dns_start, start_ticks, | 419 metrics_util::ConvertTime(metrics.connect_timing.dns_start, start_ticks, |
(...skipping 14 matching lines...) Expand all Loading... |
430 metrics_util::ConvertTime(metrics.push_end, start_ticks, start_time), | 434 metrics_util::ConvertTime(metrics.push_end, start_ticks, start_time), |
431 metrics_util::ConvertTime(metrics.receive_headers_end, start_ticks, | 435 metrics_util::ConvertTime(metrics.receive_headers_end, start_ticks, |
432 start_time), | 436 start_time), |
433 metrics_util::ConvertTime(base::TimeTicks::Now(), start_ticks, | 437 metrics_util::ConvertTime(base::TimeTicks::Now(), start_ticks, |
434 start_time), | 438 start_time), |
435 metrics.socket_reused, url_request_->GetTotalSentBytes(), | 439 metrics.socket_reused, url_request_->GetTotalSentBytes(), |
436 url_request_->GetTotalReceivedBytes()); | 440 url_request_->GetTotalReceivedBytes()); |
437 } | 441 } |
438 | 442 |
439 } // namespace cronet | 443 } // namespace cronet |
OLD | NEW |