Index: components/password_manager/core/browser/suppressed_https_form_fetcher.cc |
diff --git a/components/password_manager/core/browser/suppressed_https_form_fetcher.cc b/components/password_manager/core/browser/suppressed_https_form_fetcher.cc |
index d3111ad75c51c8b48e8e91479938d009582f7523..79e9dd52b5b76c29b024a1ad550acfba7327239e 100644 |
--- a/components/password_manager/core/browser/suppressed_https_form_fetcher.cc |
+++ b/components/password_manager/core/browser/suppressed_https_form_fetcher.cc |
@@ -13,23 +13,17 @@ |
namespace password_manager { |
SuppressedHTTPSFormFetcher::SuppressedHTTPSFormFetcher( |
- const GURL& http_origin, |
+ const std::string& observed_signon_realm, |
const PasswordManagerClient* client, |
Consumer* consumer) |
- : client_(client), consumer_(consumer) { |
+ : client_(client), |
+ consumer_(consumer), |
+ observed_signon_realm_as_url_(observed_signon_realm) { |
DCHECK(client_); |
DCHECK(consumer_); |
- DCHECK(http_origin.is_valid()); |
- DCHECK(http_origin.SchemeIs(url::kHttpScheme)); |
- |
- GURL::Replacements scheme_to_https; |
- scheme_to_https.SetSchemeStr(url::kHttpsScheme); |
- GURL https_origin = http_origin.ReplaceComponents(scheme_to_https); |
- PasswordStore::FormDigest synthetic_form_digest( |
- autofill::PasswordForm::SCHEME_HTML, https_origin.GetOrigin().spec(), |
- https_origin); |
- |
- client_->GetPasswordStore()->GetLogins(synthetic_form_digest, this); |
+ DCHECK(observed_signon_realm_as_url_.SchemeIs(url::kHttpScheme)); |
+ client_->GetPasswordStore()->GetLoginsForSameOrganizationName( |
+ observed_signon_realm, this); |
} |
SuppressedHTTPSFormFetcher::~SuppressedHTTPSFormFetcher() = default; |
@@ -37,8 +31,11 @@ SuppressedHTTPSFormFetcher::~SuppressedHTTPSFormFetcher() = default; |
void SuppressedHTTPSFormFetcher::OnGetPasswordStoreResults( |
std::vector<std::unique_ptr<autofill::PasswordForm>> results) { |
base::EraseIf( |
- results, [](const std::unique_ptr<autofill::PasswordForm>& form) { |
- return form->is_public_suffix_match || form->is_affiliation_based_match; |
+ results, [this](const std::unique_ptr<autofill::PasswordForm>& form) { |
+ GURL candidate_signon_realm_as_url(form->signon_realm); |
+ return !candidate_signon_realm_as_url.SchemeIs(url::kHttpsScheme) || |
+ candidate_signon_realm_as_url.host() != |
+ observed_signon_realm_as_url_.host(); |
}); |
consumer_->ProcessSuppressedHTTPSForms(std::move(results)); |