12a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// Copyright (c) 2013 The Chromium Authors. All rights reserved. 22a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 32a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// found in the LICENSE file. 42a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 52a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "chrome/browser/ui/webui/signin/profile_signin_confirmation_dialog.h" 62a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 72a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "base/basictypes.h" 82a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "base/json/json_writer.h" 92a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "base/logging.h" 10c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#include "base/values.h" 112a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "chrome/browser/profiles/profile_manager.h" 122a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "chrome/browser/ui/browser.h" 132a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "chrome/browser/ui/browser_dialogs.h" 14868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)#include "chrome/browser/ui/browser_window.h" 152a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "chrome/browser/ui/webui/constrained_web_dialog_ui.h" 162a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "chrome/common/url_constants.h" 171320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#include "chrome/grit/chromium_strings.h" 182a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "content/public/browser/web_ui.h" 192a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "content/public/browser/web_ui_message_handler.h" 202a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "ui/base/l10n/l10n_util.h" 212a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 22868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)// ProfileSigninConfirmationHandler -------------------------------------------- 232a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 242a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)namespace { 252a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 262a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)class ProfileSigninConfirmationHandler : public content::WebUIMessageHandler { 272a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) public: 282a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) ProfileSigninConfirmationHandler( 292a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const ProfileSigninConfirmationDialog* dialog, 30868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) ui::ProfileSigninConfirmationDelegate* delegate_); 312a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) virtual ~ProfileSigninConfirmationHandler(); 322a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) virtual void RegisterMessages() OVERRIDE; 332a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 342a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) private: 352a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // content::WebUIMessageHandler implementation. 362a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) void OnCancelButtonClicked(const base::ListValue* args); 372a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) void OnCreateProfileClicked(const base::ListValue* args); 382a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) void OnContinueButtonClicked(const base::ListValue* args); 392a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 402a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // Weak ptr to parent dialog. 412a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const ProfileSigninConfirmationDialog* dialog_; 422a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 43868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) // Dialog button handling. 44868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) ui::ProfileSigninConfirmationDelegate* delegate_; 452a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)}; 462a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 472a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)ProfileSigninConfirmationHandler::ProfileSigninConfirmationHandler( 48868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) const ProfileSigninConfirmationDialog* dialog, 49868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) ui::ProfileSigninConfirmationDelegate* delegate) 50868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) : dialog_(dialog), delegate_(delegate) { 512a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 522a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 532a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)ProfileSigninConfirmationHandler::~ProfileSigninConfirmationHandler() { 542a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 552a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 562a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)void ProfileSigninConfirmationHandler::RegisterMessages() { 57868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) web_ui()->RegisterMessageCallback( 58868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) "cancel", 592a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) base::Bind(&ProfileSigninConfirmationHandler::OnCancelButtonClicked, 602a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) base::Unretained(this))); 61868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) web_ui()->RegisterMessageCallback( 62868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) "createNewProfile", 632a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) base::Bind(&ProfileSigninConfirmationHandler::OnCreateProfileClicked, 642a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) base::Unretained(this))); 65868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) web_ui()->RegisterMessageCallback( 66868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) "continue", 672a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) base::Bind(&ProfileSigninConfirmationHandler::OnContinueButtonClicked, 682a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) base::Unretained(this))); 692a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 702a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 712a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)void ProfileSigninConfirmationHandler::OnCancelButtonClicked( 722a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const base::ListValue* args) { 732a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // TODO(dconnelly): redirect back to NTP? 74868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) delegate_->OnCancelSignin(); 752a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) dialog_->Close(); 762a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 772a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 782a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)void ProfileSigninConfirmationHandler::OnCreateProfileClicked( 792a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const base::ListValue* args) { 80868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) delegate_->OnSigninWithNewProfile(); 812a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) dialog_->Close(); 822a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 832a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 842a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)void ProfileSigninConfirmationHandler::OnContinueButtonClicked( 852a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const base::ListValue* args) { 86868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) delegate_->OnContinueSignin(); 872a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) dialog_->Close(); 882a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 892a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 90868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)} // namespace 91868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) 92868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)#if !defined(TOOLKIT_VIEWS) && !defined(OS_MACOSX) 93868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)namespace chrome { 94868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)// static 95868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)// Declared in browser_dialogs.h 96868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)void ShowProfileSigninConfirmationDialog( 97868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) Browser* browser, 98868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) content::WebContents* web_contents, 992a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) Profile* profile, 1002a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const std::string& username, 101868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) ui::ProfileSigninConfirmationDelegate* delegate) { 102868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) ProfileSigninConfirmationDialog::ShowDialog(web_contents, 103868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) profile, 104868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) username, 105868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) delegate); 1062a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 107868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)} // namespace chrome 108868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)#endif 109868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) 110868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)// ProfileSigninConfirmationDialog --------------------------------------------- 1112a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 1122a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)ProfileSigninConfirmationDialog::ProfileSigninConfirmationDialog( 113868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) content::WebContents* web_contents, 1142a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) Profile* profile, 1152a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const std::string& username, 116868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) ui::ProfileSigninConfirmationDelegate* delegate) 117868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) : web_contents_(web_contents), 1182a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) profile_(profile), 119868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) username_(username), 120868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) signin_delegate_(delegate), 121868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) dialog_delegate_(NULL), 122868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) prompt_for_new_profile_(true) { 1232a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 1242a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 1252a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)ProfileSigninConfirmationDialog::~ProfileSigninConfirmationDialog() { 1262a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 1272a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 128868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)// static 129868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)void ProfileSigninConfirmationDialog::ShowDialog( 130868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) content::WebContents* web_contents, 131868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) Profile* profile, 132868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) const std::string& username, 133868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) ui::ProfileSigninConfirmationDelegate* delegate) { 134868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) ProfileSigninConfirmationDialog* dialog = 135868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) new ProfileSigninConfirmationDialog(web_contents, 136868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) profile, 137868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) username, 138868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) delegate); 139868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) ui::CheckShouldPromptForNewProfile( 140868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) profile, 141868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) // This callback is guaranteed to be invoked, and once it is, the dialog 142868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) // owns itself. 143868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) base::Bind(&ProfileSigninConfirmationDialog::Show, 144868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) base::Unretained(dialog))); 145868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)} 146868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) 1472a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)void ProfileSigninConfirmationDialog::Close() const { 1482a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) closed_by_handler_ = true; 149868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) dialog_delegate_->OnDialogCloseFromWebUI(); 1502a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 1512a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 152c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)void ProfileSigninConfirmationDialog::Show(bool prompt) { 153c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) prompt_for_new_profile_ = prompt; 1541320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci dialog_delegate_ = CreateConstrainedWebDialog(profile_, this, web_contents_); 1552a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 1562a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 1572a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)ui::ModalType ProfileSigninConfirmationDialog::GetDialogModalType() const { 1582a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return ui::MODAL_TYPE_WINDOW; 1592a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 1602a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 1615d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)base::string16 ProfileSigninConfirmationDialog::GetDialogTitle() const { 162868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) return l10n_util::GetStringUTF16(IDS_ENTERPRISE_SIGNIN_TITLE); 1632a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 1642a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 1652a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)GURL ProfileSigninConfirmationDialog::GetDialogContentURL() const { 1662a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return GURL(chrome::kChromeUIProfileSigninConfirmationURL); 1672a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 1682a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 1692a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)void ProfileSigninConfirmationDialog::GetWebUIMessageHandlers( 1702a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) std::vector<content::WebUIMessageHandler*>* handlers) const { 1712a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) handlers->push_back( 172868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) new ProfileSigninConfirmationHandler(this, signin_delegate_)); 1732a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 1742a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 1752a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)void ProfileSigninConfirmationDialog::GetDialogSize(gfx::Size* size) const { 1762a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const int kMinimumDialogWidth = 480; 1772a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#if defined(OS_WIN) 1782a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const int kMinimumDialogHeight = 180; 1792a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#else 1802a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const int kMinimumDialogHeight = 210; 1812a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#endif 1822a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const int kProfileCreationMessageHeight = prompt_for_new_profile_ ? 50 : 0; 1832a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) size->SetSize(kMinimumDialogWidth, 1842a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) kMinimumDialogHeight + kProfileCreationMessageHeight); 1852a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 1862a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 1872a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)std::string ProfileSigninConfirmationDialog::GetDialogArgs() const { 1882a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) std::string data; 189c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) base::DictionaryValue dict; 1902a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) dict.SetString("username", username_); 1912a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) dict.SetBoolean("promptForNewProfile", prompt_for_new_profile_); 1922a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#if defined(OS_WIN) 1932a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) dict.SetBoolean("hideTitle", true); 1942a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#endif 1952a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) base::JSONWriter::Write(&dict, &data); 1962a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return data; 1972a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 1982a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 1992a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)void ProfileSigninConfirmationDialog::OnDialogClosed( 2002a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) const std::string& json_retval) { 2012a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (!closed_by_handler_) 202868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) signin_delegate_->OnCancelSignin(); 2032a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 2042a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 2052a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)void ProfileSigninConfirmationDialog::OnCloseContents( 2062a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) content::WebContents* source, 2072a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) bool* out_close_dialog) { 2082a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (out_close_dialog) 2092a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) *out_close_dialog = true; 2102a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 2112a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 2122a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)bool ProfileSigninConfirmationDialog::ShouldShowDialogTitle() const { 2132a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return true; 2142a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)} 215