| Index: chrome/browser/ui/views/profiles/user_manager_view.cc
 | 
| diff --git a/chrome/browser/ui/views/profiles/user_manager_view.cc b/chrome/browser/ui/views/profiles/user_manager_view.cc
 | 
| index e3cc5d31421c4bb4a10c7d022710bd95fb1e4abe..44d3d108399d7d07bbd1bed765fb8fde72f77ea4 100644
 | 
| --- a/chrome/browser/ui/views/profiles/user_manager_view.cc
 | 
| +++ b/chrome/browser/ui/views/profiles/user_manager_view.cc
 | 
| @@ -60,21 +60,12 @@ bool instance_under_construction_ = false;
 | 
|  ReauthDelegate::ReauthDelegate(UserManagerView* parent,
 | 
|                                 views::WebView* web_view,
 | 
|                                 const std::string& email_address,
 | 
| -                               signin_metrics::Reason reason)
 | 
| -    : parent_(parent),
 | 
| -      web_view_(web_view),
 | 
| -      email_address_(email_address) {
 | 
| +                               const GURL& url)
 | 
| +    : parent_(parent), web_view_(web_view), email_address_(email_address) {
 | 
|    AddChildView(web_view_);
 | 
|    SetLayoutManager(new views::FillLayout());
 | 
|  
 | 
|    web_view_->GetWebContents()->SetDelegate(this);
 | 
| -
 | 
| -  // Load the re-auth URL, prepopulated with the user's email address.
 | 
| -  // Add the index of the profile to the URL so that the inline login page
 | 
| -  // knows which profile to load and update the credentials.
 | 
| -  GURL url = signin::GetReauthURLWithEmail(
 | 
| -      signin_metrics::AccessPoint::ACCESS_POINT_USER_MANAGER, reason,
 | 
| -      email_address_);
 | 
|    web_view_->LoadInitialURL(url);
 | 
|  }
 | 
|  
 | 
| @@ -215,14 +206,18 @@ void UserManager::ShowReauthDialog(content::BrowserContext* browser_context,
 | 
|    // This method should only be called if the user manager is already showing.
 | 
|    if (!IsShowing())
 | 
|      return;
 | 
| -  instance_->ShowReauthDialog(browser_context, email, reason);
 | 
| +  // Load the re-auth URL, prepopulated with the user's email address.
 | 
| +  // Add the index of the profile to the URL so that the inline login page
 | 
| +  // knows which profile to load and update the credentials.
 | 
| +  GURL url = signin::GetReauthURLWithEmail(
 | 
| +      signin_metrics::AccessPoint::ACCESS_POINT_USER_MANAGER, reason, email);
 | 
| +  instance_->ShowDialog(browser_context, email, url);
 | 
|  }
 | 
|  
 | 
|  // static
 | 
| -void UserManager::HideReauthDialog() {
 | 
| -  // This method should only be called if the user manager is already showing.
 | 
| +void UserManager::HideDialog() {
 | 
|    if (instance_ && instance_->GetWidget()->IsVisible())
 | 
| -    instance_->HideReauthDialog();
 | 
| +    instance_->HideDialog();
 | 
|  }
 | 
|  
 | 
|  // static
 | 
| @@ -238,8 +233,10 @@ void UserManager::ShowSigninDialog(content::BrowserContext* browser_context,
 | 
|    if (!IsShowing())
 | 
|      return;
 | 
|    instance_->SetSigninProfilePath(profile_path);
 | 
| -  ShowReauthDialog(browser_context, std::string(),
 | 
| -                   signin_metrics::Reason::REASON_SIGNIN_PRIMARY_ACCOUNT);
 | 
| +  GURL url = signin::GetPromoURL(
 | 
| +      signin_metrics::AccessPoint::ACCESS_POINT_USER_MANAGER,
 | 
| +      signin_metrics::Reason::REASON_SIGNIN_PRIMARY_ACCOUNT, true, true);
 | 
| +  instance_->ShowDialog(browser_context, std::string(), url);
 | 
|  }
 | 
|  
 | 
|  // static
 | 
| @@ -249,6 +246,13 @@ void UserManager::DisplayErrorMessage() {
 | 
|    instance_->DisplayErrorMessage();
 | 
|  }
 | 
|  
 | 
| +void UserManager::ShowDialogAndDisplayErrorMessage(
 | 
| +    content::BrowserContext* browser_context) {
 | 
| +  DCHECK(instance_);
 | 
| +  instance_->ShowDialog(browser_context, std::string(),
 | 
| +                        GURL(chrome::kChromeUISigninErrorURL));
 | 
| +}
 | 
| +
 | 
|  // static
 | 
|  base::FilePath UserManager::GetSigninProfilePath() {
 | 
|    return instance_->GetSigninProfilePath();
 | 
| @@ -265,7 +269,7 @@ UserManagerView::UserManagerView()
 | 
|  }
 | 
|  
 | 
|  UserManagerView::~UserManagerView() {
 | 
| -  HideReauthDialog();
 | 
| +  HideDialog();
 | 
|  }
 | 
|  
 | 
|  // static
 | 
| @@ -283,22 +287,20 @@ void UserManagerView::OnSystemProfileCreated(
 | 
|    instance_->Init(system_profile, GURL(url));
 | 
|  }
 | 
|  
 | 
| -void UserManagerView::ShowReauthDialog(content::BrowserContext* browser_context,
 | 
| -                                       const std::string& email,
 | 
| -                                       signin_metrics::Reason reason) {
 | 
| -  HideReauthDialog();
 | 
| +void UserManagerView::ShowDialog(content::BrowserContext* browser_context,
 | 
| +                                 const std::string& email,
 | 
| +                                 const GURL& url) {
 | 
| +  HideDialog();
 | 
|    // The dialog delegate will be deleted when the widget closes. The created
 | 
|    // WebView's lifetime is managed by the delegate.
 | 
| -  delegate_ = new ReauthDelegate(this,
 | 
| -                                 new views::WebView(browser_context),
 | 
| -                                 email,
 | 
| -                                 reason);
 | 
| +  delegate_ =
 | 
| +      new ReauthDelegate(this, new views::WebView(browser_context), email, url);
 | 
|    gfx::NativeView parent = instance_->GetWidget()->GetNativeView();
 | 
|    views::DialogDelegate::CreateDialogWidget(delegate_, nullptr, parent);
 | 
|    delegate_->GetWidget()->Show();
 | 
|  }
 | 
|  
 | 
| -void UserManagerView::HideReauthDialog() {
 | 
| +void UserManagerView::HideDialog() {
 | 
|    if (delegate_) {
 | 
|      delegate_->CloseReauthDialog();
 | 
|      DCHECK(!delegate_);
 | 
| 
 |