OLD | NEW |
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2010 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 #ifndef CHROME_BROWSER_AUTOFILL_PERSONAL_DATA_MANAGER_H_ | 5 #ifndef CHROME_BROWSER_AUTOFILL_PERSONAL_DATA_MANAGER_H_ |
6 #define CHROME_BROWSER_AUTOFILL_PERSONAL_DATA_MANAGER_H_ | 6 #define CHROME_BROWSER_AUTOFILL_PERSONAL_DATA_MANAGER_H_ |
7 | 7 |
8 #include <set> | 8 #include <set> |
9 #include <vector> | 9 #include <vector> |
10 | 10 |
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
43 | 43 |
44 // WebDataServiceConsumer implementation: | 44 // WebDataServiceConsumer implementation: |
45 virtual void OnWebDataServiceRequestDone(WebDataService::Handle h, | 45 virtual void OnWebDataServiceRequestDone(WebDataService::Handle h, |
46 const WDTypedResult* result); | 46 const WDTypedResult* result); |
47 | 47 |
48 // AutoFillDialogObserver implementation: | 48 // AutoFillDialogObserver implementation: |
49 virtual void OnAutoFillDialogApply(std::vector<AutoFillProfile>* profiles, | 49 virtual void OnAutoFillDialogApply(std::vector<AutoFillProfile>* profiles, |
50 std::vector<CreditCard>* credit_cards); | 50 std::vector<CreditCard>* credit_cards); |
51 | 51 |
52 // Sets the listener to be notified of PersonalDataManager events. | 52 // Sets the listener to be notified of PersonalDataManager events. |
53 void SetObserver(PersonalDataManager::Observer* observer); | 53 virtual void SetObserver(PersonalDataManager::Observer* observer); |
54 | 54 |
55 // Removes |observer| as the observer of this PersonalDataManager. | 55 // Removes |observer| as the observer of this PersonalDataManager. |
56 void RemoveObserver(PersonalDataManager::Observer* observer); | 56 virtual void RemoveObserver(PersonalDataManager::Observer* observer); |
57 | 57 |
58 // If AutoFill is able to determine the field types of a significant number | 58 // If AutoFill is able to determine the field types of a significant number |
59 // of field types that contain information in the FormStructures and the user | 59 // of field types that contain information in the FormStructures and the user |
60 // has not previously been prompted, the user will be asked if he would like | 60 // has not previously been prompted, the user will be asked if he would like |
61 // to import the data. If the user selects yes, a profile will be created | 61 // to import the data. If the user selects yes, a profile will be created |
62 // with all of the information from recognized fields. | 62 // with all of the information from recognized fields. |
63 bool ImportFormData(const std::vector<FormStructure*>& form_structures, | 63 bool ImportFormData(const std::vector<FormStructure*>& form_structures, |
64 AutoFillManager* autofill_manager); | 64 AutoFillManager* autofill_manager); |
65 | 65 |
66 // Saves |imported_profile_| and |imported_credit_card_| to the WebDB if they | 66 // Saves |imported_profile_| and |imported_credit_card_| to the WebDB if they |
67 // exist. | 67 // exist. |
68 void SaveImportedFormData(); | 68 void SaveImportedFormData(); |
69 | 69 |
| 70 // Gets |imported_profile_| and |imported_credit_card_| and returns their |
| 71 // values in |profile| and |credit_card| parameters respectively. One or |
| 72 // both may return NULL. The objects returned are owned by the |
| 73 // PersonalDataManager, so should be considered weak references by caller. |
| 74 // TODO(dhollowa) Now that we aren't immediately saving the imported form |
| 75 // data, we should store the profile and CC in the AFM instead of the PDM. |
| 76 void GetImportedFormData(AutoFillProfile** profile, CreditCard** credit_card); |
| 77 |
70 // Sets |web_profiles_| to the contents of |profiles| and updates the web | 78 // Sets |web_profiles_| to the contents of |profiles| and updates the web |
71 // database by adding, updating and removing profiles. Sets the unique ID of | 79 // database by adding, updating and removing profiles. Sets the unique ID of |
72 // newly-added profiles. | 80 // newly-added profiles. |
73 // | 81 // |
74 // The relationship between this and Refresh is subtle. | 82 // The relationship between this and Refresh is subtle. |
75 // A call to SetProfile could include out-of-date data that may conflict | 83 // A call to SetProfile could include out-of-date data that may conflict |
76 // if we didn't refresh-to-latest before an autofill window was opened for | 84 // if we didn't refresh-to-latest before an autofill window was opened for |
77 // editing. SetProfile is implemented to make a "best effort" to apply the | 85 // editing. SetProfile is implemented to make a "best effort" to apply the |
78 // changes, but in extremely rare edge cases it is possible not all of the | 86 // changes, but in extremely rare edge cases it is possible not all of the |
79 // updates in |profiles| make it to the DB. This is why SetProfiles will | 87 // updates in |profiles| make it to the DB. This is why SetProfiles will |
(...skipping 15 matching lines...) Expand all Loading... |
95 bool HasPassword(); | 103 bool HasPassword(); |
96 | 104 |
97 // Returns whether the personal data has been loaded from the web database. | 105 // Returns whether the personal data has been loaded from the web database. |
98 virtual bool IsDataLoaded() const { return is_data_loaded_; } | 106 virtual bool IsDataLoaded() const { return is_data_loaded_; } |
99 | 107 |
100 // This PersonalDataManager owns these profiles and credit cards. Their | 108 // This PersonalDataManager owns these profiles and credit cards. Their |
101 // lifetime is until the web database is updated with new profile and credit | 109 // lifetime is until the web database is updated with new profile and credit |
102 // card information, respectively. |profiles()| returns both web and | 110 // card information, respectively. |profiles()| returns both web and |
103 // auxiliary profiles. |web_profiles()| returns only web profiles. | 111 // auxiliary profiles. |web_profiles()| returns only web profiles. |
104 const std::vector<AutoFillProfile*>& profiles(); | 112 const std::vector<AutoFillProfile*>& profiles(); |
105 const std::vector<AutoFillProfile*>& web_profiles(); | 113 virtual const std::vector<AutoFillProfile*>& web_profiles(); |
106 const std::vector<CreditCard*>& credit_cards() { return credit_cards_.get(); } | 114 virtual const std::vector<CreditCard*>& credit_cards() { |
| 115 return credit_cards_.get(); |
| 116 } |
107 | 117 |
108 // Returns the index of the default profile within the vector returned by | 118 // Returns the index of the default profile within the vector returned by |
109 // |web_profiles()|, or -1 if there are no profiles. | 119 // |web_profiles()|, or -1 if there are no profiles. |
110 int DefaultProfile() const; | 120 int DefaultProfile() const; |
111 | 121 |
112 // Returns the index of the default credit card within the vector returned by | 122 // Returns the index of the default credit card within the vector returned by |
113 // |credit_cards()|, or -1 if there are no credit cards. | 123 // |credit_cards()|, or -1 if there are no credit cards. |
114 int DefaultCreditCard() const; | 124 int DefaultCreditCard() const; |
115 | 125 |
116 // Creates a profile labeled |label|, with it's own locally unique ID. | 126 // Creates a profile labeled |label|, with it's own locally unique ID. |
(...skipping 124 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
241 WebDataService::Handle pending_profiles_query_; | 251 WebDataService::Handle pending_profiles_query_; |
242 WebDataService::Handle pending_creditcards_query_; | 252 WebDataService::Handle pending_creditcards_query_; |
243 | 253 |
244 // The observers. This can be empty. | 254 // The observers. This can be empty. |
245 std::vector<PersonalDataManager::Observer*> observers_; | 255 std::vector<PersonalDataManager::Observer*> observers_; |
246 | 256 |
247 DISALLOW_COPY_AND_ASSIGN(PersonalDataManager); | 257 DISALLOW_COPY_AND_ASSIGN(PersonalDataManager); |
248 }; | 258 }; |
249 | 259 |
250 #endif // CHROME_BROWSER_AUTOFILL_PERSONAL_DATA_MANAGER_H_ | 260 #endif // CHROME_BROWSER_AUTOFILL_PERSONAL_DATA_MANAGER_H_ |
OLD | NEW |