Index: chrome/browser/ui/sync/one_click_signin_helper.cc |
=================================================================== |
--- chrome/browser/ui/sync/one_click_signin_helper.cc (revision 175396) |
+++ chrome/browser/ui/sync/one_click_signin_helper.cc (working copy) |
@@ -232,13 +232,19 @@ |
// of this infobar. |
class OneClickInfoBarDelegateImpl : public OneClickSigninInfoBarDelegate { |
public: |
+ // Creates a one click signin delegate and adds it to |infobar_service|. |
+ static void Create(InfoBarService* infobar_service, |
+ const std::string& session_index, |
+ const std::string& email, |
+ const std::string& password); |
+ |
+ private: |
OneClickInfoBarDelegateImpl(InfoBarService* owner, |
- const std::string& session_index, |
- const std::string& email, |
- const std::string& password); |
+ const std::string& session_index, |
+ const std::string& email, |
+ const std::string& password); |
virtual ~OneClickInfoBarDelegateImpl(); |
- private: |
// InfoBarDelegate overrides. |
virtual InfoBarAutomationType GetInfoBarAutomationType() const OVERRIDE; |
virtual void InfoBarDismissed() OVERRIDE; |
@@ -270,6 +276,16 @@ |
DISALLOW_COPY_AND_ASSIGN(OneClickInfoBarDelegateImpl); |
}; |
+// static |
+void OneClickInfoBarDelegateImpl::Create(InfoBarService* infobar_service, |
+ const std::string& session_index, |
+ const std::string& email, |
+ const std::string& password) { |
+ infobar_service->AddInfoBar(scoped_ptr<InfoBarDelegate>( |
+ new OneClickInfoBarDelegateImpl(infobar_service, session_index, email, |
+ password))); |
+} |
+ |
OneClickInfoBarDelegateImpl::OneClickInfoBarDelegateImpl( |
InfoBarService* owner, |
const std::string& session_index, |
@@ -867,8 +883,6 @@ |
Browser* browser = chrome::FindBrowserWithWebContents(contents); |
Profile* profile = |
Profile::FromBrowserContext(contents->GetBrowserContext()); |
- InfoBarService* infobar_tab_helper = |
- InfoBarService::FromWebContents(contents); |
VLOG(1) << "OneClickSigninHelper::DidStopLoading: signin is go." |
<< " auto_accept=" << auto_accept_ |
@@ -881,9 +895,9 @@ |
one_click_signin::HISTOGRAM_DISMISSED, |
one_click_signin::HISTOGRAM_MAX); |
} else { |
- infobar_tab_helper->AddInfoBar( |
- new OneClickInfoBarDelegateImpl(infobar_tab_helper, session_index_, |
- email_, password_)); |
+ OneClickInfoBarDelegateImpl::Create( |
+ InfoBarService::FromWebContents(contents), session_index_, email_, |
+ password_); |
} |
break; |
case AUTO_ACCEPT_ACCEPTED: |