| OLD | NEW |
| 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/network_library.h" | 5 #include "chrome/browser/chromeos/cros/network_library.h" |
| 6 | 6 |
| 7 #include <algorithm> | 7 #include <algorithm> |
| 8 #include <map> | 8 #include <map> |
| 9 #include <set> | 9 #include <set> |
| 10 | 10 |
| (...skipping 165 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 176 } | 176 } |
| 177 | 177 |
| 178 NetworkDevice::~NetworkDevice() {} | 178 NetworkDevice::~NetworkDevice() {} |
| 179 | 179 |
| 180 void NetworkDevice::ParseInfo(const DictionaryValue& info) { | 180 void NetworkDevice::ParseInfo(const DictionaryValue& info) { |
| 181 if (device_parser_.get()) | 181 if (device_parser_.get()) |
| 182 device_parser_->UpdateDeviceFromInfo(info, this); | 182 device_parser_->UpdateDeviceFromInfo(info, this); |
| 183 } | 183 } |
| 184 | 184 |
| 185 bool NetworkDevice::UpdateStatus(const std::string& key, | 185 bool NetworkDevice::UpdateStatus(const std::string& key, |
| 186 Value* value, | 186 const Value& value, |
| 187 PropertyIndex* index) { | 187 PropertyIndex* index) { |
| 188 if (device_parser_.get()) | 188 if (device_parser_.get()) |
| 189 return device_parser_->UpdateStatus(key, value, this, index); | 189 return device_parser_->UpdateStatus(key, value, this, index); |
| 190 return false; | 190 return false; |
| 191 } | 191 } |
| 192 | 192 |
| 193 //////////////////////////////////////////////////////////////////////////////// | 193 //////////////////////////////////////////////////////////////////////////////// |
| 194 // Network | 194 // Network |
| 195 | 195 |
| 196 Network::Network(const std::string& service_path, | 196 Network::Network(const std::string& service_path, |
| (...skipping 226 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 423 ip_address_ = ipconfig.address; | 423 ip_address_ = ipconfig.address; |
| 424 break; | 424 break; |
| 425 } | 425 } |
| 426 } | 426 } |
| 427 chromeos::FreeIPConfigStatus(ipconfig_status); | 427 chromeos::FreeIPConfigStatus(ipconfig_status); |
| 428 } | 428 } |
| 429 } | 429 } |
| 430 } | 430 } |
| 431 | 431 |
| 432 bool Network::UpdateStatus(const std::string& key, | 432 bool Network::UpdateStatus(const std::string& key, |
| 433 Value* value, | 433 const Value& value, |
| 434 PropertyIndex* index) { | 434 PropertyIndex* index) { |
| 435 if (network_parser_.get()) | 435 if (network_parser_.get()) |
| 436 return network_parser_->UpdateStatus(key, value, this, index); | 436 return network_parser_->UpdateStatus(key, value, this, index); |
| 437 return false; | 437 return false; |
| 438 } | 438 } |
| 439 | 439 |
| 440 //////////////////////////////////////////////////////////////////////////////// | 440 //////////////////////////////////////////////////////////////////////////////// |
| 441 // EthernetNetwork | 441 // EthernetNetwork |
| 442 | 442 |
| 443 EthernetNetwork::EthernetNetwork(const std::string& service_path) | 443 EthernetNetwork::EthernetNetwork(const std::string& service_path) |
| (...skipping 2530 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2974 virtual NetworkIPConfigVector GetIPConfigs( | 2974 virtual NetworkIPConfigVector GetIPConfigs( |
| 2975 const std::string& device_path, | 2975 const std::string& device_path, |
| 2976 std::string* hardware_address, | 2976 std::string* hardware_address, |
| 2977 HardwareAddressFormat format) OVERRIDE; | 2977 HardwareAddressFormat format) OVERRIDE; |
| 2978 virtual void SetIPConfig(const NetworkIPConfig& ipconfig) OVERRIDE; | 2978 virtual void SetIPConfig(const NetworkIPConfig& ipconfig) OVERRIDE; |
| 2979 | 2979 |
| 2980 ////////////////////////////////////////////////////////////////////////////// | 2980 ////////////////////////////////////////////////////////////////////////////// |
| 2981 // Calbacks. | 2981 // Calbacks. |
| 2982 static void NetworkStatusChangedHandler( | 2982 static void NetworkStatusChangedHandler( |
| 2983 void* object, const char* path, const char* key, const Value* value); | 2983 void* object, const char* path, const char* key, const Value* value); |
| 2984 void UpdateNetworkStatus(const std::string& path, | 2984 void UpdateNetworkStatus( |
| 2985 const std::string& key, | 2985 const std::string& path, const std::string& key, const Value& value); |
| 2986 Value* value); | |
| 2987 | 2986 |
| 2988 static void NetworkDevicePropertyChangedHandler( | 2987 static void NetworkDevicePropertyChangedHandler( |
| 2989 void* object, const char* path, const char* key, const Value* value); | 2988 void* object, const char* path, const char* key, const Value* value); |
| 2990 void UpdateNetworkDeviceStatus( | 2989 void UpdateNetworkDeviceStatus( |
| 2991 const std::string& path, const std::string& key, Value* value); | 2990 const std::string& path, const std::string& key, const Value& value); |
| 2992 | 2991 |
| 2993 static void PinOperationCallback(void* object, | 2992 static void PinOperationCallback(void* object, |
| 2994 const char* path, | 2993 const char* path, |
| 2995 NetworkMethodErrorType error, | 2994 NetworkMethodErrorType error, |
| 2996 const char* error_message); | 2995 const char* error_message); |
| 2997 | 2996 |
| 2998 static void CellularRegisterCallback(void* object, | 2997 static void CellularRegisterCallback(void* object, |
| 2999 const char* path, | 2998 const char* path, |
| 3000 NetworkMethodErrorType error, | 2999 NetworkMethodErrorType error, |
| 3001 const char* error_message); | 3000 const char* error_message); |
| (...skipping 166 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3168 } | 3167 } |
| 3169 | 3168 |
| 3170 // static callback | 3169 // static callback |
| 3171 void NetworkLibraryImplCros::NetworkStatusChangedHandler( | 3170 void NetworkLibraryImplCros::NetworkStatusChangedHandler( |
| 3172 void* object, const char* path, const char* key, const Value* value) { | 3171 void* object, const char* path, const char* key, const Value* value) { |
| 3173 NetworkLibraryImplCros* networklib = | 3172 NetworkLibraryImplCros* networklib = |
| 3174 static_cast<NetworkLibraryImplCros*>(object); | 3173 static_cast<NetworkLibraryImplCros*>(object); |
| 3175 DCHECK(networklib); | 3174 DCHECK(networklib); |
| 3176 if (key == NULL || value == NULL || path == NULL || object == NULL) | 3175 if (key == NULL || value == NULL || path == NULL || object == NULL) |
| 3177 return; | 3176 return; |
| 3178 networklib->UpdateNetworkStatus(std::string(path), | 3177 networklib->UpdateNetworkStatus(std::string(path), std::string(key), *value); |
| 3179 std::string(key), | |
| 3180 const_cast<Value*>(value)); | |
| 3181 } | 3178 } |
| 3182 | 3179 |
| 3183 void NetworkLibraryImplCros::UpdateNetworkStatus(const std::string& path, | 3180 void NetworkLibraryImplCros::UpdateNetworkStatus( |
| 3184 const std::string& key, | 3181 const std::string& path, const std::string& key, const Value& value) { |
| 3185 Value* value) { | |
| 3186 CHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 3182 CHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
| 3187 Network* network = FindNetworkByPath(path); | 3183 Network* network = FindNetworkByPath(path); |
| 3188 if (network) { | 3184 if (network) { |
| 3189 VLOG(2) << "UpdateNetworkStatus: " << network->name() << "." << key; | 3185 VLOG(2) << "UpdateNetworkStatus: " << network->name() << "." << key; |
| 3190 bool prev_connected = network->connected(); | 3186 bool prev_connected = network->connected(); |
| 3191 if (!network->UpdateStatus(key, value, NULL)) { | 3187 if (!network->UpdateStatus(key, value, NULL)) { |
| 3192 LOG(WARNING) << "UpdateNetworkStatus: Error updating: " | 3188 LOG(WARNING) << "UpdateNetworkStatus: Error updating: " |
| 3193 << path << "." << key; | 3189 << path << "." << key; |
| 3194 } | 3190 } |
| 3195 // If we just connected, this may have been added to remembered list. | 3191 // If we just connected, this may have been added to remembered list. |
| 3196 if (!prev_connected && network->connected()) | 3192 if (!prev_connected && network->connected()) |
| 3197 RequestRememberedNetworksUpdate(); | 3193 RequestRememberedNetworksUpdate(); |
| 3198 NotifyNetworkChanged(network); | 3194 NotifyNetworkChanged(network); |
| 3199 // Anything observing the manager needs to know about any service change. | 3195 // Anything observing the manager needs to know about any service change. |
| 3200 NotifyNetworkManagerChanged(false); // Not forced. | 3196 NotifyNetworkManagerChanged(false); // Not forced. |
| 3201 } | 3197 } |
| 3202 } | 3198 } |
| 3203 | 3199 |
| 3204 // static callback | 3200 // static callback |
| 3205 void NetworkLibraryImplCros::NetworkDevicePropertyChangedHandler( | 3201 void NetworkLibraryImplCros::NetworkDevicePropertyChangedHandler( |
| 3206 void* object, const char* path, const char* key, const Value* value) { | 3202 void* object, const char* path, const char* key, const Value* value) { |
| 3207 NetworkLibraryImplCros* networklib = | 3203 NetworkLibraryImplCros* networklib = |
| 3208 static_cast<NetworkLibraryImplCros*>(object); | 3204 static_cast<NetworkLibraryImplCros*>(object); |
| 3209 DCHECK(networklib); | 3205 DCHECK(networklib); |
| 3210 if (key == NULL || value == NULL || path == NULL || object == NULL) | 3206 if (key == NULL || value == NULL || path == NULL || object == NULL) |
| 3211 return; | 3207 return; |
| 3212 networklib->UpdateNetworkDeviceStatus(std::string(path), | 3208 networklib->UpdateNetworkDeviceStatus(std::string(path), |
| 3213 std::string(key), | 3209 std::string(key), |
| 3214 const_cast<Value*>(value)); | 3210 *value); |
| 3215 } | 3211 } |
| 3216 | 3212 |
| 3217 void NetworkLibraryImplCros::UpdateNetworkDeviceStatus(const std::string& path, | 3213 void NetworkLibraryImplCros::UpdateNetworkDeviceStatus( |
| 3218 const std::string& key, | 3214 const std::string& path, const std::string& key, const Value& value) { |
| 3219 Value* value) { | |
| 3220 CHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 3215 CHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
| 3221 NetworkDevice* device = FindNetworkDeviceByPath(path); | 3216 NetworkDevice* device = FindNetworkDeviceByPath(path); |
| 3222 if (device) { | 3217 if (device) { |
| 3223 VLOG(2) << "UpdateNetworkDeviceStatus: " << device->name() << "." << key; | 3218 VLOG(2) << "UpdateNetworkDeviceStatus: " << device->name() << "." << key; |
| 3224 PropertyIndex index = PROPERTY_INDEX_UNKNOWN; | 3219 PropertyIndex index = PROPERTY_INDEX_UNKNOWN; |
| 3225 if (device->UpdateStatus(key, value, &index)) { | 3220 if (device->UpdateStatus(key, value, &index)) { |
| 3226 if (index == PROPERTY_INDEX_CELLULAR_ALLOW_ROAMING) { | 3221 if (index == PROPERTY_INDEX_CELLULAR_ALLOW_ROAMING) { |
| 3227 if (!device->data_roaming_allowed() && IsCellularAlwaysInRoaming()) { | 3222 if (!device->data_roaming_allowed() && IsCellularAlwaysInRoaming()) { |
| 3228 SetCellularDataRoamingAllowed(true); | 3223 SetCellularDataRoamingAllowed(true); |
| 3229 } else { | 3224 } else { |
| (...skipping 1427 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4657 return network_library; | 4652 return network_library; |
| 4658 } | 4653 } |
| 4659 | 4654 |
| 4660 ///////////////////////////////////////////////////////////////////////////// | 4655 ///////////////////////////////////////////////////////////////////////////// |
| 4661 | 4656 |
| 4662 } // namespace chromeos | 4657 } // namespace chromeos |
| 4663 | 4658 |
| 4664 // Allows InvokeLater without adding refcounting. This class is a Singleton and | 4659 // Allows InvokeLater without adding refcounting. This class is a Singleton and |
| 4665 // won't be deleted until its last InvokeLater is run. | 4660 // won't be deleted until its last InvokeLater is run. |
| 4666 DISABLE_RUNNABLE_METHOD_REFCOUNT(chromeos::NetworkLibraryImplBase); | 4661 DISABLE_RUNNABLE_METHOD_REFCOUNT(chromeos::NetworkLibraryImplBase); |
| OLD | NEW |