OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "chrome/browser/ui/sync/one_click_signin_helper.h" | 5 #include "chrome/browser/ui/sync/one_click_signin_helper.h" |
6 | 6 |
7 #include "base/bind.h" | 7 #include "base/bind.h" |
8 #include "base/command_line.h" | 8 #include "base/command_line.h" |
9 #include "base/compiler_specific.h" | 9 #include "base/compiler_specific.h" |
10 #include "base/metrics/histogram.h" | 10 #include "base/metrics/histogram.h" |
(...skipping 214 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
225 static_cast<const void* const>( | 225 static_cast<const void* const>( |
226 &OneClickSigninRequestUserData::kUserDataKey); | 226 &OneClickSigninRequestUserData::kUserDataKey); |
227 | 227 |
228 } // namespace | 228 } // namespace |
229 | 229 |
230 // The infobar asking the user if they want to use one-click sign in. | 230 // The infobar asking the user if they want to use one-click sign in. |
231 // TODO(rogerta): once we move to a web-based sign in flow, we can get rid | 231 // TODO(rogerta): once we move to a web-based sign in flow, we can get rid |
232 // of this infobar. | 232 // of this infobar. |
233 class OneClickInfoBarDelegateImpl : public OneClickSigninInfoBarDelegate { | 233 class OneClickInfoBarDelegateImpl : public OneClickSigninInfoBarDelegate { |
234 public: | 234 public: |
| 235 // Creates a one click signin delegate and adds it to |infobar_service|. |
| 236 static void Create(InfoBarService* infobar_service, |
| 237 const std::string& session_index, |
| 238 const std::string& email, |
| 239 const std::string& password); |
| 240 |
| 241 private: |
235 OneClickInfoBarDelegateImpl(InfoBarService* owner, | 242 OneClickInfoBarDelegateImpl(InfoBarService* owner, |
236 const std::string& session_index, | 243 const std::string& session_index, |
237 const std::string& email, | 244 const std::string& email, |
238 const std::string& password); | 245 const std::string& password); |
239 virtual ~OneClickInfoBarDelegateImpl(); | 246 virtual ~OneClickInfoBarDelegateImpl(); |
240 | 247 |
241 private: | |
242 // InfoBarDelegate overrides. | 248 // InfoBarDelegate overrides. |
243 virtual InfoBarAutomationType GetInfoBarAutomationType() const OVERRIDE; | 249 virtual InfoBarAutomationType GetInfoBarAutomationType() const OVERRIDE; |
244 virtual void InfoBarDismissed() OVERRIDE; | 250 virtual void InfoBarDismissed() OVERRIDE; |
245 virtual gfx::Image* GetIcon() const OVERRIDE; | 251 virtual gfx::Image* GetIcon() const OVERRIDE; |
246 virtual Type GetInfoBarType() const OVERRIDE; | 252 virtual Type GetInfoBarType() const OVERRIDE; |
247 virtual string16 GetMessageText() const OVERRIDE; | 253 virtual string16 GetMessageText() const OVERRIDE; |
248 | 254 |
249 // ConfirmInfoBarDelegate overrides. | 255 // ConfirmInfoBarDelegate overrides. |
250 virtual string16 GetButtonLabel(InfoBarButton button) const OVERRIDE; | 256 virtual string16 GetButtonLabel(InfoBarButton button) const OVERRIDE; |
251 virtual bool Accept() OVERRIDE; | 257 virtual bool Accept() OVERRIDE; |
(...skipping 11 matching lines...) Expand all Loading... |
263 std::string session_index_; | 269 std::string session_index_; |
264 std::string email_; | 270 std::string email_; |
265 std::string password_; | 271 std::string password_; |
266 | 272 |
267 // Whether any UI controls in the infobar were pressed or not. | 273 // Whether any UI controls in the infobar were pressed or not. |
268 bool button_pressed_; | 274 bool button_pressed_; |
269 | 275 |
270 DISALLOW_COPY_AND_ASSIGN(OneClickInfoBarDelegateImpl); | 276 DISALLOW_COPY_AND_ASSIGN(OneClickInfoBarDelegateImpl); |
271 }; | 277 }; |
272 | 278 |
| 279 // static |
| 280 void OneClickInfoBarDelegateImpl::Create(InfoBarService* infobar_service, |
| 281 const std::string& session_index, |
| 282 const std::string& email, |
| 283 const std::string& password) { |
| 284 infobar_service->AddInfoBar(scoped_ptr<InfoBarDelegate>( |
| 285 new OneClickInfoBarDelegateImpl(infobar_service, session_index, email, |
| 286 password))); |
| 287 } |
| 288 |
273 OneClickInfoBarDelegateImpl::OneClickInfoBarDelegateImpl( | 289 OneClickInfoBarDelegateImpl::OneClickInfoBarDelegateImpl( |
274 InfoBarService* owner, | 290 InfoBarService* owner, |
275 const std::string& session_index, | 291 const std::string& session_index, |
276 const std::string& email, | 292 const std::string& email, |
277 const std::string& password) | 293 const std::string& password) |
278 : OneClickSigninInfoBarDelegate(owner), | 294 : OneClickSigninInfoBarDelegate(owner), |
279 session_index_(session_index), | 295 session_index_(session_index), |
280 email_(email), | 296 email_(email), |
281 password_(password), | 297 password_(password), |
282 button_pressed_(false) { | 298 button_pressed_(false) { |
(...skipping 577 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
860 if (source == SyncPromoUI::SOURCE_SETTINGS) { | 876 if (source == SyncPromoUI::SOURCE_SETTINGS) { |
861 source_ = SyncPromoUI::SOURCE_SETTINGS; | 877 source_ = SyncPromoUI::SOURCE_SETTINGS; |
862 last_minute_source_change = true; | 878 last_minute_source_change = true; |
863 } | 879 } |
864 } | 880 } |
865 } | 881 } |
866 | 882 |
867 Browser* browser = chrome::FindBrowserWithWebContents(contents); | 883 Browser* browser = chrome::FindBrowserWithWebContents(contents); |
868 Profile* profile = | 884 Profile* profile = |
869 Profile::FromBrowserContext(contents->GetBrowserContext()); | 885 Profile::FromBrowserContext(contents->GetBrowserContext()); |
870 InfoBarService* infobar_tab_helper = | |
871 InfoBarService::FromWebContents(contents); | |
872 | 886 |
873 VLOG(1) << "OneClickSigninHelper::DidStopLoading: signin is go." | 887 VLOG(1) << "OneClickSigninHelper::DidStopLoading: signin is go." |
874 << " auto_accept=" << auto_accept_ | 888 << " auto_accept=" << auto_accept_ |
875 << " source=" << source_; | 889 << " source=" << source_; |
876 | 890 |
877 switch (auto_accept_) { | 891 switch (auto_accept_) { |
878 case AUTO_ACCEPT_NONE: | 892 case AUTO_ACCEPT_NONE: |
879 if (SyncPromoUI::UseWebBasedSigninFlow()) { | 893 if (SyncPromoUI::UseWebBasedSigninFlow()) { |
880 UMA_HISTOGRAM_ENUMERATION("AutoLogin.Reverse", | 894 UMA_HISTOGRAM_ENUMERATION("AutoLogin.Reverse", |
881 one_click_signin::HISTOGRAM_DISMISSED, | 895 one_click_signin::HISTOGRAM_DISMISSED, |
882 one_click_signin::HISTOGRAM_MAX); | 896 one_click_signin::HISTOGRAM_MAX); |
883 } else { | 897 } else { |
884 infobar_tab_helper->AddInfoBar( | 898 OneClickInfoBarDelegateImpl::Create( |
885 new OneClickInfoBarDelegateImpl(infobar_tab_helper, session_index_, | 899 InfoBarService::FromWebContents(contents), session_index_, email_, |
886 email_, password_)); | 900 password_); |
887 } | 901 } |
888 break; | 902 break; |
889 case AUTO_ACCEPT_ACCEPTED: | 903 case AUTO_ACCEPT_ACCEPTED: |
890 SigninManager::DisableOneClickSignIn(profile); | 904 SigninManager::DisableOneClickSignIn(profile); |
891 browser->window()->ShowOneClickSigninBubble( | 905 browser->window()->ShowOneClickSigninBubble( |
892 base::Bind(&StartSync, browser, auto_accept_, session_index_, | 906 base::Bind(&StartSync, browser, auto_accept_, session_index_, |
893 email_, password_)); | 907 email_, password_)); |
894 break; | 908 break; |
895 case AUTO_ACCEPT_CONFIGURE: | 909 case AUTO_ACCEPT_CONFIGURE: |
896 SigninManager::DisableOneClickSignIn(profile); | 910 SigninManager::DisableOneClickSignIn(profile); |
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
956 break; | 970 break; |
957 } | 971 } |
958 } | 972 } |
959 | 973 |
960 RedirectToNTP(); | 974 RedirectToNTP(); |
961 } | 975 } |
962 | 976 |
963 void OneClickSigninHelper::SigninSuccess() { | 977 void OneClickSigninHelper::SigninSuccess() { |
964 RedirectToNTP(); | 978 RedirectToNTP(); |
965 } | 979 } |
OLD | NEW |