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

Side by Side Diff: components/wifi/wifi_service_win.cc

Issue 1917673002: Convert //components/[u-z]* from scoped_ptr to std::unique_ptr (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Build fix Created 4 years, 8 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 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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 #include <iphlpapi.h> 7 #include <iphlpapi.h>
8 #include <objbase.h> 8 #include <objbase.h>
9 #include <stddef.h> 9 #include <stddef.h>
10 #include <stdint.h> 10 #include <stdint.h>
(...skipping 180 matching lines...) Expand 10 before | Expand all | Expand 10 after
191 191
192 void GetManagedProperties(const std::string& network_guid, 192 void GetManagedProperties(const std::string& network_guid,
193 base::DictionaryValue* managed_properties, 193 base::DictionaryValue* managed_properties,
194 std::string* error) override; 194 std::string* error) override;
195 195
196 void GetState(const std::string& network_guid, 196 void GetState(const std::string& network_guid,
197 base::DictionaryValue* properties, 197 base::DictionaryValue* properties,
198 std::string* error) override; 198 std::string* error) override;
199 199
200 void SetProperties(const std::string& network_guid, 200 void SetProperties(const std::string& network_guid,
201 scoped_ptr<base::DictionaryValue> properties, 201 std::unique_ptr<base::DictionaryValue> properties,
202 std::string* error) override; 202 std::string* error) override;
203 203
204 void CreateNetwork(bool shared, 204 void CreateNetwork(bool shared,
205 scoped_ptr<base::DictionaryValue> properties, 205 std::unique_ptr<base::DictionaryValue> properties,
206 std::string* network_guid, 206 std::string* network_guid,
207 std::string* error) override; 207 std::string* error) override;
208 208
209 void GetVisibleNetworks(const std::string& network_type, 209 void GetVisibleNetworks(const std::string& network_type,
210 base::ListValue* network_list, 210 base::ListValue* network_list,
211 bool include_details) override; 211 bool include_details) override;
212 212
213 void RequestNetworkScan() override; 213 void RequestNetworkScan() override;
214 214
215 void StartConnect(const std::string& network_guid, 215 void StartConnect(const std::string& network_guid,
(...skipping 161 matching lines...) Expand 10 before | Expand all | Expand 10 after
377 DWORD Disconnect(); 377 DWORD Disconnect();
378 378
379 // Get desired connection freqency if it was set using |SetProperties|. 379 // Get desired connection freqency if it was set using |SetProperties|.
380 // Default to |kFrequencyAny|. 380 // Default to |kFrequencyAny|.
381 Frequency GetFrequencyToConnect(const std::string& network_guid) const; 381 Frequency GetFrequencyToConnect(const std::string& network_guid) const;
382 382
383 // Get DOT11_BSSID_LIST of desired BSSIDs to connect to |ssid| network on 383 // Get DOT11_BSSID_LIST of desired BSSIDs to connect to |ssid| network on
384 // given |frequency|. 384 // given |frequency|.
385 DWORD GetDesiredBssList(DOT11_SSID& ssid, 385 DWORD GetDesiredBssList(DOT11_SSID& ssid,
386 Frequency frequency, 386 Frequency frequency,
387 scoped_ptr<DOT11_BSSID_LIST>* desired_list); 387 std::unique_ptr<DOT11_BSSID_LIST>* desired_list);
388 388
389 // Normalizes |frequency_in_mhz| into one of |Frequency| values. 389 // Normalizes |frequency_in_mhz| into one of |Frequency| values.
390 Frequency GetNormalizedFrequency(int frequency_in_mhz) const; 390 Frequency GetNormalizedFrequency(int frequency_in_mhz) const;
391 391
392 // Create |profile_xml| based on |network_properties|. If |encryption_type| 392 // Create |profile_xml| based on |network_properties|. If |encryption_type|
393 // is |kEncryptionTypeAny| applies the type most suitable for parameters in 393 // is |kEncryptionTypeAny| applies the type most suitable for parameters in
394 // |network_properties|. 394 // |network_properties|.
395 bool CreateProfile(const NetworkProperties& network_properties, 395 bool CreateProfile(const NetworkProperties& network_properties,
396 EncryptionType encryption_type, 396 EncryptionType encryption_type,
397 std::string* profile_xml); 397 std::string* profile_xml);
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after
460 // Created WLAN Profiles, indexed by |network_guid|. Contains xml with TKIP 460 // Created WLAN Profiles, indexed by |network_guid|. Contains xml with TKIP
461 // encryption type saved by |CreateNetwork| if applicable. Profile has to be 461 // encryption type saved by |CreateNetwork| if applicable. Profile has to be
462 // deleted if connection fails. Implicitly created profiles have to be deleted 462 // deleted if connection fails. Implicitly created profiles have to be deleted
463 // if connection succeeds. Persist only in memory. 463 // if connection succeeds. Persist only in memory.
464 base::DictionaryValue created_profiles_; 464 base::DictionaryValue created_profiles_;
465 // Observer to get notified when network(s) have changed (e.g. connect). 465 // Observer to get notified when network(s) have changed (e.g. connect).
466 NetworkGuidListCallback networks_changed_observer_; 466 NetworkGuidListCallback networks_changed_observer_;
467 // Observer to get notified when network list has changed (scan complete). 467 // Observer to get notified when network list has changed (scan complete).
468 NetworkGuidListCallback network_list_changed_observer_; 468 NetworkGuidListCallback network_list_changed_observer_;
469 // Saved value of network location wizard show value. 469 // Saved value of network location wizard show value.
470 scoped_ptr<DWORD> saved_nw_category_wizard_; 470 std::unique_ptr<DWORD> saved_nw_category_wizard_;
471 // Task runner to post events on UI thread. 471 // Task runner to post events on UI thread.
472 scoped_refptr<base::SingleThreadTaskRunner> event_task_runner_; 472 scoped_refptr<base::SingleThreadTaskRunner> event_task_runner_;
473 // Task runner for worker tasks. 473 // Task runner for worker tasks.
474 scoped_refptr<base::SequencedTaskRunner> task_runner_; 474 scoped_refptr<base::SequencedTaskRunner> task_runner_;
475 // If |false|, then |networks_changed_observer_| is not notified. 475 // If |false|, then |networks_changed_observer_| is not notified.
476 bool enable_notify_network_changed_; 476 bool enable_notify_network_changed_;
477 // Number of attempts to check that network has connected successfully. 477 // Number of attempts to check that network has connected successfully.
478 static const int kMaxAttempts = 100; 478 static const int kMaxAttempts = 100;
479 // Delay between attempts to check that network has connected successfully. 479 // Delay between attempts to check that network has connected successfully.
480 static const int kAttemptDelayMs = 100; 480 static const int kAttemptDelayMs = 100;
(...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after
555 } 555 }
556 556
557 void WiFiServiceImpl::GetState(const std::string& network_guid, 557 void WiFiServiceImpl::GetState(const std::string& network_guid,
558 base::DictionaryValue* properties, 558 base::DictionaryValue* properties,
559 std::string* error) { 559 std::string* error) {
560 CheckError(ERROR_CALL_NOT_IMPLEMENTED, kErrorWiFiService, error); 560 CheckError(ERROR_CALL_NOT_IMPLEMENTED, kErrorWiFiService, error);
561 } 561 }
562 562
563 void WiFiServiceImpl::SetProperties( 563 void WiFiServiceImpl::SetProperties(
564 const std::string& network_guid, 564 const std::string& network_guid,
565 scoped_ptr<base::DictionaryValue> properties, 565 std::unique_ptr<base::DictionaryValue> properties,
566 std::string* error) { 566 std::string* error) {
567 // Temporary preserve WiFi properties (desired frequency, wifi password) to 567 // Temporary preserve WiFi properties (desired frequency, wifi password) to
568 // use in StartConnect. 568 // use in StartConnect.
569 DCHECK(properties.get()); 569 DCHECK(properties.get());
570 if (!properties->HasKey(onc::network_type::kWiFi)) { 570 if (!properties->HasKey(onc::network_type::kWiFi)) {
571 DVLOG(0) << "Missing WiFi properties:" << *properties; 571 DVLOG(0) << "Missing WiFi properties:" << *properties;
572 *error = kErrorWiFiService; 572 *error = kErrorWiFiService;
573 return; 573 return;
574 } 574 }
575 575
576 base::DictionaryValue* existing_properties; 576 base::DictionaryValue* existing_properties;
577 // If the network properties already exist, don't override previously set 577 // If the network properties already exist, don't override previously set
578 // properties, unless they are set in |properties|. 578 // properties, unless they are set in |properties|.
579 if (connect_properties_.GetDictionaryWithoutPathExpansion( 579 if (connect_properties_.GetDictionaryWithoutPathExpansion(
580 network_guid, &existing_properties)) { 580 network_guid, &existing_properties)) {
581 existing_properties->MergeDictionary(properties.get()); 581 existing_properties->MergeDictionary(properties.get());
582 } else { 582 } else {
583 connect_properties_.SetWithoutPathExpansion(network_guid, 583 connect_properties_.SetWithoutPathExpansion(network_guid,
584 properties.release()); 584 properties.release());
585 } 585 }
586 } 586 }
587 587
588 void WiFiServiceImpl::CreateNetwork( 588 void WiFiServiceImpl::CreateNetwork(
589 bool shared, 589 bool shared,
590 scoped_ptr<base::DictionaryValue> properties, 590 std::unique_ptr<base::DictionaryValue> properties,
591 std::string* network_guid, 591 std::string* network_guid,
592 std::string* error) { 592 std::string* error) {
593 DWORD error_code = EnsureInitialized(); 593 DWORD error_code = EnsureInitialized();
594 if (CheckError(error_code, kErrorWiFiService, error)) 594 if (CheckError(error_code, kErrorWiFiService, error))
595 return; 595 return;
596 596
597 NetworkProperties network_properties; 597 NetworkProperties network_properties;
598 if (!network_properties.UpdateFromValue(*properties)) { 598 if (!network_properties.UpdateFromValue(*properties)) {
599 CheckError(ERROR_INVALID_DATA, kErrorWiFiService, error); 599 CheckError(ERROR_INVALID_DATA, kErrorWiFiService, error);
600 return; 600 return;
(...skipping 17 matching lines...) Expand all
618 // encryption type fails. 618 // encryption type fails.
619 std::string tkip_profile_xml; 619 std::string tkip_profile_xml;
620 if (!CreateProfile(network_properties, 620 if (!CreateProfile(network_properties,
621 kEncryptionTypeTKIP, 621 kEncryptionTypeTKIP,
622 &tkip_profile_xml)) { 622 &tkip_profile_xml)) {
623 CheckError(ERROR_INVALID_DATA, kErrorWiFiService, error); 623 CheckError(ERROR_INVALID_DATA, kErrorWiFiService, error);
624 return; 624 return;
625 } 625 }
626 626
627 if (tkip_profile_xml != profile_xml) { 627 if (tkip_profile_xml != profile_xml) {
628 scoped_ptr<base::DictionaryValue> tkip_profile(new base::DictionaryValue()); 628 std::unique_ptr<base::DictionaryValue> tkip_profile(
629 new base::DictionaryValue());
629 tkip_profile->SetString(kProfileXmlKey, tkip_profile_xml); 630 tkip_profile->SetString(kProfileXmlKey, tkip_profile_xml);
630 tkip_profile->SetBoolean(kProfileSharedKey, shared); 631 tkip_profile->SetBoolean(kProfileSharedKey, shared);
631 created_profiles_.SetWithoutPathExpansion(network_properties.guid, 632 created_profiles_.SetWithoutPathExpansion(network_properties.guid,
632 tkip_profile.release()); 633 tkip_profile.release());
633 } 634 }
634 635
635 *network_guid = network_properties.guid; 636 *network_guid = network_properties.guid;
636 } 637 }
637 638
638 void WiFiServiceImpl::GetVisibleNetworks(const std::string& network_type, 639 void WiFiServiceImpl::GetVisibleNetworks(const std::string& network_type,
639 base::ListValue* network_list, 640 base::ListValue* network_list,
640 bool include_details) { 641 bool include_details) {
641 if (!network_type.empty() && 642 if (!network_type.empty() &&
642 network_type != onc::network_type::kAllTypes && 643 network_type != onc::network_type::kAllTypes &&
643 network_type != onc::network_type::kWiFi) { 644 network_type != onc::network_type::kWiFi) {
644 return; 645 return;
645 } 646 }
646 647
647 DWORD error = EnsureInitialized(); 648 DWORD error = EnsureInitialized();
648 if (error == ERROR_SUCCESS) { 649 if (error == ERROR_SUCCESS) {
649 NetworkList networks; 650 NetworkList networks;
650 error = GetVisibleNetworkList(&networks); 651 error = GetVisibleNetworkList(&networks);
651 if (error == ERROR_SUCCESS && !networks.empty()) { 652 if (error == ERROR_SUCCESS && !networks.empty()) {
652 SortNetworks(&networks); 653 SortNetworks(&networks);
653 for (NetworkList::const_iterator it = networks.begin(); 654 for (NetworkList::const_iterator it = networks.begin();
654 it != networks.end(); 655 it != networks.end();
655 ++it) { 656 ++it) {
656 scoped_ptr<base::DictionaryValue> network( 657 std::unique_ptr<base::DictionaryValue> network(
657 it->ToValue(!include_details)); 658 it->ToValue(!include_details));
658 network_list->Append(network.release()); 659 network_list->Append(network.release());
659 } 660 }
660 } 661 }
661 } 662 }
662 } 663 }
663 664
664 void WiFiServiceImpl::RequestNetworkScan() { 665 void WiFiServiceImpl::RequestNetworkScan() {
665 DWORD error = EnsureInitialized(); 666 DWORD error = EnsureInitialized();
666 if (error == ERROR_SUCCESS) { 667 if (error == ERROR_SUCCESS) {
(...skipping 476 matching lines...) Expand 10 before | Expand all | Expand 10 after
1143 const GUID& interface_guid, 1144 const GUID& interface_guid,
1144 IP_ADAPTER_INDEX_MAP* adapter_index_map) { 1145 IP_ADAPTER_INDEX_MAP* adapter_index_map) {
1145 base::string16 guid_string; 1146 base::string16 guid_string;
1146 const int kGUIDSize = 39; 1147 const int kGUIDSize = 39;
1147 ::StringFromGUID2( 1148 ::StringFromGUID2(
1148 interface_guid, base::WriteInto(&guid_string, kGUIDSize), kGUIDSize); 1149 interface_guid, base::WriteInto(&guid_string, kGUIDSize), kGUIDSize);
1149 1150
1150 ULONG buffer_length = 0; 1151 ULONG buffer_length = 0;
1151 DWORD error = ::GetInterfaceInfo(NULL, &buffer_length); 1152 DWORD error = ::GetInterfaceInfo(NULL, &buffer_length);
1152 if (error == ERROR_INSUFFICIENT_BUFFER) { 1153 if (error == ERROR_INSUFFICIENT_BUFFER) {
1153 scoped_ptr<unsigned char[]> buffer(new unsigned char[buffer_length]); 1154 std::unique_ptr<unsigned char[]> buffer(new unsigned char[buffer_length]);
1154 IP_INTERFACE_INFO* interface_info = 1155 IP_INTERFACE_INFO* interface_info =
1155 reinterpret_cast<IP_INTERFACE_INFO*>(buffer.get()); 1156 reinterpret_cast<IP_INTERFACE_INFO*>(buffer.get());
1156 error = GetInterfaceInfo(interface_info, &buffer_length); 1157 error = GetInterfaceInfo(interface_info, &buffer_length);
1157 if (error == ERROR_SUCCESS) { 1158 if (error == ERROR_SUCCESS) {
1158 for (int adapter = 0; adapter < interface_info->NumAdapters; ++adapter) { 1159 for (int adapter = 0; adapter < interface_info->NumAdapters; ++adapter) {
1159 if (base::EndsWith( 1160 if (base::EndsWith(
1160 interface_info->Adapter[adapter].Name, guid_string, 1161 interface_info->Adapter[adapter].Name, guid_string,
1161 base::CompareCase::INSENSITIVE_ASCII)) { 1162 base::CompareCase::INSENSITIVE_ASCII)) {
1162 *adapter_index_map = interface_info->Adapter[adapter]; 1163 *adapter_index_map = interface_info->Adapter[adapter];
1163 break; 1164 break;
(...skipping 364 matching lines...) Expand 10 before | Expand all | Expand 10 after
1528 if (wifi->GetInteger(onc::wifi::kFrequency, &frequency)) 1529 if (wifi->GetInteger(onc::wifi::kFrequency, &frequency))
1529 return GetNormalizedFrequency(frequency); 1530 return GetNormalizedFrequency(frequency);
1530 } 1531 }
1531 } 1532 }
1532 return kFrequencyAny; 1533 return kFrequencyAny;
1533 } 1534 }
1534 1535
1535 DWORD WiFiServiceImpl::GetDesiredBssList( 1536 DWORD WiFiServiceImpl::GetDesiredBssList(
1536 DOT11_SSID& ssid, 1537 DOT11_SSID& ssid,
1537 Frequency frequency, 1538 Frequency frequency,
1538 scoped_ptr<DOT11_BSSID_LIST>* desired_list) { 1539 std::unique_ptr<DOT11_BSSID_LIST>* desired_list) {
1539 if (client_ == NULL) { 1540 if (client_ == NULL) {
1540 NOTREACHED(); 1541 NOTREACHED();
1541 return ERROR_NOINTERFACE; 1542 return ERROR_NOINTERFACE;
1542 } 1543 }
1543 1544
1544 desired_list->reset(); 1545 desired_list->reset();
1545 1546
1546 if (frequency == kFrequencyAny) 1547 if (frequency == kFrequencyAny)
1547 return ERROR_SUCCESS; 1548 return ERROR_SUCCESS;
1548 1549
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
1581 if (bss_frequency == frequency && 1582 if (bss_frequency == frequency &&
1582 bss_entry.uLinkQuality > best_quality) { 1583 bss_entry.uLinkQuality > best_quality) {
1583 best_quality = bss_entry.uLinkQuality; 1584 best_quality = bss_entry.uLinkQuality;
1584 best_index = bss; 1585 best_index = bss;
1585 } 1586 }
1586 } 1587 }
1587 1588
1588 // If any matching BSS were found, prepare the header. 1589 // If any matching BSS were found, prepare the header.
1589 if (best_quality > 0) { 1590 if (best_quality > 0) {
1590 const WLAN_BSS_ENTRY& bss_entry(bss_list->wlanBssEntries[best_index]); 1591 const WLAN_BSS_ENTRY& bss_entry(bss_list->wlanBssEntries[best_index]);
1591 scoped_ptr<DOT11_BSSID_LIST> selected_list(new DOT11_BSSID_LIST); 1592 std::unique_ptr<DOT11_BSSID_LIST> selected_list(new DOT11_BSSID_LIST);
1592 1593
1593 selected_list->Header.Revision = DOT11_BSSID_LIST_REVISION_1; 1594 selected_list->Header.Revision = DOT11_BSSID_LIST_REVISION_1;
1594 selected_list->Header.Size = sizeof(DOT11_BSSID_LIST); 1595 selected_list->Header.Size = sizeof(DOT11_BSSID_LIST);
1595 selected_list->Header.Type = NDIS_OBJECT_TYPE_DEFAULT; 1596 selected_list->Header.Type = NDIS_OBJECT_TYPE_DEFAULT;
1596 selected_list->uNumOfEntries = 1; 1597 selected_list->uNumOfEntries = 1;
1597 selected_list->uTotalNumOfEntries = 1; 1598 selected_list->uTotalNumOfEntries = 1;
1598 std::copy(bss_entry.dot11Bssid, 1599 std::copy(bss_entry.dot11Bssid,
1599 bss_entry.dot11Bssid+sizeof(bss_entry.dot11Bssid), 1600 bss_entry.dot11Bssid+sizeof(bss_entry.dot11Bssid),
1600 selected_list->BSSIDs[0]); 1601 selected_list->BSSIDs[0]);
1601 desired_list->swap(selected_list); 1602 desired_list->swap(selected_list);
(...skipping 21 matching lines...) Expand all
1623 1624
1624 DWORD WiFiServiceImpl::Connect(const std::string& network_guid, 1625 DWORD WiFiServiceImpl::Connect(const std::string& network_guid,
1625 Frequency frequency) { 1626 Frequency frequency) {
1626 if (client_ == NULL) { 1627 if (client_ == NULL) {
1627 NOTREACHED(); 1628 NOTREACHED();
1628 return ERROR_NOINTERFACE; 1629 return ERROR_NOINTERFACE;
1629 } 1630 }
1630 1631
1631 DWORD error = ERROR_SUCCESS; 1632 DWORD error = ERROR_SUCCESS;
1632 DOT11_SSID ssid = SSIDFromGUID(network_guid); 1633 DOT11_SSID ssid = SSIDFromGUID(network_guid);
1633 scoped_ptr<DOT11_BSSID_LIST> desired_bss_list; 1634 std::unique_ptr<DOT11_BSSID_LIST> desired_bss_list;
1634 error = GetDesiredBssList(ssid, frequency, &desired_bss_list); 1635 error = GetDesiredBssList(ssid, frequency, &desired_bss_list);
1635 if (error == ERROR_SUCCESS) { 1636 if (error == ERROR_SUCCESS) {
1636 if (HaveProfile(network_guid)) { 1637 if (HaveProfile(network_guid)) {
1637 base::string16 profile_name = ProfileNameFromGUID(network_guid); 1638 base::string16 profile_name = ProfileNameFromGUID(network_guid);
1638 WLAN_CONNECTION_PARAMETERS wlan_params = { 1639 WLAN_CONNECTION_PARAMETERS wlan_params = {
1639 wlan_connection_mode_profile, 1640 wlan_connection_mode_profile,
1640 profile_name.c_str(), 1641 profile_name.c_str(),
1641 NULL, 1642 NULL,
1642 desired_bss_list.get(), 1643 desired_bss_list.get(),
1643 dot11_BSS_type_any, 1644 dot11_BSS_type_any,
1644 0}; 1645 0};
1645 error = WlanConnect_function_( 1646 error = WlanConnect_function_(
1646 client_, &interface_guid_, &wlan_params, NULL); 1647 client_, &interface_guid_, &wlan_params, NULL);
1647 } else { 1648 } else {
1648 // If network is available, but is not open security, then it cannot be 1649 // If network is available, but is not open security, then it cannot be
1649 // connected without profile, so return 'access denied' error. 1650 // connected without profile, so return 'access denied' error.
1650 scoped_ptr<base::DictionaryValue> properties (new base::DictionaryValue); 1651 std::unique_ptr<base::DictionaryValue> properties(
1652 new base::DictionaryValue);
1651 const base::DictionaryValue* wifi; 1653 const base::DictionaryValue* wifi;
1652 std::string wifi_security; 1654 std::string wifi_security;
1653 std::string error_string; 1655 std::string error_string;
1654 GetProperties(network_guid, properties.get(), &error_string); 1656 GetProperties(network_guid, properties.get(), &error_string);
1655 if (error_string.empty() && 1657 if (error_string.empty() &&
1656 properties->GetDictionary(onc::network_type::kWiFi, &wifi) && 1658 properties->GetDictionary(onc::network_type::kWiFi, &wifi) &&
1657 wifi->GetString(onc::wifi::kSecurity, &wifi_security) && 1659 wifi->GetString(onc::wifi::kSecurity, &wifi_security) &&
1658 wifi_security != onc::wifi::kSecurityNone) { 1660 wifi_security != onc::wifi::kSecurityNone) {
1659 error = ERROR_ACCESS_DENIED; 1661 error = ERROR_ACCESS_DENIED;
1660 LOG(ERROR) << error; 1662 LOG(ERROR) << error;
(...skipping 231 matching lines...) Expand 10 before | Expand all | Expand 10 after
1892 DVLOG(1) << "NotifyNetworkChanged: " << network_guid; 1894 DVLOG(1) << "NotifyNetworkChanged: " << network_guid;
1893 NetworkGuidList changed_networks(1, network_guid); 1895 NetworkGuidList changed_networks(1, network_guid);
1894 event_task_runner_->PostTask( 1896 event_task_runner_->PostTask(
1895 FROM_HERE, base::Bind(networks_changed_observer_, changed_networks)); 1897 FROM_HERE, base::Bind(networks_changed_observer_, changed_networks));
1896 } 1898 }
1897 } 1899 }
1898 1900
1899 WiFiService* WiFiService::Create() { return new WiFiServiceImpl(); } 1901 WiFiService* WiFiService::Create() { return new WiFiServiceImpl(); }
1900 1902
1901 } // namespace wifi 1903 } // namespace wifi
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698