| OLD | NEW |
| (Empty) |
| 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 | |
| 3 // found in the LICENSE file. | |
| 4 | |
| 5 #ifndef CHROME_BROWSER_CHROMEOS_CROS_NETWORK_LIBRARY_IMPL_BASE_H_ | |
| 6 #define CHROME_BROWSER_CHROMEOS_CROS_NETWORK_LIBRARY_IMPL_BASE_H_ | |
| 7 | |
| 8 #include <list> | |
| 9 #include <set> | |
| 10 | |
| 11 #include "chrome/browser/chromeos/cros/network_library.h" | |
| 12 #include "chromeos/network/onc/onc_constants.h" | |
| 13 | |
| 14 namespace chromeos { | |
| 15 | |
| 16 class NetworkLibraryImplBase : public NetworkLibrary { | |
| 17 public: | |
| 18 NetworkLibraryImplBase(); | |
| 19 virtual ~NetworkLibraryImplBase(); | |
| 20 | |
| 21 ////////////////////////////////////////////////////////////////////////////// | |
| 22 // NetworkLibraryImplBase virtual functions. | |
| 23 | |
| 24 // Functions for monitoring networks & devices. | |
| 25 virtual void MonitorNetworkStart(const std::string& service_path) = 0; | |
| 26 virtual void MonitorNetworkStop(const std::string& service_path) = 0; | |
| 27 virtual void MonitorNetworkDeviceStart(const std::string& device_path) = 0; | |
| 28 virtual void MonitorNetworkDeviceStop(const std::string& device_path) = 0; | |
| 29 | |
| 30 // Called from ConnectToWifiNetwork. | |
| 31 // Calls ConnectToWifiNetworkUsingConnectData if network request succeeds. | |
| 32 virtual void CallRequestWifiNetworkAndConnect( | |
| 33 const std::string& ssid, ConnectionSecurity security) = 0; | |
| 34 // Called from ConnectToVirtualNetwork*. | |
| 35 // Calls ConnectToVirtualNetworkUsingConnectData if network request succeeds. | |
| 36 virtual void CallRequestVirtualNetworkAndConnect( | |
| 37 const std::string& service_name, | |
| 38 const std::string& server_hostname, | |
| 39 ProviderType provider_type) = 0; | |
| 40 // Call to configure a wifi service. The identifier is either a service_path | |
| 41 // or a GUID. |info| is a dictionary of property values. | |
| 42 virtual void CallConfigureService(const std::string& identifier, | |
| 43 const DictionaryValue* info) = 0; | |
| 44 // Called from NetworkConnectStart. | |
| 45 // Calls NetworkConnectCompleted when the connection attempt completes. | |
| 46 virtual void CallConnectToNetwork(Network* network) = 0; | |
| 47 // Called from DeleteRememberedNetwork. | |
| 48 virtual void CallDeleteRememberedNetwork( | |
| 49 const std::string& profile_path, const std::string& service_path) = 0; | |
| 50 | |
| 51 // Called from Enable*NetworkDevice. | |
| 52 // Asynchronously enables or disables the specified device type. | |
| 53 virtual void CallEnableNetworkDeviceType( | |
| 54 ConnectionType device, bool enable) = 0; | |
| 55 | |
| 56 // Called from DeleteRememberedNetwork for VPN services. | |
| 57 // Asynchronously disconnects and removes the service. | |
| 58 virtual void CallRemoveNetwork(const Network* network) = 0; | |
| 59 | |
| 60 ////////////////////////////////////////////////////////////////////////////// | |
| 61 // NetworkLibrary implementation. | |
| 62 | |
| 63 // virtual Init implemented in derived classes. | |
| 64 // virtual IsCros implemented in derived classes. | |
| 65 | |
| 66 virtual void AddNetworkProfileObserver( | |
| 67 NetworkProfileObserver* observer) OVERRIDE; | |
| 68 virtual void RemoveNetworkProfileObserver( | |
| 69 NetworkProfileObserver* observer) OVERRIDE; | |
| 70 virtual void AddNetworkManagerObserver( | |
| 71 NetworkManagerObserver* observer) OVERRIDE; | |
| 72 virtual void RemoveNetworkManagerObserver( | |
| 73 NetworkManagerObserver* observer) OVERRIDE; | |
| 74 virtual void AddNetworkObserver(const std::string& service_path, | |
| 75 NetworkObserver* observer) OVERRIDE; | |
| 76 virtual void RemoveNetworkObserver(const std::string& service_path, | |
| 77 NetworkObserver* observer) OVERRIDE; | |
| 78 virtual void RemoveObserverForAllNetworks( | |
| 79 NetworkObserver* observer) OVERRIDE; | |
| 80 virtual void AddNetworkDeviceObserver( | |
| 81 const std::string& device_path, | |
| 82 NetworkDeviceObserver* observer) OVERRIDE; | |
| 83 virtual void RemoveNetworkDeviceObserver( | |
| 84 const std::string& device_path, | |
| 85 NetworkDeviceObserver* observer) OVERRIDE; | |
| 86 | |
| 87 virtual void AddPinOperationObserver( | |
| 88 PinOperationObserver* observer) OVERRIDE; | |
| 89 virtual void RemovePinOperationObserver( | |
| 90 PinOperationObserver* observer) OVERRIDE; | |
| 91 | |
| 92 virtual const EthernetNetwork* ethernet_network() const OVERRIDE; | |
| 93 virtual bool ethernet_connecting() const OVERRIDE; | |
| 94 virtual bool ethernet_connected() const OVERRIDE; | |
| 95 virtual const WifiNetwork* wifi_network() const OVERRIDE; | |
| 96 virtual bool wifi_connecting() const OVERRIDE; | |
| 97 virtual bool wifi_connected() const OVERRIDE; | |
| 98 virtual const CellularNetwork* cellular_network() const OVERRIDE; | |
| 99 virtual bool cellular_connecting() const OVERRIDE; | |
| 100 virtual bool cellular_connected() const OVERRIDE; | |
| 101 virtual const WimaxNetwork* wimax_network() const OVERRIDE; | |
| 102 virtual bool wimax_connecting() const OVERRIDE; | |
| 103 virtual bool wimax_connected() const OVERRIDE; | |
| 104 virtual const VirtualNetwork* virtual_network() const OVERRIDE; | |
| 105 virtual bool virtual_network_connecting() const OVERRIDE; | |
| 106 virtual bool virtual_network_connected() const OVERRIDE; | |
| 107 virtual bool Connected() const OVERRIDE; | |
| 108 virtual bool Connecting() const OVERRIDE; | |
| 109 virtual const WifiNetworkVector& wifi_networks() const OVERRIDE; | |
| 110 virtual const WifiNetworkVector& remembered_wifi_networks() const OVERRIDE; | |
| 111 virtual const CellularNetworkVector& cellular_networks() const OVERRIDE; | |
| 112 virtual const WimaxNetworkVector& wimax_networks() const OVERRIDE; | |
| 113 virtual const VirtualNetworkVector& virtual_networks() const OVERRIDE; | |
| 114 virtual const VirtualNetworkVector& | |
| 115 remembered_virtual_networks() const OVERRIDE; | |
| 116 virtual const Network* active_network() const OVERRIDE; | |
| 117 virtual const Network* active_nonvirtual_network() const OVERRIDE; | |
| 118 virtual const Network* connected_network() const OVERRIDE; | |
| 119 virtual const Network* connecting_network() const OVERRIDE; | |
| 120 virtual bool ethernet_available() const OVERRIDE; | |
| 121 virtual bool wifi_available() const OVERRIDE; | |
| 122 virtual bool wimax_available() const OVERRIDE; | |
| 123 virtual bool cellular_available() const OVERRIDE; | |
| 124 virtual bool ethernet_enabled() const OVERRIDE; | |
| 125 virtual bool wifi_enabled() const OVERRIDE; | |
| 126 virtual bool wimax_enabled() const OVERRIDE; | |
| 127 virtual bool cellular_enabled() const OVERRIDE; | |
| 128 virtual bool wifi_scanning() const OVERRIDE; | |
| 129 virtual bool cellular_initializing() const OVERRIDE; | |
| 130 | |
| 131 virtual const NetworkDevice* FindNetworkDeviceByPath( | |
| 132 const std::string& path) const OVERRIDE; | |
| 133 NetworkDevice* FindNetworkDeviceByPath(const std::string& path); | |
| 134 virtual const NetworkDevice* FindMobileDevice() const OVERRIDE; | |
| 135 virtual const NetworkDevice* FindCellularDevice() const OVERRIDE; | |
| 136 virtual Network* FindNetworkByPath(const std::string& path) const OVERRIDE; | |
| 137 virtual Network* FindNetworkByUniqueId( | |
| 138 const std::string& unique_id) const OVERRIDE; | |
| 139 WirelessNetwork* FindWirelessNetworkByPath(const std::string& path) const; | |
| 140 virtual WifiNetwork* FindWifiNetworkByPath( | |
| 141 const std::string& path) const OVERRIDE; | |
| 142 virtual WimaxNetwork* FindWimaxNetworkByPath( | |
| 143 const std::string& path) const OVERRIDE; | |
| 144 virtual CellularNetwork* FindCellularNetworkByPath( | |
| 145 const std::string& path) const OVERRIDE; | |
| 146 virtual VirtualNetwork* FindVirtualNetworkByPath( | |
| 147 const std::string& path) const OVERRIDE; | |
| 148 Network* FindRememberedFromNetwork(const Network* network) const; | |
| 149 virtual Network* FindRememberedNetworkByPath( | |
| 150 const std::string& path) const OVERRIDE; | |
| 151 | |
| 152 virtual const base::DictionaryValue* FindOncForNetwork( | |
| 153 const std::string& unique_id) const OVERRIDE; | |
| 154 | |
| 155 virtual void SignalCellularPlanPayment() OVERRIDE; | |
| 156 virtual bool HasRecentCellularPlanPayment() OVERRIDE; | |
| 157 virtual const std::string& GetCellularHomeCarrierId() const OVERRIDE; | |
| 158 virtual bool CellularDeviceUsesDirectActivation() const OVERRIDE; | |
| 159 | |
| 160 // virtual ChangePin implemented in derived classes. | |
| 161 // virtual ChangeRequiredPin implemented in derived classes. | |
| 162 // virtual EnterPin implemented in derived classes. | |
| 163 // virtual UnblockPin implemented in derived classes. | |
| 164 | |
| 165 // virtual RequestCellularScan implemented in derived classes. | |
| 166 // virtual RequestCellularRegister implemented in derived classes. | |
| 167 // virtual SetCellularDataRoamingAllowed implemented in derived classes. | |
| 168 // virtual SetCarrier implemented in derived classes. | |
| 169 // virtual IsCellularAlwaysInRoaming implemented in derived classes. | |
| 170 // virtual RequestNetworkScan implemented in derived classes. | |
| 171 | |
| 172 virtual bool CanConnectToNetwork(const Network* network) const OVERRIDE; | |
| 173 | |
| 174 // Connect to an existing network. | |
| 175 virtual void ConnectToWifiNetwork(WifiNetwork* wifi) OVERRIDE; | |
| 176 virtual void ConnectToWifiNetwork(WifiNetwork* wifi, bool shared) OVERRIDE; | |
| 177 virtual void ConnectToWimaxNetwork(WimaxNetwork* wimax) OVERRIDE; | |
| 178 virtual void ConnectToWimaxNetwork(WimaxNetwork* wimax, bool shared) OVERRIDE; | |
| 179 virtual void ConnectToCellularNetwork(CellularNetwork* cellular) OVERRIDE; | |
| 180 virtual void ConnectToVirtualNetwork(VirtualNetwork* vpn) OVERRIDE; | |
| 181 | |
| 182 // Request a network and connect to it. | |
| 183 virtual void ConnectToUnconfiguredWifiNetwork( | |
| 184 const std::string& ssid, | |
| 185 ConnectionSecurity security, | |
| 186 const std::string& passphrase, | |
| 187 const EAPConfigData* eap_config, | |
| 188 bool save_credentials, | |
| 189 bool shared) OVERRIDE; | |
| 190 | |
| 191 virtual void ConnectToUnconfiguredVirtualNetwork( | |
| 192 const std::string& service_name, | |
| 193 const std::string& server_hostname, | |
| 194 ProviderType provider_type, | |
| 195 const VPNConfigData& config) OVERRIDE; | |
| 196 | |
| 197 // virtual DisconnectFromNetwork implemented in derived classes. | |
| 198 virtual void ForgetNetwork(const std::string& service_path) OVERRIDE; | |
| 199 virtual void EnableEthernetNetworkDevice(bool enable) OVERRIDE; | |
| 200 virtual void EnableWifiNetworkDevice(bool enable) OVERRIDE; | |
| 201 virtual void EnableWimaxNetworkDevice(bool enable) OVERRIDE; | |
| 202 virtual void EnableCellularNetworkDevice(bool enable) OVERRIDE; | |
| 203 // virtual GetIPConfigs implemented in derived classes. | |
| 204 // virtual SetIPConfig implemented in derived classes. | |
| 205 virtual void LoadOncNetworks(const base::ListValue& network_configs, | |
| 206 onc::ONCSource source) OVERRIDE; | |
| 207 virtual bool SetActiveNetwork(ConnectionType type, | |
| 208 const std::string& service_path) OVERRIDE; | |
| 209 | |
| 210 protected: | |
| 211 typedef ObserverList<NetworkObserver> NetworkObserverList; | |
| 212 typedef std::map<std::string, NetworkObserverList*> NetworkObserverMap; | |
| 213 | |
| 214 typedef ObserverList<NetworkDeviceObserver> NetworkDeviceObserverList; | |
| 215 typedef std::map<std::string, NetworkDeviceObserverList*> | |
| 216 NetworkDeviceObserverMap; | |
| 217 | |
| 218 typedef std::map<std::string, Network*> NetworkMap; | |
| 219 typedef std::map<std::string, int> PriorityMap; | |
| 220 typedef std::map<std::string, NetworkDevice*> NetworkDeviceMap; | |
| 221 typedef std::map<std::string, const base::DictionaryValue*> NetworkOncMap; | |
| 222 typedef std::map<onc::ONCSource, | |
| 223 std::set<std::string> > NetworkSourceMap; | |
| 224 | |
| 225 struct NetworkProfile { | |
| 226 NetworkProfile(const std::string& p, NetworkProfileType t); | |
| 227 ~NetworkProfile(); | |
| 228 std::string path; | |
| 229 NetworkProfileType type; | |
| 230 typedef std::set<std::string> ServiceList; | |
| 231 ServiceList services; | |
| 232 }; | |
| 233 typedef std::list<NetworkProfile> NetworkProfileList; | |
| 234 | |
| 235 struct ConnectData { | |
| 236 ConnectData(); | |
| 237 ~ConnectData(); | |
| 238 ConnectionSecurity security; | |
| 239 std::string service_name; // For example, SSID. | |
| 240 std::string username; | |
| 241 std::string passphrase; | |
| 242 std::string otp; | |
| 243 std::string group_name; | |
| 244 std::string server_hostname; | |
| 245 std::string server_ca_cert_pem; | |
| 246 std::string client_cert_pkcs11_id; | |
| 247 EAPMethod eap_method; | |
| 248 EAPPhase2Auth eap_auth; | |
| 249 bool eap_use_system_cas; | |
| 250 std::string eap_identity; | |
| 251 std::string eap_anonymous_identity; | |
| 252 std::string psk_key; | |
| 253 bool save_credentials; | |
| 254 NetworkProfileType profile_type; | |
| 255 }; | |
| 256 | |
| 257 enum NetworkConnectStatus { | |
| 258 CONNECT_SUCCESS, | |
| 259 CONNECT_BAD_PASSPHRASE, | |
| 260 CONNECT_FAILED | |
| 261 }; | |
| 262 | |
| 263 // Return true if a profile matching |type| is loaded. | |
| 264 bool HasProfileType(NetworkProfileType type) const; | |
| 265 | |
| 266 // This will connect to a preferred network if the currently connected | |
| 267 // network is not preferred. This should be called when the active profile | |
| 268 // changes. | |
| 269 void SwitchToPreferredNetwork(); | |
| 270 | |
| 271 // Finds device by connection type. | |
| 272 const NetworkDevice* FindDeviceByType(ConnectionType type) const; | |
| 273 // Called from ConnectTo*Network. | |
| 274 void NetworkConnectStartWifi( | |
| 275 WifiNetwork* network, NetworkProfileType profile_type); | |
| 276 void NetworkConnectStartVPN(VirtualNetwork* network); | |
| 277 void NetworkConnectStart(Network* network, NetworkProfileType profile_type); | |
| 278 // Called from CallConnectToNetwork. | |
| 279 void NetworkConnectCompleted(Network* network, | |
| 280 NetworkConnectStatus status); | |
| 281 // Called from CallRequestWifiNetworkAndConnect. | |
| 282 void ConnectToWifiNetworkUsingConnectData(WifiNetwork* wifi); | |
| 283 // Called from CallRequestVirtualNetworkAndConnect. | |
| 284 void ConnectToVirtualNetworkUsingConnectData(VirtualNetwork* vpn); | |
| 285 | |
| 286 // Network list management functions. | |
| 287 void ClearActiveNetwork(ConnectionType type); | |
| 288 void UpdateActiveNetwork(Network* network); | |
| 289 void AddNetwork(Network* network); | |
| 290 void DeleteNetwork(Network* network); | |
| 291 | |
| 292 // Calls ForgetNetwork for remembered wifi and virtual networks based on id. | |
| 293 // When |if_found| is true, then it forgets networks that appear in |ids|. | |
| 294 // When |if_found| is false, it removes networks that do NOT appear in |ids|. | |
| 295 // |source| is the import source of the data. | |
| 296 void ForgetNetworksById(onc::ONCSource source, | |
| 297 std::set<std::string> ids, | |
| 298 bool if_found); | |
| 299 | |
| 300 // Checks whether |network| has meanwhile been pruned by ONC policy. If so, | |
| 301 // instructs shill to remove the network, deletes |network| and returns | |
| 302 // false. | |
| 303 bool ValidateRememberedNetwork(Network* network); | |
| 304 | |
| 305 // Adds |network| to the remembered networks data structures and returns true | |
| 306 // if ValidateRememberedNetwork(network) returns true. Returns false | |
| 307 // otherwise. | |
| 308 bool ValidateAndAddRememberedNetwork(Network* network); | |
| 309 | |
| 310 void DeleteRememberedNetwork(const std::string& service_path); | |
| 311 void ClearNetworks(); | |
| 312 void DeleteRememberedNetworks(); | |
| 313 void DeleteDevice(const std::string& device_path); | |
| 314 void DeleteDeviceFromDeviceObserversMap(const std::string& device_path); | |
| 315 | |
| 316 // Profile management functions. | |
| 317 void AddProfile(const std::string& profile_path, | |
| 318 NetworkProfileType profile_type); | |
| 319 NetworkProfile* GetProfileForType(NetworkProfileType type); | |
| 320 void SetProfileType(Network* network, NetworkProfileType type); | |
| 321 void SetProfileTypeFromPath(Network* network); | |
| 322 std::string GetProfilePath(NetworkProfileType type); | |
| 323 | |
| 324 // Notifications. | |
| 325 void NotifyNetworkProfileObservers(); | |
| 326 void NotifyNetworkManagerChanged(bool force_update); | |
| 327 void SignalNetworkManagerObservers(); | |
| 328 void NotifyNetworkChanged(const Network* network); | |
| 329 void NotifyNetworkDeviceChanged(NetworkDevice* device, PropertyIndex index); | |
| 330 void NotifyPinOperationCompleted(PinOperationError error); | |
| 331 | |
| 332 // TPM related functions. | |
| 333 void GetTpmInfo(); | |
| 334 const std::string& GetTpmSlot(); | |
| 335 const std::string& GetTpmPin(); | |
| 336 | |
| 337 // Network profile observer list. | |
| 338 ObserverList<NetworkProfileObserver> network_profile_observers_; | |
| 339 | |
| 340 // Network manager observer list. | |
| 341 ObserverList<NetworkManagerObserver> network_manager_observers_; | |
| 342 | |
| 343 // PIN operation observer list. | |
| 344 ObserverList<PinOperationObserver> pin_operation_observers_; | |
| 345 | |
| 346 // Network observer map. | |
| 347 NetworkObserverMap network_observers_; | |
| 348 | |
| 349 // Network device observer map. | |
| 350 NetworkDeviceObserverMap network_device_observers_; | |
| 351 | |
| 352 // List of profiles. | |
| 353 NetworkProfileList profile_list_; | |
| 354 | |
| 355 // A service path based map of all visible Networks. | |
| 356 NetworkMap network_map_; | |
| 357 | |
| 358 // A unique_id based map of all visible Networks. | |
| 359 NetworkMap network_unique_id_map_; | |
| 360 | |
| 361 // A service path based map of all remembered Networks. | |
| 362 NetworkMap remembered_network_map_; | |
| 363 | |
| 364 // A list of services that we are awaiting updates for. | |
| 365 PriorityMap network_update_requests_; | |
| 366 | |
| 367 // A device path based map of all NetworkDevices. | |
| 368 NetworkDeviceMap device_map_; | |
| 369 | |
| 370 // The ethernet network. | |
| 371 EthernetNetwork* ethernet_; | |
| 372 | |
| 373 // The list of available wifi networks. | |
| 374 WifiNetworkVector wifi_networks_; | |
| 375 | |
| 376 // The current connected (or connecting) wifi network. | |
| 377 WifiNetwork* active_wifi_; | |
| 378 | |
| 379 // The remembered wifi networks. | |
| 380 WifiNetworkVector remembered_wifi_networks_; | |
| 381 | |
| 382 // The list of available cellular networks. | |
| 383 CellularNetworkVector cellular_networks_; | |
| 384 | |
| 385 // The list of available wimax networks. | |
| 386 WimaxNetworkVector wimax_networks_; | |
| 387 | |
| 388 // The current connected (or connecting) cellular network. | |
| 389 CellularNetwork* active_cellular_; | |
| 390 | |
| 391 // The current connected (or connecting) Wimax network. | |
| 392 WimaxNetwork* active_wimax_; | |
| 393 | |
| 394 // The list of available virtual networks. | |
| 395 VirtualNetworkVector virtual_networks_; | |
| 396 | |
| 397 // The current connected (or connecting) virtual network. | |
| 398 VirtualNetwork* active_virtual_; | |
| 399 | |
| 400 // The remembered virtual networks. | |
| 401 VirtualNetworkVector remembered_virtual_networks_; | |
| 402 | |
| 403 // The path of the active profile (for retrieving remembered services). | |
| 404 std::string active_profile_path_; | |
| 405 | |
| 406 // The current available network devices. Bitwise flag of ConnectionTypes. | |
| 407 int available_devices_; | |
| 408 | |
| 409 // The current uninitialized network devices. Bitwise flag of ConnectionTypes. | |
| 410 int uninitialized_devices_; | |
| 411 | |
| 412 // The current enabled network devices. Bitwise flag of ConnectionTypes. | |
| 413 int enabled_devices_; | |
| 414 | |
| 415 // The current busy network devices. Bitwise flag of ConnectionTypes. | |
| 416 // Busy means device is switching from enable/disable state. | |
| 417 int busy_devices_; | |
| 418 | |
| 419 // True if we are currently scanning for wifi networks. | |
| 420 bool wifi_scanning_; | |
| 421 | |
| 422 // List of interfaces for which portal check is enabled. | |
| 423 std::string check_portal_list_; | |
| 424 | |
| 425 // True if access network library is locked. | |
| 426 bool is_locked_; | |
| 427 | |
| 428 // TPM module user slot and PIN, needed by shill to access certificates. | |
| 429 std::string tpm_slot_; | |
| 430 std::string tpm_pin_; | |
| 431 | |
| 432 // Type of pending SIM operation, SIM_OPERATION_NONE otherwise. | |
| 433 SimOperationType sim_operation_; | |
| 434 | |
| 435 private: | |
| 436 // List of networks to move to the user profile once logged in. | |
| 437 std::list<std::string> user_networks_; | |
| 438 | |
| 439 // Weak pointer factory for canceling a network change callback. | |
| 440 base::WeakPtrFactory<NetworkLibraryImplBase> notify_manager_weak_factory_; | |
| 441 | |
| 442 // Cellular plan payment time. | |
| 443 base::Time cellular_plan_payment_time_; | |
| 444 | |
| 445 // Temporary connection data for async connect calls. | |
| 446 ConnectData connect_data_; | |
| 447 | |
| 448 // Holds unique id to ONC mapping. | |
| 449 NetworkOncMap network_onc_map_; | |
| 450 | |
| 451 // Keeps track of what networks ONC has configured. This is used to weed out | |
| 452 // stray networks that shill still has on file, but are not known on the | |
| 453 // Chrome side. | |
| 454 NetworkSourceMap network_source_map_; | |
| 455 | |
| 456 DISALLOW_COPY_AND_ASSIGN(NetworkLibraryImplBase); | |
| 457 }; | |
| 458 | |
| 459 } // namespace chromeos | |
| 460 | |
| 461 #endif // CHROME_BROWSER_CHROMEOS_CROS_NETWORK_LIBRARY_IMPL_BASE_H_ | |
| OLD | NEW |