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<>
struct Converter<atom::VerifyRequest> {
struct Converter<atom::VerifyRequestParams> {
static v8::Local<v8::Value> 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);

View file

@ -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<VerifyRequestParams> 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::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,
weak_ptr_factory_.GetWeakPtr())));
weak_ptr_factory_.GetWeakPtr()));
}
void OnResponseInUI(int result) {

View file

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