Index: chrome/browser/ui/sync/one_click_signin_helper.cc |
diff --git a/chrome/browser/ui/sync/one_click_signin_helper.cc b/chrome/browser/ui/sync/one_click_signin_helper.cc |
index f1e9de93dcc9ed8c11d7139799212c06fcf68178..34a39f0a5cc0a352cf21eb564f6dff6c192291fe 100644 |
--- a/chrome/browser/ui/sync/one_click_signin_helper.cc |
+++ b/chrome/browser/ui/sync/one_click_signin_helper.cc |
@@ -63,6 +63,7 @@ |
#include "chrome/grit/generated_resources.h" |
#include "components/autofill/core/common/password_form.h" |
#include "components/google/core/browser/google_util.h" |
+#include "components/password_manager/content/browser/content_password_manager_driver.h" |
#include "components/password_manager/core/browser/password_manager.h" |
#include "components/signin/core/browser/profile_oauth2_token_service.h" |
#include "components/signin/core/browser/signin_client.h" |
@@ -672,9 +673,7 @@ DEFINE_WEB_CONTENTS_USER_DATA_KEY(OneClickSigninHelper); |
// static |
const int OneClickSigninHelper::kMaxNavigationsSince = 10; |
-OneClickSigninHelper::OneClickSigninHelper( |
- content::WebContents* web_contents, |
- password_manager::PasswordManager* password_manager) |
+OneClickSigninHelper::OneClickSigninHelper(content::WebContents* web_contents) |
: content::WebContentsObserver(web_contents), |
showing_signin_(false), |
auto_accept_(AUTO_ACCEPT_NONE), |
@@ -685,12 +684,8 @@ OneClickSigninHelper::OneClickSigninHelper( |
do_not_clear_pending_email_(false), |
do_not_start_sync_for_testing_(false), |
weak_pointer_factory_(this) { |
- // May be NULL during testing. |
- if (password_manager) { |
- password_manager->AddSubmissionCallback( |
- base::Bind(&OneClickSigninHelper::PasswordSubmitted, |
- weak_pointer_factory_.GetWeakPtr())); |
- } |
+ if (web_contents->GetMainFrame()) |
+ RenderFrameCreated(web_contents->GetMainFrame()); |
} |
OneClickSigninHelper::~OneClickSigninHelper() {} |
@@ -759,16 +754,6 @@ void OneClickSigninHelper::LogHistogramValue( |
} |
// static |
-void OneClickSigninHelper::CreateForWebContentsWithPasswordManager( |
- content::WebContents* contents, |
- password_manager::PasswordManager* password_manager) { |
- if (!FromWebContents(contents)) { |
- contents->SetUserData(UserDataKey(), |
- new OneClickSigninHelper(contents, password_manager)); |
- } |
-} |
- |
-// static |
bool OneClickSigninHelper::CanOffer(content::WebContents* web_contents, |
CanOfferFor can_offer_for, |
const std::string& email, |
@@ -1262,6 +1247,17 @@ void OneClickSigninHelper::set_do_not_start_sync_for_testing() { |
do_not_start_sync_for_testing_ = true; |
} |
+void OneClickSigninHelper::RenderFrameCreated( |
+ content::RenderFrameHost* render_frame_host) { |
+ ContentPasswordManagerDriver* driver = |
+ ContentPasswordManagerDriver::GetForRenderFrameHost(render_frame_host); |
+ // May be NULL in testing. |
+ if (!driver) |
+ return; |
+ driver->GetPasswordManager()->AddSubmissionCallback(base::Bind( |
+ &PrerenderTabHelper::PasswordSubmitted, weak_factory_.GetWeakPtr())); |
+} |
+ |
void OneClickSigninHelper::DidStartNavigationToPendingEntry( |
const GURL& url, |
content::NavigationController::ReloadType reload_type) { |