| Index: chrome/browser/chromeos/dom_ui/internet_options_handler.cc
|
| ===================================================================
|
| --- chrome/browser/chromeos/dom_ui/internet_options_handler.cc (revision 64441)
|
| +++ chrome/browser/chromeos/dom_ui/internet_options_handler.cc (working copy)
|
| @@ -357,8 +357,10 @@
|
| chromeos::NetworkLibrary* obj) {
|
| if (!dom_ui_)
|
| return;
|
| - const chromeos::CellularNetwork cellular = obj->cellular_network();
|
| - const chromeos::CellularDataPlanList& plans = cellular.GetDataPlans();
|
| + chromeos::CellularNetwork* cellular = obj->cellular_network();
|
| + if (!cellular)
|
| + return;
|
| + const chromeos::CellularDataPlanList& plans = cellular->GetDataPlans();
|
| DictionaryValue connection_plans;
|
| ListValue* plan_list = new ListValue();
|
| for (chromeos::CellularDataPlanList::const_iterator iter = plans.begin();
|
| @@ -366,7 +368,7 @@
|
| ++iter) {
|
| plan_list->Append(CellularDataPlanToDictionary(*iter));
|
| }
|
| - connection_plans.SetString("servicePath", cellular.service_path());
|
| + connection_plans.SetString("servicePath", cellular->service_path());
|
| connection_plans.Set("plans", plan_list);
|
| dom_ui_->CallJavascriptFunction(
|
| L"options.InternetOptions.updateCellularPlans", connection_plans);
|
| @@ -478,52 +480,51 @@
|
| }
|
| chromeos::NetworkLibrary* cros =
|
| chromeos::CrosLibrary::Get()->GetNetworkLibrary();
|
| - chromeos::WifiNetwork network;
|
| + chromeos::WifiNetwork* network = cros->FindWifiNetworkByPath(service_path);
|
| + if (!network)
|
| + return;
|
| + bool changed = false;
|
| + if (network->encrypted()) {
|
| + std::string password;
|
|
|
| - if (cros->FindWifiNetworkByPath(service_path, &network)) {
|
| - bool changed = false;
|
| - if (network.encrypted()) {
|
| - std::string password;
|
| + if (args->GetSize() != 5 ||
|
| + !args->GetString(4, &password)) {
|
| + NOTREACHED();
|
| + return;
|
| + }
|
| + if (password != network->passphrase()) {
|
| + network->set_passphrase(password);
|
| + changed = true;
|
| + }
|
|
|
| - if (args->GetSize() != 5 ||
|
| - !args->GetString(4, &password)) {
|
| + if (network->encryption() == chromeos::SECURITY_8021X) {
|
| + std::string ident;
|
| + std::string certpath;
|
| +
|
| + if (!args->GetString(2, &ident) ||
|
| + !args->GetString(3, &certpath)) {
|
| NOTREACHED();
|
| return;
|
| }
|
| - if (password != network.passphrase()) {
|
| - network.set_passphrase(password);
|
| + if (ident != network->identity()) {
|
| + network->set_identity(ident);
|
| changed = true;
|
| }
|
| -
|
| - if (network.encryption() == chromeos::SECURITY_8021X) {
|
| - std::string ident;
|
| - std::string certpath;
|
| -
|
| - if (!args->GetString(2, &ident) ||
|
| - !args->GetString(3, &certpath)) {
|
| - NOTREACHED();
|
| - return;
|
| - }
|
| - if (ident != network.identity()) {
|
| - network.set_identity(ident);
|
| - changed = true;
|
| - }
|
| - if (certpath != network.cert_path()) {
|
| - network.set_cert_path(certpath);
|
| - changed = true;
|
| - }
|
| + if (certpath != network->cert_path()) {
|
| + network->set_cert_path(certpath);
|
| + changed = true;
|
| }
|
| }
|
| + }
|
|
|
| - bool auto_connect = remember == "true";
|
| - if (auto_connect != network.auto_connect()) {
|
| - network.set_auto_connect(auto_connect);
|
| - changed = true;
|
| - }
|
| -
|
| - if (changed)
|
| - cros->SaveWifiNetwork(network);
|
| + bool auto_connect = remember == "true";
|
| + if (auto_connect != network->auto_connect()) {
|
| + network->set_auto_connect(auto_connect);
|
| + changed = true;
|
| }
|
| +
|
| + if (changed)
|
| + cros->SaveWifiNetwork(network);
|
| }
|
|
|
| // Parse 'path' to determine if the certificate is stored in a pkcs#11 device.
|
| @@ -544,12 +545,13 @@
|
| }
|
|
|
| void InternetOptionsHandler::PopulateDictionaryDetails(
|
| - const chromeos::Network& net, chromeos::NetworkLibrary* cros) {
|
| + const chromeos::Network* net, chromeos::NetworkLibrary* cros) {
|
| + DCHECK(net);
|
| DictionaryValue dictionary;
|
| - chromeos::ConnectionType type = net.type();
|
| + chromeos::ConnectionType type = net->type();
|
| std::string hardware_address;
|
| chromeos::NetworkIPConfigVector ipconfigs =
|
| - cros->GetIPConfigs(net.device_path(), &hardware_address);
|
| + cros->GetIPConfigs(net->device_path(), &hardware_address);
|
| scoped_ptr<ListValue> ipconfig_list(new ListValue());
|
| for (chromeos::NetworkIPConfigVector::const_iterator it = ipconfigs.begin();
|
| it != ipconfigs.end(); ++it) {
|
| @@ -563,75 +565,77 @@
|
| }
|
| dictionary.Set("ipconfigs", ipconfig_list.release());
|
| dictionary.SetInteger("type", type);
|
| - dictionary.SetString("servicePath", net.service_path());
|
| - dictionary.SetBoolean("connecting", net.connecting());
|
| - dictionary.SetBoolean("connected", net.connected());
|
| - dictionary.SetString("connectionState", net.GetStateString());
|
| + dictionary.SetString("servicePath", net->service_path());
|
| + dictionary.SetBoolean("connecting", net->connecting());
|
| + dictionary.SetBoolean("connected", net->connected());
|
| + dictionary.SetString("connectionState", net->GetStateString());
|
| if (type == chromeos::TYPE_WIFI) {
|
| - chromeos::WifiNetwork wireless;
|
| - if (!cros->FindWifiNetworkByPath(net.service_path(), &wireless)) {
|
| - LOG(WARNING) << "Cannot find network " << net.service_path();
|
| + chromeos::WifiNetwork* wireless =
|
| + cros->FindWifiNetworkByPath(net->service_path());
|
| + if (!wireless) {
|
| + LOG(WARNING) << "Cannot find network " << net->service_path();
|
| } else {
|
| - dictionary.SetString("ssid", wireless.name());
|
| - dictionary.SetBoolean("autoConnect",wireless.auto_connect());
|
| - if (wireless.encrypted()) {
|
| + dictionary.SetString("ssid", wireless->name());
|
| + dictionary.SetBoolean("autoConnect",wireless->auto_connect());
|
| + if (wireless->encrypted()) {
|
| dictionary.SetBoolean("encrypted", true);
|
| - if (wireless.encryption() == chromeos::SECURITY_8021X) {
|
| + if (wireless->encryption() == chromeos::SECURITY_8021X) {
|
| bool certificate_in_pkcs11 =
|
| - is_certificate_in_pkcs11(wireless.cert_path());
|
| + is_certificate_in_pkcs11(wireless->cert_path());
|
| if (certificate_in_pkcs11) {
|
| dictionary.SetBoolean("certInPkcs", true);
|
| } else {
|
| dictionary.SetBoolean("certInPkcs", false);
|
| }
|
| - dictionary.SetString("certPath",wireless.cert_path());
|
| - dictionary.SetString("ident",wireless.identity());
|
| + dictionary.SetString("certPath",wireless->cert_path());
|
| + dictionary.SetString("ident",wireless->identity());
|
| dictionary.SetBoolean("certNeeded", true);
|
| - dictionary.SetString("certPass",wireless.passphrase());
|
| + dictionary.SetString("certPass",wireless->passphrase());
|
| } else {
|
| dictionary.SetBoolean("certNeeded", false);
|
| - dictionary.SetString("pass", wireless.passphrase());
|
| + dictionary.SetString("pass", wireless->passphrase());
|
| }
|
| } else {
|
| dictionary.SetBoolean("encrypted", false);
|
| }
|
| }
|
| } else if (type == chromeos::TYPE_CELLULAR) {
|
| - chromeos::CellularNetwork cellular;
|
| - if (!cros->FindCellularNetworkByPath(net.service_path(), &cellular)) {
|
| - LOG(WARNING) << "Cannot find network " << net.service_path();
|
| + chromeos::CellularNetwork* cellular =
|
| + cros->FindCellularNetworkByPath(net->service_path());
|
| + if (!cellular) {
|
| + LOG(WARNING) << "Cannot find network " << net->service_path();
|
| } else {
|
| // Cellular network / connection settings.
|
| - dictionary.SetString("serviceName", cellular.service_name());
|
| + dictionary.SetString("serviceName", cellular->service_name());
|
| dictionary.SetString("networkTechnology",
|
| - cellular.GetNetworkTechnologyString());
|
| - dictionary.SetString("operatorName", cellular.operator_name());
|
| - dictionary.SetString("operatorCode", cellular.operator_code());
|
| + cellular->GetNetworkTechnologyString());
|
| + dictionary.SetString("operatorName", cellular->operator_name());
|
| + dictionary.SetString("operatorCode", cellular->operator_code());
|
| dictionary.SetString("activationState",
|
| - cellular.GetActivationStateString());
|
| + cellular->GetActivationStateString());
|
| dictionary.SetString("roamingState",
|
| - cellular.GetRoamingStateString());
|
| + cellular->GetRoamingStateString());
|
| dictionary.SetString("restrictedPool",
|
| - cellular.restricted_pool() ?
|
| + cellular->restricted_pool() ?
|
| l10n_util::GetStringUTF8(IDS_CONFIRM_MESSAGEBOX_YES_BUTTON_LABEL) :
|
| l10n_util::GetStringUTF8(IDS_CONFIRM_MESSAGEBOX_NO_BUTTON_LABEL));
|
| - dictionary.SetString("errorState", cellular.GetErrorString());
|
| + dictionary.SetString("errorState", cellular->GetErrorString());
|
| // Device settings.
|
| - dictionary.SetString("manufacturer", cellular.manufacturer());
|
| - dictionary.SetString("modelId", cellular.model_id());
|
| - dictionary.SetString("firmwareRevision", cellular.firmware_revision());
|
| - dictionary.SetString("hardwareRevision", cellular.hardware_revision());
|
| - dictionary.SetString("lastUpdate", cellular.last_update());
|
| + dictionary.SetString("manufacturer", cellular->manufacturer());
|
| + dictionary.SetString("modelId", cellular->model_id());
|
| + dictionary.SetString("firmwareRevision", cellular->firmware_revision());
|
| + dictionary.SetString("hardwareRevision", cellular->hardware_revision());
|
| + dictionary.SetString("lastUpdate", cellular->last_update());
|
| dictionary.SetString("prlVersion", StringPrintf("%u",
|
| - cellular.prl_version()));
|
| - dictionary.SetString("meid", cellular.meid());
|
| - dictionary.SetString("imei", cellular.imei());
|
| - dictionary.SetString("mdn", cellular.mdn());
|
| - dictionary.SetString("imsi", cellular.imsi());
|
| - dictionary.SetString("esn", cellular.esn());
|
| - dictionary.SetString("min", cellular.min());
|
| + cellular->prl_version()));
|
| + dictionary.SetString("meid", cellular->meid());
|
| + dictionary.SetString("imei", cellular->imei());
|
| + dictionary.SetString("mdn", cellular->mdn());
|
| + dictionary.SetString("imsi", cellular->imsi());
|
| + dictionary.SetString("esn", cellular->esn());
|
| + dictionary.SetString("min", cellular->min());
|
|
|
| - dictionary.SetBoolean("gsm", cellular.is_gsm());
|
| + dictionary.SetBoolean("gsm", cellular->is_gsm());
|
| }
|
| }
|
| if (!hardware_address.empty()) {
|
| @@ -644,16 +648,16 @@
|
| }
|
|
|
| void InternetOptionsHandler::PopupWirelessPassword(
|
| - const chromeos::WifiNetwork& network) {
|
| + const chromeos::WifiNetwork* network) {
|
| DictionaryValue dictionary;
|
| - dictionary.SetString("servicePath",network.service_path());
|
| - if (network.encryption() == chromeos::SECURITY_8021X) {
|
| + dictionary.SetString("servicePath",network->service_path());
|
| + if (network->encryption() == chromeos::SECURITY_8021X) {
|
| dictionary.SetBoolean("certNeeded", true);
|
| - dictionary.SetString("ident", network.identity());
|
| - dictionary.SetString("cert", network.cert_path());
|
| + dictionary.SetString("ident", network->identity());
|
| + dictionary.SetString("cert", network->cert_path());
|
| } else {
|
| dictionary.SetBoolean("certNeeded", false);
|
| - dictionary.SetString("pass", network.passphrase());
|
| + dictionary.SetString("pass", network->passphrase());
|
| }
|
| dom_ui_->CallJavascriptFunction(
|
| L"options.InternetOptions.showPasswordEntry", dictionary);
|
| @@ -673,9 +677,8 @@
|
|
|
| chromeos::NetworkLibrary* cros =
|
| chromeos::CrosLibrary::Get()->GetNetworkLibrary();
|
| - chromeos::WifiNetwork network;
|
| -
|
| - if (cros->FindWifiNetworkByPath(service_path, &network)) {
|
| + chromeos::WifiNetwork* network = cros->FindWifiNetworkByPath(service_path);
|
| + if (network) {
|
| cros->ConnectToWifiNetwork(
|
| network, password, std::string(), std::string());
|
| } else {
|
| @@ -702,9 +705,9 @@
|
| }
|
| chromeos::NetworkLibrary* cros =
|
| chromeos::CrosLibrary::Get()->GetNetworkLibrary();
|
| - chromeos::WifiNetwork network;
|
| -
|
| - if (cros->FindWifiNetworkByPath(service_path, &network)) {
|
| + chromeos::WifiNetwork* network =
|
| + cros->FindWifiNetworkByPath(service_path);
|
| + if (network) {
|
| cros->ConnectToWifiNetwork(
|
| network, password, identity, certpath);
|
| } else {
|
| @@ -747,17 +750,17 @@
|
| chromeos::CrosLibrary::Get()->GetNetworkLibrary();
|
|
|
| if (type == chromeos::TYPE_ETHERNET) {
|
| - const chromeos::EthernetNetwork& ether = cros->ethernet_network();
|
| + chromeos::EthernetNetwork* ether = cros->ethernet_network();
|
| PopulateDictionaryDetails(ether, cros);
|
| } else if (type == chromeos::TYPE_WIFI) {
|
| - chromeos::WifiNetwork network;
|
| + chromeos::WifiNetwork* network;
|
| if (command == "forget") {
|
| - cros->ForgetWirelessNetwork(service_path);
|
| - } else if (cros->FindWifiNetworkByPath(service_path, &network)) {
|
| + cros->ForgetWifiNetwork(service_path);
|
| + } else if ((network = cros->FindWifiNetworkByPath(service_path))) {
|
| if (command == "connect") {
|
| // Connect to wifi here. Open password page if appropriate.
|
| - if (network.encrypted() && !network.auto_connect()) {
|
| - if (network.encryption() == chromeos::SECURITY_8021X) {
|
| + if (network->encrypted() && !network->auto_connect()) {
|
| + if (network->encryption() == chromeos::SECURITY_8021X) {
|
| PopulateDictionaryDetails(network, cros);
|
| } else {
|
| PopupWirelessPassword(network);
|
| @@ -773,8 +776,9 @@
|
| }
|
| }
|
| } else if (type == chromeos::TYPE_CELLULAR) {
|
| - chromeos::CellularNetwork cellular;
|
| - if (cros->FindCellularNetworkByPath(service_path, &cellular)) {
|
| + chromeos::CellularNetwork* cellular =
|
| + cros->FindCellularNetworkByPath(service_path);
|
| + if (cellular) {
|
| if (command == "connect") {
|
| cros->ConnectToCellularNetwork(cellular);
|
| } else if (command == "disconnect") {
|
| @@ -802,12 +806,10 @@
|
| }
|
| chromeos::NetworkLibrary* cros =
|
| chromeos::CrosLibrary::Get()->GetNetworkLibrary();
|
| - chromeos::CellularNetwork cellular;
|
| - if (cros->FindCellularNetworkByPath(service_path, &cellular)) {
|
| + chromeos::CellularNetwork* cellular =
|
| + cros->FindCellularNetworkByPath(service_path);
|
| + if (cellular)
|
| cros->RefreshCellularDataPlans(cellular);
|
| - } else {
|
| - NOTREACHED();
|
| - }
|
| }
|
|
|
| ListValue* InternetOptionsHandler::GetNetwork(const std::string& service_path,
|
| @@ -860,23 +862,25 @@
|
|
|
| // If ethernet is not enabled, then don't add anything.
|
| if (cros->ethernet_enabled()) {
|
| - const chromeos::EthernetNetwork& ethernet_network =
|
| + chromeos::EthernetNetwork* ethernet_network =
|
| cros->ethernet_network();
|
| SkBitmap icon = *rb.GetBitmapNamed(IDR_STATUSBAR_WIRED_BLACK);
|
| - if (!ethernet_network.connecting() &&
|
| - !ethernet_network.connected()) {
|
| + if (!ethernet_network || (!ethernet_network->connecting() &&
|
| + !ethernet_network->connected())) {
|
| icon = chromeos::NetworkMenu::IconForDisplay(icon,
|
| *rb.GetBitmapNamed(IDR_STATUSBAR_NETWORK_DISCONNECTED));
|
| }
|
| - list->Append(GetNetwork(
|
| - ethernet_network.service_path(),
|
| - icon,
|
| - l10n_util::GetStringUTF8(IDS_STATUSBAR_NETWORK_DEVICE_ETHERNET),
|
| - ethernet_network.connecting(),
|
| - ethernet_network.connected(),
|
| - chromeos::TYPE_ETHERNET,
|
| - false,
|
| - chromeos::ACTIVATION_STATE_UNKNOWN));
|
| + if (ethernet_network) {
|
| + list->Append(GetNetwork(
|
| + ethernet_network->service_path(),
|
| + icon,
|
| + l10n_util::GetStringUTF8(IDS_STATUSBAR_NETWORK_DEVICE_ETHERNET),
|
| + ethernet_network->connecting(),
|
| + ethernet_network->connected(),
|
| + chromeos::TYPE_ETHERNET,
|
| + false,
|
| + chromeos::ACTIVATION_STATE_UNKNOWN));
|
| + }
|
| }
|
| return list;
|
| }
|
| @@ -891,39 +895,39 @@
|
| for (chromeos::WifiNetworkVector::const_iterator it =
|
| wifi_networks.begin(); it != wifi_networks.end(); ++it) {
|
| SkBitmap icon = chromeos::NetworkMenu::IconForNetworkStrength(
|
| - it->strength(), true);
|
| - if (it->encrypted()) {
|
| + (*it)->strength(), true);
|
| + if ((*it)->encrypted()) {
|
| icon = chromeos::NetworkMenu::IconForDisplay(icon,
|
| *rb.GetBitmapNamed(IDR_STATUSBAR_NETWORK_SECURE));
|
| }
|
| list->Append(GetNetwork(
|
| - it->service_path(),
|
| + (*it)->service_path(),
|
| icon,
|
| - it->name(),
|
| - it->connecting(),
|
| - it->connected(),
|
| + (*it)->name(),
|
| + (*it)->connecting(),
|
| + (*it)->connected(),
|
| chromeos::TYPE_WIFI,
|
| false,
|
| chromeos::ACTIVATION_STATE_UNKNOWN));
|
| }
|
|
|
| - const chromeos::CellularNetworkVector& cellular_networks =
|
| + const chromeos::CellularNetworkVector cellular_networks =
|
| cros->cellular_networks();
|
| for (chromeos::CellularNetworkVector::const_iterator it =
|
| cellular_networks.begin(); it != cellular_networks.end(); ++it) {
|
| SkBitmap icon = chromeos::NetworkMenu::IconForNetworkStrength(
|
| - it->strength(), true);
|
| + (*it)->strength(), true);
|
| SkBitmap badge = *rb.GetBitmapNamed(IDR_STATUSBAR_NETWORK_3G);
|
| icon = chromeos::NetworkMenu::IconForDisplay(icon, badge);
|
| list->Append(GetNetwork(
|
| - it->service_path(),
|
| + (*it)->service_path(),
|
| icon,
|
| - it->name(),
|
| - it->connecting(),
|
| - it->connected(),
|
| + (*it)->name(),
|
| + (*it)->connecting(),
|
| + (*it)->connected(),
|
| chromeos::TYPE_CELLULAR,
|
| false,
|
| - it->activation_state()));
|
| + (*it)->activation_state()));
|
| }
|
|
|
| // Add "Other..." if wifi is enabled.
|
| @@ -953,38 +957,19 @@
|
| for (chromeos::WifiNetworkVector::const_iterator it =
|
| wifi_networks.begin(); it != wifi_networks.end(); ++it) {
|
| SkBitmap icon = *rb.GetBitmapNamed(IDR_STATUSBAR_NETWORK_BARS0_BLACK);
|
| - if (it->encrypted()) {
|
| + if ((*it)->encrypted()) {
|
| icon = chromeos::NetworkMenu::IconForDisplay(icon,
|
| *rb.GetBitmapNamed(IDR_STATUSBAR_NETWORK_SECURE));
|
| }
|
| list->Append(GetNetwork(
|
| - it->service_path(),
|
| + (*it)->service_path(),
|
| icon,
|
| - it->name(),
|
| - it->connecting(),
|
| - it->connected(),
|
| + (*it)->name(),
|
| + (*it)->connecting(),
|
| + (*it)->connected(),
|
| chromeos::TYPE_WIFI,
|
| true,
|
| chromeos::ACTIVATION_STATE_UNKNOWN));
|
| }
|
| -
|
| - const chromeos::CellularNetworkVector& cellular_networks =
|
| - cros->remembered_cellular_networks();
|
| - for (chromeos::CellularNetworkVector::const_iterator it =
|
| - cellular_networks.begin(); it != cellular_networks.end(); ++it) {
|
| - SkBitmap icon = *rb.GetBitmapNamed(IDR_STATUSBAR_NETWORK_BARS0_BLACK);
|
| - SkBitmap badge = *rb.GetBitmapNamed(IDR_STATUSBAR_NETWORK_3G);
|
| - icon = chromeos::NetworkMenu::IconForDisplay(icon, badge);
|
| - list->Append(GetNetwork(
|
| - it->service_path(),
|
| - icon,
|
| - it->name(),
|
| - it->connecting(),
|
| - it->connected(),
|
| - chromeos::TYPE_CELLULAR,
|
| - true,
|
| - it->activation_state()));
|
| - }
|
| -
|
| return list;
|
| }
|
|
|