Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(142)

Side by Side Diff: chrome/browser/chromeos/login/captive_portal_view.cc

Issue 286933002: [cros login] Split login related classes into subfolders. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: fix includes in new tests Created 6 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
(Empty)
1 // Copyright (c) 2012 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/login/captive_portal_view.h"
6
7 #include "base/strings/utf_string_conversions.h"
8 #include "chrome/browser/chromeos/login/captive_portal_window_proxy.h"
9 #include "chromeos/network/network_handler.h"
10 #include "chromeos/network/network_state.h"
11 #include "chromeos/network/network_state_handler.h"
12 #include "components/captive_portal/captive_portal_detector.h"
13 #include "content/public/browser/web_contents.h"
14 #include "grit/generated_resources.h"
15 #include "ui/base/l10n/l10n_util.h"
16 #include "ui/views/window/dialog_delegate.h"
17 #include "url/gurl.h"
18
19 namespace {
20
21 const char* CaptivePortalStartURL() {
22 return captive_portal::CaptivePortalDetector::kDefaultURL;
23 }
24
25 } // namespace
26
27 namespace chromeos {
28
29 CaptivePortalView::CaptivePortalView(Profile* profile,
30 CaptivePortalWindowProxy* proxy)
31 : SimpleWebViewDialog(profile),
32 proxy_(proxy),
33 redirected_(false) {
34 }
35
36 CaptivePortalView::~CaptivePortalView() {
37 }
38
39 void CaptivePortalView::StartLoad() {
40 SimpleWebViewDialog::StartLoad(GURL(CaptivePortalStartURL()));
41 }
42
43 bool CaptivePortalView::CanResize() const {
44 return false;
45 }
46
47 ui::ModalType CaptivePortalView::GetModalType() const {
48 return ui::MODAL_TYPE_SYSTEM;
49 }
50
51 base::string16 CaptivePortalView::GetWindowTitle() const {
52 base::string16 network_name;
53 const NetworkState* default_network =
54 NetworkHandler::Get()->network_state_handler()->DefaultNetwork();
55 std::string default_network_name =
56 default_network ? default_network->name() : std::string();
57 if (!default_network_name.empty()) {
58 network_name = base::ASCIIToUTF16(default_network_name);
59 } else {
60 DLOG(ERROR)
61 << "No active/default network, but captive portal window is shown.";
62 }
63
64 return l10n_util::GetStringFUTF16(IDS_LOGIN_CAPTIVE_PORTAL_WINDOW_TITLE,
65 network_name);
66 }
67
68 bool CaptivePortalView::ShouldShowWindowTitle() const {
69 return true;
70 }
71
72 views::NonClientFrameView* CaptivePortalView::CreateNonClientFrameView(
73 views::Widget* widget) {
74 return views::DialogDelegate::CreateDialogFrameView(widget);
75 }
76
77 void CaptivePortalView::NavigationStateChanged(
78 const content::WebContents* source, unsigned changed_flags) {
79 SimpleWebViewDialog::NavigationStateChanged(source, changed_flags);
80
81 // Naive way to determine the redirection. This won't be needed after portal
82 // detection will be done on the Chrome side.
83 GURL url = source->GetLastCommittedURL();
84 // Note, |url| will be empty for "client3.google.com/generate_204" page.
85 if (!redirected_ && url != GURL::EmptyGURL() &&
86 url != GURL(CaptivePortalStartURL())) {
87 redirected_ = true;
88 proxy_->OnRedirected();
89 }
90 }
91
92 void CaptivePortalView::LoadingStateChanged(content::WebContents* source,
93 bool to_different_document) {
94 SimpleWebViewDialog::LoadingStateChanged(source, to_different_document);
95 // TODO(nkostylev): Fix case of no connectivity, check HTTP code returned.
96 // Disable this heuristic as it has false positives.
97 // Relying on just shill portal check to close dialog is fine.
98 // if (!is_loading && !redirected_)
99 // proxy_->OnOriginalURLLoaded();
100 }
101
102 } // namespace chromeos
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698