blob: 1a52b08999eed6b16512b6680193a5c63b66947a [file] [log] [blame]
// Copyright 2017 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "components/password_manager/core/browser/suppressed_form_fetcher.h"
#include "base/logging.h"
#include "base/stl_util.h"
#include "components/password_manager/core/browser/password_manager_client.h"
#include "components/password_manager/core/browser/password_store.h"
#include "url/gurl.h"
namespace password_manager {
SuppressedFormFetcher::SuppressedFormFetcher(
const std::string& observed_signon_realm,
const PasswordManagerClient* client,
Consumer* consumer)
: client_(client),
consumer_(consumer),
observed_signon_realm_(observed_signon_realm) {
DCHECK(client_);
DCHECK(consumer_);
DCHECK(GURL(observed_signon_realm_).SchemeIsHTTPOrHTTPS());
client_->GetPasswordStore()->GetLoginsForSameOrganizationName(
observed_signon_realm_, this);
}
SuppressedFormFetcher::~SuppressedFormFetcher() = default;
void SuppressedFormFetcher::OnGetPasswordStoreResults(
std::vector<std::unique_ptr<autofill::PasswordForm>> results) {
base::EraseIf(results,
[this](const std::unique_ptr<autofill::PasswordForm>& form) {
return form->signon_realm == observed_signon_realm_;
});
consumer_->ProcessSuppressedForms(std::move(results));
}
} // namespace password_manager