| Index: chrome/browser/ui/webui/net_internals/net_internals_ui.cc
|
| diff --git a/chrome/browser/ui/webui/net_internals/net_internals_ui.cc b/chrome/browser/ui/webui/net_internals/net_internals_ui.cc
|
| index a850cbb5ee8129a21b846a3e6d3e090e856ad7e6..f396eb22623cef00402bd358758212bd33d809ee 100644
|
| --- a/chrome/browser/ui/webui/net_internals/net_internals_ui.cc
|
| +++ b/chrome/browser/ui/webui/net_internals/net_internals_ui.cc
|
| @@ -78,7 +78,9 @@
|
| #include "chrome/browser/chromeos/system/syslogs_provider.h"
|
| #include "chromeos/dbus/dbus_thread_manager.h"
|
| #include "chromeos/dbus/debug_daemon_client.h"
|
| +#include "chromeos/network/certificate_handler.h"
|
| #include "chromeos/network/onc/onc_constants.h"
|
| +#include "chromeos/network/onc/onc_utils.h"
|
| #endif
|
| #if defined(OS_WIN)
|
| #include "chrome/browser/net/service_providers_win.h"
|
| @@ -1514,19 +1516,34 @@ void NetInternalsMessageHandler::OnImportONCFile(const ListValue* list) {
|
| NOTREACHED();
|
| }
|
|
|
| + chromeos::onc::ONCSource onc_source = chromeos::onc::ONC_SOURCE_USER_IMPORT;
|
| +
|
| + scoped_ptr<base::ListValue> network_configs;
|
| + scoped_ptr<base::ListValue> certificates;
|
| std::string error;
|
| - chromeos::NetworkLibrary* cros_network =
|
| - chromeos::CrosLibrary::Get()->GetNetworkLibrary();
|
| - if (!cros_network->LoadOncNetworks(onc_blob, passcode,
|
| - chromeos::onc::ONC_SOURCE_USER_IMPORT,
|
| - NULL)) {
|
| - error = "Errors occurred during the ONC import.";
|
| + if (!chromeos::onc::ParseAndValidateOncForImport(
|
| + onc_blob, onc_source, passcode, &network_configs, &certificates)) {
|
| + error = "Errors occurred during the ONC parsing.";
|
| LOG(ERROR) << error;
|
| }
|
|
|
| - // Now that we've added the networks, we need to rescan them so they'll be
|
| - // available from the menu more immediately.
|
| - cros_network->RequestNetworkScan();
|
| + if (network_configs) {
|
| + chromeos::NetworkLibrary* network_library =
|
| + chromeos::CrosLibrary::Get()->GetNetworkLibrary();
|
| + network_library->LoadOncNetworks(*network_configs, onc_source);
|
| + // Now that we've added the networks, we need to rescan them so they'll be
|
| + // available from the menu more immediately.
|
| + network_library->RequestNetworkScan();
|
| + }
|
| +
|
| + if (certificates) {
|
| + scoped_ptr<net::CertificateList> web_trust_certs(new net::CertificateList);
|
| + if (!chromeos::CertificateHandler::Get()->ImportCertificates(
|
| + *certificates, onc_source, web_trust_certs.get())) {
|
| + error = "Some certificates couldn't be imported.";
|
| + LOG(ERROR) << error;
|
| + }
|
| + }
|
|
|
| SendJavascriptCommand("receivedONCFileParse",
|
| Value::CreateStringValue(error));
|
|
|