Index: chrome/browser/ui/login/login_prompt.cc |
diff --git a/chrome/browser/ui/login/login_prompt.cc b/chrome/browser/ui/login/login_prompt.cc |
index 8200bb21934b89e71de94d14dd1d4ca9f67e7f0c..d014a6fad7c979fa28f9d0e0cfc7d416a9e87c34 100644 |
--- a/chrome/browser/ui/login/login_prompt.cc |
+++ b/chrome/browser/ui/login/login_prompt.cc |
@@ -17,6 +17,7 @@ |
#include "chrome/browser/tab_contents/tab_util.h" |
#include "chrome/browser/ui/login/login_interstitial_delegate.h" |
#include "chrome/grit/generated_resources.h" |
+#include "components/password_manager/content/browser/content_password_manager_driver.h" |
#include "components/password_manager/core/browser/browser_save_password_progress_logger.h" |
#include "components/password_manager/core/browser/password_manager.h" |
#include "content/public/browser/browser_thread.h" |
@@ -135,6 +136,13 @@ WebContents* LoginHandler::GetWebContentsForLogin() const { |
return WebContents::FromRenderFrameHost(rfh); |
} |
+password_manager::PasswordManager* LoginHandler::GetPasswordManagerForLogin() { |
+ content::RenderFrameHost* rfh = content::RenderFrameHost::FromID( |
+ render_process_host_id_, render_frame_id_); |
+ return password_manager::ContentPasswordManagerDriver::GetForRenderFrameHost( |
+ rfh)->GetPasswordManager(); |
+} |
+ |
void LoginHandler::SetAuth(const base::string16& username, |
const base::string16& password) { |
DCHECK_CURRENTLY_ON(BrowserThread::UI); |
@@ -461,7 +469,8 @@ void ShowLoginPrompt(const GURL& request_url, |
} |
password_manager::PasswordManager* password_manager = |
- ChromePasswordManagerClient::GetManagerFromWebContents(parent_contents); |
+ handler->GetPasswordManagerForLogin(); |
+ |
if (!password_manager) { |
// Same logic as above. |
handler->CancelAuth(); |