summaryrefslogtreecommitdiffstats
path: root/chrome/browser/chromeos
diff options
context:
space:
mode:
Diffstat (limited to 'chrome/browser/chromeos')
-rw-r--r--chrome/browser/chromeos/cros/native_network_parser.cc8
-rw-r--r--chrome/browser/chromeos/cros/network_constants.h1
-rw-r--r--chrome/browser/chromeos/cros/network_library.cc1
-rw-r--r--chrome/browser/chromeos/cros/network_library.h6
4 files changed, 15 insertions, 1 deletions
diff --git a/chrome/browser/chromeos/cros/native_network_parser.cc b/chrome/browser/chromeos/cros/native_network_parser.cc
index 7ff915e..132474c 100644
--- a/chrome/browser/chromeos/cros/native_network_parser.cc
+++ b/chrome/browser/chromeos/cros/native_network_parser.cc
@@ -122,6 +122,7 @@ EnumMapper<PropertyIndex>::Pair property_index_table[] = {
{ flimflam::kProxyConfigProperty, PROPERTY_INDEX_PROXY_CONFIG },
{ flimflam::kRoamingStateProperty, PROPERTY_INDEX_ROAMING_STATE },
{ flimflam::kSIMLockStatusProperty, PROPERTY_INDEX_SIM_LOCK },
+ { shill::kSIMPresentProperty, PROPERTY_INDEX_SIM_PRESENT },
{ flimflam::kSSIDProperty, PROPERTY_INDEX_SSID },
{ flimflam::kSaveCredentialsProperty, PROPERTY_INDEX_SAVE_CREDENTIALS },
{ flimflam::kScanningProperty, PROPERTY_INDEX_SCANNING },
@@ -447,6 +448,13 @@ bool NativeNetworkDeviceParser::ParseValue(
return true;
}
break;
+ case PROPERTY_INDEX_SIM_PRESENT: {
+ bool sim_present;
+ if (!value.GetAsBoolean(&sim_present))
+ return false;
+ device->set_sim_present(sim_present);
+ return true;
+ }
case PROPERTY_INDEX_POWERED:
// we don't care about the value, just the fact that it changed
return true;
diff --git a/chrome/browser/chromeos/cros/network_constants.h b/chrome/browser/chromeos/cros/network_constants.h
index d3616b7..259408f 100644
--- a/chrome/browser/chromeos/cros/network_constants.h
+++ b/chrome/browser/chromeos/cros/network_constants.h
@@ -170,6 +170,7 @@ enum PropertyIndex {
PROPERTY_INDEX_SERVING_OPERATOR,
PROPERTY_INDEX_SIGNAL_STRENGTH,
PROPERTY_INDEX_SIM_LOCK,
+ PROPERTY_INDEX_SIM_PRESENT,
PROPERTY_INDEX_SSID,
PROPERTY_INDEX_STATE,
PROPERTY_INDEX_SUPPORT_NETWORK_SCAN,
diff --git a/chrome/browser/chromeos/cros/network_library.cc b/chrome/browser/chromeos/cros/network_library.cc
index 307bc2e..ba81959 100644
--- a/chrome/browser/chromeos/cros/network_library.cc
+++ b/chrome/browser/chromeos/cros/network_library.cc
@@ -183,6 +183,7 @@ NetworkDevice::NetworkDevice(const std::string& device_path)
sim_lock_state_(SIM_UNKNOWN),
sim_retries_left_(kDefaultSimUnlockRetriesCount),
sim_pin_required_(SIM_PIN_REQUIRE_UNKNOWN),
+ sim_present_(false),
prl_version_(0),
data_roaming_allowed_(false),
support_network_scan_(false),
diff --git a/chrome/browser/chromeos/cros/network_library.h b/chrome/browser/chromeos/cros/network_library.h
index 2677974..119c146 100644
--- a/chrome/browser/chromeos/cros/network_library.h
+++ b/chrome/browser/chromeos/cros/network_library.h
@@ -109,7 +109,7 @@ class NetworkDevice {
// returns false: GSM modem and SIM card is present or CDMA modem.
bool is_sim_absent() const {
return technology_family() == TECHNOLOGY_FAMILY_GSM &&
- !is_sim_locked() && imsi().empty();
+ !is_sim_locked() && !sim_present_;
}
const int sim_retries_left() const { return sim_retries_left_; }
SimPinRequire sim_pin_required() const { return sim_pin_required_; }
@@ -217,6 +217,9 @@ class NetworkDevice {
void set_sim_pin_required(SimPinRequire sim_pin_required) {
sim_pin_required_ = sim_pin_required;
}
+ void set_sim_present(bool sim_present) {
+ sim_present_ = sim_present;
+ }
void set_firmware_revision(const std::string& firmware_revision) {
firmware_revision_ = firmware_revision;
}
@@ -269,6 +272,7 @@ class NetworkDevice {
SimLockState sim_lock_state_;
int sim_retries_left_;
SimPinRequire sim_pin_required_;
+ bool sim_present_;
std::string firmware_revision_;
std::string hardware_revision_;
int prl_version_;