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 #ifndef COMPONENTS_PASSWORD_MANAGER_CORE_BROWSER_PASSWORD_FORM_MANAGER_H_ | 5 #ifndef COMPONENTS_PASSWORD_MANAGER_CORE_BROWSER_PASSWORD_FORM_MANAGER_H_ |
6 #define COMPONENTS_PASSWORD_MANAGER_CORE_BROWSER_PASSWORD_FORM_MANAGER_H_ | 6 #define COMPONENTS_PASSWORD_MANAGER_CORE_BROWSER_PASSWORD_FORM_MANAGER_H_ |
7 | 7 |
8 #include <string> | 8 #include <string> |
9 #include <vector> | 9 #include <vector> |
10 | 10 |
(...skipping 105 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
116 bool HasGeneratedPassword() const; | 116 bool HasGeneratedPassword() const; |
117 void SetHasGeneratedPassword(); | 117 void SetHasGeneratedPassword(); |
118 | 118 |
119 // Through |driver|, supply the associated frame with appropriate information | 119 // Through |driver|, supply the associated frame with appropriate information |
120 // (fill data, whether to allow password generation, etc.). If this is called | 120 // (fill data, whether to allow password generation, etc.). If this is called |
121 // before |this| has data from the PasswordStore, the execution will be | 121 // before |this| has data from the PasswordStore, the execution will be |
122 // delayed until the data arrives. | 122 // delayed until the data arrives. |
123 void ProcessFrame(const base::WeakPtr<PasswordManagerDriver>& driver); | 123 void ProcessFrame(const base::WeakPtr<PasswordManagerDriver>& driver); |
124 | 124 |
125 void OnGetPasswordStoreResults( | 125 void OnGetPasswordStoreResults( |
126 const std::vector<autofill::PasswordForm*>& results) override; | 126 ScopedVector<autofill::PasswordForm> results) override; |
127 | 127 |
128 // A user opted to 'never remember' passwords for this form. | 128 // A user opted to 'never remember' passwords for this form. |
129 // Blacklist it so that from now on when it is seen we ignore it. | 129 // Blacklist it so that from now on when it is seen we ignore it. |
130 // TODO: Make this private once we switch to the new UI. | 130 // TODO: Make this private once we switch to the new UI. |
131 void PermanentlyBlacklist(); | 131 void PermanentlyBlacklist(); |
132 | 132 |
133 // If the user has submitted observed_form_, provisionally hold on to | 133 // If the user has submitted observed_form_, provisionally hold on to |
134 // the submitted credentials until we are told by PasswordManager whether | 134 // the submitted credentials until we are told by PasswordManager whether |
135 // or not the login was successful. |action| describes how we deal with | 135 // or not the login was successful. |action| describes how we deal with |
136 // possible usernames. If |action| is ALLOW_OTHER_POSSIBLE_USERNAMES we will | 136 // possible usernames. If |action| is ALLOW_OTHER_POSSIBLE_USERNAMES we will |
(...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
218 kSubmitResultMax | 218 kSubmitResultMax |
219 }; | 219 }; |
220 | 220 |
221 // The maximum number of combinations of the three preceding enums. | 221 // The maximum number of combinations of the three preceding enums. |
222 // This is used when recording the actions taken by the form in UMA. | 222 // This is used when recording the actions taken by the form in UMA. |
223 static const int kMaxNumActionsTaken = | 223 static const int kMaxNumActionsTaken = |
224 kManagerActionMax * kUserActionMax * kSubmitResultMax; | 224 kManagerActionMax * kUserActionMax * kSubmitResultMax; |
225 | 225 |
226 // Determines if we need to autofill given the results of the query. | 226 // Determines if we need to autofill given the results of the query. |
227 // Takes ownership of the elements in |result|. | 227 // Takes ownership of the elements in |result|. |
228 void OnRequestDone(const std::vector<autofill::PasswordForm*>& result); | 228 void OnRequestDone(ScopedVector<autofill::PasswordForm> result); |
229 | 229 |
230 // Helper for OnGetPasswordStoreResults to determine whether or not | 230 // Helper for OnGetPasswordStoreResults to determine whether or not |
231 // the given result form is worth scoring. | 231 // the given result form is worth scoring. |
232 bool ShouldIgnoreResult(const autofill::PasswordForm& form) const; | 232 bool ShouldIgnoreResult(const autofill::PasswordForm& form) const; |
233 | 233 |
234 // Helper for Save in the case that best_matches.size() == 0, meaning | 234 // Helper for Save in the case that best_matches.size() == 0, meaning |
235 // we have no prior record of this form/username/password and the user | 235 // we have no prior record of this form/username/password and the user |
236 // has opted to 'Save Password'. If |reset_preferred_login| is set, | 236 // has opted to 'Save Password'. If |reset_preferred_login| is set, |
237 // the previously preferred login from |best_matches_| will be reset. | 237 // the previously preferred login from |best_matches_| will be reset. |
238 void SaveAsNewLogin(bool reset_preferred_login); | 238 void SaveAsNewLogin(bool reset_preferred_login); |
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
278 void SanitizePossibleUsernames(autofill::PasswordForm* form); | 278 void SanitizePossibleUsernames(autofill::PasswordForm* form); |
279 | 279 |
280 // Helper function to delegate uploading to the AutofillManager. | 280 // Helper function to delegate uploading to the AutofillManager. |
281 virtual void UploadPasswordForm( | 281 virtual void UploadPasswordForm( |
282 const autofill::FormData& form_data, | 282 const autofill::FormData& form_data, |
283 const autofill::ServerFieldType& password_type); | 283 const autofill::ServerFieldType& password_type); |
284 | 284 |
285 // Set of PasswordForms from the DB that best match the form | 285 // Set of PasswordForms from the DB that best match the form |
286 // being managed by this. Use a map instead of vector, because we most | 286 // being managed by this. Use a map instead of vector, because we most |
287 // frequently require lookups by username value in IsNewLogin. | 287 // frequently require lookups by username value in IsNewLogin. |
| 288 // TODO(vabr): Consider using ScopedPtrHashMap instead of the deleter below. |
288 autofill::PasswordFormMap best_matches_; | 289 autofill::PasswordFormMap best_matches_; |
289 | 290 |
290 // Cleans up when best_matches_ goes out of scope. | 291 // Cleans up when best_matches_ goes out of scope. |
291 STLValueDeleter<autofill::PasswordFormMap> best_matches_deleter_; | 292 STLValueDeleter<autofill::PasswordFormMap> best_matches_deleter_; |
292 | 293 |
293 // The PasswordForm from the page or dialog managed by |this|. | 294 // The PasswordForm from the page or dialog managed by |this|. |
294 const autofill::PasswordForm observed_form_; | 295 const autofill::PasswordForm observed_form_; |
295 | 296 |
296 // The origin url path of observed_form_ tokenized, for convenience when | 297 // The origin url path of observed_form_ tokenized, for convenience when |
297 // scoring. | 298 // scoring. |
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
353 ManagerAction manager_action_; | 354 ManagerAction manager_action_; |
354 UserAction user_action_; | 355 UserAction user_action_; |
355 SubmitResult submit_result_; | 356 SubmitResult submit_result_; |
356 | 357 |
357 DISALLOW_COPY_AND_ASSIGN(PasswordFormManager); | 358 DISALLOW_COPY_AND_ASSIGN(PasswordFormManager); |
358 }; | 359 }; |
359 | 360 |
360 } // namespace password_manager | 361 } // namespace password_manager |
361 | 362 |
362 #endif // COMPONENTS_PASSWORD_MANAGER_CORE_BROWSER_PASSWORD_FORM_MANAGER_H_ | 363 #endif // COMPONENTS_PASSWORD_MANAGER_CORE_BROWSER_PASSWORD_FORM_MANAGER_H_ |
OLD | NEW |