Chromium Code Reviews| 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( |
|
vabr (Chromium)
2014/11/14 14:46:54
I don't think you have to do this if PasswordManag
Evan Stade
2014/11/14 19:18:59
good call
|
| + &PrerenderTabHelper::PasswordSubmitted, weak_factory_.GetWeakPtr())); |
| +} |
| + |
| void OneClickSigninHelper::DidStartNavigationToPendingEntry( |
| const GURL& url, |
| content::NavigationController::ReloadType reload_type) { |