Index: chrome/browser/chromeos/status/network_menu.cc |
diff --git a/chrome/browser/chromeos/status/network_menu.cc b/chrome/browser/chromeos/status/network_menu.cc |
index 0ad5bc8ad999dee6bd8ddf5633b5426da12635db..f98c96700c29e86aebe001947de316cccbcee143 100644 |
--- a/chrome/browser/chromeos/status/network_menu.cc |
+++ b/chrome/browser/chromeos/status/network_menu.cc |
@@ -64,11 +64,17 @@ std::string EscapeAmpersands(const std::string& input) { |
} |
// Activate a cellular network. |
-void ActivateCellular(const chromeos::CellularNetwork* cellular) { |
+void ActivateCellular(chromeos::CellularNetwork* cellular) { |
DCHECK(cellular); |
- ash::Shell::GetInstance()->delegate()->OpenMobileSetup( |
- cellular->service_path()); |
+ chromeos::NetworkLibrary* cros = |
+ chromeos::CrosLibrary::Get()->GetNetworkLibrary(); |
+ if (cros->CellularDeviceUsesDirectActivation()) { |
+ cellular->StartActivation(); |
+ } else { |
+ ash::Shell::GetInstance()->delegate()->OpenMobileSetup( |
+ cellular->service_path()); |
+ } |
} |
// Decides whether a network should be highlighted in the UI. |