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

Side by Side Diff: components/wifi/wifi_service_mac.mm

Issue 226883002: WiFi client for GCD bootstrapping (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 6 months 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
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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 "components/wifi/wifi_service.h" 5 #include "components/wifi/wifi_service.h"
6 6
7 #import <netinet/in.h> 7 #import <netinet/in.h>
8 #import <CoreWLAN/CoreWLAN.h> 8 #import <CoreWLAN/CoreWLAN.h>
9 #import <SystemConfiguration/SystemConfiguration.h> 9 #import <SystemConfiguration/SystemConfiguration.h>
10 10
11 #include "base/bind.h" 11 #include "base/bind.h"
12 #include "base/mac/foundation_util.h" 12 #include "base/mac/foundation_util.h"
13 #include "base/mac/scoped_cftyperef.h" 13 #include "base/mac/scoped_cftyperef.h"
14 #include "base/mac/scoped_nsobject.h" 14 #include "base/mac/scoped_nsobject.h"
15 #include "base/message_loop/message_loop.h" 15 #include "base/message_loop/message_loop.h"
16 #include "base/strings/sys_string_conversions.h" 16 #include "base/strings/sys_string_conversions.h"
17 #include "components/onc/onc_constants.h" 17 #include "components/onc/onc_constants.h"
18 #include "components/wifi/network_properties.h"
18 19
19 #if !defined(MAC_OS_X_VERSION_10_7) || \ 20 #if !defined(MAC_OS_X_VERSION_10_7) || \
20 MAC_OS_X_VERSION_MAX_ALLOWED < MAC_OS_X_VERSION_10_7 21 MAC_OS_X_VERSION_MAX_ALLOWED < MAC_OS_X_VERSION_10_7
21 22
22 // Local definitions of API added in Mac OS X 10.7 23 // Local definitions of API added in Mac OS X 10.7
23 24
24 @interface CWInterface (LionAPI) 25 @interface CWInterface (LionAPI)
25 - (BOOL)associateToNetwork:(CWNetwork*)network 26 - (BOOL)associateToNetwork:(CWNetwork*)network
26 password:(NSString*)password 27 password:(NSString*)password
27 error:(NSError**)error; 28 error:(NSError**)error;
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
74 virtual void SetProperties(const std::string& network_guid, 75 virtual void SetProperties(const std::string& network_guid,
75 scoped_ptr<base::DictionaryValue> properties, 76 scoped_ptr<base::DictionaryValue> properties,
76 std::string* error) OVERRIDE; 77 std::string* error) OVERRIDE;
77 78
78 virtual void CreateNetwork(bool shared, 79 virtual void CreateNetwork(bool shared,
79 scoped_ptr<base::DictionaryValue> properties, 80 scoped_ptr<base::DictionaryValue> properties,
80 std::string* network_guid, 81 std::string* network_guid,
81 std::string* error) OVERRIDE; 82 std::string* error) OVERRIDE;
82 83
83 virtual void GetVisibleNetworks(const std::string& network_type, 84 virtual void GetVisibleNetworks(const std::string& network_type,
84 base::ListValue* network_list) OVERRIDE; 85 base::ListValue* network_list,
86 bool include_details) OVERRIDE;
85 87
86 virtual void RequestNetworkScan() OVERRIDE; 88 virtual void RequestNetworkScan() OVERRIDE;
87 89
88 virtual void StartConnect(const std::string& network_guid, 90 virtual void StartConnect(const std::string& network_guid,
89 std::string* error) OVERRIDE; 91 std::string* error) OVERRIDE;
90 92
91 virtual void StartDisconnect(const std::string& network_guid, 93 virtual void StartDisconnect(const std::string& network_guid,
92 std::string* error) OVERRIDE; 94 std::string* error) OVERRIDE;
93 95
94 virtual void GetKeyFromSystem(const std::string& network_guid, 96 virtual void GetKeyFromSystem(const std::string& network_guid,
(...skipping 24 matching lines...) Expand all
119 return base::SysNSStringToUTF8(ssid); 121 return base::SysNSStringToUTF8(ssid);
120 } 122 }
121 123
122 // Populates |properties| from |network|. 124 // Populates |properties| from |network|.
123 void NetworkPropertiesFromCWNetwork(const CWNetwork* network, 125 void NetworkPropertiesFromCWNetwork(const CWNetwork* network,
124 NetworkProperties* properties) const; 126 NetworkProperties* properties) const;
125 127
126 // Converts |CWSecurityMode| into onc::wifi::k{WPA|WEP}* security constant. 128 // Converts |CWSecurityMode| into onc::wifi::k{WPA|WEP}* security constant.
127 std::string SecurityFromCWSecurityMode(CWSecurityMode security) const; 129 std::string SecurityFromCWSecurityMode(CWSecurityMode security) const;
128 130
129 // Converts |CWChannelBand| into WiFiService::Frequency constant. 131 // Converts |CWChannelBand| into Frequency constant.
130 Frequency FrequencyFromCWChannelBand(CWChannelBand band) const; 132 Frequency FrequencyFromCWChannelBand(CWChannelBand band) const;
131 133
132 // Gets current |onc::connection_state| for given |network_guid|. 134 // Gets current |onc::connection_state| for given |network_guid|.
133 std::string GetNetworkConnectionState(const std::string& network_guid) const; 135 std::string GetNetworkConnectionState(const std::string& network_guid) const;
134 136
135 // Updates |networks_| with the list of visible wireless networks. 137 // Updates |networks_| with the list of visible wireless networks.
136 void UpdateNetworks(); 138 void UpdateNetworks();
137 139
138 // Find network by |network_guid| and return iterator to its entry in 140 // Find network by |network_guid| and return iterator to its entry in
139 // |networks_|. 141 // |networks_|.
(...skipping 105 matching lines...) Expand 10 before | Expand all | Expand 10 after
245 network_properties_.SetWithoutPathExpansion(network_guid, 247 network_properties_.SetWithoutPathExpansion(network_guid,
246 properties.release()); 248 properties.release());
247 } 249 }
248 } 250 }
249 251
250 void WiFiServiceMac::CreateNetwork( 252 void WiFiServiceMac::CreateNetwork(
251 bool shared, 253 bool shared,
252 scoped_ptr<base::DictionaryValue> properties, 254 scoped_ptr<base::DictionaryValue> properties,
253 std::string* network_guid, 255 std::string* network_guid,
254 std::string* error) { 256 std::string* error) {
255 WiFiService::NetworkProperties network_properties; 257 NetworkProperties network_properties;
256 if (!network_properties.UpdateFromValue(*properties)) { 258 if (!network_properties.UpdateFromValue(*properties)) {
257 *error = kErrorInvalidData; 259 *error = kErrorInvalidData;
258 return; 260 return;
259 } 261 }
260 262
261 std::string guid = network_properties.ssid; 263 std::string guid = network_properties.ssid;
262 if (FindNetwork(guid) != networks_.end()) { 264 if (FindNetwork(guid) != networks_.end()) {
263 *error = kErrorInvalidData; 265 *error = kErrorInvalidData;
264 return; 266 return;
265 } 267 }
266 network_properties_.SetWithoutPathExpansion(guid, 268 network_properties_.SetWithoutPathExpansion(guid,
267 properties.release()); 269 properties.release());
268 *network_guid = guid; 270 *network_guid = guid;
269 } 271 }
270 272
271 void WiFiServiceMac::GetVisibleNetworks(const std::string& network_type, 273 void WiFiServiceMac::GetVisibleNetworks(const std::string& network_type,
272 base::ListValue* network_list) { 274 base::ListValue* network_list,
275 bool include_details) {
273 if (!network_type.empty() && 276 if (!network_type.empty() &&
274 network_type != onc::network_type::kAllTypes && 277 network_type != onc::network_type::kAllTypes &&
275 network_type != onc::network_type::kWiFi) { 278 network_type != onc::network_type::kWiFi) {
276 return; 279 return;
277 } 280 }
278 281
279 if (networks_.empty()) 282 if (networks_.empty())
280 UpdateNetworks(); 283 UpdateNetworks();
281 284
282 for (WiFiService::NetworkList::const_iterator it = networks_.begin(); 285 for (NetworkList::const_iterator it = networks_.begin();
283 it != networks_.end(); 286 it != networks_.end();
284 ++it) { 287 ++it) {
285 scoped_ptr<base::DictionaryValue> network(it->ToValue(true)); 288 scoped_ptr<base::DictionaryValue> network(it->ToValue(!include_details));
286 network_list->Append(network.release()); 289 network_list->Append(network.release());
287 } 290 }
288 } 291 }
289 292
290 void WiFiServiceMac::RequestNetworkScan() { 293 void WiFiServiceMac::RequestNetworkScan() {
291 DVLOG(1) << "*** RequestNetworkScan"; 294 DVLOG(1) << "*** RequestNetworkScan";
292 UpdateNetworks(); 295 UpdateNetworks();
293 } 296 }
294 297
295 void WiFiServiceMac::StartConnect(const std::string& network_guid, 298 void WiFiServiceMac::StartConnect(const std::string& network_guid,
(...skipping 254 matching lines...) Expand 10 before | Expand all | Expand 10 after
550 case kCWSecurityModeOpen: 553 case kCWSecurityModeOpen:
551 return onc::wifi::kNone; 554 return onc::wifi::kNone;
552 // TODO(mef): Figure out correct mapping. 555 // TODO(mef): Figure out correct mapping.
553 case kCWSecurityModeWPS: 556 case kCWSecurityModeWPS:
554 case kCWSecurityModeDynamicWEP: 557 case kCWSecurityModeDynamicWEP:
555 return onc::wifi::kWPA_EAP; 558 return onc::wifi::kWPA_EAP;
556 } 559 }
557 return onc::wifi::kWPA_EAP; 560 return onc::wifi::kWPA_EAP;
558 } 561 }
559 562
560 563 Frequency WiFiServiceMac::FrequencyFromCWChannelBand(CWChannelBand band) const {
561 WiFiService::Frequency WiFiServiceMac::FrequencyFromCWChannelBand(
562 CWChannelBand band) const {
563 return band == kCWChannelBand2GHz ? kFrequency2400 : kFrequency5000; 564 return band == kCWChannelBand2GHz ? kFrequency2400 : kFrequency5000;
564 } 565 }
565 566
566 WiFiService::NetworkList::iterator WiFiServiceMac::FindNetwork( 567 NetworkList::iterator WiFiServiceMac::FindNetwork(
567 const std::string& network_guid) { 568 const std::string& network_guid) {
568 for (NetworkList::iterator it = networks_.begin(); 569 for (NetworkList::iterator it = networks_.begin();
569 it != networks_.end(); 570 it != networks_.end();
570 ++it) { 571 ++it) {
571 if (it->guid == network_guid) 572 if (it->guid == network_guid)
572 return it; 573 return it;
573 } 574 }
574 return networks_.end(); 575 return networks_.end();
575 } 576 }
576 577
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after
627 NetworkGuidList changed_networks(1, network_guid); 628 NetworkGuidList changed_networks(1, network_guid);
628 message_loop_proxy_->PostTask( 629 message_loop_proxy_->PostTask(
629 FROM_HERE, 630 FROM_HERE,
630 base::Bind(networks_changed_observer_, changed_networks)); 631 base::Bind(networks_changed_observer_, changed_networks));
631 } 632 }
632 633
633 // static 634 // static
634 WiFiService* WiFiService::Create() { return new WiFiServiceMac(); } 635 WiFiService* WiFiService::Create() { return new WiFiServiceMac(); }
635 636
636 } // namespace wifi 637 } // namespace wifi
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698