From 88695177f07a387abf1e538f9054e7e8ed80ab9f Mon Sep 17 00:00:00 2001 From: mkarolin Date: Fri, 20 Aug 2021 12:57:25 -0400 Subject: [PATCH 1/2] [cr93 followup] Removed disablement of kEnablePasswordsAccountStorage. This feature flag no longer works as all the code it wasn't guarding has been removed and password account storage is the only option now. This also means that we will regress on https://github.com/brave/brave-browser/issues/16926 again, but this can be addressed in a different fix. Chromium issue: https://bugs.chromium.org/p/chromium/issues/detail?id=1108738 https://chromium.googlesource.com/chromium/src.git/+/90ac58cb2c56df119ca3d5631cbbc3feabb8a82b commit 90ac58cb2c56df119ca3d5631cbbc3feabb8a82b Author: Marc Treib Date: Fri Jul 9 10:43:20 2021 +0000 B4P cleanup, part 2: Delete old Save/Update bubble PasswordSaveUpdateView has been replaced by PasswordSaveUpdateWithAccountStoreView, similar for the corresponding controller. This CL deletes the old, non-AccountStore versions. This is a no-op on Win/Mac/Linux/ChromeOS (which already always used the new versions) and on Android/iOS (which don't use this UI at all). (Note that ChromeOS doesn't actually use/support the account-scoped storage, since the signed-in non-syncing state doesn't exist. But the new UI code is a strict superset of the old, so using it on ChromeOS as well is just simpler and more consistent - and this was already the case.) This CL also ports some recent unit test improvements (see crrev.com/c/3006215) from the old to the new controller. Bug: 1108738 --- app/brave_main_delegate.cc | 1 - app/brave_main_delegate_browsertest.cc | 1 - 2 files changed, 2 deletions(-) diff --git a/app/brave_main_delegate.cc b/app/brave_main_delegate.cc index 506e5356edb8..a011da9f62e3 100644 --- a/app/brave_main_delegate.cc +++ b/app/brave_main_delegate.cc @@ -227,7 +227,6 @@ bool BraveMainDelegate::BasicStartupComplete(int* exit_code) { net::features::kFirstPartySets.name, network::features::kTrustTokens.name, network_time::kNetworkTimeServiceQuerying.name, - password_manager::features::kEnablePasswordsAccountStorage.name, reading_list::switches::kReadLater.name, #if defined(OS_ANDROID) features::kWebNfc.name, diff --git a/app/brave_main_delegate_browsertest.cc b/app/brave_main_delegate_browsertest.cc index 9abd3a4bd0ff..52402edf0532 100644 --- a/app/brave_main_delegate_browsertest.cc +++ b/app/brave_main_delegate_browsertest.cc @@ -93,7 +93,6 @@ IN_PROC_BROWSER_TEST_F(BraveMainDelegateBrowserTest, DisabledFeatures) { &net::features::kFirstPartySets, &network::features::kTrustTokens, &network_time::kNetworkTimeServiceQuerying, - &password_manager::features::kEnablePasswordsAccountStorage, &reading_list::switches::kReadLater, }; From d454b1ac45a9fe44fe19d668e48ff913371627e4 Mon Sep 17 00:00:00 2001 From: mkarolin Date: Fri, 20 Aug 2021 15:18:44 -0400 Subject: [PATCH 2/2] Allow offering to save google passwords. Goes around upstream check for gaia credential page and empty primary account in the browser. Fixes brave/brave-browser#17595 Fixes brave/brave-browser#16926 --- .../core/browser/sync_credentials_filter.cc | 22 +++++++++++++++++++ .../core/browser/sync_credentials_filter.h | 19 ++++++++++++++++ 2 files changed, 41 insertions(+) create mode 100644 chromium_src/components/password_manager/core/browser/sync_credentials_filter.cc create mode 100644 chromium_src/components/password_manager/core/browser/sync_credentials_filter.h diff --git a/chromium_src/components/password_manager/core/browser/sync_credentials_filter.cc b/chromium_src/components/password_manager/core/browser/sync_credentials_filter.cc new file mode 100644 index 000000000000..cd1d0585c17f --- /dev/null +++ b/chromium_src/components/password_manager/core/browser/sync_credentials_filter.cc @@ -0,0 +1,22 @@ +/* Copyright (c) 2021 The Brave Authors. All rights reserved. + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this file, + * You can obtain one at http://mozilla.org/MPL/2.0/. */ + +#include "components/password_manager/core/browser/sync_credentials_filter.h" + +#define ShouldSave ShouldSave_ChromiumImpl +#include "../../../../../../components/password_manager/core/browser/sync_credentials_filter.cc" +#undef ShouldSave + +namespace password_manager { + +bool SyncCredentialsFilter::ShouldSave(const PasswordForm& form) const { + bool should_save = ShouldSave_ChromiumImpl(form); + if (!should_save && sync_util::IsGaiaCredentialPage(form.signon_realm)) { + return true; + } + return should_save; +} + +} // namespace password_manager diff --git a/chromium_src/components/password_manager/core/browser/sync_credentials_filter.h b/chromium_src/components/password_manager/core/browser/sync_credentials_filter.h new file mode 100644 index 000000000000..e71e455e6335 --- /dev/null +++ b/chromium_src/components/password_manager/core/browser/sync_credentials_filter.h @@ -0,0 +1,19 @@ +/* Copyright (c) 2021 The Brave Authors. All rights reserved. + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this file, + * You can obtain one at http://mozilla.org/MPL/2.0/. */ + +#ifndef BRAVE_CHROMIUM_SRC_COMPONENTS_PASSWORD_MANAGER_CORE_BROWSER_SYNC_CREDENTIALS_FILTER_H_ +#define BRAVE_CHROMIUM_SRC_COMPONENTS_PASSWORD_MANAGER_CORE_BROWSER_SYNC_CREDENTIALS_FILTER_H_ + +#include "components/password_manager/core/browser/credentials_filter.h" + +#define ShouldSave \ + ShouldSave_ChromiumImpl(const PasswordForm& form) const; \ + bool ShouldSave + +#include "../../../../../../components/password_manager/core/browser/sync_credentials_filter.h" + +#undef ShouldSave + +#endif // BRAVE_CHROMIUM_SRC_COMPONENTS_PASSWORD_MANAGER_CORE_BROWSER_SYNC_CREDENTIALS_FILTER_H_