| 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 |