Home | History | Annotate | Download | only in ui
      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