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); |