Use unique_ptr for passing VerifyRequestParams

This commit is contained in:
Kevin Sawicki 2017-02-08 10:34:07 -08:00
parent 70178adb6e
commit 1e581d6814
3 changed files with 19 additions and 12 deletions

View file

@ -205,9 +205,9 @@ struct Converter<net::ProxyConfig> {
}; };
template<> template<>
struct Converter<atom::VerifyRequest> { struct Converter<atom::VerifyRequestParams> {
static v8::Local<v8::Value> ToV8(v8::Isolate* isolate, static v8::Local<v8::Value> ToV8(v8::Isolate* isolate,
atom::VerifyRequest val) { atom::VerifyRequestParams val) {
mate::Dictionary dict = mate::Dictionary::CreateEmpty(isolate); mate::Dictionary dict = mate::Dictionary::CreateEmpty(isolate);
dict.Set("hostname", val.hostname); dict.Set("hostname", val.hostname);
dict.Set("certificate", val.certificate); dict.Set("certificate", val.certificate);

View file

@ -89,16 +89,23 @@ class CertVerifierRequest : public AtomCertVerifier::Request {
void OnDefaultVerificationDone(int error) { void OnDefaultVerificationDone(int error) {
error_ = error; error_ = error;
VerifyRequest request = { std::unique_ptr<VerifyRequestParams> request(new VerifyRequestParams());
params_.hostname(), request->hostname = params_.hostname();
net::ErrorToString(error), request->default_result = net::ErrorToString(error);
params_.certificate() request->certificate = params_.certificate();
};
BrowserThread::PostTask( BrowserThread::PostTask(
BrowserThread::UI, FROM_HERE, BrowserThread::UI, FROM_HERE,
base::Bind(cert_verifier_->verify_proc(), request, 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<VerifyRequestParams> request) {
verify_proc.Run(*(request.get()),
base::Bind(&CertVerifierRequest::OnResponseInUI, base::Bind(&CertVerifierRequest::OnResponseInUI,
weak_ptr_factory_.GetWeakPtr()))); weak_ptr_factory_.GetWeakPtr()));
} }
void OnResponseInUI(int result) { void OnResponseInUI(int result) {

View file

@ -16,7 +16,7 @@ namespace atom {
class AtomCTDelegate; class AtomCTDelegate;
class CertVerifierRequest; class CertVerifierRequest;
struct VerifyRequest { struct VerifyRequestParams {
std::string hostname; std::string hostname;
std::string default_result; std::string default_result;
scoped_refptr<net::X509Certificate> certificate; scoped_refptr<net::X509Certificate> certificate;
@ -27,7 +27,7 @@ class AtomCertVerifier : public net::CertVerifier {
explicit AtomCertVerifier(AtomCTDelegate* ct_delegate); explicit AtomCertVerifier(AtomCTDelegate* ct_delegate);
virtual ~AtomCertVerifier(); virtual ~AtomCertVerifier();
using VerifyProc = base::Callback<void(VerifyRequest request, using VerifyProc = base::Callback<void(const VerifyRequestParams& request,
const net::CompletionCallback&)>; const net::CompletionCallback&)>;
void SetVerifyProc(const VerifyProc& proc); void SetVerifyProc(const VerifyProc& proc);