| OLD | NEW |
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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/autofill/core/browser/autofill_metrics.h" | 5 #include "components/autofill/core/browser/autofill_metrics.h" |
| 6 | 6 |
| 7 #include <algorithm> | 7 #include <algorithm> |
| 8 #include <utility> | 8 #include <utility> |
| 9 #include <vector> | 9 #include <vector> |
| 10 | 10 |
| (...skipping 775 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 786 | 786 |
| 787 LogUkm(ukm_service, url, internal::kUKMDeveloperEngagementEntryName, metrics); | 787 LogUkm(ukm_service, url, internal::kUKMDeveloperEngagementEntryName, metrics); |
| 788 } | 788 } |
| 789 | 789 |
| 790 // static | 790 // static |
| 791 bool AutofillMetrics::LogUkm( | 791 bool AutofillMetrics::LogUkm( |
| 792 ukm::UkmService* ukm_service, | 792 ukm::UkmService* ukm_service, |
| 793 const GURL& url, | 793 const GURL& url, |
| 794 const std::string& ukm_entry_name, | 794 const std::string& ukm_entry_name, |
| 795 const std::vector<std::pair<const char*, int>>& metrics) { | 795 const std::vector<std::pair<const char*, int>>& metrics) { |
| 796 if (!ukm_service || !url.is_valid() || metrics.empty()) { | 796 if (!IsUkmLoggingEnabled() || !ukm_service || !url.is_valid() || |
| 797 metrics.empty()) { |
| 797 return false; | 798 return false; |
| 798 } | 799 } |
| 799 | 800 |
| 800 int32_t source_id = ukm_service->GetNewSourceID(); | 801 int32_t source_id = ukm_service->GetNewSourceID(); |
| 801 ukm_service->UpdateSourceURL(source_id, url); | 802 ukm_service->UpdateSourceURL(source_id, url); |
| 802 std::unique_ptr<ukm::UkmEntryBuilder> builder = | 803 std::unique_ptr<ukm::UkmEntryBuilder> builder = |
| 803 ukm_service->GetEntryBuilder(source_id, ukm_entry_name.c_str()); | 804 ukm_service->GetEntryBuilder(source_id, ukm_entry_name.c_str()); |
| 804 | 805 |
| 805 for (auto it = metrics.begin(); it != metrics.end(); ++it) { | 806 for (auto it = metrics.begin(); it != metrics.end(); ++it) { |
| 806 builder->AddMetric(it->first, it->second); | 807 builder->AddMetric(it->first, it->second); |
| (...skipping 220 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1027 name += ".WithBothServerAndLocalData"; | 1028 name += ".WithBothServerAndLocalData"; |
| 1028 LogUMAHistogramEnumeration(name, event, NUM_FORM_EVENTS); | 1029 LogUMAHistogramEnumeration(name, event, NUM_FORM_EVENTS); |
| 1029 } | 1030 } |
| 1030 | 1031 |
| 1031 AutofillMetrics::FormInteractionsUkmLogger::FormInteractionsUkmLogger( | 1032 AutofillMetrics::FormInteractionsUkmLogger::FormInteractionsUkmLogger( |
| 1032 ukm::UkmService* ukm_service) | 1033 ukm::UkmService* ukm_service) |
| 1033 : ukm_service_(ukm_service) {} | 1034 : ukm_service_(ukm_service) {} |
| 1034 | 1035 |
| 1035 void AutofillMetrics::FormInteractionsUkmLogger::OnFormsParsed( | 1036 void AutofillMetrics::FormInteractionsUkmLogger::OnFormsParsed( |
| 1036 const GURL& url) { | 1037 const GURL& url) { |
| 1037 if (ukm_service_ == nullptr) | 1038 if (!IsUkmLoggingEnabled() || ukm_service_ == nullptr) |
| 1038 return; | 1039 return; |
| 1039 | 1040 |
| 1040 url_ = url; | 1041 url_ = url; |
| 1041 form_parsed_timestamp_ = base::TimeTicks::Now(); | 1042 form_parsed_timestamp_ = base::TimeTicks::Now(); |
| 1042 } | 1043 } |
| 1043 | 1044 |
| 1044 void AutofillMetrics::FormInteractionsUkmLogger::LogInteractedWithForm( | 1045 void AutofillMetrics::FormInteractionsUkmLogger::LogInteractedWithForm( |
| 1045 bool is_for_credit_card, | 1046 bool is_for_credit_card, |
| 1046 size_t local_record_type_count, | 1047 size_t local_record_type_count, |
| 1047 size_t server_record_type_count) { | 1048 size_t server_record_type_count) { |
| (...skipping 97 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1145 } | 1146 } |
| 1146 | 1147 |
| 1147 void AutofillMetrics::FormInteractionsUkmLogger::UpdateSourceURL( | 1148 void AutofillMetrics::FormInteractionsUkmLogger::UpdateSourceURL( |
| 1148 const GURL& url) { | 1149 const GURL& url) { |
| 1149 url_ = url; | 1150 url_ = url; |
| 1150 if (CanLog()) | 1151 if (CanLog()) |
| 1151 ukm_service_->UpdateSourceURL(source_id_, url_); | 1152 ukm_service_->UpdateSourceURL(source_id_, url_); |
| 1152 } | 1153 } |
| 1153 | 1154 |
| 1154 bool AutofillMetrics::FormInteractionsUkmLogger::CanLog() const { | 1155 bool AutofillMetrics::FormInteractionsUkmLogger::CanLog() const { |
| 1155 return ukm_service_ && url_.is_valid(); | 1156 return IsUkmLoggingEnabled() && ukm_service_ && url_.is_valid(); |
| 1156 } | 1157 } |
| 1157 | 1158 |
| 1158 int64_t | 1159 int64_t |
| 1159 AutofillMetrics::FormInteractionsUkmLogger::MillisecondsSinceFormParsed() | 1160 AutofillMetrics::FormInteractionsUkmLogger::MillisecondsSinceFormParsed() |
| 1160 const { | 1161 const { |
| 1161 DCHECK(!form_parsed_timestamp_.is_null()); | 1162 DCHECK(!form_parsed_timestamp_.is_null()); |
| 1162 return (base::TimeTicks::Now() - form_parsed_timestamp_).InMilliseconds(); | 1163 return (base::TimeTicks::Now() - form_parsed_timestamp_).InMilliseconds(); |
| 1163 } | 1164 } |
| 1164 | 1165 |
| 1165 void AutofillMetrics::FormInteractionsUkmLogger::GetNewSourceID() { | 1166 void AutofillMetrics::FormInteractionsUkmLogger::GetNewSourceID() { |
| 1166 source_id_ = ukm_service_->GetNewSourceID(); | 1167 source_id_ = ukm_service_->GetNewSourceID(); |
| 1167 ukm_service_->UpdateSourceURL(source_id_, url_); | 1168 ukm_service_->UpdateSourceURL(source_id_, url_); |
| 1168 } | 1169 } |
| 1169 | 1170 |
| 1170 } // namespace autofill | 1171 } // namespace autofill |
| OLD | NEW |