Commit 7b23a313 authored by DongJun Kim's avatar DongJun Kim Committed by Commit Bot

Merge PasswordManagerClientHelperDelegate into PasswordManagerClient

Currently, PasswordManagerClient and PasswordManagerClientHelperDelegate
defined a GetPasswordManager().
In case of ChromePMC and IOSChromePMC also both inherit above classes,
so they need to define the override each GetPasswordManager().

This patch merge PasswordManagerClientHelperDelegate into
PasswordManagerClient for removing unnecessary functions.

Bug: 777861
Change-Id: I7c912408bd9704c5a8abbca4c205f89c46ff6cba
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1880781
Commit-Queue: DongJun Kim <djmix.kim@samsung.com>
Reviewed-by: default avatarVasilii Sukhanov <vasilii@chromium.org>
Cr-Commit-Position: refs/heads/master@{#710086}
parent 58df3091
...@@ -774,6 +774,18 @@ net::CertStatus ChromePasswordManagerClient::GetMainFrameCertStatus() const { ...@@ -774,6 +774,18 @@ net::CertStatus ChromePasswordManagerClient::GetMainFrameCertStatus() const {
return entry->GetSSL().cert_status; return entry->GetSSL().cert_status;
} }
void ChromePasswordManagerClient::PromptUserToEnableAutosignin() {
#if defined(OS_ANDROID)
// Dialog is deleted by the Java counterpart after user interacts with it.
AutoSigninFirstRunDialogAndroid* auto_signin_first_run_dialog =
new AutoSigninFirstRunDialogAndroid(web_contents());
auto_signin_first_run_dialog->ShowDialog();
#else
PasswordsClientUIDelegateFromWebContents(web_contents())
->OnPromptEnableAutoSignin();
#endif
}
bool ChromePasswordManagerClient::IsIncognito() const { bool ChromePasswordManagerClient::IsIncognito() const {
return web_contents()->GetBrowserContext()->IsOffTheRecord(); return web_contents()->GetBrowserContext()->IsOffTheRecord();
} }
...@@ -1144,18 +1156,6 @@ bool ChromePasswordManagerClient::CanShowBubbleOnURL(const GURL& url) { ...@@ -1144,18 +1156,6 @@ bool ChromePasswordManagerClient::CanShowBubbleOnURL(const GURL& url) {
scheme != content::kChromeDevToolsScheme); scheme != content::kChromeDevToolsScheme);
} }
void ChromePasswordManagerClient::PromptUserToEnableAutosignin() {
#if defined(OS_ANDROID)
// Dialog is deleted by the Java counterpart after user interacts with it.
AutoSigninFirstRunDialogAndroid* auto_signin_first_run_dialog =
new AutoSigninFirstRunDialogAndroid(web_contents());
auto_signin_first_run_dialog->ShowDialog();
#else
PasswordsClientUIDelegateFromWebContents(web_contents())
->OnPromptEnableAutoSignin();
#endif
}
void ChromePasswordManagerClient::ShowManualPasswordGenerationPopup( void ChromePasswordManagerClient::ShowManualPasswordGenerationPopup(
base::WeakPtr<password_manager::ContentPasswordManagerDriver> driver, base::WeakPtr<password_manager::ContentPasswordManagerDriver> driver,
const base::Optional< const base::Optional<
...@@ -1237,11 +1237,6 @@ void ChromePasswordManagerClient::FocusedInputChanged( ...@@ -1237,11 +1237,6 @@ void ChromePasswordManagerClient::FocusedInputChanged(
#endif // defined(OS_ANDROID) #endif // defined(OS_ANDROID)
} }
password_manager::PasswordManager*
ChromePasswordManagerClient::GetPasswordManager() {
return &password_manager_;
}
const password_manager::PasswordFeatureManager* const password_manager::PasswordFeatureManager*
ChromePasswordManagerClient::GetPasswordFeatureManager() const { ChromePasswordManagerClient::GetPasswordFeatureManager() const {
return &password_feature_manager_; return &password_feature_manager_;
......
...@@ -62,7 +62,6 @@ class WebContents; ...@@ -62,7 +62,6 @@ class WebContents;
// ChromePasswordManagerClient implements the PasswordManagerClient interface. // ChromePasswordManagerClient implements the PasswordManagerClient interface.
class ChromePasswordManagerClient class ChromePasswordManagerClient
: public password_manager::PasswordManagerClient, : public password_manager::PasswordManagerClient,
public password_manager::PasswordManagerClientHelperDelegate,
public content::WebContentsObserver, public content::WebContentsObserver,
public content::WebContentsUserData<ChromePasswordManagerClient>, public content::WebContentsUserData<ChromePasswordManagerClient>,
public autofill::mojom::PasswordGenerationDriver, public autofill::mojom::PasswordGenerationDriver,
...@@ -129,6 +128,7 @@ class ChromePasswordManagerClient ...@@ -129,6 +128,7 @@ class ChromePasswordManagerClient
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;
void PromptUserToEnableAutosignin() override;
bool IsIncognito() const override; bool IsIncognito() const override;
const password_manager::PasswordManager* GetPasswordManager() const override; const password_manager::PasswordManager* GetPasswordManager() const override;
const password_manager::PasswordFeatureManager* GetPasswordFeatureManager() const password_manager::PasswordFeatureManager* GetPasswordFeatureManager()
...@@ -273,10 +273,6 @@ class ChromePasswordManagerClient ...@@ -273,10 +273,6 @@ class ChromePasswordManagerClient
// without custom sync passphrase. // without custom sync passphrase.
static bool ShouldAnnotateNavigationEntries(Profile* profile); static bool ShouldAnnotateNavigationEntries(Profile* profile);
// password_manager::PasswordManagerClientHelperDelegate implementation.
void PromptUserToEnableAutosignin() override;
password_manager::PasswordManager* GetPasswordManager() override;
// |ui_data| is empty in case the renderer failed to start manual generation. // |ui_data| is empty in case the renderer failed to start manual generation.
// In this case nothing should happen. // In this case nothing should happen.
void ShowManualPasswordGenerationPopup( void ShowManualPasswordGenerationPopup(
......
...@@ -61,6 +61,8 @@ net::CertStatus PasswordManagerClient::GetMainFrameCertStatus() const { ...@@ -61,6 +61,8 @@ net::CertStatus PasswordManagerClient::GetMainFrameCertStatus() const {
return 0; return 0;
} }
void PasswordManagerClient::PromptUserToEnableAutosignin() {}
bool PasswordManagerClient::IsIncognito() const { bool PasswordManagerClient::IsIncognito() const {
return false; return false;
} }
......
...@@ -237,6 +237,10 @@ class PasswordManagerClient { ...@@ -237,6 +237,10 @@ class PasswordManagerClient {
// Obtains the cert status for the main frame. // Obtains the cert status for the main frame.
virtual net::CertStatus GetMainFrameCertStatus() const; virtual net::CertStatus GetMainFrameCertStatus() const;
// Shows the dialog where the user can accept or decline the global autosignin
// setting as a first run experience.
virtual void PromptUserToEnableAutosignin();
// If this browsing session should not be persisted. // If this browsing session should not be persisted.
virtual bool IsIncognito() const; virtual bool IsIncognito() const;
......
...@@ -12,7 +12,7 @@ ...@@ -12,7 +12,7 @@
namespace password_manager { namespace password_manager {
PasswordManagerClientHelper::PasswordManagerClientHelper( PasswordManagerClientHelper::PasswordManagerClientHelper(
PasswordManagerClientHelperDelegate* delegate) PasswordManagerClient* delegate)
: delegate_(delegate) { : delegate_(delegate) {
DCHECK(delegate_); DCHECK(delegate_);
} }
......
...@@ -9,29 +9,11 @@ ...@@ -9,29 +9,11 @@
namespace password_manager { namespace password_manager {
// Delegate class for PasswordManagerClientHelper. A class that wants to use
// PasswordManagerClientHelper must implement this delegate.
class PasswordManagerClientHelperDelegate {
public:
// Shows the dialog where the user can accept or decline the global autosignin
// setting as a first run experience.
virtual void PromptUserToEnableAutosignin() = 0;
// Methods required from PasswordManagerClient implementation:
virtual bool IsIncognito() const = 0;
virtual PrefService* GetPrefs() const = 0;
virtual PasswordManager* GetPasswordManager() = 0;
protected:
virtual ~PasswordManagerClientHelperDelegate() {}
};
// Helper class for PasswordManagerClients. It extracts some common logic for // Helper class for PasswordManagerClients. It extracts some common logic for
// ChromePasswordManagerClient and IOSChromePasswordManagerClient. // ChromePasswordManagerClient and IOSChromePasswordManagerClient.
class PasswordManagerClientHelper { class PasswordManagerClientHelper {
public: public:
explicit PasswordManagerClientHelper( explicit PasswordManagerClientHelper(PasswordManagerClient* delegate);
PasswordManagerClientHelperDelegate* delegate);
~PasswordManagerClientHelper(); ~PasswordManagerClientHelper();
// Implementation of PasswordManagerClient::NotifyUserCouldBeAutoSignedIn. // Implementation of PasswordManagerClient::NotifyUserCouldBeAutoSignedIn.
...@@ -67,7 +49,7 @@ class PasswordManagerClientHelper { ...@@ -67,7 +49,7 @@ class PasswordManagerClientHelper {
// is the case for first run experience, and only for non-incognito mode. // is the case for first run experience, and only for non-incognito mode.
bool ShouldPromptToEnableAutoSignIn() const; bool ShouldPromptToEnableAutoSignIn() const;
PasswordManagerClientHelperDelegate* delegate_; PasswordManagerClient* delegate_;
// Set during 'NotifyUserCouldBeAutoSignedIn' in order to store the // Set during 'NotifyUserCouldBeAutoSignedIn' in order to store the
// form for potential use during 'NotifySuccessfulLoginWithExistingPassword'. // form for potential use during 'NotifySuccessfulLoginWithExistingPassword'.
......
...@@ -69,8 +69,7 @@ using password_manager::CredentialLeakType; ...@@ -69,8 +69,7 @@ using password_manager::CredentialLeakType;
// An iOS implementation of password_manager::PasswordManagerClient. // An iOS implementation of password_manager::PasswordManagerClient.
// TODO(crbug.com/958833): write unit tests for this class. // TODO(crbug.com/958833): write unit tests for this class.
class IOSChromePasswordManagerClient class IOSChromePasswordManagerClient
: public password_manager::PasswordManagerClient, : public password_manager::PasswordManagerClient {
public password_manager::PasswordManagerClientHelperDelegate {
public: public:
explicit IOSChromePasswordManagerClient( explicit IOSChromePasswordManagerClient(
id<PasswordManagerClientDelegate> delegate); id<PasswordManagerClientDelegate> delegate);
...@@ -100,6 +99,7 @@ class IOSChromePasswordManagerClient ...@@ -100,6 +99,7 @@ class IOSChromePasswordManagerClient
void AutomaticPasswordSave( void AutomaticPasswordSave(
std::unique_ptr<password_manager::PasswordFormManagerForUI> std::unique_ptr<password_manager::PasswordFormManagerForUI>
saved_form_manager) override; saved_form_manager) override;
void PromptUserToEnableAutosignin() override;
bool IsIncognito() const override; bool IsIncognito() const override;
const password_manager::PasswordManager* GetPasswordManager() const override; const password_manager::PasswordManager* GetPasswordManager() const override;
const password_manager::PasswordFeatureManager* GetPasswordFeatureManager() const password_manager::PasswordFeatureManager* GetPasswordFeatureManager()
...@@ -137,10 +137,6 @@ class IOSChromePasswordManagerClient ...@@ -137,10 +137,6 @@ class IOSChromePasswordManagerClient
bool IsNewTabPage() const override; bool IsNewTabPage() const override;
private: private:
// password_manager::PasswordManagerClientHelperDelegate implementation.
void PromptUserToEnableAutosignin() override;
password_manager::PasswordManager* GetPasswordManager() override;
__weak id<PasswordManagerClientDelegate> delegate_; __weak id<PasswordManagerClientDelegate> delegate_;
const password_manager::PasswordFeatureManagerImpl password_feature_manager_; const password_manager::PasswordFeatureManagerImpl password_feature_manager_;
......
...@@ -133,6 +133,11 @@ void IOSChromePasswordManagerClient::AutomaticPasswordSave( ...@@ -133,6 +133,11 @@ void IOSChromePasswordManagerClient::AutomaticPasswordSave(
NOTIMPLEMENTED(); NOTIMPLEMENTED();
} }
void IOSChromePasswordManagerClient::PromptUserToEnableAutosignin() {
// TODO(crbug.com/435048): Implement this method.
NOTIMPLEMENTED();
}
bool IOSChromePasswordManagerClient::IsIncognito() const { bool IOSChromePasswordManagerClient::IsIncognito() const {
return (delegate_.browserState)->IsOffTheRecord(); return (delegate_.browserState)->IsOffTheRecord();
} }
...@@ -253,15 +258,6 @@ IOSChromePasswordManagerClient::GetPasswordRequirementsService() { ...@@ -253,15 +258,6 @@ IOSChromePasswordManagerClient::GetPasswordRequirementsService() {
delegate_.browserState, ServiceAccessType::EXPLICIT_ACCESS); delegate_.browserState, ServiceAccessType::EXPLICIT_ACCESS);
} }
void IOSChromePasswordManagerClient::PromptUserToEnableAutosignin() {
// TODO(crbug.com/435048): Implement this method.
}
password_manager::PasswordManager*
IOSChromePasswordManagerClient::GetPasswordManager() {
return delegate_.passwordManager;
}
bool IOSChromePasswordManagerClient::IsIsolationForPasswordSitesEnabled() bool IOSChromePasswordManagerClient::IsIsolationForPasswordSitesEnabled()
const { const {
return false; return false;
......
...@@ -56,8 +56,7 @@ class WebState; ...@@ -56,8 +56,7 @@ class WebState;
namespace ios_web_view { namespace ios_web_view {
// An //ios/web_view implementation of password_manager::PasswordManagerClient. // An //ios/web_view implementation of password_manager::PasswordManagerClient.
class WebViewPasswordManagerClient class WebViewPasswordManagerClient
: public password_manager::PasswordManagerClient, : public password_manager::PasswordManagerClient {
public password_manager::PasswordManagerClientHelperDelegate {
public: public:
explicit WebViewPasswordManagerClient( explicit WebViewPasswordManagerClient(
id<CWVPasswordManagerClientDelegate> delegate); id<CWVPasswordManagerClientDelegate> delegate);
...@@ -87,6 +86,7 @@ class WebViewPasswordManagerClient ...@@ -87,6 +86,7 @@ class WebViewPasswordManagerClient
void AutomaticPasswordSave( void AutomaticPasswordSave(
std::unique_ptr<password_manager::PasswordFormManagerForUI> std::unique_ptr<password_manager::PasswordFormManagerForUI>
saved_form_manager) override; saved_form_manager) override;
void PromptUserToEnableAutosignin() override;
bool IsIncognito() const override; bool IsIncognito() const override;
const password_manager::PasswordManager* GetPasswordManager() const override; const password_manager::PasswordManager* GetPasswordManager() const override;
const password_manager::PasswordFeatureManager* GetPasswordFeatureManager() const password_manager::PasswordFeatureManager* GetPasswordFeatureManager()
...@@ -117,10 +117,6 @@ class WebViewPasswordManagerClient ...@@ -117,10 +117,6 @@ class WebViewPasswordManagerClient
bool IsNewTabPage() const override; bool IsNewTabPage() const override;
private: private:
// password_manager::PasswordManagerClientHelperDelegate implementation.
void PromptUserToEnableAutosignin() override;
password_manager::PasswordManager* GetPasswordManager() override;
__weak id<CWVPasswordManagerClientDelegate> delegate_; __weak id<CWVPasswordManagerClientDelegate> delegate_;
const WebViewPasswordFeatureManager password_feature_manager_; const WebViewPasswordFeatureManager password_feature_manager_;
......
...@@ -111,6 +111,11 @@ void WebViewPasswordManagerClient::AutomaticPasswordSave( ...@@ -111,6 +111,11 @@ void WebViewPasswordManagerClient::AutomaticPasswordSave(
NOTIMPLEMENTED(); NOTIMPLEMENTED();
} }
void WebViewPasswordManagerClient::PromptUserToEnableAutosignin() {
// TODO(crbug.com/435048): Implement this method.
NOTIMPLEMENTED();
}
bool WebViewPasswordManagerClient::IsIncognito() const { bool WebViewPasswordManagerClient::IsIncognito() const {
return delegate_.browserState->IsOffTheRecord(); return delegate_.browserState->IsOffTheRecord();
} }
...@@ -209,15 +214,6 @@ WebViewPasswordManagerClient::GetURLLoaderFactory() { ...@@ -209,15 +214,6 @@ WebViewPasswordManagerClient::GetURLLoaderFactory() {
return nullptr; return nullptr;
} }
void WebViewPasswordManagerClient::PromptUserToEnableAutosignin() {
// TODO(crbug.com/435048): Implement this method.
}
password_manager::PasswordManager*
WebViewPasswordManagerClient::GetPasswordManager() {
return delegate_.passwordManager;
}
bool WebViewPasswordManagerClient::IsIsolationForPasswordSitesEnabled() const { bool WebViewPasswordManagerClient::IsIsolationForPasswordSitesEnabled() const {
return false; return false;
} }
......
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