OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 "chrome/browser/chromeos/login/helper.h" | 5 #include "chrome/browser/chromeos/login/helper.h" |
6 | 6 |
7 #include "base/bind.h" | 7 #include "base/bind.h" |
8 #include "base/command_line.h" | 8 #include "base/command_line.h" |
9 #include "base/json/json_reader.h" | 9 #include "base/json/json_reader.h" |
10 #include "base/strings/utf_string_conversions.h" | 10 #include "base/strings/utf_string_conversions.h" |
11 #include "chrome/browser/chromeos/login/startup_utils.h" | 11 #include "chrome/browser/chromeos/login/startup_utils.h" |
12 #include "chrome/browser/chromeos/login/ui/login_display_host_impl.h" | 12 #include "chrome/browser/chromeos/login/ui/login_display_host_impl.h" |
13 #include "chrome/browser/chromeos/login/ui/webui_login_view.h" | 13 #include "chrome/browser/chromeos/login/ui/webui_login_view.h" |
14 #include "chrome/browser/chromeos/profiles/profile_helper.h" | 14 #include "chrome/browser/chromeos/profiles/profile_helper.h" |
15 #include "chrome/grit/generated_resources.h" | 15 #include "chrome/grit/generated_resources.h" |
16 #include "chromeos/chromeos_switches.h" | 16 #include "chromeos/chromeos_switches.h" |
17 #include "chromeos/network/managed_network_configuration_handler.h" | 17 #include "chromeos/network/managed_network_configuration_handler.h" |
| 18 #include "chromeos/network/network_connection_handler.h" |
18 #include "chromeos/network/network_handler.h" | 19 #include "chromeos/network/network_handler.h" |
19 #include "chromeos/network/network_state.h" | 20 #include "chromeos/network/network_state.h" |
20 #include "chromeos/network/network_state_handler.h" | 21 #include "chromeos/network/network_state_handler.h" |
21 #include "components/guest_view/browser/guest_view_manager.h" | 22 #include "components/guest_view/browser/guest_view_manager.h" |
22 #include "content/public/browser/storage_partition.h" | 23 #include "content/public/browser/storage_partition.h" |
23 #include "content/public/browser/web_contents.h" | 24 #include "content/public/browser/web_contents.h" |
24 #include "extensions/browser/guest_view/web_view/web_view_guest.h" | 25 #include "extensions/browser/guest_view/web_view/web_view_guest.h" |
25 #include "third_party/cros_system_api/dbus/service_constants.h" | 26 #include "third_party/cros_system_api/dbus/service_constants.h" |
26 #include "ui/base/l10n/l10n_util.h" | 27 #include "ui/base/l10n/l10n_util.h" |
27 #include "ui/gfx/image/image_skia.h" | 28 #include "ui/gfx/image/image_skia.h" |
(...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
121 | 122 |
122 network = nsh->ConnectingNetworkByType(NetworkTypePattern::NonVirtual()); | 123 network = nsh->ConnectingNetworkByType(NetworkTypePattern::NonVirtual()); |
123 if (network) { | 124 if (network) { |
124 if (network->Matches(NetworkTypePattern::Ethernet())) | 125 if (network->Matches(NetworkTypePattern::Ethernet())) |
125 return l10n_util::GetStringUTF16(IDS_STATUSBAR_NETWORK_DEVICE_ETHERNET); | 126 return l10n_util::GetStringUTF16(IDS_STATUSBAR_NETWORK_DEVICE_ETHERNET); |
126 return base::UTF8ToUTF16(network->name()); | 127 return base::UTF8ToUTF16(network->name()); |
127 } | 128 } |
128 return base::string16(); | 129 return base::string16(); |
129 } | 130 } |
130 | 131 |
131 void NetworkStateHelper::CreateNetworkFromOnc( | 132 void NetworkStateHelper::CreateAndConnectNetworkFromOnc( |
132 const std::string& onc_spec) const { | 133 const std::string& onc_spec, |
| 134 const base::Closure& success_callback, |
| 135 const base::Closure& error_callback) const { |
133 std::string error; | 136 std::string error; |
134 scoped_ptr<base::Value> root = base::JSONReader::ReadAndReturnError( | 137 scoped_ptr<base::Value> root = base::JSONReader::ReadAndReturnError( |
135 onc_spec, base::JSON_ALLOW_TRAILING_COMMAS, nullptr, &error); | 138 onc_spec, base::JSON_ALLOW_TRAILING_COMMAS, nullptr, &error); |
136 | 139 |
137 base::DictionaryValue* toplevel_onc = nullptr; | 140 base::DictionaryValue* toplevel_onc = nullptr; |
138 if (!root || !root->GetAsDictionary(&toplevel_onc)) { | 141 if (!root || !root->GetAsDictionary(&toplevel_onc)) { |
139 LOG(ERROR) << "Invalid JSON Dictionary: " << error; | 142 LOG(ERROR) << "Invalid JSON Dictionary: " << error; |
140 return; | 143 return; |
141 } | 144 } |
142 | 145 |
143 NetworkHandler::Get()->managed_network_configuration_handler()-> | 146 NetworkHandler::Get() |
144 CreateConfiguration( | 147 ->managed_network_configuration_handler() |
| 148 ->CreateConfiguration( |
145 "", *toplevel_onc, | 149 "", *toplevel_onc, |
146 base::Bind(&NetworkStateHelper::OnCreateConfiguration, | 150 base::Bind(&NetworkStateHelper::OnCreateConfiguration, |
147 base::Unretained(this)), | 151 base::Unretained(this), success_callback, error_callback), |
148 base::Bind(&NetworkStateHelper::OnCreateConfigurationFailed, | 152 base::Bind(&NetworkStateHelper::OnCreateOrConnectNetworkFailed, |
149 base::Unretained(this))); | 153 base::Unretained(this), error_callback)); |
150 } | |
151 | |
152 void NetworkStateHelper::OnCreateConfiguration( | |
153 const std::string& service_path) const { | |
154 // Do Nothing. | |
155 } | |
156 | |
157 void NetworkStateHelper::OnCreateConfigurationFailed( | |
158 const std::string& error_name, | |
159 scoped_ptr<base::DictionaryValue> error_data) const { | |
160 LOG(ERROR) << "Failed to create network configuration: " << error_name; | |
161 } | 154 } |
162 | 155 |
163 bool NetworkStateHelper::IsConnected() const { | 156 bool NetworkStateHelper::IsConnected() const { |
164 chromeos::NetworkStateHandler* nsh = | 157 chromeos::NetworkStateHandler* nsh = |
165 chromeos::NetworkHandler::Get()->network_state_handler(); | 158 chromeos::NetworkHandler::Get()->network_state_handler(); |
166 return nsh->ConnectedNetworkByType(chromeos::NetworkTypePattern::Default()) != | 159 return nsh->ConnectedNetworkByType(chromeos::NetworkTypePattern::Default()) != |
167 nullptr; | 160 nullptr; |
168 } | 161 } |
169 | 162 |
170 bool NetworkStateHelper::IsConnecting() const { | 163 bool NetworkStateHelper::IsConnecting() const { |
171 chromeos::NetworkStateHandler* nsh = | 164 chromeos::NetworkStateHandler* nsh = |
172 chromeos::NetworkHandler::Get()->network_state_handler(); | 165 chromeos::NetworkHandler::Get()->network_state_handler(); |
173 return nsh->ConnectingNetworkByType( | 166 return nsh->ConnectingNetworkByType( |
174 chromeos::NetworkTypePattern::Default()) != nullptr; | 167 chromeos::NetworkTypePattern::Default()) != nullptr; |
175 } | 168 } |
176 | 169 |
| 170 void NetworkStateHelper::OnCreateConfiguration( |
| 171 const base::Closure& success_callback, |
| 172 const base::Closure& error_callback, |
| 173 const std::string& service_path) const { |
| 174 // Connect to the network. |
| 175 NetworkHandler::Get()->network_connection_handler()->ConnectToNetwork( |
| 176 service_path, success_callback, |
| 177 base::Bind(&NetworkStateHelper::OnCreateOrConnectNetworkFailed, |
| 178 base::Unretained(this), error_callback), |
| 179 false); |
| 180 } |
| 181 |
| 182 void NetworkStateHelper::OnCreateOrConnectNetworkFailed( |
| 183 const base::Closure& error_callback, |
| 184 const std::string& error_name, |
| 185 scoped_ptr<base::DictionaryValue> error_data) const { |
| 186 LOG(ERROR) << "Failed to create or connect to network: " << error_name; |
| 187 error_callback.Run(); |
| 188 } |
| 189 |
177 content::StoragePartition* GetSigninPartition() { | 190 content::StoragePartition* GetSigninPartition() { |
178 content::WebContents* embedder = GetLoginWebContents(); | 191 content::WebContents* embedder = GetLoginWebContents(); |
179 if (!embedder) | 192 if (!embedder) |
180 return nullptr; | 193 return nullptr; |
181 | 194 |
182 // Note the partition name must match the sign-in webview used. For now, | 195 // Note the partition name must match the sign-in webview used. For now, |
183 // this is the default unnamed, shared, in-memory partition. | 196 // this is the default unnamed, shared, in-memory partition. |
184 return GetPartition(embedder, std::string()); | 197 return GetPartition(embedder, std::string()); |
185 } | 198 } |
186 | 199 |
(...skipping 12 matching lines...) Expand all Loading... |
199 | 212 |
200 return signin_partition->GetURLRequestContext(); | 213 return signin_partition->GetURLRequestContext(); |
201 } | 214 } |
202 | 215 |
203 return ProfileHelper::GetSigninProfile()->GetRequestContext(); | 216 return ProfileHelper::GetSigninProfile()->GetRequestContext(); |
204 } | 217 } |
205 | 218 |
206 } // namespace login | 219 } // namespace login |
207 | 220 |
208 } // namespace chromeos | 221 } // namespace chromeos |
OLD | NEW |