| 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_sync_starter.h" | 5 #include "chrome/browser/ui/sync/one_click_signin_sync_starter.h" |
| 6 | 6 |
| 7 #include "base/metrics/histogram.h" | 7 #include "base/metrics/histogram.h" |
| 8 #include "base/prefs/pref_service.h" | 8 #include "base/prefs/pref_service.h" |
| 9 #include "base/strings/utf_string_conversions.h" | 9 #include "base/strings/utf_string_conversions.h" |
| 10 #include "chrome/browser/browser_process.h" | 10 #include "chrome/browser/browser_process.h" |
| (...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 78 const std::string& password, | 78 const std::string& password, |
| 79 const std::string& refresh_token, | 79 const std::string& refresh_token, |
| 80 StartSyncMode start_mode, | 80 StartSyncMode start_mode, |
| 81 content::WebContents* web_contents, | 81 content::WebContents* web_contents, |
| 82 ConfirmationRequired confirmation_required, | 82 ConfirmationRequired confirmation_required, |
| 83 const GURL& continue_url, | 83 const GURL& continue_url, |
| 84 Callback sync_setup_completed_callback) | 84 Callback sync_setup_completed_callback) |
| 85 : content::WebContentsObserver(web_contents), | 85 : content::WebContentsObserver(web_contents), |
| 86 profile_(NULL), | 86 profile_(NULL), |
| 87 start_mode_(start_mode), | 87 start_mode_(start_mode), |
| 88 desktop_type_(chrome::HOST_DESKTOP_TYPE_NATIVE), | 88 desktop_type_(ui::HOST_DESKTOP_TYPE_NATIVE), |
| 89 confirmation_required_(confirmation_required), | 89 confirmation_required_(confirmation_required), |
| 90 continue_url_(continue_url), | 90 continue_url_(continue_url), |
| 91 sync_setup_completed_callback_(sync_setup_completed_callback), | 91 sync_setup_completed_callback_(sync_setup_completed_callback), |
| 92 weak_pointer_factory_(this) { | 92 weak_pointer_factory_(this) { |
| 93 DCHECK(profile); | 93 DCHECK(profile); |
| 94 DCHECK(web_contents || continue_url.is_empty()); | 94 DCHECK(web_contents || continue_url.is_empty()); |
| 95 BrowserList::AddObserver(this); | 95 BrowserList::AddObserver(this); |
| 96 Initialize(profile, browser); | 96 Initialize(profile, browser); |
| 97 | 97 |
| 98 // Policy is enabled, so pass in a callback to do extra policy-related UI | 98 // Policy is enabled, so pass in a callback to do extra policy-related UI |
| (...skipping 171 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 270 GetProfileInfoCache().ChooseAvatarIconIndexForNewProfile(); | 270 GetProfileInfoCache().ChooseAvatarIconIndexForNewProfile(); |
| 271 ProfileManager::CreateMultiProfileAsync( | 271 ProfileManager::CreateMultiProfileAsync( |
| 272 base::UTF8ToUTF16(signin->GetUsernameForAuthInProgress()), | 272 base::UTF8ToUTF16(signin->GetUsernameForAuthInProgress()), |
| 273 base::UTF8ToUTF16(profiles::GetDefaultAvatarIconUrl(icon_index)), | 273 base::UTF8ToUTF16(profiles::GetDefaultAvatarIconUrl(icon_index)), |
| 274 base::Bind(&OneClickSigninSyncStarter::CompleteInitForNewProfile, | 274 base::Bind(&OneClickSigninSyncStarter::CompleteInitForNewProfile, |
| 275 weak_pointer_factory_.GetWeakPtr(), desktop_type_), | 275 weak_pointer_factory_.GetWeakPtr(), desktop_type_), |
| 276 std::string()); | 276 std::string()); |
| 277 } | 277 } |
| 278 | 278 |
| 279 void OneClickSigninSyncStarter::CompleteInitForNewProfile( | 279 void OneClickSigninSyncStarter::CompleteInitForNewProfile( |
| 280 chrome::HostDesktopType desktop_type, | 280 ui::HostDesktopType desktop_type, |
| 281 Profile* new_profile, | 281 Profile* new_profile, |
| 282 Profile::CreateStatus status) { | 282 Profile::CreateStatus status) { |
| 283 DCHECK_NE(profile_, new_profile); | 283 DCHECK_NE(profile_, new_profile); |
| 284 | 284 |
| 285 // TODO(atwilson): On error, unregister the client to release the DMToken | 285 // TODO(atwilson): On error, unregister the client to release the DMToken |
| 286 // and surface a better error for the user. | 286 // and surface a better error for the user. |
| 287 switch (status) { | 287 switch (status) { |
| 288 case Profile::CREATE_STATUS_LOCAL_FAIL: { | 288 case Profile::CREATE_STATUS_LOCAL_FAIL: { |
| 289 NOTREACHED() << "Error creating new profile"; | 289 NOTREACHED() << "Error creating new profile"; |
| 290 CancelSigninAndDelete(); | 290 CancelSigninAndDelete(); |
| (...skipping 195 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 486 const base::string16& custom_message) { | 486 const base::string16& custom_message) { |
| 487 browser_ = EnsureBrowser(browser_, profile_, desktop_type_); | 487 browser_ = EnsureBrowser(browser_, profile_, desktop_type_); |
| 488 LoginUIServiceFactory::GetForProfile(browser_->profile())-> | 488 LoginUIServiceFactory::GetForProfile(browser_->profile())-> |
| 489 DisplayLoginResult(browser_, custom_message); | 489 DisplayLoginResult(browser_, custom_message); |
| 490 } | 490 } |
| 491 | 491 |
| 492 // static | 492 // static |
| 493 Browser* OneClickSigninSyncStarter::EnsureBrowser( | 493 Browser* OneClickSigninSyncStarter::EnsureBrowser( |
| 494 Browser* browser, | 494 Browser* browser, |
| 495 Profile* profile, | 495 Profile* profile, |
| 496 chrome::HostDesktopType desktop_type) { | 496 ui::HostDesktopType desktop_type) { |
| 497 if (!browser) { | 497 if (!browser) { |
| 498 // The user just created a new profile or has closed the browser that | 498 // The user just created a new profile or has closed the browser that |
| 499 // we used previously. Grab the most recently active browser or else | 499 // we used previously. Grab the most recently active browser or else |
| 500 // create a new one. | 500 // create a new one. |
| 501 browser = chrome::FindLastActiveWithProfile(profile, desktop_type); | 501 browser = chrome::FindLastActiveWithProfile(profile, desktop_type); |
| 502 if (!browser) { | 502 if (!browser) { |
| 503 browser = new Browser(Browser::CreateParams(profile, | 503 browser = new Browser(Browser::CreateParams(profile, |
| 504 desktop_type)); | 504 desktop_type)); |
| 505 chrome::AddTabAt(browser, GURL(), -1, true); | 505 chrome::AddTabAt(browser, GURL(), -1, true); |
| 506 } | 506 } |
| (...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 606 false /* user_gesture */); | 606 false /* user_gesture */); |
| 607 } | 607 } |
| 608 | 608 |
| 609 void OneClickSigninSyncStarter::LoadContinueUrl() { | 609 void OneClickSigninSyncStarter::LoadContinueUrl() { |
| 610 web_contents()->GetController().LoadURL( | 610 web_contents()->GetController().LoadURL( |
| 611 continue_url_, | 611 continue_url_, |
| 612 content::Referrer(), | 612 content::Referrer(), |
| 613 ui::PAGE_TRANSITION_AUTO_TOPLEVEL, | 613 ui::PAGE_TRANSITION_AUTO_TOPLEVEL, |
| 614 std::string()); | 614 std::string()); |
| 615 } | 615 } |
| OLD | NEW |