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_manager.h" | 5 #include "components/autofill/core/browser/autofill_manager.h" |
6 | 6 |
7 #include <stddef.h> | 7 #include <stddef.h> |
8 #include <stdint.h> | 8 #include <stdint.h> |
9 | 9 |
10 #include <algorithm> | 10 #include <algorithm> |
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
53 #include "components/autofill/core/common/autofill_constants.h" | 53 #include "components/autofill/core/common/autofill_constants.h" |
54 #include "components/autofill/core/common/autofill_data_validation.h" | 54 #include "components/autofill/core/common/autofill_data_validation.h" |
55 #include "components/autofill/core/common/autofill_pref_names.h" | 55 #include "components/autofill/core/common/autofill_pref_names.h" |
56 #include "components/autofill/core/common/autofill_util.h" | 56 #include "components/autofill/core/common/autofill_util.h" |
57 #include "components/autofill/core/common/form_data.h" | 57 #include "components/autofill/core/common/form_data.h" |
58 #include "components/autofill/core/common/form_data_predictions.h" | 58 #include "components/autofill/core/common/form_data_predictions.h" |
59 #include "components/autofill/core/common/form_field_data.h" | 59 #include "components/autofill/core/common/form_field_data.h" |
60 #include "components/autofill/core/common/password_form_fill_data.h" | 60 #include "components/autofill/core/common/password_form_fill_data.h" |
61 #include "components/pref_registry/pref_registry_syncable.h" | 61 #include "components/pref_registry/pref_registry_syncable.h" |
62 #include "components/prefs/pref_service.h" | 62 #include "components/prefs/pref_service.h" |
63 #include "components/rappor/rappor_utils.h" | 63 #include "components/rappor/public/rappor_utils.h" |
| 64 #include "components/rappor/rappor_service_impl.h" |
64 #include "google_apis/gaia/identity_provider.h" | 65 #include "google_apis/gaia/identity_provider.h" |
65 #include "grit/components_strings.h" | 66 #include "grit/components_strings.h" |
66 #include "ui/base/l10n/l10n_util.h" | 67 #include "ui/base/l10n/l10n_util.h" |
67 #include "ui/gfx/geometry/rect.h" | 68 #include "ui/gfx/geometry/rect.h" |
68 #include "url/gurl.h" | 69 #include "url/gurl.h" |
69 | 70 |
70 #if defined(OS_IOS) | 71 #if defined(OS_IOS) |
71 #include "components/autofill/core/browser/keyboard_accessory_metrics_logger.h" | 72 #include "components/autofill/core/browser/keyboard_accessory_metrics_logger.h" |
72 #endif | 73 #endif |
73 | 74 |
(...skipping 886 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
960 } | 961 } |
961 std::reverse(queried_forms.begin(), queried_forms.end()); | 962 std::reverse(queried_forms.begin(), queried_forms.end()); |
962 | 963 |
963 // If there are no current forms corresponding to the queried signatures, drop | 964 // If there are no current forms corresponding to the queried signatures, drop |
964 // the query response. | 965 // the query response. |
965 if (queried_forms.empty()) | 966 if (queried_forms.empty()) |
966 return; | 967 return; |
967 | 968 |
968 // Parse and store the server predictions. | 969 // Parse and store the server predictions. |
969 FormStructure::ParseQueryResponse(std::move(response), queried_forms, | 970 FormStructure::ParseQueryResponse(std::move(response), queried_forms, |
970 client_->GetRapporService()); | 971 client_->GetRapporServiceImpl()); |
971 | 972 |
972 // Will log quality metrics for each FormStructure based on the presence of | 973 // Will log quality metrics for each FormStructure based on the presence of |
973 // autocomplete attributes, if available. | 974 // autocomplete attributes, if available. |
974 for (FormStructure* cur_form : queried_forms) | 975 for (FormStructure* cur_form : queried_forms) |
975 cur_form->LogQualityMetricsBasedOnAutocomplete(); | 976 cur_form->LogQualityMetricsBasedOnAutocomplete(); |
976 | 977 |
977 // Forward form structures to the password generation manager to detect | 978 // Forward form structures to the password generation manager to detect |
978 // account creation forms. | 979 // account creation forms. |
979 driver_->PropagateAutofillPredictions(queried_forms); | 980 driver_->PropagateAutofillPredictions(queried_forms); |
980 | 981 |
(...skipping 299 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1280 AutofillMetrics::UPLOAD_NOT_OFFERED_NO_ZIP_CODE); | 1281 AutofillMetrics::UPLOAD_NOT_OFFERED_NO_ZIP_CODE); |
1281 return false; | 1282 return false; |
1282 } | 1283 } |
1283 | 1284 |
1284 profiles->assign(candidate_profiles.begin(), candidate_profiles.end()); | 1285 profiles->assign(candidate_profiles.begin(), candidate_profiles.end()); |
1285 return true; | 1286 return true; |
1286 } | 1287 } |
1287 | 1288 |
1288 void AutofillManager::CollectRapportSample(const GURL& source_url, | 1289 void AutofillManager::CollectRapportSample(const GURL& source_url, |
1289 const char* metric_name) const { | 1290 const char* metric_name) const { |
1290 if (source_url.is_valid() && client_->GetRapporService()) { | 1291 if (source_url.is_valid() && client_->GetRapporServiceImpl()) { |
1291 rappor::SampleDomainAndRegistryFromGURL(client_->GetRapporService(), | 1292 rappor::SampleDomainAndRegistryFromGURL(client_->GetRapporServiceImpl(), |
1292 metric_name, source_url); | 1293 metric_name, source_url); |
1293 } | 1294 } |
1294 } | 1295 } |
1295 | 1296 |
1296 // Note that |submitted_form| is passed as a pointer rather than as a reference | 1297 // Note that |submitted_form| is passed as a pointer rather than as a reference |
1297 // so that we can get memory management right across threads. Note also that we | 1298 // so that we can get memory management right across threads. Note also that we |
1298 // explicitly pass in all the time stamps of interest, as the cached ones might | 1299 // explicitly pass in all the time stamps of interest, as the cached ones might |
1299 // get reset before this method executes. | 1300 // get reset before this method executes. |
1300 void AutofillManager::UploadFormDataAsyncCallback( | 1301 void AutofillManager::UploadFormDataAsyncCallback( |
1301 const FormStructure* submitted_form, | 1302 const FormStructure* submitted_form, |
1302 const TimeTicks& load_time, | 1303 const TimeTicks& load_time, |
1303 const TimeTicks& interaction_time, | 1304 const TimeTicks& interaction_time, |
1304 const TimeTicks& submission_time, | 1305 const TimeTicks& submission_time, |
1305 bool observed_submission) { | 1306 bool observed_submission) { |
1306 submitted_form->LogQualityMetrics( | 1307 submitted_form->LogQualityMetrics(load_time, interaction_time, |
1307 load_time, interaction_time, submission_time, client_->GetRapporService(), | 1308 submission_time, |
1308 did_show_suggestions_, observed_submission); | 1309 client_->GetRapporServiceImpl(), |
| 1310 did_show_suggestions_, observed_submission); |
1309 | 1311 |
1310 if (submitted_form->ShouldBeCrowdsourced()) | 1312 if (submitted_form->ShouldBeCrowdsourced()) |
1311 UploadFormData(*submitted_form, observed_submission); | 1313 UploadFormData(*submitted_form, observed_submission); |
1312 } | 1314 } |
1313 | 1315 |
1314 void AutofillManager::UploadFormData(const FormStructure& submitted_form, | 1316 void AutofillManager::UploadFormData(const FormStructure& submitted_form, |
1315 bool observed_submission) { | 1317 bool observed_submission) { |
1316 if (!download_manager_) | 1318 if (!download_manager_) |
1317 return; | 1319 return; |
1318 | 1320 |
(...skipping 803 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2122 if (i > 0) | 2124 if (i > 0) |
2123 fputs("Next oldest form:\n", file); | 2125 fputs("Next oldest form:\n", file); |
2124 } | 2126 } |
2125 fputs("\n", file); | 2127 fputs("\n", file); |
2126 | 2128 |
2127 fclose(file); | 2129 fclose(file); |
2128 } | 2130 } |
2129 #endif // ENABLE_FORM_DEBUG_DUMP | 2131 #endif // ENABLE_FORM_DEBUG_DUMP |
2130 | 2132 |
2131 } // namespace autofill | 2133 } // namespace autofill |
OLD | NEW |