| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "chrome/browser/ui/webui/chromeos/about_network.h" | 5 #include "chrome/browser/ui/webui/chromeos/about_network.h" |
| 6 | 6 |
| 7 #include "ash/ash_switches.h" | 7 #include "ash/ash_switches.h" |
| 8 #include "base/command_line.h" | 8 #include "base/command_line.h" |
| 9 #include "base/strings/string_number_conversions.h" | 9 #include "base/strings/string_number_conversions.h" |
| 10 #include "base/strings/string_tokenizer.h" | 10 #include "base/strings/string_tokenizer.h" |
| 11 #include "base/utf_string_conversions.h" | 11 #include "base/utf_string_conversions.h" |
| 12 #include "chrome/browser/chromeos/cros/cros_library.h" | |
| 13 #include "chrome/browser/chromeos/cros/network_library.h" | |
| 14 #include "chrome/browser/ui/webui/about_ui.h" | 12 #include "chrome/browser/ui/webui/about_ui.h" |
| 15 #include "chromeos/network/network_event_log.h" | 13 #include "chromeos/network/network_event_log.h" |
| 16 #include "chromeos/network/network_state.h" | 14 #include "chromeos/network/network_state.h" |
| 17 #include "chromeos/network/network_state_handler.h" | 15 #include "chromeos/network/network_state_handler.h" |
| 18 #include "grit/generated_resources.h" | 16 #include "grit/generated_resources.h" |
| 19 #include "net/base/escape.h" | 17 #include "net/base/escape.h" |
| 20 #include "ui/base/l10n/l10n_util.h" | 18 #include "ui/base/l10n/l10n_util.h" |
| 21 | 19 |
| 22 namespace chromeos { | 20 namespace chromeos { |
| 23 | 21 |
| (...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 72 : network_event_log::LOG_LEVEL_EVENT; | 70 : network_event_log::LOG_LEVEL_EVENT; |
| 73 std::string format = debug ? "file,time,desc,html" : "time,desc,html"; | 71 std::string format = debug ? "file,time,desc,html" : "time,desc,html"; |
| 74 // network_event_log::GetAsString does HTML escaping. | 72 // network_event_log::GetAsString does HTML escaping. |
| 75 output.append( | 73 output.append( |
| 76 network_event_log::GetAsString(network_event_log::NEWEST_FIRST, | 74 network_event_log::GetAsString(network_event_log::NEWEST_FIRST, |
| 77 format, log_level, 0)); | 75 format, log_level, 0)); |
| 78 output.append("</pre>"); | 76 output.append("</pre>"); |
| 79 return output; | 77 return output; |
| 80 } | 78 } |
| 81 | 79 |
| 82 // NetworkLibrary tables | |
| 83 | |
| 84 std::string NetworkToHtmlTableHeader(const Network* network) { | |
| 85 std::string str = | |
| 86 WrapWithTH("Name") + | |
| 87 WrapWithTH("Active") + | |
| 88 WrapWithTH("State"); | |
| 89 if (network->type() != TYPE_ETHERNET) | |
| 90 str += WrapWithTH("Auto-Connect"); | |
| 91 if (network->type() == TYPE_WIFI || | |
| 92 network->type() == TYPE_CELLULAR) { | |
| 93 str += WrapWithTH("Strength"); | |
| 94 } | |
| 95 if (network->type() == TYPE_WIFI) { | |
| 96 str += WrapWithTH("Encryption"); | |
| 97 str += WrapWithTH("Passphrase"); | |
| 98 str += WrapWithTH("Identity"); | |
| 99 str += WrapWithTH("Frequency"); | |
| 100 } | |
| 101 if (network->type() == TYPE_CELLULAR) { | |
| 102 str += WrapWithTH("Technology"); | |
| 103 str += WrapWithTH("Connectivity"); | |
| 104 str += WrapWithTH("Activation"); | |
| 105 str += WrapWithTH("Roaming"); | |
| 106 } | |
| 107 if (network->type() == TYPE_VPN) { | |
| 108 str += WrapWithTH("Host"); | |
| 109 str += WrapWithTH("Provider Type"); | |
| 110 str += WrapWithTH("PSK Passphrase"); | |
| 111 str += WrapWithTH("Username"); | |
| 112 str += WrapWithTH("User Passphrase"); | |
| 113 } | |
| 114 str += WrapWithTH("Error"); | |
| 115 str += WrapWithTH("IP Address"); | |
| 116 return WrapWithTR(str); | |
| 117 } | |
| 118 | |
| 119 // Helper function to create an Html table row for a Network. | |
| 120 std::string NetworkToHtmlTableRow(const Network* network) { | |
| 121 std::string str = | |
| 122 WrapWithTD(network->name()) + | |
| 123 WrapWithTD(base::IntToString(network->is_active())) + | |
| 124 WrapWithTD(network->GetStateString()); | |
| 125 if (network->type() != TYPE_ETHERNET) | |
| 126 str += WrapWithTD(base::IntToString(network->auto_connect())); | |
| 127 if (network->type() == TYPE_WIFI || | |
| 128 network->type() == TYPE_CELLULAR) { | |
| 129 const WirelessNetwork* wireless = | |
| 130 static_cast<const WirelessNetwork*>(network); | |
| 131 str += WrapWithTD(base::IntToString(wireless->strength())); | |
| 132 } | |
| 133 if (network->type() == TYPE_WIFI) { | |
| 134 const WifiNetwork* wifi = | |
| 135 static_cast<const WifiNetwork*>(network); | |
| 136 str += WrapWithTD(wifi->GetEncryptionString()); | |
| 137 str += WrapWithTD(std::string(wifi->passphrase().length(), '*')); | |
| 138 str += WrapWithTD(wifi->identity()); | |
| 139 str += WrapWithTD(base::IntToString(wifi->frequency())); | |
| 140 } | |
| 141 if (network->type() == TYPE_CELLULAR) { | |
| 142 const CellularNetwork* cell = | |
| 143 static_cast<const CellularNetwork*>(network); | |
| 144 str += WrapWithTH(cell->GetNetworkTechnologyString()); | |
| 145 str += WrapWithTH(cell->GetActivationStateString()); | |
| 146 str += WrapWithTH(cell->GetRoamingStateString()); | |
| 147 } | |
| 148 if (network->type() == TYPE_VPN) { | |
| 149 const VirtualNetwork* vpn = | |
| 150 static_cast<const VirtualNetwork*>(network); | |
| 151 str += WrapWithTH(vpn->server_hostname()); | |
| 152 str += WrapWithTH(vpn->GetProviderTypeString()); | |
| 153 str += WrapWithTD(std::string(vpn->psk_passphrase().length(), '*')); | |
| 154 str += WrapWithTH(vpn->username()); | |
| 155 str += WrapWithTD(std::string(vpn->user_passphrase().length(), '*')); | |
| 156 } | |
| 157 str += WrapWithTD(network->failed() ? network->GetErrorString() : ""); | |
| 158 str += WrapWithTD(network->ip_address()); | |
| 159 return WrapWithTR(str); | |
| 160 } | |
| 161 | |
| 162 std::string GetCrosNetworkHtmlInfo() { | |
| 163 std::string output; | |
| 164 | |
| 165 NetworkLibrary* cros = CrosLibrary::Get()->GetNetworkLibrary(); | |
| 166 | |
| 167 const EthernetNetwork* ethernet = cros->ethernet_network(); | |
| 168 if (cros->ethernet_enabled() && ethernet) { | |
| 169 output.append(WrapWithH3( | |
| 170 l10n_util::GetStringUTF8(IDS_ABOUT_NETWORK_ETHERNET))); | |
| 171 output.append("<table border=1>"); | |
| 172 output.append(NetworkToHtmlTableHeader(ethernet)); | |
| 173 output.append(NetworkToHtmlTableRow(ethernet)); | |
| 174 output.append("</table>"); | |
| 175 } | |
| 176 | |
| 177 const WifiNetworkVector& wifi_networks = cros->wifi_networks(); | |
| 178 if (cros->wifi_enabled() && wifi_networks.size() > 0) { | |
| 179 output.append(WrapWithH3( | |
| 180 l10n_util::GetStringUTF8(IDS_ABOUT_NETWORK_WIFI))); | |
| 181 output.append("<table border=1>"); | |
| 182 for (size_t i = 0; i < wifi_networks.size(); ++i) { | |
| 183 if (i == 0) | |
| 184 output.append(NetworkToHtmlTableHeader(wifi_networks[i])); | |
| 185 output.append(NetworkToHtmlTableRow(wifi_networks[i])); | |
| 186 } | |
| 187 output.append("</table>"); | |
| 188 } | |
| 189 | |
| 190 const CellularNetworkVector& cellular_networks = cros->cellular_networks(); | |
| 191 if (cros->cellular_enabled() && cellular_networks.size() > 0) { | |
| 192 output.append(WrapWithH3( | |
| 193 l10n_util::GetStringUTF8(IDS_ABOUT_NETWORK_CELLULAR))); | |
| 194 output.append("<table border=1>"); | |
| 195 for (size_t i = 0; i < cellular_networks.size(); ++i) { | |
| 196 if (i == 0) | |
| 197 output.append(NetworkToHtmlTableHeader(cellular_networks[i])); | |
| 198 output.append(NetworkToHtmlTableRow(cellular_networks[i])); | |
| 199 } | |
| 200 output.append("</table>"); | |
| 201 } | |
| 202 | |
| 203 const VirtualNetworkVector& virtual_networks = cros->virtual_networks(); | |
| 204 if (virtual_networks.size() > 0) { | |
| 205 output.append(WrapWithH3( | |
| 206 l10n_util::GetStringUTF8(IDS_ABOUT_NETWORK_VIRTUAL))); | |
| 207 output.append("<table border=1>"); | |
| 208 for (size_t i = 0; i < virtual_networks.size(); ++i) { | |
| 209 if (i == 0) | |
| 210 output.append(NetworkToHtmlTableHeader(virtual_networks[i])); | |
| 211 output.append(NetworkToHtmlTableRow(virtual_networks[i])); | |
| 212 } | |
| 213 output.append("</table>"); | |
| 214 } | |
| 215 | |
| 216 const WifiNetworkVector& remembered_wifi_networks = | |
| 217 cros->remembered_wifi_networks(); | |
| 218 if (remembered_wifi_networks.size() > 0) { | |
| 219 output.append(WrapWithH3( | |
| 220 l10n_util::GetStringUTF8(IDS_ABOUT_NETWORK_REMEMBERED_WIFI))); | |
| 221 output.append("<table border=1>"); | |
| 222 for (size_t i = 0; i < remembered_wifi_networks.size(); ++i) { | |
| 223 if (i == 0) | |
| 224 output.append(NetworkToHtmlTableHeader(remembered_wifi_networks[i])); | |
| 225 output.append(NetworkToHtmlTableRow(remembered_wifi_networks[i])); | |
| 226 } | |
| 227 output.append("</table>"); | |
| 228 } | |
| 229 | |
| 230 ::about_ui::AppendFooter(&output); | |
| 231 return output; | |
| 232 } | |
| 233 | |
| 234 // NetworkStateHandler tables | |
| 235 | |
| 236 std::string NetworkStateToHtmlTableHeader() { | 80 std::string NetworkStateToHtmlTableHeader() { |
| 237 std::string str = | 81 std::string str = |
| 238 WrapWithTH("Name") + | 82 WrapWithTH("Name") + |
| 239 WrapWithTH("Type") + | 83 WrapWithTH("Type") + |
| 240 WrapWithTH("State") + | 84 WrapWithTH("State") + |
| 241 WrapWithTH("Path") + | 85 WrapWithTH("Path") + |
| 242 WrapWithTH("Error") + | 86 WrapWithTH("Error") + |
| 243 WrapWithTH("IP Addr") + | 87 WrapWithTH("IP Addr") + |
| 244 WrapWithTH("Security") + | 88 WrapWithTH("Security") + |
| 245 WrapWithTH("Technology") + | 89 WrapWithTH("Technology") + |
| (...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 303 while (tok.GetNext()) { | 147 while (tok.GetNext()) { |
| 304 std::string token = tok.token(); | 148 std::string token = tok.token(); |
| 305 if (token == "debug") | 149 if (token == "debug") |
| 306 debug = true; | 150 debug = true; |
| 307 else | 151 else |
| 308 base::StringToInt(token, &refresh); | 152 base::StringToInt(token, &refresh); |
| 309 } | 153 } |
| 310 std::string output = GetHeaderHtmlInfo(refresh); | 154 std::string output = GetHeaderHtmlInfo(refresh); |
| 311 if (network_event_log::IsInitialized()) | 155 if (network_event_log::IsInitialized()) |
| 312 output += GetEventLogSection(debug); | 156 output += GetEventLogSection(debug); |
| 313 if (!CommandLine::ForCurrentProcess()->HasSwitch( | 157 output += GetNetworkStateHtmlInfo(); |
| 314 ash::switches::kAshDisableNewNetworkStatusArea)) { | |
| 315 output += GetNetworkStateHtmlInfo(); | |
| 316 } else { | |
| 317 output += GetCrosNetworkHtmlInfo(); | |
| 318 } | |
| 319 return output; | 158 return output; |
| 320 } | 159 } |
| 321 | 160 |
| 322 } // namespace about_ui | 161 } // namespace about_ui |
| 323 | 162 |
| 324 } // namespace chromeos | 163 } // namespace chromeos |
| OLD | NEW |