Upstream version 11.40.277.0
[platform/framework/web/crosswalk.git] / src / chrome / browser / ui / autofill / autofill_dialog_common.h
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
3 // found in the LICENSE file.
4
5 #ifndef CHROME_BROWSER_UI_AUTOFILL_AUTOFILL_DIALOG_COMMON_H_
6 #define CHROME_BROWSER_UI_AUTOFILL_AUTOFILL_DIALOG_COMMON_H_
7
8 #include "chrome/browser/ui/autofill/autofill_dialog_types.h"
9 #include "components/autofill/core/browser/autofill_type.h"
10 #include "components/autofill/core/browser/field_types.h"
11
12 namespace autofill {
13 class AutofillProfile;
14 }
15
16 namespace wallet {
17 class Address;
18 }
19
20 namespace autofill {
21 namespace common {
22
23 // The types of addresses this class supports building.
24 enum AddressType {
25   ADDRESS_TYPE_BILLING,
26   ADDRESS_TYPE_SHIPPING,
27 };
28
29 // Returns true if |type| should be shown when |field_type| has been requested.
30 // This filters the types that we fill into the page to match the ones the
31 // dialog actually cares about, preventing rAc from giving away data that an
32 // AutofillProfile or other data source might know about the user which isn't
33 // represented in the dialog.
34 bool ServerTypeEncompassesFieldType(ServerFieldType type,
35                                     const AutofillType& field_type);
36
37 // Returns true if |type| in the given |section| should be used for a
38 // site-requested |field|.
39 bool ServerTypeMatchesField(DialogSection section,
40                             ServerFieldType type,
41                             const AutofillField& field);
42
43 // Returns true if the |type| belongs to the CREDIT_CARD field type group.
44 bool IsCreditCardType(ServerFieldType type);
45
46 // Constructs |inputs| from the array of inputs in |input_template|.
47 void BuildInputs(const DetailInput input_template[],
48                  size_t template_size,
49                  DetailInputs* inputs);
50
51 // Returns the AutofillMetrics::DIALOG_UI_*_ITEM_ADDED metric corresponding
52 // to the |section|.
53 AutofillMetrics::DialogUiEvent DialogSectionToUiItemAddedEvent(
54     DialogSection section);
55
56 // Returns the AutofillMetrics::DIALOG_UI_*_ITEM_ADDED metric corresponding
57 // to the |section|.
58 AutofillMetrics::DialogUiEvent DialogSectionToUiSelectionChangedEvent(
59     DialogSection section);
60
61 // Gets just the |type| attributes from each DetailInput.
62 std::vector<ServerFieldType> TypesFromInputs(const DetailInputs& inputs);
63
64 }  // namespace common
65 }  // namespace autofill
66
67 #endif  // CHROME_BROWSER_UI_AUTOFILL_AUTOFILL_DIALOG_COMMON_H_