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 "components/password_manager/core/browser/password_manager.h" | 5 #include "components/password_manager/core/browser/password_manager.h" |
6 | 6 |
7 #include "base/command_line.h" | 7 #include "base/command_line.h" |
8 #include "base/metrics/field_trial.h" | 8 #include "base/metrics/field_trial.h" |
9 #include "base/metrics/histogram.h" | 9 #include "base/metrics/histogram.h" |
10 #include "base/prefs/pref_service.h" | 10 #include "base/prefs/pref_service.h" |
(...skipping 216 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
227 // instances for UMA. | 227 // instances for UMA. |
228 bool has_found_matching_managers_which_were_not_ready = false; | 228 bool has_found_matching_managers_which_were_not_ready = false; |
229 for (ScopedVector<PasswordFormManager>::iterator iter = | 229 for (ScopedVector<PasswordFormManager>::iterator iter = |
230 pending_login_managers_.begin(); | 230 pending_login_managers_.begin(); |
231 iter != pending_login_managers_.end(); ++iter) { | 231 iter != pending_login_managers_.end(); ++iter) { |
232 PasswordFormManager::MatchResultMask result = (*iter)->DoesManage(form); | 232 PasswordFormManager::MatchResultMask result = (*iter)->DoesManage(form); |
233 | 233 |
234 if (result == PasswordFormManager::RESULT_NO_MATCH) | 234 if (result == PasswordFormManager::RESULT_NO_MATCH) |
235 continue; | 235 continue; |
236 | 236 |
237 if ((*iter)->IsIgnorableChangePasswordForm()) { | |
238 if (logger) | |
239 logger->LogMessage(Logger::STRING_CHANGE_PASSWORD_FORM); | |
240 continue; | |
241 } | |
242 | |
243 if (!(*iter)->HasCompletedMatching()) { | 237 if (!(*iter)->HasCompletedMatching()) { |
244 has_found_matching_managers_which_were_not_ready = true; | 238 has_found_matching_managers_which_were_not_ready = true; |
245 continue; | 239 continue; |
246 } | 240 } |
247 | 241 |
248 if (result == PasswordFormManager::RESULT_COMPLETE_MATCH) { | 242 if (result == PasswordFormManager::RESULT_COMPLETE_MATCH) { |
249 // If we find a manager that exactly matches the submitted form including | 243 // If we find a manager that exactly matches the submitted form including |
250 // the action URL, exit the loop. | 244 // the action URL, exit the loop. |
251 if (logger) | 245 if (logger) |
252 logger->LogMessage(Logger::STRING_EXACT_MATCH); | 246 logger->LogMessage(Logger::STRING_EXACT_MATCH); |
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
316 } | 310 } |
317 PasswordFormManager::OtherPossibleUsernamesAction action = | 311 PasswordFormManager::OtherPossibleUsernamesAction action = |
318 PasswordFormManager::IGNORE_OTHER_POSSIBLE_USERNAMES; | 312 PasswordFormManager::IGNORE_OTHER_POSSIBLE_USERNAMES; |
319 if (OtherPossibleUsernamesEnabled()) | 313 if (OtherPossibleUsernamesEnabled()) |
320 action = PasswordFormManager::ALLOW_OTHER_POSSIBLE_USERNAMES; | 314 action = PasswordFormManager::ALLOW_OTHER_POSSIBLE_USERNAMES; |
321 if (logger) { | 315 if (logger) { |
322 logger->LogBoolean( | 316 logger->LogBoolean( |
323 Logger::STRING_IGNORE_POSSIBLE_USERNAMES, | 317 Logger::STRING_IGNORE_POSSIBLE_USERNAMES, |
324 action == PasswordFormManager::IGNORE_OTHER_POSSIBLE_USERNAMES); | 318 action == PasswordFormManager::IGNORE_OTHER_POSSIBLE_USERNAMES); |
325 } | 319 } |
326 manager->ProvisionallySave(provisionally_saved_form, action); | 320 if (!manager->ProvisionallySave(provisionally_saved_form, action)) { |
| 321 if (logger) { |
| 322 logger->LogPasswordForm(Logger::STRING_CHANGE_PASSWORD_FORM, |
| 323 provisionally_saved_form); |
| 324 } |
| 325 return; |
| 326 } |
| 327 |
327 provisional_save_manager_.swap(manager); | 328 provisional_save_manager_.swap(manager); |
328 | 329 |
329 // Cache the user-visible URL (i.e., the one seen in the omnibox). Once the | 330 // Cache the user-visible URL (i.e., the one seen in the omnibox). Once the |
330 // post-submit navigation concludes, we compare the landing URL against the | 331 // post-submit navigation concludes, we compare the landing URL against the |
331 // cached and report the difference through UMA. | 332 // cached and report the difference through UMA. |
332 main_frame_url_ = client_->GetMainFrameURL(); | 333 main_frame_url_ = client_->GetMainFrameURL(); |
333 } | 334 } |
334 | 335 |
335 void PasswordManager::RecordFailure(ProvisionalSaveFailure failure, | 336 void PasswordManager::RecordFailure(ProvisionalSaveFailure failure, |
336 const GURL& form_origin, | 337 const GURL& form_origin, |
(...skipping 350 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
687 observers_, | 688 observers_, |
688 OnAutofillDataAvailable(preferred_match.username_value, | 689 OnAutofillDataAvailable(preferred_match.username_value, |
689 preferred_match.password_value)); | 690 preferred_match.password_value)); |
690 break; | 691 break; |
691 } | 692 } |
692 | 693 |
693 client_->PasswordWasAutofilled(best_matches); | 694 client_->PasswordWasAutofilled(best_matches); |
694 } | 695 } |
695 | 696 |
696 } // namespace password_manager | 697 } // namespace password_manager |
OLD | NEW |