| // Copyright 2014 The Chromium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #include "components/wifi_sync/network_state_helper_chromeos.h" |
| |
| #include <memory> |
| |
| #include "base/logging.h" |
| #include "chromeos/network/network_state.h" |
| #include "chromeos/network/network_state_handler.h" |
| #include "chromeos/network/network_type_pattern.h" |
| #include "components/wifi_sync/wifi_security_class.h" |
| |
| namespace wifi_sync { |
| |
| WifiCredential::CredentialSet GetWifiCredentialsForShillProfile( |
| chromeos::NetworkStateHandler* network_state_handler, |
| const std::string& shill_profile_path) { |
| DCHECK(network_state_handler); |
| |
| chromeos::NetworkStateHandler::NetworkStateList networks; |
| network_state_handler->GetNetworkListByType( |
| chromeos::NetworkTypePattern::WiFi(), |
| true /* configured_only */, |
| false /* visible_only */, |
| 0 /* unlimited result size */, |
| &networks); |
| |
| auto credentials(WifiCredential::MakeSet()); |
| for (const chromeos::NetworkState* network : networks) { |
| if (network->profile_path() != shill_profile_path) |
| continue; |
| |
| // TODO(quiche): Fill in the actual passphrase via an asynchronous |
| // call to a chromeos::NetworkConfigurationHandler instance's |
| // GetProperties method. |
| std::unique_ptr<WifiCredential> credential = WifiCredential::Create( |
| network->raw_ssid(), |
| WifiSecurityClassFromShillSecurity(network->security_class()), |
| "" /* empty passphrase */); |
| if (!credential) |
| LOG(ERROR) << "Failed to create credential"; |
| else |
| credentials.insert(*credential); |
| } |
| return credentials; |
| } |
| |
| } // namespace wifi_sync |