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..0c6e7a626b43f15002945bf7a91e94d97a3597bb |
| --- /dev/null |
| +++ b/chrome/browser/chromeos/net/network_portal_web_dialog.cc |
| @@ -0,0 +1,101 @@ |
| +// 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 "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(); // work_area_size() ? |
|
ygorshenin1
2014/11/24 15:02:09
Could you please add a TODO comment with a bug ref
Alexander Alekseev
2014/11/26 00:26:28
I've removed comment.
|
| + |
| + 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( |
| + NetworkPortalNotificationController* controller) |
| + : controller_(controller->AsWeakPtr()), widget_(NULL) { |
| +} |
| + |
| +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 ""; |
|
ygorshenin1
2014/11/24 15:02:09
nit: s/""/string()/g
Alexander Alekseev
2014/11/26 00:26:28
Done.
|
| +} |
| + |
| +bool NetworkPortalWebDialog::CanResizeDialog() const { |
| + return false; |
| +} |
| + |
| +void NetworkPortalWebDialog::OnDialogClosed(const std::string& json_retval) { |
| + delete this; |
| +} |
| + |
| +void NetworkPortalWebDialog::OnCloseContents(content::WebContents* source, |
|
ygorshenin1
2014/11/24 15:02:09
nit: could you please surround |source| by /* and
Alexander Alekseev
2014/11/26 00:26:28
Done.
|
| + bool* out_close_dialog) { |
| + if (out_close_dialog) |
| + *out_close_dialog = true; |
| +} |
| + |
| +bool NetworkPortalWebDialog::ShouldShowDialogTitle() const { |
| + return true; |
| +} |
| + |
| +} // namespace chromeos |