Chromium Code Reviews| 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 1058e076e060f205bd3f9aaabfedfb4b63a9c8d2..2bc1cb32315bb1657ebe81d72591c517d06723dc 100644 |
| --- a/chrome/browser/ui/webui/net_internals/net_internals_ui.cc |
| +++ b/chrome/browser/ui/webui/net_internals/net_internals_ui.cc |
| @@ -83,6 +83,7 @@ |
| #include "chrome/browser/chromeos/login/user_manager.h" |
| #include "chrome/browser/chromeos/net/onc_utils.h" |
| #include "chrome/browser/chromeos/system/syslogs_provider.h" |
| +#include "chrome/browser/net/nss_context.h" |
| #include "chromeos/dbus/dbus_thread_manager.h" |
| #include "chromeos/dbus/debug_daemon_client.h" |
| #include "chromeos/network/onc/onc_certificate_importer_impl.h" |
| @@ -389,6 +390,12 @@ class NetInternalsMessageHandler |
| void OnSetNetworkDebugMode(const base::ListValue* list); |
| void OnSetNetworkDebugModeCompleted(const std::string& subsystem, |
| bool succeeded); |
| + |
| + // Does ONC import once the NSSCertDatabase which should be used for importing |
|
pneubeck (no reviews)
2014/02/05 11:03:27
nit: missing commas? ..., which ... certificates,
tbarzic
2014/02/06 01:19:42
yeah, the comment does not make much sense in the
|
| + // certificates is fetched. |
| + void ImportONCFileToNSSDB(const std::string& onc_blob, |
| + const std::string& passcode, |
| + net::NSSCertDatabase* nssdb); |
| #endif |
| private: |
| @@ -1503,18 +1510,14 @@ void NetInternalsMessageHandler::OnGetSystemLog( |
| syslogs_getter_->RequestSystemLog(list); |
| } |
| -void NetInternalsMessageHandler::OnImportONCFile( |
| - const base::ListValue* list) { |
| - std::string onc_blob; |
| - std::string passcode; |
| - if (list->GetSize() != 2 || |
| - !list->GetString(0, &onc_blob) || |
| - !list->GetString(1, &passcode)) { |
| - NOTREACHED(); |
| - } |
| - |
| +void NetInternalsMessageHandler::ImportONCFileToNSSDB( |
| + const std::string& onc_blob, |
| + const std::string& passcode, |
| + net::NSSCertDatabase* nssdb) { |
| std::string error; |
| - const chromeos::User* user = chromeos::UserManager::Get()->GetActiveUser(); |
| + chromeos::User* user = chromeos::UserManager::Get()->GetUserByProfile( |
| + Profile::FromWebUI(web_ui())); |
| + |
| if (user) { |
| onc::ONCSource onc_source = onc::ONC_SOURCE_USER_IMPORT; |
| @@ -1531,21 +1534,41 @@ void NetInternalsMessageHandler::OnImportONCFile( |
| } |
| chromeos::onc::CertificateImporterImpl cert_importer; |
| - if (!cert_importer.ImportCertificates(certificates, onc_source, NULL)) |
| + if (!cert_importer.ImportCertificates(certificates, |
| + onc_source, |
| + nssdb, |
| + NULL)) { |
| error += "Some certificates couldn't be imported. "; |
| + } |
| std::string network_error; |
| chromeos::onc::ImportNetworksForUser(user, network_configs, &network_error); |
| if (!network_error.empty()) |
| error += network_error; |
| } else { |
| - error = "No active user."; |
| + error = "User not found."; |
| } |
| LOG_IF(ERROR, !error.empty()) << error; |
| SendJavascriptCommand("receivedONCFileParse", new base::StringValue(error)); |
| } |
| +void NetInternalsMessageHandler::OnImportONCFile( |
| + const base::ListValue* list) { |
| + std::string onc_blob; |
| + std::string passcode; |
| + if (list->GetSize() != 2 || |
| + !list->GetString(0, &onc_blob) || |
| + !list->GetString(1, &passcode)) { |
| + NOTREACHED(); |
| + } |
| + |
| + GetNSSCertDatabaseForProfile( |
| + Profile::FromWebUI(web_ui()), |
| + base::Bind(&NetInternalsMessageHandler::ImportONCFileToNSSDB, AsWeakPtr(), |
| + onc_blob, passcode)); |
| +} |
| + |
| void NetInternalsMessageHandler::OnStoreDebugLogs(const base::ListValue* list) { |
| DCHECK(list); |