| Index: extensions/browser/api/networking_private/networking_private_chromeos.cc
|
| diff --git a/extensions/browser/api/networking_private/networking_private_chromeos.cc b/extensions/browser/api/networking_private/networking_private_chromeos.cc
|
| index b580cdae8b3d9e7e339aae226efff817cd516426..48f13a2ad0f6583d670c19746e57b099d3d785b7 100644
|
| --- a/extensions/browser/api/networking_private/networking_private_chromeos.cc
|
| +++ b/extensions/browser/api/networking_private/networking_private_chromeos.cc
|
| @@ -36,7 +36,6 @@
|
| #include "extensions/common/permissions/permissions_data.h"
|
| #include "third_party/cros_system_api/dbus/service_constants.h"
|
|
|
| -using chromeos::DeviceState;
|
| using chromeos::NetworkHandler;
|
| using chromeos::NetworkStateHandler;
|
| using chromeos::NetworkTypePattern;
|
| @@ -93,7 +92,7 @@ bool GetPrimaryUserIdHash(content::BrowserContext* browser_context,
|
|
|
| void AppendDeviceState(
|
| const std::string& type,
|
| - const DeviceState* device,
|
| + const chromeos::DeviceState* device,
|
| NetworkingPrivateDelegate::DeviceStateList* device_state_list) {
|
| DCHECK(!type.empty());
|
| NetworkTypePattern pattern =
|
| @@ -199,6 +198,22 @@ base::DictionaryValue* GetThirdPartyVPNDictionary(
|
| return third_party_vpn;
|
| }
|
|
|
| +const chromeos::DeviceState* GetCellularDeviceState(const std::string& guid) {
|
| + const chromeos::NetworkState* network_state = nullptr;
|
| + if (!guid.empty())
|
| + network_state = GetStateHandler()->GetNetworkStateFromGuid(guid);
|
| + const chromeos::DeviceState* device_state = nullptr;
|
| + if (network_state) {
|
| + device_state =
|
| + GetStateHandler()->GetDeviceState(network_state->device_path());
|
| + }
|
| + if (!device_state) {
|
| + device_state =
|
| + GetStateHandler()->GetDeviceStateByType(NetworkTypePattern::Cellular());
|
| + }
|
| + return device_state;
|
| +}
|
| +
|
| } // namespace
|
|
|
| ////////////////////////////////////////////////////////////////////////////////
|
| @@ -484,14 +499,7 @@ void NetworkingPrivateChromeOS::UnlockCellularSim(
|
| const std::string& puk,
|
| const VoidCallback& success_callback,
|
| const FailureCallback& failure_callback) {
|
| - const chromeos::NetworkState* network_state =
|
| - GetStateHandler()->GetNetworkStateFromGuid(guid);
|
| - if (!network_state) {
|
| - failure_callback.Run(networking_private::kErrorNetworkUnavailable);
|
| - return;
|
| - }
|
| - const chromeos::DeviceState* device_state =
|
| - GetStateHandler()->GetDeviceState(network_state->device_path());
|
| + const chromeos::DeviceState* device_state = GetCellularDeviceState(guid);
|
| if (!device_state) {
|
| failure_callback.Run(networking_private::kErrorNetworkUnavailable);
|
| return;
|
| @@ -522,14 +530,7 @@ void NetworkingPrivateChromeOS::SetCellularSimState(
|
| const std::string& new_pin,
|
| const VoidCallback& success_callback,
|
| const FailureCallback& failure_callback) {
|
| - const chromeos::NetworkState* network_state =
|
| - GetStateHandler()->GetNetworkStateFromGuid(guid);
|
| - if (!network_state) {
|
| - failure_callback.Run(networking_private::kErrorNetworkUnavailable);
|
| - return;
|
| - }
|
| - const chromeos::DeviceState* device_state =
|
| - GetStateHandler()->GetDeviceState(network_state->device_path());
|
| + const chromeos::DeviceState* device_state = GetCellularDeviceState(guid);
|
| if (!device_state) {
|
| failure_callback.Run(networking_private::kErrorNetworkUnavailable);
|
| return;
|
| @@ -574,7 +575,7 @@ NetworkingPrivateChromeOS::GetDeviceStateList() {
|
| NetworkHandler::Get()->network_state_handler()->GetDeviceList(&devices);
|
|
|
| std::unique_ptr<DeviceStateList> device_state_list(new DeviceStateList);
|
| - for (const DeviceState* device : devices) {
|
| + for (const chromeos::DeviceState* device : devices) {
|
| std::string onc_type =
|
| chromeos::network_util::TranslateShillTypeToONC(device->type());
|
| AppendDeviceState(onc_type, device, device_state_list.get());
|
|
|