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

Side by Side Diff: ash/system/chromeos/network/network_connect.cc

Issue 23712002: Cleanup network type matching. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Generalized network type matching. Created 7 years, 3 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
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2013 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 "ash/system/chromeos/network/network_connect.h" 5 #include "ash/system/chromeos/network/network_connect.h"
6 6
7 #include "ash/shell.h" 7 #include "ash/shell.h"
8 #include "ash/system/chromeos/network/network_state_notifier.h" 8 #include "ash/system/chromeos/network/network_state_notifier.h"
9 #include "ash/system/system_notifier.h" 9 #include "ash/system/system_notifier.h"
10 #include "ash/system/tray/system_tray_delegate.h" 10 #include "ash/system/tray/system_tray_delegate.h"
11 #include "ash/system/tray/system_tray_notifier.h" 11 #include "ash/system/tray/system_tray_notifier.h"
12 #include "base/bind.h" 12 #include "base/bind.h"
13 #include "base/memory/scoped_ptr.h" 13 #include "base/memory/scoped_ptr.h"
14 #include "base/strings/utf_string_conversions.h" 14 #include "base/strings/utf_string_conversions.h"
15 #include "base/values.h" 15 #include "base/values.h"
16 #include "chromeos/login/login_state.h" 16 #include "chromeos/login/login_state.h"
17 #include "chromeos/network/device_state.h" 17 #include "chromeos/network/device_state.h"
18 #include "chromeos/network/network_activation_handler.h" 18 #include "chromeos/network/network_activation_handler.h"
19 #include "chromeos/network/network_configuration_handler.h" 19 #include "chromeos/network/network_configuration_handler.h"
20 #include "chromeos/network/network_connection_handler.h" 20 #include "chromeos/network/network_connection_handler.h"
21 #include "chromeos/network/network_event_log.h" 21 #include "chromeos/network/network_event_log.h"
22 #include "chromeos/network/network_handler_callbacks.h" 22 #include "chromeos/network/network_handler_callbacks.h"
23 #include "chromeos/network/network_profile.h" 23 #include "chromeos/network/network_profile.h"
24 #include "chromeos/network/network_profile_handler.h" 24 #include "chromeos/network/network_profile_handler.h"
25 #include "chromeos/network/network_state.h" 25 #include "chromeos/network/network_state.h"
26 #include "chromeos/network/network_state_handler.h" 26 #include "chromeos/network/network_state_handler.h"
27 #include "chromeos/network/shill_property_util.h"
27 #include "grit/ash_resources.h" 28 #include "grit/ash_resources.h"
28 #include "grit/ash_strings.h" 29 #include "grit/ash_strings.h"
29 #include "third_party/cros_system_api/dbus/service_constants.h" 30 #include "third_party/cros_system_api/dbus/service_constants.h"
30 #include "ui/base/l10n/l10n_util.h" 31 #include "ui/base/l10n/l10n_util.h"
31 #include "ui/base/resource/resource_bundle.h" 32 #include "ui/base/resource/resource_bundle.h"
32 #include "ui/message_center/message_center.h" 33 #include "ui/message_center/message_center.h"
33 #include "ui/message_center/notification.h" 34 #include "ui/message_center/notification.h"
34 35
35 using chromeos::DeviceState; 36 using chromeos::DeviceState;
36 using chromeos::NetworkConfigurationHandler; 37 using chromeos::NetworkConfigurationHandler;
37 using chromeos::NetworkConnectionHandler; 38 using chromeos::NetworkConnectionHandler;
38 using chromeos::NetworkHandler; 39 using chromeos::NetworkHandler;
39 using chromeos::NetworkProfile; 40 using chromeos::NetworkProfile;
40 using chromeos::NetworkProfileHandler; 41 using chromeos::NetworkProfileHandler;
41 using chromeos::NetworkState; 42 using chromeos::NetworkState;
42 using chromeos::NetworkStateHandler; 43 using chromeos::NetworkStateHandler;
44 using chromeos::NetworkTypePattern;
43 45
44 namespace ash { 46 namespace ash {
45 47
46 namespace { 48 namespace {
47 49
48 // TODO(stevenjb): This should be in service_constants.h 50 // TODO(stevenjb): This should be in service_constants.h
49 const char kErrorInProgress[] = "org.chromium.flimflam.Error.InProgress"; 51 const char kErrorInProgress[] = "org.chromium.flimflam.Error.InProgress";
50 52
51 // Returns true for carriers that can be activated through Shill instead of 53 // Returns true for carriers that can be activated through Shill instead of
52 // through a WebUI dialog. 54 // through a WebUI dialog.
(...skipping 221 matching lines...) Expand 10 before | Expand all | Expand 10 after
274 // If the network is in an error state, show the configuration UI directly 276 // If the network is in an error state, show the configuration UI directly
275 // to avoid a spurious notification. 277 // to avoid a spurious notification.
276 ash::Shell::GetInstance()->system_tray_delegate()->ConfigureNetwork( 278 ash::Shell::GetInstance()->system_tray_delegate()->ConfigureNetwork(
277 service_path); 279 service_path);
278 return; 280 return;
279 } 281 }
280 const bool check_error_state = true; 282 const bool check_error_state = true;
281 CallConnectToNetwork(service_path, check_error_state, owning_window); 283 CallConnectToNetwork(service_path, check_error_state, owning_window);
282 } 284 }
283 285
284 void SetTechnologyEnabled(const std::string& technology, bool enabled_state) { 286 void SetTechnologyEnabled(const NetworkTypePattern& technology,
287 bool enabled_state) {
285 std::string log_string = 288 std::string log_string =
286 base::StringPrintf("technology %s, target state: %s", 289 base::StringPrintf("technology %s, target state: %s",
287 technology.c_str(), 290 technology.ToDebugString().c_str(),
288 (enabled_state ? "ENABLED" : "DISABLED")); 291 (enabled_state ? "ENABLED" : "DISABLED"));
289 NET_LOG_USER("SetTechnologyEnabled", log_string); 292 NET_LOG_USER("SetTechnologyEnabled", log_string);
290 NetworkStateHandler* handler = NetworkHandler::Get()->network_state_handler(); 293 NetworkStateHandler* handler = NetworkHandler::Get()->network_state_handler();
291 bool enabled = handler->IsTechnologyEnabled(technology); 294 bool enabled = handler->IsTechnologyEnabled(technology);
292 if (enabled_state == enabled) { 295 if (enabled_state == enabled) {
293 NET_LOG_USER("Technology already in target state.", log_string); 296 NET_LOG_USER("Technology already in target state.", log_string);
294 return; 297 return;
295 } 298 }
296 if (enabled) { 299 if (enabled) {
297 // User requested to disable the technology. 300 // User requested to disable the technology.
298 handler->SetTechnologyEnabled( 301 handler->SetTechnologyEnabled(
299 technology, false, chromeos::network_handler::ErrorCallback()); 302 technology, false, chromeos::network_handler::ErrorCallback());
300 return; 303 return;
301 } 304 }
302 // If we're dealing with a mobile network, then handle SIM lock here. 305 // If we're dealing with a mobile network, then handle SIM lock here.
303 // SIM locking only applies to cellular, so the code below won't execute 306 // SIM locking only applies to cellular, so the code below won't execute
304 // if |technology| has been explicitly set to WiMAX. 307 // if |technology| has been explicitly set to WiMAX.
305 if (technology == NetworkStateHandler::kMatchTypeMobile || 308 if (technology.Matches(flimflam::kTypeCellular)) {
stevenjb 2013/09/03 16:22:43 This should be technology.Matches(NetworkTypePatte
pneubeck (no reviews) 2013/09/04 12:57:29 Done.
306 technology == flimflam::kTypeCellular) {
307 const DeviceState* mobile = handler->GetDeviceStateByType(technology); 309 const DeviceState* mobile = handler->GetDeviceStateByType(technology);
308 if (!mobile) { 310 if (!mobile) {
309 NET_LOG_ERROR("SetTechnologyEnabled with no device", log_string); 311 NET_LOG_ERROR("SetTechnologyEnabled with no device", log_string);
310 return; 312 return;
311 } 313 }
312 // The following only applies to cellular. 314 // The following only applies to cellular.
313 if (mobile->type() == flimflam::kTypeCellular) { 315 if (mobile->type() == flimflam::kTypeCellular) {
314 if (mobile->IsSimAbsent()) { 316 if (mobile->IsSimAbsent()) {
315 // If this is true, then we have a cellular device with no SIM inserted. 317 // If this is true, then we have a cellular device with no SIM inserted.
316 // TODO(armansito): Chrome should display a notification here, prompting 318 // TODO(armansito): Chrome should display a notification here, prompting
(...skipping 186 matching lines...) Expand 10 before | Expand all | Expand 10 after
503 505
504 void ShowNetworkSettings(const std::string& service_path) { 506 void ShowNetworkSettings(const std::string& service_path) {
505 if (!ash::Shell::HasInstance()) 507 if (!ash::Shell::HasInstance())
506 return; 508 return;
507 ash::Shell::GetInstance()->system_tray_delegate()->ShowNetworkSettings( 509 ash::Shell::GetInstance()->system_tray_delegate()->ShowNetworkSettings(
508 service_path); 510 service_path);
509 } 511 }
510 512
511 } // network_connect 513 } // network_connect
512 } // ash 514 } // ash
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698