Index: chrome/browser/chromeos/ui/inline_login_dialog.cc |
diff --git a/chrome/browser/chromeos/ui/inline_login_dialog.cc b/chrome/browser/chromeos/ui/inline_login_dialog.cc |
new file mode 100644 |
index 0000000000000000000000000000000000000000..7f00d1d36007c55c4a3a085b0981bda867a9d81c |
--- /dev/null |
+++ b/chrome/browser/chromeos/ui/inline_login_dialog.cc |
@@ -0,0 +1,81 @@ |
+// Copyright 2014 The Chromium Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+#include "chrome/browser/chromeos/ui/inline_login_dialog.h" |
+ |
+#include "base/bind.h" |
+#include "base/logging.h" |
+#include "chrome/browser/signin/signin_promo.h" |
+#include "chrome/browser/ui/browser_dialogs.h" |
+#include "content/public/browser/web_contents.h" |
+#include "ui/views/controls/webview/webview.h" |
+#include "ui/views/layout/box_layout.h" |
+#include "ui/views/widget/widget.h" |
+ |
+namespace { |
+ |
+const int kGaiaViewHeight = 400; |
+const int kGaiaViewWidth = 360; |
+ |
+} // namespace |
+ |
+namespace ui { |
+ |
+// static |
+void InlineLoginDialog::Show(content::BrowserContext* context) { |
+ InlineLoginDialog* dialog = new InlineLoginDialog(); |
+ chrome::ShowWebDialog(NULL, context, dialog); |
+} |
+ |
+InlineLoginDialog::InlineLoginDialog() { |
+} |
+ |
+InlineLoginDialog::~InlineLoginDialog() { |
+} |
+ |
+ui::ModalType InlineLoginDialog::GetDialogModalType() const { |
+ return ui::MODAL_TYPE_SYSTEM; |
+} |
+ |
+base::string16 InlineLoginDialog::GetDialogTitle() const { |
+ return base::string16(); |
+} |
+ |
+GURL InlineLoginDialog::GetDialogContentURL() const { |
+ return GURL(signin::GetPromoURL(signin::SOURCE_AVATAR_BUBBLE_ADD_ACCOUNT, |
+ false /* auto_close */, |
+ true /* is_constrained */)); |
+} |
+ |
+void InlineLoginDialog::GetWebUIMessageHandlers( |
+ std::vector<content::WebUIMessageHandler*>* handlers) const { |
+} |
+ |
+void InlineLoginDialog::GetDialogSize(gfx::Size* size) const { |
+ *size = gfx::Size(kGaiaViewWidth, kGaiaViewHeight); |
+} |
+ |
+std::string InlineLoginDialog::GetDialogArgs() const { |
+ return ""; |
+} |
+ |
+bool InlineLoginDialog::CanResizeDialog() const { |
+ return false; |
+} |
+ |
+void InlineLoginDialog::OnDialogClosed(const std::string& json_retval) { |
+ delete this; |
+} |
+ |
+void InlineLoginDialog::OnCloseContents(content::WebContents* source, |
+ bool* out_close_dialog) { |
+ if (out_close_dialog) |
+ *out_close_dialog = true; |
+} |
+ |
+bool InlineLoginDialog::ShouldShowDialogTitle() const { |
+ return true; |
+} |
+ |
+} // namespace ui |