From 1e581d68149eaa4101bcc3714d46ae3959bae531 Mon Sep 17 00:00:00 2001 From: Kevin Sawicki Date: Wed, 8 Feb 2017 10:34:07 -0800 Subject: [PATCH] Use unique_ptr for passing VerifyRequestParams --- atom/browser/api/atom_api_session.cc | 4 ++-- atom/browser/net/atom_cert_verifier.cc | 23 +++++++++++++++-------- atom/browser/net/atom_cert_verifier.h | 4 ++-- 3 files changed, 19 insertions(+), 12 deletions(-) diff --git a/atom/browser/api/atom_api_session.cc b/atom/browser/api/atom_api_session.cc index 44166b553b52..0c850888e8e7 100644 --- a/atom/browser/api/atom_api_session.cc +++ b/atom/browser/api/atom_api_session.cc @@ -205,9 +205,9 @@ struct Converter { }; template<> -struct Converter { +struct Converter { static v8::Local ToV8(v8::Isolate* isolate, - atom::VerifyRequest val) { + atom::VerifyRequestParams val) { mate::Dictionary dict = mate::Dictionary::CreateEmpty(isolate); dict.Set("hostname", val.hostname); dict.Set("certificate", val.certificate); diff --git a/atom/browser/net/atom_cert_verifier.cc b/atom/browser/net/atom_cert_verifier.cc index 7ac003eadf2c..5dee107eb36e 100644 --- a/atom/browser/net/atom_cert_verifier.cc +++ b/atom/browser/net/atom_cert_verifier.cc @@ -89,16 +89,23 @@ class CertVerifierRequest : public AtomCertVerifier::Request { void OnDefaultVerificationDone(int error) { error_ = error; - VerifyRequest request = { - params_.hostname(), - net::ErrorToString(error), - params_.certificate() - }; + std::unique_ptr request(new VerifyRequestParams()); + request->hostname = params_.hostname(); + request->default_result = net::ErrorToString(error); + request->certificate = params_.certificate(); BrowserThread::PostTask( BrowserThread::UI, FROM_HERE, - base::Bind(cert_verifier_->verify_proc(), request, - base::Bind(&CertVerifierRequest::OnResponseInUI, - weak_ptr_factory_.GetWeakPtr()))); + base::Bind(&CertVerifierRequest::OnVerifyRequestInUI, + weak_ptr_factory_.GetWeakPtr(), + cert_verifier_->verify_proc(), + base::Passed(&request))); + } + + void OnVerifyRequestInUI(const AtomCertVerifier::VerifyProc& verify_proc, + std::unique_ptr request) { + verify_proc.Run(*(request.get()), + base::Bind(&CertVerifierRequest::OnResponseInUI, + weak_ptr_factory_.GetWeakPtr())); } void OnResponseInUI(int result) { diff --git a/atom/browser/net/atom_cert_verifier.h b/atom/browser/net/atom_cert_verifier.h index b2346553b992..09fa0f2778e8 100644 --- a/atom/browser/net/atom_cert_verifier.h +++ b/atom/browser/net/atom_cert_verifier.h @@ -16,7 +16,7 @@ namespace atom { class AtomCTDelegate; class CertVerifierRequest; -struct VerifyRequest { +struct VerifyRequestParams { std::string hostname; std::string default_result; scoped_refptr certificate; @@ -27,7 +27,7 @@ class AtomCertVerifier : public net::CertVerifier { explicit AtomCertVerifier(AtomCTDelegate* ct_delegate); virtual ~AtomCertVerifier(); - using VerifyProc = base::Callback; void SetVerifyProc(const VerifyProc& proc);