OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 630 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
641 if (result.fields[i] == field || | 641 if (result.fields[i] == field || |
642 field_group_type == initiating_group_type) { | 642 field_group_type == initiating_group_type) { |
643 use_variant = variant; | 643 use_variant = variant; |
644 } | 644 } |
645 form_group->FillFormField(*cached_field, | 645 form_group->FillFormField(*cached_field, |
646 use_variant, | 646 use_variant, |
647 &result.fields[i]); | 647 &result.fields[i]); |
648 // Mark the cached field as autofilled, so that we can detect when a user | 648 // Mark the cached field as autofilled, so that we can detect when a user |
649 // edits an autofilled field (for metrics). | 649 // edits an autofilled field (for metrics). |
650 form_structure->field(i)->is_autofilled = true; | 650 form_structure->field(i)->is_autofilled = true; |
| 651 } else { |
| 652 // Check if the field type is one with default value. |
| 653 if (cached_field->type() == FIELD_WITH_DEFAULT_VALUE && |
| 654 cached_field->is_checkable) { |
| 655 string16 default_value = ASCIIToUTF16(cached_field->default_value()); |
| 656 result.fields[i].is_checked = (default_value == result.fields[i].value); |
| 657 form_structure->field(i)->is_autofilled = true; |
| 658 } |
651 } | 659 } |
652 } | 660 } |
653 | 661 |
654 autofilled_form_signatures_.push_front(form_structure->FormSignature()); | 662 autofilled_form_signatures_.push_front(form_structure->FormSignature()); |
655 // Only remember the last few forms that we've seen, both to avoid false | 663 // Only remember the last few forms that we've seen, both to avoid false |
656 // positives and to avoid wasting memory. | 664 // positives and to avoid wasting memory. |
657 if (autofilled_form_signatures_.size() > kMaxRecentFormSignaturesToRemember) | 665 if (autofilled_form_signatures_.size() > kMaxRecentFormSignaturesToRemember) |
658 autofilled_form_signatures_.pop_back(); | 666 autofilled_form_signatures_.pop_back(); |
659 | 667 |
660 host->Send(new AutofillMsg_FormDataFilled( | 668 host->Send(new AutofillMsg_FormDataFilled( |
(...skipping 653 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1314 *profile_guid = IDToGUID(profile_id); | 1322 *profile_guid = IDToGUID(profile_id); |
1315 } | 1323 } |
1316 | 1324 |
1317 void AutofillManager::UpdateInitialInteractionTimestamp( | 1325 void AutofillManager::UpdateInitialInteractionTimestamp( |
1318 const TimeTicks& interaction_timestamp) { | 1326 const TimeTicks& interaction_timestamp) { |
1319 if (initial_interaction_timestamp_.is_null() || | 1327 if (initial_interaction_timestamp_.is_null() || |
1320 interaction_timestamp < initial_interaction_timestamp_) { | 1328 interaction_timestamp < initial_interaction_timestamp_) { |
1321 initial_interaction_timestamp_ = interaction_timestamp; | 1329 initial_interaction_timestamp_ = interaction_timestamp; |
1322 } | 1330 } |
1323 } | 1331 } |
OLD | NEW |