Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(493)

Unified Diff: chrome/browser/password_manager/password_form_manager.cc

Issue 23980003: Save password functionality added to the save password bubble (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 7 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/password_manager/password_form_manager.cc
diff --git a/chrome/browser/password_manager/password_form_manager.cc b/chrome/browser/password_manager/password_form_manager.cc
index 59c5a6a2e16fcf646892747a4edb4440b8930f07..d900c8eb12c470eee87dec0eddf15207dd94983e 100644
--- a/chrome/browser/password_manager/password_form_manager.cc
+++ b/chrome/browser/password_manager/password_form_manager.cc
@@ -39,7 +39,9 @@ PasswordFormManager::PasswordFormManager(Profile* profile,
web_contents_(web_contents),
manager_action_(kManagerActionNone),
user_action_(kUserActionNone),
- submit_result_(kSubmitResultNotSubmitted) {
+ submit_result_(kSubmitResultNotSubmitted),
+ should_save_password_(false),
+ should_blacklist_password_(false) {
DCHECK(profile_);
if (observed_form_.origin.is_valid())
base::SplitString(observed_form_.origin.path(), '/', &form_path_tokens_);
@@ -50,6 +52,10 @@ PasswordFormManager::~PasswordFormManager() {
UMA_HISTOGRAM_ENUMERATION("PasswordManager.ActionsTaken",
GetActionsTaken(),
kMaxNumActionsTaken);
+ // In case the tab is closed before the next navigation occurs this will
+ // apply outstanding changes.
+ if (should_save_password_ || should_blacklist_password_)
+ ApplyChange();
}
int PasswordFormManager::GetActionsTaken() {
@@ -106,6 +112,26 @@ bool PasswordFormManager::DoesManage(const PasswordForm& form,
return true;
}
+void PasswordFormManager::ApplyChange() {
+ DCHECK(!should_blacklist_password_ || !should_save_password_);
Peter Kasting 2013/09/09 18:19:02 Nit: Given that these two bools are not set to tru
npentrel 2013/09/09 22:08:34 Done.
+ if (should_save_password_)
+ Save();
+ else if (should_blacklist_password_)
+ PermanentlyBlacklist();
+ should_blacklist_password_ = false;
+ should_save_password_ = false;
+}
+
+void PasswordFormManager::SavePassword() {
+ should_blacklist_password_ = false;
+ should_save_password_ = true;
+}
+
+void PasswordFormManager::BlacklistPassword() {
+ should_save_password_ = false;
+ should_blacklist_password_ = true;
+}
+
bool PasswordFormManager::IsBlacklisted() {
DCHECK_EQ(state_, POST_MATCHING_PHASE);
if (preferred_match_ && preferred_match_->blacklisted_by_user)

Powered by Google App Engine
This is Rietveld 408576698