| Index: chrome/browser/ui/webui/options/chromeos/internet_options_handler.cc
|
| diff --git a/chrome/browser/ui/webui/options/chromeos/internet_options_handler.cc b/chrome/browser/ui/webui/options/chromeos/internet_options_handler.cc
|
| index 70e4e890048b5fb86320deaf7ce8c8b1a7051b08..60aa1b307b5cd090ee673ed78de69a3735219dbb 100644
|
| --- a/chrome/browser/ui/webui/options/chromeos/internet_options_handler.cc
|
| +++ b/chrome/browser/ui/webui/options/chromeos/internet_options_handler.cc
|
| @@ -550,15 +550,6 @@ void Activate(std::string service_path) {
|
| cellular->StartActivation();
|
| }
|
|
|
| -// Check if the current cellular device can be activated by directly calling
|
| -// it's activate function instead of going through the activation process.
|
| -// Note: Currently Sprint is the only carrier that uses this.
|
| -bool UseDirectActivation() {
|
| - const chromeos::NetworkDevice* device =
|
| - chromeos::CrosLibrary::Get()->GetNetworkLibrary()->FindCellularDevice();
|
| - return device && (device->carrier() == shill::kCarrierSprint);
|
| -}
|
| -
|
| // Given a list of supported carrier's by the device, return the index of
|
| // the carrier the device is currently using.
|
| int FindCurrentCarrierIndex(const base::ListValue* carriers,
|
| @@ -961,10 +952,13 @@ void InternetOptionsHandler::CarrierStatusCallback(
|
| const std::string& service_path,
|
| chromeos::NetworkMethodErrorType error,
|
| const std::string& error_message) {
|
| - if ((error == chromeos::NETWORK_METHOD_ERROR_NONE) &&
|
| - UseDirectActivation()) {
|
| - Activate(service_path);
|
| - UpdateConnectionData(cros_->FindNetworkByPath(service_path));
|
| + if ((error == chromeos::NETWORK_METHOD_ERROR_NONE)) {
|
| + chromeos::CellularNetwork* network =
|
| + cros_->FindCellularNetworkByPath(service_path);
|
| + if (network && network->UsesDirectActivation()) {
|
| + Activate(service_path);
|
| + UpdateConnectionData(network);
|
| + }
|
| }
|
|
|
| UpdateCarrier();
|
| @@ -1654,16 +1648,18 @@ void InternetOptionsHandler::NetworkCommandCallback(const ListValue* args) {
|
| } else if (command == kTagDisconnect && type != chromeos::TYPE_ETHERNET) {
|
| cros_->DisconnectFromNetwork(network);
|
| } else if (command == kTagActivate && type == chromeos::TYPE_CELLULAR) {
|
| - if (!UseDirectActivation()) {
|
| + chromeos::CellularNetwork* cellular =
|
| + static_cast<chromeos::CellularNetwork*>(network);
|
| + if (!cellular->UsesDirectActivation()) {
|
| ash::Shell::GetInstance()->delegate()->OpenMobileSetup(
|
| - network->service_path());
|
| + cellular->service_path());
|
| } else {
|
| Activate(service_path);
|
| // Update network properties after we start activation. The Activate
|
| // call is a blocking call, which blocks on finishing the "start" of
|
| // the activation, hence when we query for network properties after
|
| // this call is done, we will have the "activating" activation state.
|
| - UpdateConnectionData(network);
|
| + UpdateConnectionData(cellular);
|
| }
|
| } else {
|
| VLOG(1) << "Unknown command: " << command;
|
|
|