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/form_group.h" | 5 #include "components/autofill/core/browser/form_group.h" |
6 | 6 |
| 7 #include "components/autofill/core/browser/autofill_type.h" |
| 8 |
7 namespace autofill { | 9 namespace autofill { |
8 | 10 |
9 void FormGroup::GetMatchingTypes(const base::string16& text, | 11 void FormGroup::GetMatchingTypes(const base::string16& text, |
10 const std::string& app_locale, | 12 const std::string& app_locale, |
11 FieldTypeSet* matching_types) const { | 13 ServerFieldTypeSet* matching_types) const { |
12 if (text.empty()) { | 14 if (text.empty()) { |
13 matching_types->insert(EMPTY_TYPE); | 15 matching_types->insert(EMPTY_TYPE); |
14 return; | 16 return; |
15 } | 17 } |
16 | 18 |
17 FieldTypeSet types; | 19 ServerFieldTypeSet types; |
18 GetSupportedTypes(&types); | 20 GetSupportedTypes(&types); |
19 for (FieldTypeSet::const_iterator type = types.begin(); | 21 for (ServerFieldTypeSet::const_iterator type = types.begin(); |
20 type != types.end(); ++type) { | 22 type != types.end(); ++type) { |
21 // TODO(isherman): Matches are case-sensitive for now. Let's keep an eye on | 23 if (GetInfo(AutofillType(*type), app_locale) == text) |
22 // this and decide whether there are compelling reasons to add case- | |
23 // insensitivity. | |
24 if (GetInfo(*type, app_locale) == text) | |
25 matching_types->insert(*type); | 24 matching_types->insert(*type); |
26 } | 25 } |
27 } | 26 } |
28 | 27 |
29 void FormGroup::GetNonEmptyTypes(const std::string& app_locale, | 28 void FormGroup::GetNonEmptyTypes(const std::string& app_locale, |
30 FieldTypeSet* non_empty_types) const { | 29 ServerFieldTypeSet* non_empty_types) const { |
31 FieldTypeSet types; | 30 ServerFieldTypeSet types; |
32 GetSupportedTypes(&types); | 31 GetSupportedTypes(&types); |
33 for (FieldTypeSet::const_iterator type = types.begin(); | 32 for (ServerFieldTypeSet::const_iterator type = types.begin(); |
34 type != types.end(); ++type) { | 33 type != types.end(); ++type) { |
35 if (!GetInfo(*type, app_locale).empty()) | 34 if (!GetInfo(AutofillType(*type), app_locale).empty()) |
36 non_empty_types->insert(*type); | 35 non_empty_types->insert(*type); |
37 } | 36 } |
38 } | 37 } |
39 | 38 |
40 base::string16 FormGroup::GetInfo(AutofillFieldType type, | 39 base::string16 FormGroup::GetInfo(const AutofillType& type, |
41 const std::string& app_locale) const { | 40 const std::string& app_locale) const { |
42 return GetRawInfo(type); | 41 return GetRawInfo(type.server_type()); |
43 } | 42 } |
44 | 43 |
45 bool FormGroup::SetInfo(AutofillFieldType type, | 44 bool FormGroup::SetInfo(const AutofillType& type, |
46 const base::string16& value, | 45 const base::string16& value, |
47 const std::string& app_locale) { | 46 const std::string& app_locale) { |
48 SetRawInfo(type, value); | 47 SetRawInfo(type.server_type(), value); |
49 return true; | 48 return true; |
50 } | 49 } |
51 | 50 |
52 } // namespace autofill | 51 } // namespace autofill |
OLD | NEW |