Commit 27376043 authored by Mohamed Amir Yosef's avatar Mohamed Amir Yosef Committed by Commit Bot

[Passwords] Introduce PasswordManagerClient.GetAccountPasswordStore()

The new API will be used by password manager code within the effort of
Butter4Passwords

TBR=vasilii@chromium.org

Change-Id: I1b0bc300fce37e3695f579aaabbbc7c5bfba4796
Bug: 1002000
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1795323
Commit-Queue: Mohamed Amir Yosef <mamir@chromium.org>
Reviewed-by: default avatarVadym Doroshenko <dvadym@chromium.org>
Cr-Commit-Position: refs/heads/master@{#695609}
parent 3cb21f50
...@@ -20,6 +20,7 @@ ...@@ -20,6 +20,7 @@
#include "chrome/browser/browsing_data/browsing_data_helper.h" #include "chrome/browser/browsing_data/browsing_data_helper.h"
#include "chrome/browser/favicon/favicon_service_factory.h" #include "chrome/browser/favicon/favicon_service_factory.h"
#include "chrome/browser/metrics/chrome_metrics_service_accessor.h" #include "chrome/browser/metrics/chrome_metrics_service_accessor.h"
#include "chrome/browser/password_manager/account_storage/account_password_store_factory.h"
#include "chrome/browser/password_manager/password_store_factory.h" #include "chrome/browser/password_manager/password_store_factory.h"
#include "chrome/browser/password_manager/touch_to_fill_controller.h" #include "chrome/browser/password_manager/touch_to_fill_controller.h"
#include "chrome/browser/prerender/prerender_contents.h" #include "chrome/browser/prerender/prerender_contents.h"
...@@ -682,12 +683,19 @@ password_manager::PasswordStore* ...@@ -682,12 +683,19 @@ password_manager::PasswordStore*
ChromePasswordManagerClient::GetProfilePasswordStore() const { ChromePasswordManagerClient::GetProfilePasswordStore() const {
// Always use EXPLICIT_ACCESS as the password manager checks IsIncognito // Always use EXPLICIT_ACCESS as the password manager checks IsIncognito
// itself when it shouldn't access the PasswordStore. // itself when it shouldn't access the PasswordStore.
// TODO(gcasto): Is is safe to change this to
// ServiceAccessType::IMPLICIT_ACCESS?
return PasswordStoreFactory::GetForProfile( return PasswordStoreFactory::GetForProfile(
profile_, ServiceAccessType::EXPLICIT_ACCESS).get(); profile_, ServiceAccessType::EXPLICIT_ACCESS).get();
} }
password_manager::PasswordStore*
ChromePasswordManagerClient::GetAccountPasswordStore() const {
// Always use EXPLICIT_ACCESS as the password manager checks IsIncognito
// itself when it shouldn't access the PasswordStore.
return AccountPasswordStoreFactory::GetForProfile(
profile_, ServiceAccessType::EXPLICIT_ACCESS)
.get();
}
password_manager::SyncState ChromePasswordManagerClient::GetPasswordSyncState() password_manager::SyncState ChromePasswordManagerClient::GetPasswordSyncState()
const { const {
const syncer::SyncService* sync_service = const syncer::SyncService* sync_service =
......
...@@ -125,6 +125,7 @@ class ChromePasswordManagerClient ...@@ -125,6 +125,7 @@ class ChromePasswordManagerClient
PrefService* GetPrefs() const override; PrefService* GetPrefs() const override;
password_manager::PasswordStore* GetProfilePasswordStore() const override; password_manager::PasswordStore* GetProfilePasswordStore() const override;
password_manager::PasswordStore* GetAccountPasswordStore() const override;
password_manager::SyncState GetPasswordSyncState() const override; password_manager::SyncState GetPasswordSyncState() const override;
bool WasLastNavigationHTTPError() const override; bool WasLastNavigationHTTPError() const override;
net::CertStatus GetMainFrameCertStatus() const override; net::CertStatus GetMainFrameCertStatus() const override;
......
...@@ -227,6 +227,9 @@ class PasswordManagerClient { ...@@ -227,6 +227,9 @@ class PasswordManagerClient {
// Returns the profile PasswordStore associated with this instance. // Returns the profile PasswordStore associated with this instance.
virtual PasswordStore* GetProfilePasswordStore() const = 0; virtual PasswordStore* GetProfilePasswordStore() const = 0;
// Returns the account PasswordStore associated with this instance.
virtual PasswordStore* GetAccountPasswordStore() const = 0;
// Reports whether and how passwords are synced in the embedder. The default // Reports whether and how passwords are synced in the embedder. The default
// implementation always returns NOT_SYNCING. // implementation always returns NOT_SYNCING.
virtual SyncState GetPasswordSyncState() const; virtual SyncState GetPasswordSyncState() const;
......
...@@ -69,6 +69,10 @@ PasswordStore* StubPasswordManagerClient::GetProfilePasswordStore() const { ...@@ -69,6 +69,10 @@ PasswordStore* StubPasswordManagerClient::GetProfilePasswordStore() const {
return nullptr; return nullptr;
} }
PasswordStore* StubPasswordManagerClient::GetAccountPasswordStore() const {
return nullptr;
}
const GURL& StubPasswordManagerClient::GetLastCommittedEntryURL() const { const GURL& StubPasswordManagerClient::GetLastCommittedEntryURL() const {
return GURL::EmptyGURL(); return GURL::EmptyGURL();
} }
......
...@@ -55,6 +55,7 @@ class StubPasswordManagerClient : public PasswordManagerClient { ...@@ -55,6 +55,7 @@ class StubPasswordManagerClient : public PasswordManagerClient {
std::unique_ptr<PasswordFormManagerForUI> saved_manager) override; std::unique_ptr<PasswordFormManagerForUI> saved_manager) override;
PrefService* GetPrefs() const override; PrefService* GetPrefs() const override;
PasswordStore* GetProfilePasswordStore() const override; PasswordStore* GetProfilePasswordStore() const override;
PasswordStore* GetAccountPasswordStore() const override;
const GURL& GetLastCommittedEntryURL() const override; const GURL& GetLastCommittedEntryURL() const override;
const CredentialsFilter* GetStoreResultFilter() const override; const CredentialsFilter* GetStoreResultFilter() const override;
const autofill::LogManager* GetLogManager() const override; const autofill::LogManager* GetLogManager() const override;
......
...@@ -100,6 +100,7 @@ class IOSChromePasswordManagerClient ...@@ -100,6 +100,7 @@ class IOSChromePasswordManagerClient
bool IsMainFrameSecure() const override; bool IsMainFrameSecure() const override;
PrefService* GetPrefs() const override; PrefService* GetPrefs() const override;
password_manager::PasswordStore* GetProfilePasswordStore() const override; password_manager::PasswordStore* GetProfilePasswordStore() const override;
password_manager::PasswordStore* GetAccountPasswordStore() const override;
void NotifyUserAutoSignin( void NotifyUserAutoSignin(
std::vector<std::unique_ptr<autofill::PasswordForm>> local_forms, std::vector<std::unique_ptr<autofill::PasswordForm>> local_forms,
const GURL& origin) override; const GURL& origin) override;
......
...@@ -161,6 +161,11 @@ PasswordStore* IOSChromePasswordManagerClient::GetProfilePasswordStore() const { ...@@ -161,6 +161,11 @@ PasswordStore* IOSChromePasswordManagerClient::GetProfilePasswordStore() const {
.get(); .get();
} }
PasswordStore* IOSChromePasswordManagerClient::GetAccountPasswordStore() const {
// AccountPasswordStore is currenly not supported on iOS.
return nullptr;
}
void IOSChromePasswordManagerClient::NotifyUserAutoSignin( void IOSChromePasswordManagerClient::NotifyUserAutoSignin(
std::vector<std::unique_ptr<autofill::PasswordForm>> local_forms, std::vector<std::unique_ptr<autofill::PasswordForm>> local_forms,
const GURL& origin) { const GURL& origin) {
......
...@@ -88,6 +88,7 @@ class WebViewPasswordManagerClient ...@@ -88,6 +88,7 @@ class WebViewPasswordManagerClient
const override; const override;
PrefService* GetPrefs() const override; PrefService* GetPrefs() const override;
password_manager::PasswordStore* GetProfilePasswordStore() const override; password_manager::PasswordStore* GetProfilePasswordStore() const override;
password_manager::PasswordStore* GetAccountPasswordStore() const override;
void NotifyUserAutoSignin( void NotifyUserAutoSignin(
std::vector<std::unique_ptr<autofill::PasswordForm>> local_forms, std::vector<std::unique_ptr<autofill::PasswordForm>> local_forms,
const GURL& origin) override; const GURL& origin) override;
......
...@@ -133,6 +133,11 @@ PasswordStore* WebViewPasswordManagerClient::GetProfilePasswordStore() const { ...@@ -133,6 +133,11 @@ PasswordStore* WebViewPasswordManagerClient::GetProfilePasswordStore() const {
.get(); .get();
} }
PasswordStore* WebViewPasswordManagerClient::GetAccountPasswordStore() const {
// Account password stores aren't currently supported in iOS webviews.
return nullptr;
}
void WebViewPasswordManagerClient::NotifyUserAutoSignin( void WebViewPasswordManagerClient::NotifyUserAutoSignin(
std::vector<std::unique_ptr<autofill::PasswordForm>> local_forms, std::vector<std::unique_ptr<autofill::PasswordForm>> local_forms,
const GURL& origin) { const GURL& origin) {
......
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