| Index: chrome/browser/chromeos/login/helper.cc
|
| diff --git a/chrome/browser/chromeos/login/helper.cc b/chrome/browser/chromeos/login/helper.cc
|
| index 69696fcda58e15ea83a4fd2946f353c44d462dfa..9db91de50869ad8e0bd2c3bc810036f505c82660 100644
|
| --- a/chrome/browser/chromeos/login/helper.cc
|
| +++ b/chrome/browser/chromeos/login/helper.cc
|
| @@ -15,6 +15,7 @@
|
| #include "chrome/grit/generated_resources.h"
|
| #include "chromeos/chromeos_switches.h"
|
| #include "chromeos/network/managed_network_configuration_handler.h"
|
| +#include "chromeos/network/network_connection_handler.h"
|
| #include "chromeos/network/network_handler.h"
|
| #include "chromeos/network/network_state.h"
|
| #include "chromeos/network/network_state_handler.h"
|
| @@ -128,8 +129,10 @@ base::string16 NetworkStateHelper::GetCurrentNetworkName() const {
|
| return base::string16();
|
| }
|
|
|
| -void NetworkStateHelper::CreateNetworkFromOnc(
|
| - const std::string& onc_spec) const {
|
| +void NetworkStateHelper::CreateAndConnectNetworkFromOnc(
|
| + const std::string& onc_spec,
|
| + const base::Closure& success_callback,
|
| + const base::Closure& error_callback) const {
|
| std::string error;
|
| scoped_ptr<base::Value> root = base::JSONReader::ReadAndReturnError(
|
| onc_spec, base::JSON_ALLOW_TRAILING_COMMAS, nullptr, &error);
|
| @@ -140,24 +143,14 @@ void NetworkStateHelper::CreateNetworkFromOnc(
|
| return;
|
| }
|
|
|
| - NetworkHandler::Get()->managed_network_configuration_handler()->
|
| - CreateConfiguration(
|
| + NetworkHandler::Get()
|
| + ->managed_network_configuration_handler()
|
| + ->CreateConfiguration(
|
| "", *toplevel_onc,
|
| base::Bind(&NetworkStateHelper::OnCreateConfiguration,
|
| - base::Unretained(this)),
|
| - base::Bind(&NetworkStateHelper::OnCreateConfigurationFailed,
|
| - base::Unretained(this)));
|
| -}
|
| -
|
| -void NetworkStateHelper::OnCreateConfiguration(
|
| - const std::string& service_path) const {
|
| - // Do Nothing.
|
| -}
|
| -
|
| -void NetworkStateHelper::OnCreateConfigurationFailed(
|
| - const std::string& error_name,
|
| - scoped_ptr<base::DictionaryValue> error_data) const {
|
| - LOG(ERROR) << "Failed to create network configuration: " << error_name;
|
| + base::Unretained(this), success_callback, error_callback),
|
| + base::Bind(&NetworkStateHelper::OnCreateOrConnectNetworkFailed,
|
| + base::Unretained(this), error_callback));
|
| }
|
|
|
| bool NetworkStateHelper::IsConnected() const {
|
| @@ -174,6 +167,26 @@ bool NetworkStateHelper::IsConnecting() const {
|
| chromeos::NetworkTypePattern::Default()) != nullptr;
|
| }
|
|
|
| +void NetworkStateHelper::OnCreateConfiguration(
|
| + const base::Closure& success_callback,
|
| + const base::Closure& error_callback,
|
| + const std::string& service_path) const {
|
| + // Connect to the network.
|
| + NetworkHandler::Get()->network_connection_handler()->ConnectToNetwork(
|
| + service_path, success_callback,
|
| + base::Bind(&NetworkStateHelper::OnCreateOrConnectNetworkFailed,
|
| + base::Unretained(this), error_callback),
|
| + false);
|
| +}
|
| +
|
| +void NetworkStateHelper::OnCreateOrConnectNetworkFailed(
|
| + const base::Closure& error_callback,
|
| + const std::string& error_name,
|
| + scoped_ptr<base::DictionaryValue> error_data) const {
|
| + LOG(ERROR) << "Failed to create or connect to network: " << error_name;
|
| + error_callback.Run();
|
| +}
|
| +
|
| content::StoragePartition* GetSigninPartition() {
|
| content::WebContents* embedder = GetLoginWebContents();
|
| if (!embedder)
|
|
|