Merge pull request #4683 from atom/fix-select-certificate

Fix passing certificate to select-client-certificate's callback
This commit is contained in:
Cheng Zhao 2016-03-05 19:47:27 +09:00
commit 054c55a9bb

View file

@ -132,18 +132,19 @@ void OnClientCertificateSelected(
std::shared_ptr<content::ClientCertificateDelegate> delegate, std::shared_ptr<content::ClientCertificateDelegate> delegate,
mate::Arguments* args) { mate::Arguments* args) {
mate::Dictionary cert_data; mate::Dictionary cert_data;
if (!(args->Length() == 1 && args->GetNext(&cert_data))) { if (!args->GetNext(&cert_data)) {
args->ThrowError(); args->ThrowError();
return; return;
} }
std::string encoded_data; v8::Local<v8::Object> data;
cert_data.Get("data", &encoded_data); if (!cert_data.Get("data", &data))
return;
auto certs = auto certs = net::X509Certificate::CreateCertificateListFromBytes(
net::X509Certificate::CreateCertificateListFromBytes( node::Buffer::Data(data), node::Buffer::Length(data),
encoded_data.data(), encoded_data.size(),
net::X509Certificate::FORMAT_AUTO); net::X509Certificate::FORMAT_AUTO);
if (certs.size() > 0)
delegate->ContinueWithCertificate(certs[0].get()); delegate->ContinueWithCertificate(certs[0].get());
} }