1 // Copyright 2014 The Chromium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #include "chrome/browser/chromeos/ui/inline_login_dialog.h" 6 7 #include "base/bind.h" 8 #include "base/logging.h" 9 #include "chrome/browser/signin/signin_promo.h" 10 #include "chrome/browser/ui/browser_dialogs.h" 11 #include "content/public/browser/web_contents.h" 12 #include "ui/views/controls/webview/webview.h" 13 #include "ui/views/layout/box_layout.h" 14 #include "ui/views/widget/widget.h" 15 16 namespace { 17 18 const int kGaiaViewHeight = 400; 19 const int kGaiaViewWidth = 360; 20 21 } // namespace 22 23 namespace ui { 24 25 // static 26 void InlineLoginDialog::Show(content::BrowserContext* context) { 27 InlineLoginDialog* dialog = new InlineLoginDialog(); 28 chrome::ShowWebDialog(NULL, context, dialog); 29 } 30 31 InlineLoginDialog::InlineLoginDialog() { 32 } 33 34 InlineLoginDialog::~InlineLoginDialog() { 35 } 36 37 ModalType InlineLoginDialog::GetDialogModalType() const { 38 return MODAL_TYPE_SYSTEM; 39 } 40 41 base::string16 InlineLoginDialog::GetDialogTitle() const { 42 return base::string16(); 43 } 44 45 GURL InlineLoginDialog::GetDialogContentURL() const { 46 return GURL(signin::GetPromoURL(signin::SOURCE_AVATAR_BUBBLE_ADD_ACCOUNT, 47 false /* auto_close */, 48 true /* is_constrained */)); 49 } 50 51 void InlineLoginDialog::GetWebUIMessageHandlers( 52 std::vector<content::WebUIMessageHandler*>* handlers) const { 53 } 54 55 void InlineLoginDialog::GetDialogSize(gfx::Size* size) const { 56 *size = gfx::Size(kGaiaViewWidth, kGaiaViewHeight); 57 } 58 59 std::string InlineLoginDialog::GetDialogArgs() const { 60 return ""; 61 } 62 63 bool InlineLoginDialog::CanResizeDialog() const { 64 return false; 65 } 66 67 void InlineLoginDialog::OnDialogClosed(const std::string& json_retval) { 68 delete this; 69 } 70 71 void InlineLoginDialog::OnCloseContents(content::WebContents* source, 72 bool* out_close_dialog) { 73 if (out_close_dialog) 74 *out_close_dialog = true; 75 } 76 77 bool InlineLoginDialog::ShouldShowDialogTitle() const { 78 return true; 79 } 80 81 } // namespace ui 82