Index: components/password_manager/core/browser/password_form_manager.cc |
diff --git a/components/password_manager/core/browser/password_form_manager.cc b/components/password_manager/core/browser/password_form_manager.cc |
index c34263fcd92857aa5e7be3e2f8168fa7ee4d1386..07672c44c20d3f55f9c423ba5d99307539eca689 100644 |
--- a/components/password_manager/core/browser/password_form_manager.cc |
+++ b/components/password_manager/core/browser/password_form_manager.cc |
@@ -1233,7 +1233,12 @@ void PasswordFormManager::ResetStoredMatches() { |
void PasswordFormManager::GrabFetcher(std::unique_ptr<FormFetcher> fetcher) { |
DCHECK(!owned_form_fetcher_); |
owned_form_fetcher_ = std::move(fetcher); |
- DCHECK_EQ(owned_form_fetcher_.get(), form_fetcher_); |
+ if (owned_form_fetcher_.get() == form_fetcher_) |
+ return; |
+ ResetStoredMatches(); |
+ form_fetcher_->RemoveConsumer(this); |
+ form_fetcher_ = owned_form_fetcher_.get(); |
+ form_fetcher_->AddConsumer(this); |
} |
void PasswordFormManager::SendVotesOnSave() { |