Chromium Code Reviews| Index: chrome/browser/chromeos/cros/network_library.cc |
| diff --git a/chrome/browser/chromeos/cros/network_library.cc b/chrome/browser/chromeos/cros/network_library.cc |
| index 14abf48473bfd2cfdabcefc90800073a5cca682d..e770311bf6eccbde8b371d0630786daaed753079 100644 |
| --- a/chrome/browser/chromeos/cros/network_library.cc |
| +++ b/chrome/browser/chromeos/cros/network_library.cc |
| @@ -28,11 +28,11 @@ |
| #include "base/utf_string_conversion_utils.h" |
| #include "base/utf_string_conversions.h" |
| #include "base/values.h" |
| -#include "chrome/browser/chromeos/cros_settings.h" |
| #include "chrome/browser/chromeos/cros/cros_library.h" |
| #include "chrome/browser/chromeos/cros/native_network_constants.h" |
| #include "chrome/browser/chromeos/cros/native_network_parser.h" |
| #include "chrome/browser/chromeos/cros/onc_network_parser.h" |
| +#include "chrome/browser/chromeos/cros_settings.h" |
| #include "chrome/browser/chromeos/network_login_observer.h" |
| #include "chrome/common/time_format.h" |
| #include "content/public/browser/browser_thread.h" |
| @@ -342,6 +342,55 @@ void DumpDictionaryValue(const char* desc, const base::DictionaryValue* dict) { |
| // UI data keys. |
| const char kUIDataKeyONCSource[] = "onc_source"; |
| +const char kUIDataKeyProperties[] = "properties"; |
| +const char kUIDataKeyPropertiesController[] = "controller"; |
| +const char kUIDataKeyPropertiesControllerPolicy[] = "policy"; |
| +const char kUIDataKeyPropertiesControllerUser[] = "user"; |
| +const char kUIDataKeyPropertiesDefaultValue[] = "default_value"; |
| + |
| +const char kUIDataPropertyAutoConnect[] = "auto_connect"; |
| +const char kUIDataPropertyPreferred[] = "preferred"; |
| + |
| +//////////////////////////////////////////////////////////////////////////////// |
| +// NetworkPropertyUIData |
| + |
| +NetworkPropertyUIData::NetworkPropertyUIData() |
| + : controller_(CONTROLLER_USER) {} |
| + |
| +void NetworkPropertyUIData::UpdateFromNetwork(const Network* network, |
| + const char* property_key) { |
| + // Initialize to defaults. |
|
stevenjb
2011/11/29 07:23:19
This comment confused me, since setting controller
Mattias Nissler (ping if slow)
2011/11/29 14:48:50
You are right. I clarified the comment.
|
| + controller_ = |
| + network->IsManagedByPolicy() ? CONTROLLER_POLICY : CONTROLLER_USER; |
| + default_value_.reset(); |
| + |
| + if (!property_key) |
| + return; |
| + |
| + const DictionaryValue* ui_data = network->ui_data(); |
| + if (!ui_data) |
| + return; |
| + |
| + base::DictionaryValue* property_map = NULL; |
| + if (!ui_data->GetDictionary(kUIDataKeyProperties, &property_map)) |
| + return; |
| + |
| + base::DictionaryValue* property = NULL; |
| + if (!property_map->GetDictionary(property_key, &property)) |
| + return; |
| + |
| + std::string controller; |
| + if (property->GetString(kUIDataKeyPropertiesController, &controller)) { |
| + if (controller == kUIDataKeyPropertiesControllerPolicy) |
| + controller_ = CONTROLLER_POLICY; |
| + else if (controller == kUIDataKeyPropertiesControllerUser) |
| + controller_ = CONTROLLER_USER; |
| + } |
| + |
| + base::Value* default_value = NULL; |
| + property->Get(kUIDataKeyPropertiesDefaultValue, &default_value); |
| + default_value_.reset(default_value); |
| +} |
| //////////////////////////////////////////////////////////////////////////////// |
| // FoundCellularNetwork |
| @@ -464,6 +513,29 @@ bool Network::RequiresUserProfile() const { |
| void Network::CopyCredentialsFromRemembered(Network* remembered) { |
| } |
| +bool Network::IsManagedByPolicy() const { |
| + int source_value = 0; |
| + if (ui_data()->GetInteger(chromeos::kUIDataKeyONCSource, &source_value)) { |
| + chromeos::ONCSource source = static_cast<chromeos::ONCSource>(source_value); |
| + return source == chromeos::ONC_SOURCE_DEVICE_POLICY || |
| + source == chromeos::ONC_SOURCE_USER_POLICY; |
| + } |
| + |
| + return false; |
| +} |
| + |
| +void Network::GetUIDataForPreferred(NetworkPropertyUIData* ui_data) const { |
| + ui_data->UpdateFromNetwork(this, kUIDataPropertyPreferred); |
| +} |
| + |
| +void Network::GetUIDataForAutoConnect(NetworkPropertyUIData* ui_data) const { |
| + ui_data->UpdateFromNetwork(this, kUIDataPropertyAutoConnect); |
| +} |
| + |
| +void Network::GetUIDataForIPConfig(NetworkPropertyUIData* ui_data) const { |
| + ui_data->UpdateFromNetwork(this, NULL); |
| +} |
| + |
| void Network::SetValueProperty(const char* prop, Value* value) { |
| DCHECK(prop); |
| DCHECK(value); |
| @@ -4879,6 +4951,26 @@ void NetworkLibraryImplStub::Init() { |
| cellular->imsi_ = "123456789012345"; |
| device_map_["cellular"] = cellular; |
| + CellularApn apn; |
| + apn.apn = "apn"; |
| + apn.network_id = "network_id"; |
| + apn.username = "username"; |
| + apn.password = "password"; |
| + apn.name = "name"; |
| + apn.localized_name = "localized_name"; |
| + apn.language = "language"; |
| + |
| + CellularApnList apn_list; |
| + apn_list.push_back(apn); |
| + |
| + NetworkDevice* cellular_gsm = new NetworkDevice("cellular_gsm"); |
| + cellular_gsm->type_ = TYPE_CELLULAR; |
| + cellular_gsm->set_technology_family(TECHNOLOGY_FAMILY_GSM); |
| + cellular_gsm->imsi_ = "123456789012345"; |
| + cellular_gsm->set_sim_pin_required(SIM_PIN_REQUIRED); |
| + cellular_gsm->set_provider_apn_list(apn_list); |
| + device_map_["cellular_gsm"] = cellular_gsm; |
| + |
| // Profiles |
| AddProfile("default", PROFILE_SHARED); |
| AddProfile("user", PROFILE_USER); |
| @@ -4938,8 +5030,13 @@ void NetworkLibraryImplStub::Init() { |
| wifi6->set_strength(20); |
| AddStubNetwork(wifi6, PROFILE_NONE); |
| + WifiNetwork* wifi7 = new WifiNetwork("wifi7"); |
| + wifi7->set_name("Fake Wifi7 (policy-managed)"); |
| + wifi7->ui_data()->SetInteger("onc_source", ONC_SOURCE_DEVICE_POLICY); |
| + AddStubNetwork(wifi7, PROFILE_USER); |
| + |
| CellularNetwork* cellular1 = new CellularNetwork("cellular1"); |
| - cellular1->set_name("Fake Cellular1"); |
| + cellular1->set_name("Fake Cellular 1"); |
| cellular1->set_strength(100); |
| cellular1->set_connected(true); |
| cellular1->set_activation_state(ACTIVATION_STATE_ACTIVATED); |
| @@ -4949,13 +5046,29 @@ void NetworkLibraryImplStub::Init() { |
| AddStubNetwork(cellular1, PROFILE_NONE); |
| CellularNetwork* cellular2 = new CellularNetwork("cellular2"); |
| - cellular2->set_name("Fake Cellular2"); |
| + cellular2->set_name("Fake Cellular 2"); |
| cellular2->set_strength(50); |
| cellular2->set_activation_state(ACTIVATION_STATE_NOT_ACTIVATED); |
| cellular2->set_network_technology(NETWORK_TECHNOLOGY_UMTS); |
| cellular2->set_roaming_state(ROAMING_STATE_ROAMING); |
| AddStubNetwork(cellular2, PROFILE_NONE); |
| + CellularNetwork* cellular3 = new CellularNetwork("cellular3"); |
| + cellular3->set_name("Fake Cellular 3 (policy-managed)"); |
| + cellular3->set_device_path(cellular->device_path()); |
| + cellular3->set_activation_state(ACTIVATION_STATE_ACTIVATED); |
| + cellular3->set_network_technology(NETWORK_TECHNOLOGY_EVDO); |
| + cellular3->ui_data()->SetInteger("onc_source", ONC_SOURCE_USER_POLICY); |
| + AddStubNetwork(cellular3, PROFILE_NONE); |
| + |
| + CellularNetwork* cellular4 = new CellularNetwork("cellular4"); |
| + cellular4->set_name("Fake Cellular 4 (policy-managed)"); |
| + cellular4->set_device_path(cellular_gsm->device_path()); |
| + cellular4->set_activation_state(ACTIVATION_STATE_ACTIVATED); |
| + cellular4->set_network_technology(NETWORK_TECHNOLOGY_GSM); |
| + cellular4->ui_data()->SetInteger("onc_source", ONC_SOURCE_USER_POLICY); |
| + AddStubNetwork(cellular4, PROFILE_NONE); |
| + |
| CellularDataPlan* base_plan = new CellularDataPlan(); |
| base_plan->plan_name = "Base plan"; |
| base_plan->plan_type = CELLULAR_DATA_PLAN_METERED_BASE; |
| @@ -4993,6 +5106,13 @@ void NetworkLibraryImplStub::Init() { |
| vpn3->set_provider_type(PROVIDER_TYPE_OPEN_VPN); |
| AddStubNetwork(vpn3, PROFILE_USER); |
| + VirtualNetwork* vpn4 = new VirtualNetwork("vpn4"); |
| + vpn4->set_name("Fake VPN4 (policy-managed)"); |
| + vpn4->set_server_hostname("vpn4server.fake.com"); |
| + vpn4->set_provider_type(PROVIDER_TYPE_OPEN_VPN); |
| + vpn4->ui_data()->SetInteger("onc_source", ONC_SOURCE_DEVICE_POLICY); |
| + AddStubNetwork(vpn4, PROFILE_USER); |
|
stevenjb
2011/11/29 07:23:19
Make sure that these changes don't break the unit
Mattias Nissler (ping if slow)
2011/11/29 14:48:50
Done.
|
| + |
| wifi_scanning_ = false; |
| offline_mode_ = false; |