Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(224)

Side by Side Diff: chrome/browser/chromeos/cros/native_network_parser.cc

Issue 8734013: Resubmit CL. See 8429004. (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 9 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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/chromeos/cros/native_network_parser.h" 5 #include "chrome/browser/chromeos/cros/native_network_parser.h"
6 6
7 #include <string> 7 #include <string>
8 8
9 #include "base/stringprintf.h" 9 #include "base/stringprintf.h"
10 #include "base/string_util.h" 10 #include "base/string_util.h"
(...skipping 94 matching lines...) Expand 10 before | Expand all | Expand 10 after
105 { flimflam::kPassphraseRequiredProperty, PROPERTY_INDEX_PASSPHRASE_REQUIRED }, 105 { flimflam::kPassphraseRequiredProperty, PROPERTY_INDEX_PASSPHRASE_REQUIRED },
106 { flimflam::kPortalURLProperty, PROPERTY_INDEX_PORTAL_URL }, 106 { flimflam::kPortalURLProperty, PROPERTY_INDEX_PORTAL_URL },
107 { flimflam::kPoweredProperty, PROPERTY_INDEX_POWERED }, 107 { flimflam::kPoweredProperty, PROPERTY_INDEX_POWERED },
108 { flimflam::kPriorityProperty, PROPERTY_INDEX_PRIORITY }, 108 { flimflam::kPriorityProperty, PROPERTY_INDEX_PRIORITY },
109 { flimflam::kProfileProperty, PROPERTY_INDEX_PROFILE }, 109 { flimflam::kProfileProperty, PROPERTY_INDEX_PROFILE },
110 { flimflam::kProfilesProperty, PROPERTY_INDEX_PROFILES }, 110 { flimflam::kProfilesProperty, PROPERTY_INDEX_PROFILES },
111 { flimflam::kProviderProperty, PROPERTY_INDEX_PROVIDER }, 111 { flimflam::kProviderProperty, PROPERTY_INDEX_PROVIDER },
112 { flimflam::kProxyConfigProperty, PROPERTY_INDEX_PROXY_CONFIG }, 112 { flimflam::kProxyConfigProperty, PROPERTY_INDEX_PROXY_CONFIG },
113 { flimflam::kRoamingStateProperty, PROPERTY_INDEX_ROAMING_STATE }, 113 { flimflam::kRoamingStateProperty, PROPERTY_INDEX_ROAMING_STATE },
114 { flimflam::kSIMLockStatusProperty, PROPERTY_INDEX_SIM_LOCK }, 114 { flimflam::kSIMLockStatusProperty, PROPERTY_INDEX_SIM_LOCK },
115 { flimflam::kSSIDProperty, PROPERTY_INDEX_SSID },
115 { flimflam::kSaveCredentialsProperty, PROPERTY_INDEX_SAVE_CREDENTIALS }, 116 { flimflam::kSaveCredentialsProperty, PROPERTY_INDEX_SAVE_CREDENTIALS },
116 { flimflam::kScanningProperty, PROPERTY_INDEX_SCANNING }, 117 { flimflam::kScanningProperty, PROPERTY_INDEX_SCANNING },
117 { flimflam::kSecurityProperty, PROPERTY_INDEX_SECURITY }, 118 { flimflam::kSecurityProperty, PROPERTY_INDEX_SECURITY },
118 { flimflam::kSelectedNetworkProperty, PROPERTY_INDEX_SELECTED_NETWORK }, 119 { flimflam::kSelectedNetworkProperty, PROPERTY_INDEX_SELECTED_NETWORK },
119 { flimflam::kServiceWatchListProperty, PROPERTY_INDEX_SERVICE_WATCH_LIST }, 120 { flimflam::kServiceWatchListProperty, PROPERTY_INDEX_SERVICE_WATCH_LIST },
120 { flimflam::kServicesProperty, PROPERTY_INDEX_SERVICES }, 121 { flimflam::kServicesProperty, PROPERTY_INDEX_SERVICES },
121 { flimflam::kServingOperatorProperty, PROPERTY_INDEX_SERVING_OPERATOR }, 122 { flimflam::kServingOperatorProperty, PROPERTY_INDEX_SERVING_OPERATOR },
122 { flimflam::kSignalStrengthProperty, PROPERTY_INDEX_SIGNAL_STRENGTH }, 123 { flimflam::kSignalStrengthProperty, PROPERTY_INDEX_SIGNAL_STRENGTH },
123 { flimflam::kStateProperty, PROPERTY_INDEX_STATE }, 124 { flimflam::kStateProperty, PROPERTY_INDEX_STATE },
124 { flimflam::kSupportNetworkScanProperty, 125 { flimflam::kSupportNetworkScanProperty,
125 PROPERTY_INDEX_SUPPORT_NETWORK_SCAN }, 126 PROPERTY_INDEX_SUPPORT_NETWORK_SCAN },
126 { flimflam::kTechnologyFamilyProperty, PROPERTY_INDEX_TECHNOLOGY_FAMILY }, 127 { flimflam::kTechnologyFamilyProperty, PROPERTY_INDEX_TECHNOLOGY_FAMILY },
127 { flimflam::kTypeProperty, PROPERTY_INDEX_TYPE }, 128 { flimflam::kTypeProperty, PROPERTY_INDEX_TYPE },
128 { flimflam::kUIDataProperty, PROPERTY_INDEX_UI_DATA }, 129 { flimflam::kUIDataProperty, PROPERTY_INDEX_UI_DATA },
129 { flimflam::kUsageURLProperty, PROPERTY_INDEX_USAGE_URL }, 130 { flimflam::kUsageURLProperty, PROPERTY_INDEX_USAGE_URL },
130 { flimflam::kOpenVPNUserProperty, PROPERTY_INDEX_OPEN_VPN_USER }, 131 { flimflam::kOpenVPNUserProperty, PROPERTY_INDEX_OPEN_VPN_USER },
131 { flimflam::kOpenVPNPasswordProperty, PROPERTY_INDEX_OPEN_VPN_PASSWORD }, 132 { flimflam::kOpenVPNPasswordProperty, PROPERTY_INDEX_OPEN_VPN_PASSWORD },
132 { flimflam::kOpenVPNClientCertIdProperty, 133 { flimflam::kOpenVPNClientCertIdProperty,
133 PROPERTY_INDEX_OPEN_VPN_CLIENT_CERT_ID }, 134 PROPERTY_INDEX_OPEN_VPN_CLIENT_CERT_ID },
134 { flimflam::kPaymentPortalProperty, PROPERTY_INDEX_OLP }, 135 { flimflam::kPaymentPortalProperty, PROPERTY_INDEX_OLP },
135 { flimflam::kWifiAuthMode, PROPERTY_INDEX_WIFI_AUTH_MODE }, 136 { flimflam::kWifiAuthMode, PROPERTY_INDEX_WIFI_AUTH_MODE },
136 { flimflam::kWifiFrequency, PROPERTY_INDEX_WIFI_FREQUENCY }, 137 { flimflam::kWifiFrequency, PROPERTY_INDEX_WIFI_FREQUENCY },
137 { flimflam::kWifiHexSsid, PROPERTY_INDEX_WIFI_HEX_SSID }, 138 { flimflam::kWifiHexSsid, PROPERTY_INDEX_WIFI_HEX_SSID },
138 { flimflam::kWifiHiddenSsid, PROPERTY_INDEX_WIFI_HIDDEN_SSID }, 139 { flimflam::kWifiHiddenSsid, PROPERTY_INDEX_WIFI_HIDDEN_SSID },
139 { flimflam::kWifiPhyMode, PROPERTY_INDEX_WIFI_PHY_MODE }, 140 { flimflam::kWifiPhyMode, PROPERTY_INDEX_WIFI_PHY_MODE },
140 }; 141 };
141 142
143 EnumMapper<ConnectionType>::Pair network_type_table[] = {
144 { flimflam::kTypeEthernet, TYPE_ETHERNET },
145 { flimflam::kTypeWifi, TYPE_WIFI },
146 { flimflam::kTypeWimax, TYPE_WIMAX },
147 { flimflam::kTypeBluetooth, TYPE_BLUETOOTH },
148 { flimflam::kTypeCellular, TYPE_CELLULAR },
149 { flimflam::kTypeVPN, TYPE_VPN },
150 };
151
152 EnumMapper<ConnectionSecurity>::Pair network_security_table[] = {
153 { flimflam::kSecurityNone, SECURITY_NONE },
154 { flimflam::kSecurityWep, SECURITY_WEP },
155 { flimflam::kSecurityWpa, SECURITY_WPA },
156 { flimflam::kSecurityRsn, SECURITY_RSN },
157 { flimflam::kSecurityPsk, SECURITY_PSK },
158 { flimflam::kSecurity8021x, SECURITY_8021X },
159 };
160
161 EnumMapper<EAPMethod>::Pair network_eap_method_table[] = {
162 { flimflam::kEapMethodPEAP, EAP_METHOD_PEAP },
163 { flimflam::kEapMethodTLS, EAP_METHOD_TLS },
164 { flimflam::kEapMethodTTLS, EAP_METHOD_TTLS },
165 { flimflam::kEapMethodLEAP, EAP_METHOD_LEAP },
166 };
167
168 EnumMapper<EAPPhase2Auth>::Pair network_eap_auth_table[] = {
169 { flimflam::kEapPhase2AuthPEAPMD5, EAP_PHASE_2_AUTH_MD5 },
170 { flimflam::kEapPhase2AuthPEAPMSCHAPV2, EAP_PHASE_2_AUTH_MSCHAPV2 },
171 { flimflam::kEapPhase2AuthTTLSMD5, EAP_PHASE_2_AUTH_MD5 },
172 { flimflam::kEapPhase2AuthTTLSMSCHAPV2, EAP_PHASE_2_AUTH_MSCHAPV2 },
173 { flimflam::kEapPhase2AuthTTLSMSCHAP, EAP_PHASE_2_AUTH_MSCHAP },
174 { flimflam::kEapPhase2AuthTTLSPAP, EAP_PHASE_2_AUTH_PAP },
175 { flimflam::kEapPhase2AuthTTLSCHAP, EAP_PHASE_2_AUTH_CHAP },
176 };
177
142 // Serve the singleton mapper instance. 178 // Serve the singleton mapper instance.
143 const EnumMapper<PropertyIndex>* get_native_mapper() { 179 const EnumMapper<PropertyIndex>* get_native_mapper() {
144 CR_DEFINE_STATIC_LOCAL(EnumMapper<PropertyIndex>, mapper, 180 CR_DEFINE_STATIC_LOCAL(EnumMapper<PropertyIndex>, mapper,
145 (property_index_table, 181 (property_index_table,
146 arraysize(property_index_table), 182 arraysize(property_index_table),
147 PROPERTY_INDEX_UNKNOWN)); 183 PROPERTY_INDEX_UNKNOWN));
148 return &mapper; 184 return &mapper;
149 } 185 }
150 186
151 ConnectionType ParseNetworkType(const std::string& type) {
152 static EnumMapper<ConnectionType>::Pair table[] = {
153 { flimflam::kTypeEthernet, TYPE_ETHERNET },
154 { flimflam::kTypeWifi, TYPE_WIFI },
155 { flimflam::kTypeWimax, TYPE_WIMAX },
156 { flimflam::kTypeBluetooth, TYPE_BLUETOOTH },
157 { flimflam::kTypeCellular, TYPE_CELLULAR },
158 { flimflam::kTypeVPN, TYPE_VPN },
159 };
160 CR_DEFINE_STATIC_LOCAL(EnumMapper<ConnectionType>, parser,
161 (table, arraysize(table), TYPE_UNKNOWN));
162 return parser.Get(type);
163 }
164
165 } // namespace 187 } // namespace
166 188
167 // -------------------- NativeNetworkDeviceParser -------------------- 189 // -------------------- NativeNetworkDeviceParser --------------------
168 190
169 NativeNetworkDeviceParser::NativeNetworkDeviceParser() 191 NativeNetworkDeviceParser::NativeNetworkDeviceParser()
170 : NetworkDeviceParser(get_native_mapper()) { 192 : NetworkDeviceParser(get_native_mapper()) {
171 } 193 }
172 194
173 NativeNetworkDeviceParser::~NativeNetworkDeviceParser() { 195 NativeNetworkDeviceParser::~NativeNetworkDeviceParser() {
174 } 196 }
(...skipping 209 matching lines...) Expand 10 before | Expand all | Expand 10 after
384 } 406 }
385 break; 407 break;
386 } 408 }
387 default: 409 default:
388 break; 410 break;
389 } 411 }
390 return false; 412 return false;
391 } 413 }
392 414
393 ConnectionType NativeNetworkDeviceParser::ParseType(const std::string& type) { 415 ConnectionType NativeNetworkDeviceParser::ParseType(const std::string& type) {
394 return ParseNetworkType(type); 416 return NativeNetworkParser::network_type_mapper()->Get(type);
395 } 417 }
396 418
397 bool NativeNetworkDeviceParser::ParseApnList(const ListValue& list, 419 bool NativeNetworkDeviceParser::ParseApnList(const ListValue& list,
398 CellularApnList* apn_list) { 420 CellularApnList* apn_list) {
399 apn_list->clear(); 421 apn_list->clear();
400 apn_list->reserve(list.GetSize()); 422 apn_list->reserve(list.GetSize());
401 for (ListValue::const_iterator it = list.begin(); it != list.end(); ++it) { 423 for (ListValue::const_iterator it = list.begin(); it != list.end(); ++it) {
402 if ((*it)->IsType(base::Value::TYPE_DICTIONARY)) { 424 if ((*it)->IsType(base::Value::TYPE_DICTIONARY)) {
403 apn_list->resize(apn_list->size() + 1); 425 apn_list->resize(apn_list->size() + 1);
404 const DictionaryValue* dict = static_cast<const DictionaryValue*>(*it); 426 const DictionaryValue* dict = static_cast<const DictionaryValue*>(*it);
(...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after
498 } 520 }
499 521
500 NativeNetworkParser::~NativeNetworkParser() { 522 NativeNetworkParser::~NativeNetworkParser() {
501 } 523 }
502 524
503 // static 525 // static
504 const EnumMapper<PropertyIndex>* NativeNetworkParser::property_mapper() { 526 const EnumMapper<PropertyIndex>* NativeNetworkParser::property_mapper() {
505 return get_native_mapper(); 527 return get_native_mapper();
506 } 528 }
507 529
530 // static
531 const EnumMapper<ConnectionType>* NativeNetworkParser::network_type_mapper() {
532 CR_DEFINE_STATIC_LOCAL(
533 EnumMapper<ConnectionType>,
534 network_type_mapper,
535 (network_type_table, arraysize(network_type_table), TYPE_UNKNOWN));
536 return &network_type_mapper;
537 }
538
539 // static
540 const EnumMapper<ConnectionSecurity>*
541 NativeNetworkParser::network_security_mapper() {
542 CR_DEFINE_STATIC_LOCAL(
543 EnumMapper<ConnectionSecurity>,
544 network_security_mapper,
545 (network_security_table, arraysize(network_security_table),
546 SECURITY_UNKNOWN));
547 return &network_security_mapper;
548 }
549
550 // static
551 const EnumMapper<EAPMethod>* NativeNetworkParser::network_eap_method_mapper() {
552 CR_DEFINE_STATIC_LOCAL(
553 EnumMapper<EAPMethod>,
554 network_eap_method_mapper,
555 (network_eap_method_table, arraysize(network_eap_method_table),
556 EAP_METHOD_UNKNOWN));
557 return &network_eap_method_mapper;
558 }
559
560 // static
561 const EnumMapper<EAPPhase2Auth>*
562 NativeNetworkParser::network_eap_auth_mapper() {
563 CR_DEFINE_STATIC_LOCAL(
564 EnumMapper<EAPPhase2Auth>,
565 network_eap_auth_mapper,
566 (network_eap_auth_table, arraysize(network_eap_auth_table),
567 EAP_PHASE_2_AUTH_AUTO));
568 return &network_eap_auth_mapper;
569 }
570
508 const ConnectionType NativeNetworkParser::ParseConnectionType( 571 const ConnectionType NativeNetworkParser::ParseConnectionType(
509 const std::string& connection_type) { 572 const std::string& connection_type) {
510 return ParseNetworkType(connection_type); 573 return network_type_mapper()->Get(connection_type);
511 } 574 }
512 575
513 Network* NativeNetworkParser::CreateNewNetwork( 576 Network* NativeNetworkParser::CreateNewNetwork(
514 ConnectionType type, const std::string& service_path) { 577 ConnectionType type, const std::string& service_path) {
515 Network* network = NetworkParser::CreateNewNetwork(type, service_path); 578 Network* network = NetworkParser::CreateNewNetwork(type, service_path);
516 if (network) { 579 if (network) {
517 if (type == TYPE_ETHERNET) 580 if (type == TYPE_ETHERNET)
518 network->SetNetworkParser(new NativeEthernetNetworkParser()); 581 network->SetNetworkParser(new NativeEthernetNetworkParser());
519 else if (type == TYPE_WIFI) 582 else if (type == TYPE_WIFI)
520 network->SetNetworkParser(new NativeWifiNetworkParser()); 583 network->SetNetworkParser(new NativeWifiNetworkParser());
(...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after
605 return true; 668 return true;
606 } 669 }
607 default: 670 default:
608 return NetworkParser::ParseValue(index, value, network); 671 return NetworkParser::ParseValue(index, value, network);
609 break; 672 break;
610 } 673 }
611 return false; 674 return false;
612 } 675 }
613 676
614 ConnectionType NativeNetworkParser::ParseType(const std::string& type) { 677 ConnectionType NativeNetworkParser::ParseType(const std::string& type) {
615 return ParseNetworkType(type); 678 return network_type_mapper()->Get(type);
616 } 679 }
617 680
618 ConnectionType NativeNetworkParser::ParseTypeFromDictionary( 681 ConnectionType NativeNetworkParser::ParseTypeFromDictionary(
619 const DictionaryValue& info) { 682 const DictionaryValue& info) {
620 std::string type_string; 683 std::string type_string;
621 info.GetString(flimflam::kTypeProperty, &type_string); 684 info.GetString(flimflam::kTypeProperty, &type_string);
622 return ParseType(type_string); 685 return ParseType(type_string);
623 } 686 }
624 687
625 ConnectionMode NativeNetworkParser::ParseMode(const std::string& mode) { 688 ConnectionMode NativeNetworkParser::ParseMode(const std::string& mode) {
(...skipping 401 matching lines...) Expand 10 before | Expand all | Expand 10 after
1027 // These properties are currently not used in the UI. 1090 // These properties are currently not used in the UI.
1028 return true; 1091 return true;
1029 default: 1092 default:
1030 return NativeWirelessNetworkParser::ParseValue(index, value, network); 1093 return NativeWirelessNetworkParser::ParseValue(index, value, network);
1031 } 1094 }
1032 return false; 1095 return false;
1033 } 1096 }
1034 1097
1035 ConnectionSecurity NativeWifiNetworkParser::ParseSecurity( 1098 ConnectionSecurity NativeWifiNetworkParser::ParseSecurity(
1036 const std::string& security) { 1099 const std::string& security) {
1037 static EnumMapper<ConnectionSecurity>::Pair table[] = { 1100 return network_security_mapper()->Get(security);
1038 { flimflam::kSecurityNone, SECURITY_NONE },
1039 { flimflam::kSecurityWep, SECURITY_WEP },
1040 { flimflam::kSecurityWpa, SECURITY_WPA },
1041 { flimflam::kSecurityRsn, SECURITY_RSN },
1042 { flimflam::kSecurityPsk, SECURITY_PSK },
1043 { flimflam::kSecurity8021x, SECURITY_8021X },
1044 };
1045 CR_DEFINE_STATIC_LOCAL(EnumMapper<ConnectionSecurity>, parser,
1046 (table, arraysize(table), SECURITY_UNKNOWN));
1047 return parser.Get(security);
1048 } 1101 }
1049 1102
1050 EAPMethod NativeWifiNetworkParser::ParseEAPMethod(const std::string& method) { 1103 EAPMethod NativeWifiNetworkParser::ParseEAPMethod(const std::string& method) {
1051 static EnumMapper<EAPMethod>::Pair table[] = { 1104 return network_eap_method_mapper()->Get(method);
1052 { flimflam::kEapMethodPEAP, EAP_METHOD_PEAP },
1053 { flimflam::kEapMethodTLS, EAP_METHOD_TLS },
1054 { flimflam::kEapMethodTTLS, EAP_METHOD_TTLS },
1055 { flimflam::kEapMethodLEAP, EAP_METHOD_LEAP },
1056 };
1057 CR_DEFINE_STATIC_LOCAL(EnumMapper<EAPMethod>, parser,
1058 (table, arraysize(table), EAP_METHOD_UNKNOWN));
1059 return parser.Get(method);
1060 } 1105 }
1061 1106
1062 EAPPhase2Auth NativeWifiNetworkParser::ParseEAPPhase2Auth( 1107 EAPPhase2Auth NativeWifiNetworkParser::ParseEAPPhase2Auth(
1063 const std::string& auth) { 1108 const std::string& auth) {
1064 static EnumMapper<EAPPhase2Auth>::Pair table[] = { 1109 return network_eap_auth_mapper()->Get(auth);
1065 { flimflam::kEapPhase2AuthPEAPMD5, EAP_PHASE_2_AUTH_MD5 },
1066 { flimflam::kEapPhase2AuthPEAPMSCHAPV2, EAP_PHASE_2_AUTH_MSCHAPV2 },
1067 { flimflam::kEapPhase2AuthTTLSMD5, EAP_PHASE_2_AUTH_MD5 },
1068 { flimflam::kEapPhase2AuthTTLSMSCHAPV2, EAP_PHASE_2_AUTH_MSCHAPV2 },
1069 { flimflam::kEapPhase2AuthTTLSMSCHAP, EAP_PHASE_2_AUTH_MSCHAP },
1070 { flimflam::kEapPhase2AuthTTLSPAP, EAP_PHASE_2_AUTH_PAP },
1071 { flimflam::kEapPhase2AuthTTLSCHAP, EAP_PHASE_2_AUTH_CHAP },
1072 };
1073 CR_DEFINE_STATIC_LOCAL(EnumMapper<EAPPhase2Auth>, parser,
1074 (table, arraysize(table), EAP_PHASE_2_AUTH_AUTO));
1075 return parser.Get(auth);
1076 } 1110 }
1077 1111
1078 // -------------------- NativeVirtualNetworkParser -------------------- 1112 // -------------------- NativeVirtualNetworkParser --------------------
1079 1113
1080 1114
1081 NativeVirtualNetworkParser::NativeVirtualNetworkParser() {} 1115 NativeVirtualNetworkParser::NativeVirtualNetworkParser() {}
1082 NativeVirtualNetworkParser::~NativeVirtualNetworkParser() {} 1116 NativeVirtualNetworkParser::~NativeVirtualNetworkParser() {}
1083 1117
1084 bool NativeVirtualNetworkParser::UpdateNetworkFromInfo( 1118 bool NativeVirtualNetworkParser::UpdateNetworkFromInfo(
1085 const DictionaryValue& info, 1119 const DictionaryValue& info,
(...skipping 125 matching lines...) Expand 10 before | Expand all | Expand 10 after
1211 static EnumMapper<ProviderType>::Pair table[] = { 1245 static EnumMapper<ProviderType>::Pair table[] = {
1212 { flimflam::kProviderL2tpIpsec, PROVIDER_TYPE_L2TP_IPSEC_PSK }, 1246 { flimflam::kProviderL2tpIpsec, PROVIDER_TYPE_L2TP_IPSEC_PSK },
1213 { flimflam::kProviderOpenVpn, PROVIDER_TYPE_OPEN_VPN }, 1247 { flimflam::kProviderOpenVpn, PROVIDER_TYPE_OPEN_VPN },
1214 }; 1248 };
1215 CR_DEFINE_STATIC_LOCAL(EnumMapper<ProviderType>, parser, 1249 CR_DEFINE_STATIC_LOCAL(EnumMapper<ProviderType>, parser,
1216 (table, arraysize(table), PROVIDER_TYPE_MAX)); 1250 (table, arraysize(table), PROVIDER_TYPE_MAX));
1217 return parser.Get(type); 1251 return parser.Get(type);
1218 } 1252 }
1219 1253
1220 } // namespace chromeos 1254 } // namespace chromeos
OLDNEW
« no previous file with comments | « chrome/browser/chromeos/cros/native_network_parser.h ('k') | chrome/browser/chromeos/cros/network_library.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698