| 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) {
|
|
|