Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(126)

Side by Side Diff: components/cronet/android/cronet_url_request_context_adapter.cc

Issue 2237603002: Cronet/QUIC - Added histograms to measure the time spent to seriliaze (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: rebase TOT Created 4 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | tools/metrics/histograms/histograms.xml » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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_context_adapter.h" 5 #include "components/cronet/android/cronet_url_request_context_adapter.h"
6 6
7 #include <limits.h> 7 #include <limits.h>
8 #include <stddef.h> 8 #include <stddef.h>
9 #include <stdint.h> 9 #include <stdint.h>
10 10
11 #include <map> 11 #include <map>
12 #include <utility> 12 #include <utility>
13 13
14 #include "base/android/jni_android.h" 14 #include "base/android/jni_android.h"
15 #include "base/android/jni_array.h" 15 #include "base/android/jni_array.h"
16 #include "base/android/jni_string.h" 16 #include "base/android/jni_string.h"
17 #include "base/base64.h" 17 #include "base/base64.h"
18 #include "base/bind.h" 18 #include "base/bind.h"
19 #include "base/files/file_path.h" 19 #include "base/files/file_path.h"
20 #include "base/files/file_util.h" 20 #include "base/files/file_util.h"
21 #include "base/files/scoped_file.h" 21 #include "base/files/scoped_file.h"
22 #include "base/lazy_instance.h" 22 #include "base/lazy_instance.h"
23 #include "base/logging.h" 23 #include "base/logging.h"
24 #include "base/macros.h" 24 #include "base/macros.h"
25 #include "base/memory/ptr_util.h" 25 #include "base/memory/ptr_util.h"
26 #include "base/memory/scoped_vector.h" 26 #include "base/memory/scoped_vector.h"
27 #include "base/message_loop/message_loop.h" 27 #include "base/message_loop/message_loop.h"
28 #include "base/metrics/histogram_macros.h"
28 #include "base/metrics/statistics_recorder.h" 29 #include "base/metrics/statistics_recorder.h"
29 #include "base/single_thread_task_runner.h" 30 #include "base/single_thread_task_runner.h"
30 #include "base/time/time.h" 31 #include "base/time/time.h"
31 #include "base/values.h" 32 #include "base/values.h"
32 #include "components/cronet/android/cert/cert_verifier_cache_serializer.h" 33 #include "components/cronet/android/cert/cert_verifier_cache_serializer.h"
33 #include "components/cronet/android/cert/proto/cert_verification.pb.h" 34 #include "components/cronet/android/cert/proto/cert_verification.pb.h"
34 #include "components/cronet/histogram_manager.h" 35 #include "components/cronet/histogram_manager.h"
35 #include "components/cronet/url_request_context_config.h" 36 #include "components/cronet/url_request_context_config.h"
36 #include "components/prefs/pref_change_registrar.h" 37 #include "components/prefs/pref_change_registrar.h"
37 #include "components/prefs/pref_filter.h" 38 #include "components/prefs/pref_filter.h"
(...skipping 624 matching lines...) Expand 10 before | Expand all | Expand 10 after
662 net::AlternateProtocol::QUIC, "", 663 net::AlternateProtocol::QUIC, "",
663 static_cast<uint16_t>(quic_hint.alternate_port)); 664 static_cast<uint16_t>(quic_hint.alternate_port));
664 context_->http_server_properties()->SetAlternativeService( 665 context_->http_server_properties()->SetAlternativeService(
665 quic_server, alternative_service, base::Time::Max()); 666 quic_server, alternative_service, base::Time::Max());
666 } 667 }
667 } 668 }
668 669
669 // If there is a cert_verifier, then populate its cache with 670 // If there is a cert_verifier, then populate its cache with
670 // |cert_verifier_data|. 671 // |cert_verifier_data|.
671 if (!config->cert_verifier_data.empty() && context_->cert_verifier()) { 672 if (!config->cert_verifier_data.empty() && context_->cert_verifier()) {
673 SCOPED_UMA_HISTOGRAM_TIMER("Net.Cronet.CertVerifierCache.DeserializeTime");
672 std::string data; 674 std::string data;
673 cronet_pb::CertVerificationCache cert_verification_cache; 675 cronet_pb::CertVerificationCache cert_verification_cache;
674 if (base::Base64Decode(config->cert_verifier_data, &data) && 676 if (base::Base64Decode(config->cert_verifier_data, &data) &&
675 cert_verification_cache.ParseFromString(data)) { 677 cert_verification_cache.ParseFromString(data)) {
676 DeserializeCertVerifierCache(cert_verification_cache, 678 DeserializeCertVerifierCache(cert_verification_cache,
677 reinterpret_cast<net::CachingCertVerifier*>( 679 reinterpret_cast<net::CachingCertVerifier*>(
678 context_->cert_verifier())); 680 context_->cert_verifier()));
679 } 681 }
680 } 682 }
681 683
(...skipping 114 matching lines...) Expand 10 before | Expand all | Expand 10 after
796 FROM_HERE, 798 FROM_HERE,
797 base::Bind( 799 base::Bind(
798 &CronetURLRequestContextAdapter::GetCertVerifierDataOnNetworkThread, 800 &CronetURLRequestContextAdapter::GetCertVerifierDataOnNetworkThread,
799 base::Unretained(this))); 801 base::Unretained(this)));
800 } 802 }
801 803
802 void CronetURLRequestContextAdapter::GetCertVerifierDataOnNetworkThread() { 804 void CronetURLRequestContextAdapter::GetCertVerifierDataOnNetworkThread() {
803 DCHECK(GetNetworkTaskRunner()->BelongsToCurrentThread()); 805 DCHECK(GetNetworkTaskRunner()->BelongsToCurrentThread());
804 std::string encoded_data; 806 std::string encoded_data;
805 if (is_context_initialized_ && context_->cert_verifier()) { 807 if (is_context_initialized_ && context_->cert_verifier()) {
808 SCOPED_UMA_HISTOGRAM_TIMER("Net.Cronet.CertVerifierCache.SerializeTime");
806 std::string data; 809 std::string data;
807 cronet_pb::CertVerificationCache cert_cache = 810 cronet_pb::CertVerificationCache cert_cache =
808 SerializeCertVerifierCache(*reinterpret_cast<net::CachingCertVerifier*>( 811 SerializeCertVerifierCache(*reinterpret_cast<net::CachingCertVerifier*>(
809 context_->cert_verifier())); 812 context_->cert_verifier()));
810 cert_cache.SerializeToString(&data); 813 cert_cache.SerializeToString(&data);
811 base::Base64Encode(data, &encoded_data); 814 base::Base64Encode(data, &encoded_data);
812 } 815 }
813 JNIEnv* env = base::android::AttachCurrentThread(); 816 JNIEnv* env = base::android::AttachCurrentThread();
814 Java_CronetUrlRequestContext_onGetCertVerifierData( 817 Java_CronetUrlRequestContext_onGetCertVerifierData(
815 env, jcronet_url_request_context_.obj(), 818 env, jcronet_url_request_context_.obj(),
(...skipping 165 matching lines...) Expand 10 before | Expand all | Expand 10 after
981 JNIEnv* env, 984 JNIEnv* env,
982 const JavaParamRef<jclass>& jcaller) { 985 const JavaParamRef<jclass>& jcaller) {
983 base::StatisticsRecorder::Initialize(); 986 base::StatisticsRecorder::Initialize();
984 std::vector<uint8_t> data; 987 std::vector<uint8_t> data;
985 if (!HistogramManager::GetInstance()->GetDeltas(&data)) 988 if (!HistogramManager::GetInstance()->GetDeltas(&data))
986 return ScopedJavaLocalRef<jbyteArray>(); 989 return ScopedJavaLocalRef<jbyteArray>();
987 return base::android::ToJavaByteArray(env, &data[0], data.size()); 990 return base::android::ToJavaByteArray(env, &data[0], data.size());
988 } 991 }
989 992
990 } // namespace cronet 993 } // namespace cronet
OLDNEW
« no previous file with comments | « no previous file | tools/metrics/histograms/histograms.xml » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698