Chromium Code Reviews| Index: chrome/browser/chromeos/net/network_portal_web_dialog.cc |
| diff --git a/chrome/browser/chromeos/net/network_portal_web_dialog.cc b/chrome/browser/chromeos/net/network_portal_web_dialog.cc |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..164c0649e1f2cdb1927dc40a64266bbf6806004a |
| --- /dev/null |
| +++ b/chrome/browser/chromeos/net/network_portal_web_dialog.cc |
| @@ -0,0 +1,102 @@ |
| +// 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/net/network_portal_web_dialog.h" |
| + |
| +#include "ash/shell.h" |
| +#include "components/captive_portal/captive_portal_detector.h" |
| +#include "ui/base/ui_base_types.h" |
| +#include "ui/gfx/display.h" |
| +#include "ui/gfx/size.h" |
| +#include "ui/views/widget/widget.h" |
| +#include "url/gurl.h" |
| + |
| +namespace { |
| + |
| +const float kNetworkPortalWebDialogWidthFraction = .8; |
| +const float kNetworkPortalWebDialogHeightFraction = .8; |
| + |
| +gfx::Size GetPortalDialogSize() { |
| + const gfx::Display display = ash::Shell::GetScreen()->GetPrimaryDisplay(); |
| + |
| + gfx::Size display_size = display.size(); |
| + |
| + if (display.rotation() == gfx::Display::ROTATE_90 || |
| + display.rotation() == gfx::Display::ROTATE_270) { |
| + display_size = gfx::Size(display_size.height(), display_size.width()); |
| + } |
| + |
| + display_size = |
| + gfx::Size(display_size.width() * kNetworkPortalWebDialogWidthFraction, |
| + display_size.height() * kNetworkPortalWebDialogHeightFraction); |
| + |
| + return display_size; |
| +} |
| + |
| +} // namespace |
| + |
| +namespace chromeos { |
| + |
| +NetworkPortalWebDialog::NetworkPortalWebDialog( |
| + base::WeakPtr<NetworkPortalNotificationController> controller) |
| + : controller_(controller), widget_(NULL) { |
|
ygorshenin1
2014/11/26 16:33:50
nit: s/NULL/nullptr/g
Alexander Alekseev
2014/11/26 17:51:00
Done.
|
| +} |
| + |
| +NetworkPortalWebDialog::~NetworkPortalWebDialog() { |
| + if (controller_) |
| + controller_->OnDialogDestroyed(this); |
| +} |
| + |
| +void NetworkPortalWebDialog::Close() { |
| + if (widget_) |
| + widget_->Close(); |
| +} |
| + |
| +void NetworkPortalWebDialog::SetWidget(views::Widget* widget) { |
| + widget_ = widget; |
| +} |
| + |
| +ui::ModalType NetworkPortalWebDialog::GetDialogModalType() const { |
| + return ui::MODAL_TYPE_SYSTEM; |
| +} |
| + |
| +base::string16 NetworkPortalWebDialog::GetDialogTitle() const { |
| + return base::string16(); |
| +} |
| + |
| +GURL NetworkPortalWebDialog::GetDialogContentURL() const { |
| + return GURL(captive_portal::CaptivePortalDetector::kDefaultURL); |
| +} |
| + |
| +void NetworkPortalWebDialog::GetWebUIMessageHandlers( |
| + std::vector<content::WebUIMessageHandler*>* handlers) const { |
| +} |
| + |
| +void NetworkPortalWebDialog::GetDialogSize(gfx::Size* size) const { |
| + *size = GetPortalDialogSize(); |
| +} |
| + |
| +std::string NetworkPortalWebDialog::GetDialogArgs() const { |
| + return std::string(); |
| +} |
| + |
| +bool NetworkPortalWebDialog::CanResizeDialog() const { |
| + return false; |
| +} |
| + |
| +void NetworkPortalWebDialog::OnDialogClosed(const std::string& json_retval) { |
| + delete this; |
| +} |
| + |
| +void NetworkPortalWebDialog::OnCloseContents(content::WebContents* /* source */, |
| + bool* out_close_dialog) { |
| + if (out_close_dialog) |
| + *out_close_dialog = true; |
| +} |
| + |
| +bool NetworkPortalWebDialog::ShouldShowDialogTitle() const { |
| + return true; |
| +} |
| + |
| +} // namespace chromeos |