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

Side by Side Diff: ui/chromeos/network/network_state_notifier.cc

Issue 762633002: Use NetworkConnectionObserver to trigger connect failure notifications (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase Created 5 years, 11 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
« no previous file with comments | « ui/chromeos/network/network_state_notifier.h ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 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 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "ui/chromeos/network/network_state_notifier.h" 5 #include "ui/chromeos/network/network_state_notifier.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/location.h" 8 #include "base/location.h"
9 #include "base/strings/string16.h" 9 #include "base/strings/string16.h"
10 #include "base/strings/string_util.h" 10 #include "base/strings/string_util.h"
(...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after
93 93
94 NetworkStateNotifier::NetworkStateNotifier(NetworkConnect* network_connect) 94 NetworkStateNotifier::NetworkStateNotifier(NetworkConnect* network_connect)
95 : network_connect_(network_connect), 95 : network_connect_(network_connect),
96 did_show_out_of_credits_(false), 96 did_show_out_of_credits_(false),
97 weak_ptr_factory_(this) { 97 weak_ptr_factory_(this) {
98 if (!NetworkHandler::IsInitialized()) 98 if (!NetworkHandler::IsInitialized())
99 return; 99 return;
100 NetworkStateHandler* handler = NetworkHandler::Get()->network_state_handler(); 100 NetworkStateHandler* handler = NetworkHandler::Get()->network_state_handler();
101 handler->AddObserver(this, FROM_HERE); 101 handler->AddObserver(this, FROM_HERE);
102 UpdateDefaultNetwork(handler->DefaultNetwork()); 102 UpdateDefaultNetwork(handler->DefaultNetwork());
103 NetworkHandler::Get()->network_connection_handler()->AddObserver(this);
103 } 104 }
104 105
105 NetworkStateNotifier::~NetworkStateNotifier() { 106 NetworkStateNotifier::~NetworkStateNotifier() {
106 if (!NetworkHandler::IsInitialized()) 107 if (!NetworkHandler::IsInitialized())
107 return; 108 return;
108 NetworkHandler::Get()->network_state_handler()->RemoveObserver(this, 109 NetworkHandler::Get()->network_state_handler()->RemoveObserver(this,
109 FROM_HERE); 110 FROM_HERE);
111 NetworkHandler::Get()->network_connection_handler()->RemoveObserver(this);
112 }
113
114 void NetworkStateNotifier::ConnectFailed(const std::string& service_path,
115 const std::string& error_name) {
116 // Only show a notification for certain errors. Other failures are expected
117 // to be handled by the UI that initiated the connect request.
118 // Note: kErrorConnectFailed may also cause the configure dialog to be
119 // displayed, but we rely on the notification system to show additional
120 // details if available.
121 if (error_name != NetworkConnectionHandler::kErrorConnectFailed &&
122 error_name != NetworkConnectionHandler::kErrorNotFound &&
123 error_name != NetworkConnectionHandler::kErrorConfigureFailed &&
124 error_name != NetworkConnectionHandler::kErrorCertLoadTimeout) {
125 return;
126 }
127 ShowNetworkConnectError(error_name, service_path);
110 } 128 }
111 129
112 void NetworkStateNotifier::DefaultNetworkChanged(const NetworkState* network) { 130 void NetworkStateNotifier::DefaultNetworkChanged(const NetworkState* network) {
113 if (!UpdateDefaultNetwork(network)) 131 if (!UpdateDefaultNetwork(network))
114 return; 132 return;
115 // If the default network changes to another network, allow the out of 133 // If the default network changes to another network, allow the out of
116 // credits notification to be shown again. A delay prevents the notification 134 // credits notification to be shown again. A delay prevents the notification
117 // from being shown too frequently (see below). 135 // from being shown too frequently (see below).
118 if (network) 136 if (network)
119 did_show_out_of_credits_ = false; 137 did_show_out_of_credits_ = false;
(...skipping 189 matching lines...) Expand 10 before | Expand all | Expand 10 after
309 service_path); 327 service_path);
310 if (shill_error.empty()) 328 if (shill_error.empty())
311 shill_error = network->last_error(); 329 shill_error = network->last_error();
312 } 330 }
313 331
314 if (ShillErrorIsIgnored(shill_error)) { 332 if (ShillErrorIsIgnored(shill_error)) {
315 NET_LOG_DEBUG("Notify Ignoring error: " + error_name, service_path); 333 NET_LOG_DEBUG("Notify Ignoring error: " + error_name, service_path);
316 return; 334 return;
317 } 335 }
318 336
319 error = network_connect_->GetErrorString(shill_error, service_path); 337 error = network_connect_->GetShillErrorString(shill_error, service_path);
320 if (error.empty()) 338 if (error.empty())
321 error = l10n_util::GetStringUTF16(IDS_CHROMEOS_NETWORK_ERROR_UNKNOWN); 339 error = l10n_util::GetStringUTF16(IDS_CHROMEOS_NETWORK_ERROR_UNKNOWN);
322 } 340 }
323 NET_LOG_ERROR("Notify connect error: " + base::UTF16ToUTF8(error), 341 NET_LOG_ERROR("Notify connect error: " + base::UTF16ToUTF8(error),
324 service_path); 342 service_path);
325 343
326 std::string network_name = 344 std::string network_name =
327 chromeos::shill_property_util::GetNameFromProperties(service_path, 345 chromeos::shill_property_util::GetNameFromProperties(service_path,
328 shill_properties); 346 shill_properties);
329 std::string network_error_details; 347 std::string network_error_details;
(...skipping 26 matching lines...) Expand all
356 base::Bind(&NetworkStateNotifier::ShowNetworkSettings, 374 base::Bind(&NetworkStateNotifier::ShowNetworkSettings,
357 weak_ptr_factory_.GetWeakPtr(), service_path)); 375 weak_ptr_factory_.GetWeakPtr(), service_path));
358 } 376 }
359 377
360 void NetworkStateNotifier::ShowNetworkSettings( 378 void NetworkStateNotifier::ShowNetworkSettings(
361 const std::string& service_path) { 379 const std::string& service_path) {
362 network_connect_->ShowNetworkSettings(service_path); 380 network_connect_->ShowNetworkSettings(service_path);
363 } 381 }
364 382
365 } // namespace ui 383 } // namespace ui
OLDNEW
« no previous file with comments | « ui/chromeos/network/network_state_notifier.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698