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