OLD | NEW |
1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 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/arc/net/arc_net_host_impl.h" | 5 #include "components/arc/net/arc_net_host_impl.h" |
6 | 6 |
7 #include <string> | 7 #include <string> |
8 #include <utility> | 8 #include <utility> |
9 #include <vector> | 9 #include <vector> |
10 | 10 |
(...skipping 10 matching lines...) Expand all Loading... |
21 #include "chromeos/network/network_state.h" | 21 #include "chromeos/network/network_state.h" |
22 #include "chromeos/network/network_state_handler.h" | 22 #include "chromeos/network/network_state_handler.h" |
23 #include "chromeos/network/network_type_pattern.h" | 23 #include "chromeos/network/network_type_pattern.h" |
24 #include "chromeos/network/network_util.h" | 24 #include "chromeos/network/network_util.h" |
25 #include "chromeos/network/onc/onc_utils.h" | 25 #include "chromeos/network/onc/onc_utils.h" |
26 #include "components/arc/arc_bridge_service.h" | 26 #include "components/arc/arc_bridge_service.h" |
27 | 27 |
28 namespace { | 28 namespace { |
29 | 29 |
30 constexpr int kGetNetworksListLimit = 100; | 30 constexpr int kGetNetworksListLimit = 100; |
31 constexpr uint32_t kScanCompletedMinInstanceVersion = 1; | |
32 constexpr uint32_t kDefaultNetworkChangedMinInstanceVersion = 2; | |
33 constexpr uint32_t kWifiEnabledStateChanged = 3; | |
34 | 31 |
35 chromeos::NetworkStateHandler* GetStateHandler() { | 32 chromeos::NetworkStateHandler* GetStateHandler() { |
36 return chromeos::NetworkHandler::Get()->network_state_handler(); | 33 return chromeos::NetworkHandler::Get()->network_state_handler(); |
37 } | 34 } |
38 | 35 |
39 chromeos::ManagedNetworkConfigurationHandler* GetManagedConfigurationHandler() { | 36 chromeos::ManagedNetworkConfigurationHandler* GetManagedConfigurationHandler() { |
40 return chromeos::NetworkHandler::Get() | 37 return chromeos::NetworkHandler::Get() |
41 ->managed_network_configuration_handler(); | 38 ->managed_network_configuration_handler(); |
42 } | 39 } |
43 | 40 |
(...skipping 256 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
300 if (observing_network_state_) { | 297 if (observing_network_state_) { |
301 GetStateHandler()->RemoveObserver(this, FROM_HERE); | 298 GetStateHandler()->RemoveObserver(this, FROM_HERE); |
302 } | 299 } |
303 } | 300 } |
304 | 301 |
305 void ArcNetHostImpl::OnInstanceReady() { | 302 void ArcNetHostImpl::OnInstanceReady() { |
306 DCHECK(thread_checker_.CalledOnValidThread()); | 303 DCHECK(thread_checker_.CalledOnValidThread()); |
307 | 304 |
308 mojom::NetHostPtr host; | 305 mojom::NetHostPtr host; |
309 binding_.Bind(MakeRequest(&host)); | 306 binding_.Bind(MakeRequest(&host)); |
310 auto* instance = arc_bridge_service()->net()->GetInstanceForMethod("Init"); | 307 auto* instance = |
| 308 ARC_GET_INSTANCE_FOR_METHOD(arc_bridge_service()->net(), Init); |
311 DCHECK(instance); | 309 DCHECK(instance); |
312 instance->Init(std::move(host)); | 310 instance->Init(std::move(host)); |
313 | 311 |
314 if (chromeos::NetworkHandler::IsInitialized()) { | 312 if (chromeos::NetworkHandler::IsInitialized()) { |
315 GetStateHandler()->AddObserver(this, FROM_HERE); | 313 GetStateHandler()->AddObserver(this, FROM_HERE); |
316 observing_network_state_ = true; | 314 observing_network_state_ = true; |
317 } | 315 } |
318 } | 316 } |
319 | 317 |
320 void ArcNetHostImpl::OnInstanceClosed() { | 318 void ArcNetHostImpl::OnInstanceClosed() { |
(...skipping 259 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
580 chromeos::network_handler::ErrorCallback()); | 578 chromeos::network_handler::ErrorCallback()); |
581 callback.Run(true); | 579 callback.Run(true); |
582 } | 580 } |
583 } | 581 } |
584 | 582 |
585 void ArcNetHostImpl::StartScan() { | 583 void ArcNetHostImpl::StartScan() { |
586 GetStateHandler()->RequestScan(); | 584 GetStateHandler()->RequestScan(); |
587 } | 585 } |
588 | 586 |
589 void ArcNetHostImpl::ScanCompleted(const chromeos::DeviceState* /*unused*/) { | 587 void ArcNetHostImpl::ScanCompleted(const chromeos::DeviceState* /*unused*/) { |
590 auto* net_instance = arc_bridge_service()->net()->GetInstanceForMethod( | 588 auto* net_instance = |
591 "ScanCompleted", kScanCompletedMinInstanceVersion); | 589 ARC_GET_INSTANCE_FOR_METHOD(arc_bridge_service()->net(), ScanCompleted); |
592 if (!net_instance) | 590 if (!net_instance) |
593 return; | 591 return; |
594 | 592 |
595 net_instance->ScanCompleted(); | 593 net_instance->ScanCompleted(); |
596 } | 594 } |
597 | 595 |
598 void ArcNetHostImpl::GetDefaultNetwork( | 596 void ArcNetHostImpl::GetDefaultNetwork( |
599 const GetDefaultNetworkCallback& callback) { | 597 const GetDefaultNetworkCallback& callback) { |
600 const chromeos::NetworkState* default_network = | 598 const chromeos::NetworkState* default_network = |
601 GetStateHandler()->DefaultNetwork(); | 599 GetStateHandler()->DefaultNetwork(); |
602 if (!default_network) { | 600 if (!default_network) { |
603 VLOG(1) << "GetDefaultNetwork: no default network"; | 601 VLOG(1) << "GetDefaultNetwork: no default network"; |
604 callback.Run(nullptr, nullptr); | 602 callback.Run(nullptr, nullptr); |
605 return; | 603 return; |
606 } | 604 } |
607 VLOG(1) << "GetDefaultNetwork: default network is " | 605 VLOG(1) << "GetDefaultNetwork: default network is " |
608 << default_network->path(); | 606 << default_network->path(); |
609 std::string user_id_hash = chromeos::LoginState::Get()->primary_user_hash(); | 607 std::string user_id_hash = chromeos::LoginState::Get()->primary_user_hash(); |
610 GetManagedConfigurationHandler()->GetProperties( | 608 GetManagedConfigurationHandler()->GetProperties( |
611 user_id_hash, default_network->path(), | 609 user_id_hash, default_network->path(), |
612 base::Bind(&GetDefaultNetworkSuccessCallback, callback), | 610 base::Bind(&GetDefaultNetworkSuccessCallback, callback), |
613 base::Bind(&GetDefaultNetworkFailureCallback, callback)); | 611 base::Bind(&GetDefaultNetworkFailureCallback, callback)); |
614 } | 612 } |
615 | 613 |
616 void ArcNetHostImpl::DefaultNetworkSuccessCallback( | 614 void ArcNetHostImpl::DefaultNetworkSuccessCallback( |
617 const std::string& service_path, | 615 const std::string& service_path, |
618 const base::DictionaryValue& dictionary) { | 616 const base::DictionaryValue& dictionary) { |
619 auto* net_instance = arc_bridge_service()->net()->GetInstanceForMethod( | 617 auto* net_instance = ARC_GET_INSTANCE_FOR_METHOD(arc_bridge_service()->net(), |
620 "DefaultNetworkChanged", kDefaultNetworkChangedMinInstanceVersion); | 618 DefaultNetworkChanged); |
621 if (!net_instance) | 619 if (!net_instance) |
622 return; | 620 return; |
623 | 621 |
624 net_instance->DefaultNetworkChanged(TranslateONCConfiguration(&dictionary), | 622 net_instance->DefaultNetworkChanged(TranslateONCConfiguration(&dictionary), |
625 TranslateONCConfiguration(&dictionary)); | 623 TranslateONCConfiguration(&dictionary)); |
626 } | 624 } |
627 | 625 |
628 void ArcNetHostImpl::DefaultNetworkChanged( | 626 void ArcNetHostImpl::DefaultNetworkChanged( |
629 const chromeos::NetworkState* network) { | 627 const chromeos::NetworkState* network) { |
630 if (!network) { | 628 if (!network) { |
631 VLOG(1) << "No default network"; | 629 VLOG(1) << "No default network"; |
632 auto* net_instance = arc_bridge_service()->net()->GetInstanceForMethod( | 630 auto* net_instance = ARC_GET_INSTANCE_FOR_METHOD( |
633 "DefaultNetworkChanged", kDefaultNetworkChangedMinInstanceVersion); | 631 arc_bridge_service()->net(), DefaultNetworkChanged); |
634 if (net_instance) | 632 if (net_instance) |
635 net_instance->DefaultNetworkChanged(nullptr, nullptr); | 633 net_instance->DefaultNetworkChanged(nullptr, nullptr); |
636 return; | 634 return; |
637 } | 635 } |
638 | 636 |
639 VLOG(1) << "New default network: " << network->path(); | 637 VLOG(1) << "New default network: " << network->path(); |
640 std::string user_id_hash = chromeos::LoginState::Get()->primary_user_hash(); | 638 std::string user_id_hash = chromeos::LoginState::Get()->primary_user_hash(); |
641 GetManagedConfigurationHandler()->GetProperties( | 639 GetManagedConfigurationHandler()->GetProperties( |
642 user_id_hash, network->path(), | 640 user_id_hash, network->path(), |
643 base::Bind(&ArcNetHostImpl::DefaultNetworkSuccessCallback, | 641 base::Bind(&ArcNetHostImpl::DefaultNetworkSuccessCallback, |
644 weak_factory_.GetWeakPtr()), | 642 weak_factory_.GetWeakPtr()), |
645 base::Bind(&DefaultNetworkFailureCallback)); | 643 base::Bind(&DefaultNetworkFailureCallback)); |
646 } | 644 } |
647 | 645 |
648 void ArcNetHostImpl::DeviceListChanged() { | 646 void ArcNetHostImpl::DeviceListChanged() { |
649 auto* net_instance = arc_bridge_service()->net()->GetInstanceForMethod( | 647 auto* net_instance = ARC_GET_INSTANCE_FOR_METHOD(arc_bridge_service()->net(), |
650 "WifiEnabledStateChanged", kWifiEnabledStateChanged); | 648 WifiEnabledStateChanged); |
651 if (!net_instance) | 649 if (!net_instance) |
652 return; | 650 return; |
653 | 651 |
654 bool is_enabled = GetStateHandler()->IsTechnologyEnabled( | 652 bool is_enabled = GetStateHandler()->IsTechnologyEnabled( |
655 chromeos::NetworkTypePattern::WiFi()); | 653 chromeos::NetworkTypePattern::WiFi()); |
656 net_instance->WifiEnabledStateChanged(is_enabled); | 654 net_instance->WifiEnabledStateChanged(is_enabled); |
657 } | 655 } |
658 | 656 |
659 void ArcNetHostImpl::OnShuttingDown() { | 657 void ArcNetHostImpl::OnShuttingDown() { |
660 DCHECK(observing_network_state_); | 658 DCHECK(observing_network_state_); |
661 GetStateHandler()->RemoveObserver(this, FROM_HERE); | 659 GetStateHandler()->RemoveObserver(this, FROM_HERE); |
662 observing_network_state_ = false; | 660 observing_network_state_ = false; |
663 } | 661 } |
664 | 662 |
665 } // namespace arc | 663 } // namespace arc |
OLD | NEW |