| 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 = GET_INSTANCE_FOR_METHOD(arc_bridge_service()->net(), Init); |
| 311 DCHECK(instance); | 308 DCHECK(instance); |
| 312 instance->Init(std::move(host)); | 309 instance->Init(std::move(host)); |
| 313 | 310 |
| 314 if (chromeos::NetworkHandler::IsInitialized()) { | 311 if (chromeos::NetworkHandler::IsInitialized()) { |
| 315 GetStateHandler()->AddObserver(this, FROM_HERE); | 312 GetStateHandler()->AddObserver(this, FROM_HERE); |
| 316 observing_network_state_ = true; | 313 observing_network_state_ = true; |
| 317 } | 314 } |
| 318 } | 315 } |
| 319 | 316 |
| 320 void ArcNetHostImpl::OnInstanceClosed() { | 317 void ArcNetHostImpl::OnInstanceClosed() { |
| (...skipping 259 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 580 chromeos::network_handler::ErrorCallback()); | 577 chromeos::network_handler::ErrorCallback()); |
| 581 callback.Run(true); | 578 callback.Run(true); |
| 582 } | 579 } |
| 583 } | 580 } |
| 584 | 581 |
| 585 void ArcNetHostImpl::StartScan() { | 582 void ArcNetHostImpl::StartScan() { |
| 586 GetStateHandler()->RequestScan(); | 583 GetStateHandler()->RequestScan(); |
| 587 } | 584 } |
| 588 | 585 |
| 589 void ArcNetHostImpl::ScanCompleted(const chromeos::DeviceState* /*unused*/) { | 586 void ArcNetHostImpl::ScanCompleted(const chromeos::DeviceState* /*unused*/) { |
| 590 auto* net_instance = arc_bridge_service()->net()->GetInstanceForMethod( | 587 auto* net_instance = |
| 591 "ScanCompleted", kScanCompletedMinInstanceVersion); | 588 GET_INSTANCE_FOR_METHOD(arc_bridge_service()->net(), ScanCompleted); |
| 592 if (!net_instance) | 589 if (!net_instance) |
| 593 return; | 590 return; |
| 594 | 591 |
| 595 net_instance->ScanCompleted(); | 592 net_instance->ScanCompleted(); |
| 596 } | 593 } |
| 597 | 594 |
| 598 void ArcNetHostImpl::GetDefaultNetwork( | 595 void ArcNetHostImpl::GetDefaultNetwork( |
| 599 const GetDefaultNetworkCallback& callback) { | 596 const GetDefaultNetworkCallback& callback) { |
| 600 const chromeos::NetworkState* default_network = | 597 const chromeos::NetworkState* default_network = |
| 601 GetStateHandler()->DefaultNetwork(); | 598 GetStateHandler()->DefaultNetwork(); |
| 602 if (!default_network) { | 599 if (!default_network) { |
| 603 VLOG(1) << "GetDefaultNetwork: no default network"; | 600 VLOG(1) << "GetDefaultNetwork: no default network"; |
| 604 callback.Run(nullptr, nullptr); | 601 callback.Run(nullptr, nullptr); |
| 605 return; | 602 return; |
| 606 } | 603 } |
| 607 VLOG(1) << "GetDefaultNetwork: default network is " | 604 VLOG(1) << "GetDefaultNetwork: default network is " |
| 608 << default_network->path(); | 605 << default_network->path(); |
| 609 std::string user_id_hash = chromeos::LoginState::Get()->primary_user_hash(); | 606 std::string user_id_hash = chromeos::LoginState::Get()->primary_user_hash(); |
| 610 GetManagedConfigurationHandler()->GetProperties( | 607 GetManagedConfigurationHandler()->GetProperties( |
| 611 user_id_hash, default_network->path(), | 608 user_id_hash, default_network->path(), |
| 612 base::Bind(&GetDefaultNetworkSuccessCallback, callback), | 609 base::Bind(&GetDefaultNetworkSuccessCallback, callback), |
| 613 base::Bind(&GetDefaultNetworkFailureCallback, callback)); | 610 base::Bind(&GetDefaultNetworkFailureCallback, callback)); |
| 614 } | 611 } |
| 615 | 612 |
| 616 void ArcNetHostImpl::DefaultNetworkSuccessCallback( | 613 void ArcNetHostImpl::DefaultNetworkSuccessCallback( |
| 617 const std::string& service_path, | 614 const std::string& service_path, |
| 618 const base::DictionaryValue& dictionary) { | 615 const base::DictionaryValue& dictionary) { |
| 619 auto* net_instance = arc_bridge_service()->net()->GetInstanceForMethod( | 616 auto* net_instance = GET_INSTANCE_FOR_METHOD(arc_bridge_service()->net(), |
| 620 "DefaultNetworkChanged", kDefaultNetworkChangedMinInstanceVersion); | 617 DefaultNetworkChanged); |
| 621 if (!net_instance) | 618 if (!net_instance) |
| 622 return; | 619 return; |
| 623 | 620 |
| 624 net_instance->DefaultNetworkChanged(TranslateONCConfiguration(&dictionary), | 621 net_instance->DefaultNetworkChanged(TranslateONCConfiguration(&dictionary), |
| 625 TranslateONCConfiguration(&dictionary)); | 622 TranslateONCConfiguration(&dictionary)); |
| 626 } | 623 } |
| 627 | 624 |
| 628 void ArcNetHostImpl::DefaultNetworkChanged( | 625 void ArcNetHostImpl::DefaultNetworkChanged( |
| 629 const chromeos::NetworkState* network) { | 626 const chromeos::NetworkState* network) { |
| 630 if (!network) { | 627 if (!network) { |
| 631 VLOG(1) << "No default network"; | 628 VLOG(1) << "No default network"; |
| 632 auto* net_instance = arc_bridge_service()->net()->GetInstanceForMethod( | 629 auto* net_instance = GET_INSTANCE_FOR_METHOD(arc_bridge_service()->net(), |
| 633 "DefaultNetworkChanged", kDefaultNetworkChangedMinInstanceVersion); | 630 DefaultNetworkChanged); |
| 634 if (net_instance) | 631 if (net_instance) |
| 635 net_instance->DefaultNetworkChanged(nullptr, nullptr); | 632 net_instance->DefaultNetworkChanged(nullptr, nullptr); |
| 636 return; | 633 return; |
| 637 } | 634 } |
| 638 | 635 |
| 639 VLOG(1) << "New default network: " << network->path(); | 636 VLOG(1) << "New default network: " << network->path(); |
| 640 std::string user_id_hash = chromeos::LoginState::Get()->primary_user_hash(); | 637 std::string user_id_hash = chromeos::LoginState::Get()->primary_user_hash(); |
| 641 GetManagedConfigurationHandler()->GetProperties( | 638 GetManagedConfigurationHandler()->GetProperties( |
| 642 user_id_hash, network->path(), | 639 user_id_hash, network->path(), |
| 643 base::Bind(&ArcNetHostImpl::DefaultNetworkSuccessCallback, | 640 base::Bind(&ArcNetHostImpl::DefaultNetworkSuccessCallback, |
| 644 weak_factory_.GetWeakPtr()), | 641 weak_factory_.GetWeakPtr()), |
| 645 base::Bind(&DefaultNetworkFailureCallback)); | 642 base::Bind(&DefaultNetworkFailureCallback)); |
| 646 } | 643 } |
| 647 | 644 |
| 648 void ArcNetHostImpl::DeviceListChanged() { | 645 void ArcNetHostImpl::DeviceListChanged() { |
| 649 auto* net_instance = arc_bridge_service()->net()->GetInstanceForMethod( | 646 auto* net_instance = GET_INSTANCE_FOR_METHOD(arc_bridge_service()->net(), |
| 650 "WifiEnabledStateChanged", kWifiEnabledStateChanged); | 647 WifiEnabledStateChanged); |
| 651 if (!net_instance) | 648 if (!net_instance) |
| 652 return; | 649 return; |
| 653 | 650 |
| 654 bool is_enabled = GetStateHandler()->IsTechnologyEnabled( | 651 bool is_enabled = GetStateHandler()->IsTechnologyEnabled( |
| 655 chromeos::NetworkTypePattern::WiFi()); | 652 chromeos::NetworkTypePattern::WiFi()); |
| 656 net_instance->WifiEnabledStateChanged(is_enabled); | 653 net_instance->WifiEnabledStateChanged(is_enabled); |
| 657 } | 654 } |
| 658 | 655 |
| 659 void ArcNetHostImpl::OnShuttingDown() { | 656 void ArcNetHostImpl::OnShuttingDown() { |
| 660 DCHECK(observing_network_state_); | 657 DCHECK(observing_network_state_); |
| 661 GetStateHandler()->RemoveObserver(this, FROM_HERE); | 658 GetStateHandler()->RemoveObserver(this, FROM_HERE); |
| 662 observing_network_state_ = false; | 659 observing_network_state_ = false; |
| 663 } | 660 } |
| 664 | 661 |
| 665 } // namespace arc | 662 } // namespace arc |
| OLD | NEW |