Commit 2fb05c46 authored by Vadym Doroshenko's avatar Vadym Doroshenko Committed by Commit Bot

Do not offer password saving when saving is disabled.

This CL implements not saving of passwords in the new Password Manager
architecture when Password Manager saving if off (i.e.
"Offer to save passwords" settings is off).

Bug: 905048, 831123

Change-Id: Ic053f8ae9b28fc1e9d8d80ba5e1a469a4173fdec
Reviewed-on: https://chromium-review.googlesource.com/c/1337344Reviewed-by: default avatarVaclav Brozek <vabr@chromium.org>
Commit-Queue: Vadym Doroshenko <dvadym@chromium.org>
Cr-Commit-Position: refs/heads/master@{#608380}
parent 0282b7ca
...@@ -891,6 +891,18 @@ void PasswordManager::CreateFormManagers( ...@@ -891,6 +891,18 @@ void PasswordManager::CreateFormManagers(
void PasswordManager::ProcessSubmittedForm( void PasswordManager::ProcessSubmittedForm(
const FormData& submitted_form, const FormData& submitted_form,
const PasswordManagerDriver* driver) { const PasswordManagerDriver* driver) {
if (!client_->IsSavingAndFillingEnabledForCurrentPage()) {
std::unique_ptr<BrowserSavePasswordProgressLogger> logger;
if (password_manager_util::IsLoggingActive(client_)) {
logger.reset(
new BrowserSavePasswordProgressLogger(client_->GetLogManager()));
}
RecordProvisionalSaveFailure(
PasswordManagerMetricsRecorder::SAVING_DISABLED, submitted_form.origin,
logger.get());
return;
}
NewPasswordFormManager* matching_form_manager = nullptr; NewPasswordFormManager* matching_form_manager = nullptr;
for (const auto& manager : form_managers_) { for (const auto& manager : form_managers_) {
if (manager->SetSubmittedFormIfIsManaged(submitted_form, driver)) { if (manager->SetSubmittedFormIfIsManaged(submitted_form, driver)) {
......
...@@ -2877,4 +2877,25 @@ TEST_F(PasswordManagerTest, ParsingOnSavingMetricRecorded) { ...@@ -2877,4 +2877,25 @@ TEST_F(PasswordManagerTest, ParsingOnSavingMetricRecorded) {
ukm::builders::PasswordForm::kParsingOnSavingDifferenceName); ukm::builders::PasswordForm::kParsingOnSavingDifferenceName);
} }
TEST_F(PasswordManagerTest, NoSavePromptWhenPasswordManagerDisabled) {
base::test::ScopedFeatureList scoped_feature_list;
TurnOnNewParsingForSaving(&scoped_feature_list);
EXPECT_CALL(client_, IsSavingAndFillingEnabledForCurrentPage())
.WillRepeatedly(Return(false));
PasswordForm form(MakeSimpleForm());
EXPECT_CALL(*store_, GetLogins(_, _))
.WillRepeatedly(WithArg<1>(InvokeEmptyConsumerWithForms()));
manager()->OnPasswordFormsParsed(&driver_, {form});
auto submitted_form = form;
submitted_form.form_data.fields[0].value = ASCIIToUTF16("username");
submitted_form.form_data.fields[1].value = ASCIIToUTF16("strong_password");
EXPECT_CALL(client_, PromptUserToSaveOrUpdatePasswordPtr(_)).Times(0);
manager()->OnPasswordFormSubmittedNoChecks(&driver_, submitted_form);
}
} // namespace password_manager } // namespace password_manager
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment