| OLD | NEW |
| 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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 "chrome/browser/autofill/autofill_manager.h" | 5 #include "chrome/browser/autofill/autofill_manager.h" |
| 6 | 6 |
| 7 #include <stddef.h> | 7 #include <stddef.h> |
| 8 | 8 |
| 9 #include <limits> | 9 #include <limits> |
| 10 #include <map> | 10 #include <map> |
| (...skipping 294 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 305 IPC_MESSAGE_HANDLER(AutofillHostMsg_ShowAutofillDialog, | 305 IPC_MESSAGE_HANDLER(AutofillHostMsg_ShowAutofillDialog, |
| 306 OnShowAutofillDialog) | 306 OnShowAutofillDialog) |
| 307 IPC_MESSAGE_HANDLER(AutofillHostMsg_FillAutofillFormData, | 307 IPC_MESSAGE_HANDLER(AutofillHostMsg_FillAutofillFormData, |
| 308 OnFillAutofillFormData) | 308 OnFillAutofillFormData) |
| 309 IPC_MESSAGE_HANDLER(AutofillHostMsg_DidPreviewAutofillFormData, | 309 IPC_MESSAGE_HANDLER(AutofillHostMsg_DidPreviewAutofillFormData, |
| 310 OnDidPreviewAutofillFormData) | 310 OnDidPreviewAutofillFormData) |
| 311 IPC_MESSAGE_HANDLER(AutofillHostMsg_DidFillAutofillFormData, | 311 IPC_MESSAGE_HANDLER(AutofillHostMsg_DidFillAutofillFormData, |
| 312 OnDidFillAutofillFormData) | 312 OnDidFillAutofillFormData) |
| 313 IPC_MESSAGE_HANDLER(AutofillHostMsg_DidShowAutofillSuggestions, | 313 IPC_MESSAGE_HANDLER(AutofillHostMsg_DidShowAutofillSuggestions, |
| 314 OnDidShowAutofillSuggestions) | 314 OnDidShowAutofillSuggestions) |
| 315 IPC_MESSAGE_HANDLER(AutofillHostMsg_DidEndTextFieldEditing, |
| 316 OnDidEndTextFieldEditing) |
| 315 IPC_MESSAGE_HANDLER(AutofillHostMsg_HideAutofillPopup, | 317 IPC_MESSAGE_HANDLER(AutofillHostMsg_HideAutofillPopup, |
| 316 OnHideAutofillPopup) | 318 OnHideAutofillPopup) |
| 317 IPC_MESSAGE_UNHANDLED(handled = false) | 319 IPC_MESSAGE_UNHANDLED(handled = false) |
| 318 IPC_END_MESSAGE_MAP() | 320 IPC_END_MESSAGE_MAP() |
| 319 | 321 |
| 320 return handled; | 322 return handled; |
| 321 } | 323 } |
| 322 | 324 |
| 323 bool AutofillManager::OnFormSubmitted(const FormData& form, | 325 bool AutofillManager::OnFormSubmitted(const FormData& form, |
| 324 const TimeTicks& timestamp) { | 326 const TimeTicks& timestamp) { |
| (...skipping 111 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 436 AutofillMetrics::USER_DID_EDIT_AUTOFILLED_FIELD_ONCE); | 438 AutofillMetrics::USER_DID_EDIT_AUTOFILLED_FIELD_ONCE); |
| 437 } | 439 } |
| 438 } | 440 } |
| 439 | 441 |
| 440 UpdateInitialInteractionTimestamp(timestamp); | 442 UpdateInitialInteractionTimestamp(timestamp); |
| 441 } | 443 } |
| 442 | 444 |
| 443 void AutofillManager::OnQueryFormFieldAutofill(int query_id, | 445 void AutofillManager::OnQueryFormFieldAutofill(int query_id, |
| 444 const FormData& form, | 446 const FormData& form, |
| 445 const FormField& field, | 447 const FormField& field, |
| 446 const gfx::Rect& bounding_box) { | 448 const gfx::Rect& bounding_box, |
| 449 bool display_warning) { |
| 447 std::vector<string16> values; | 450 std::vector<string16> values; |
| 448 std::vector<string16> labels; | 451 std::vector<string16> labels; |
| 449 std::vector<string16> icons; | 452 std::vector<string16> icons; |
| 450 std::vector<int> unique_ids; | 453 std::vector<int> unique_ids; |
| 451 | 454 |
| 452 if (external_delegate_) { | 455 if (external_delegate_) { |
| 453 external_delegate_->OnQuery(query_id, form, field, bounding_box); | 456 external_delegate_->OnQuery(query_id, |
| 457 form, |
| 458 field, |
| 459 bounding_box, |
| 460 display_warning); |
| 454 } | 461 } |
| 455 | 462 |
| 456 RenderViewHost* host = NULL; | 463 RenderViewHost* host = NULL; |
| 457 FormStructure* form_structure = NULL; | 464 FormStructure* form_structure = NULL; |
| 458 AutofillField* autofill_field = NULL; | 465 AutofillField* autofill_field = NULL; |
| 459 if (GetHost( | 466 if (GetHost( |
| 460 personal_data_->profiles(), personal_data_->credit_cards(), &host) && | 467 personal_data_->profiles(), personal_data_->credit_cards(), &host) && |
| 461 GetCachedFormAndField(form, field, &form_structure, &autofill_field) && | 468 GetCachedFormAndField(form, field, &form_structure, &autofill_field) && |
| 462 // Don't send suggestions for forms that aren't auto-fillable. | 469 // Don't send suggestions for forms that aren't auto-fillable. |
| 463 form_structure->IsAutofillable(false)) { | 470 form_structure->IsAutofillable(false)) { |
| (...skipping 223 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 687 const std::string& response_xml) { | 694 const std::string& response_xml) { |
| 688 // Parse and store the server predictions. | 695 // Parse and store the server predictions. |
| 689 FormStructure::ParseQueryResponse(response_xml, | 696 FormStructure::ParseQueryResponse(response_xml, |
| 690 form_structures_.get(), | 697 form_structures_.get(), |
| 691 *metric_logger_); | 698 *metric_logger_); |
| 692 | 699 |
| 693 // If the corresponding flag is set, annotate forms with the predicted types. | 700 // If the corresponding flag is set, annotate forms with the predicted types. |
| 694 SendAutofillTypePredictions(form_structures_.get()); | 701 SendAutofillTypePredictions(form_structures_.get()); |
| 695 } | 702 } |
| 696 | 703 |
| 704 void AutofillManager::OnDidEndTextFieldEditing() { |
| 705 if (external_delegate_) |
| 706 external_delegate_->DidEndTextFieldEditing(); |
| 707 } |
| 708 |
| 697 bool AutofillManager::IsAutofillEnabled() const { | 709 bool AutofillManager::IsAutofillEnabled() const { |
| 698 Profile* profile = Profile::FromBrowserContext( | 710 Profile* profile = Profile::FromBrowserContext( |
| 699 const_cast<AutofillManager*>(this)->tab_contents()->browser_context()); | 711 const_cast<AutofillManager*>(this)->tab_contents()->browser_context()); |
| 700 return profile->GetPrefs()->GetBoolean(prefs::kAutofillEnabled); | 712 return profile->GetPrefs()->GetBoolean(prefs::kAutofillEnabled); |
| 701 } | 713 } |
| 702 | 714 |
| 703 void AutofillManager::SendAutofillTypePredictions( | 715 void AutofillManager::SendAutofillTypePredictions( |
| 704 const std::vector<FormStructure*>& forms) const { | 716 const std::vector<FormStructure*>& forms) const { |
| 705 if (!CommandLine::ForCurrentProcess()->HasSwitch( | 717 if (!CommandLine::ForCurrentProcess()->HasSwitch( |
| 706 switches::kShowAutofillTypePredictions)) | 718 switches::kShowAutofillTypePredictions)) |
| (...skipping 580 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1287 *profile_guid = IDToGUID(profile_id); | 1299 *profile_guid = IDToGUID(profile_id); |
| 1288 } | 1300 } |
| 1289 | 1301 |
| 1290 void AutofillManager::UpdateInitialInteractionTimestamp( | 1302 void AutofillManager::UpdateInitialInteractionTimestamp( |
| 1291 const TimeTicks& interaction_timestamp) { | 1303 const TimeTicks& interaction_timestamp) { |
| 1292 if (initial_interaction_timestamp_.is_null() || | 1304 if (initial_interaction_timestamp_.is_null() || |
| 1293 interaction_timestamp < initial_interaction_timestamp_) { | 1305 interaction_timestamp < initial_interaction_timestamp_) { |
| 1294 initial_interaction_timestamp_ = interaction_timestamp; | 1306 initial_interaction_timestamp_ = interaction_timestamp; |
| 1295 } | 1307 } |
| 1296 } | 1308 } |
| OLD | NEW |