Index: components/password_manager/core/browser/password_manager.cc |
diff --git a/components/password_manager/core/browser/password_manager.cc b/components/password_manager/core/browser/password_manager.cc |
index edeadedbc92852e6e4f4d74fee4b0c27feb737ec..175259625bd3315980758c39684105e40e364cd6 100644 |
--- a/components/password_manager/core/browser/password_manager.cc |
+++ b/components/password_manager/core/browser/password_manager.cc |
@@ -451,6 +451,16 @@ void PasswordManager::OnPasswordFormsRendered( |
DCHECK(IsSavingEnabledForCurrentPage()); |
+ // If the server throws an internal error, access denied page, page not |
+ // found etc. after a login attempt, we do not save the credentials. |
+ if (client_->WasLastNavigationHTTPError()) { |
+ if (logger) |
+ logger->LogMessage(Logger::STRING_DECISION_DROP); |
+ provisional_save_manager_->SubmitFailed(); |
+ provisional_save_manager_.reset(); |
+ return; |
+ } |
+ |
if (logger) { |
logger->LogNumber(Logger::STRING_NUMBER_OF_VISIBLE_FORMS, |
visible_forms.size()); |