Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(683)

Side by Side Diff: content/common/resource_messages.cc

Issue 2817033002: Plumb the net::SSLInfo to the browser process when it's using the network service. (Closed)
Patch Set: merge Created 3 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "content/common/resource_messages.h" 5 #include "content/common/resource_messages.h"
6 6
7 #include "net/base/load_timing_info.h" 7 #include "net/base/load_timing_info.h"
8 #include "net/http/http_response_headers.h" 8 #include "net/http/http_response_headers.h"
9 9
10 namespace IPC { 10 namespace IPC {
(...skipping 28 matching lines...) Expand all
39 if (has_object) 39 if (has_object)
40 *r = new net::HttpResponseHeaders(iter); 40 *r = new net::HttpResponseHeaders(iter);
41 return true; 41 return true;
42 } 42 }
43 43
44 void ParamTraits<scoped_refptr<net::HttpResponseHeaders> >::Log( 44 void ParamTraits<scoped_refptr<net::HttpResponseHeaders> >::Log(
45 const param_type& p, std::string* l) { 45 const param_type& p, std::string* l) {
46 l->append("<HttpResponseHeaders>"); 46 l->append("<HttpResponseHeaders>");
47 } 47 }
48 48
49 namespace {
50 void GetCertSize(base::PickleSizer* s, net::X509Certificate* cert) {
51 GetParamSize(s, !!cert);
52 if (cert) {
53 base::Pickle temp;
54 cert->Persist(&temp);
Ryan Sleevi 2017/04/14 01:47:38 I'll see about updating the documentation. The Pic
jam 2017/04/14 02:34:14 If the entire comment is only about version skew,
Ryan Sleevi 2017/04/14 14:53:25 It is not.
55 s->AddBytes(temp.payload_size());
56 }
57 }
58
59 void WriteCert(base::Pickle* m, net::X509Certificate* cert) {
60 WriteParam(m, !!cert);
61 if (cert)
62 cert->Persist(m);
63 }
64
65 bool ReadCert(base::PickleIterator* iter,
66 scoped_refptr<net::X509Certificate>* cert) {
67 bool has_cert = false;
68 if (!iter->ReadBool(&has_cert))
69 return false;
70 if (!has_cert)
71 return true;
72
73 *cert = net::X509Certificate::CreateFromPickle(
74 iter, net::X509Certificate::PICKLETYPE_CERTIFICATE_CHAIN_V3);
75 return !!cert->get();
76 }
77
78 } // namespace
79
80 void ParamTraits<net::SSLInfo>::GetSize(base::PickleSizer* s,
Ryan Sleevi 2017/04/14 01:47:38 This makes me nervous, because we can and do add n
jam 2017/04/14 02:34:14 Well, the default constructor runs first, so at wo
81 const param_type& p) {
82 GetParamSize(s, p.is_valid());
83 if (!p.is_valid())
84 return;
85 GetCertSize(s, p.cert.get());
86 GetCertSize(s, p.unverified_cert.get());
87 GetParamSize(s, p.cert_status);
88 GetParamSize(s, p.security_bits);
89 GetParamSize(s, p.key_exchange_group);
90 GetParamSize(s, p.connection_status);
91 GetParamSize(s, p.is_issued_by_known_root);
92 GetParamSize(s, p.pkp_bypassed);
93 GetParamSize(s, p.client_cert_sent);
94 GetParamSize(s, p.channel_id_sent);
95 GetParamSize(s, p.token_binding_negotiated);
96 GetParamSize(s, p.token_binding_key_param);
97 GetParamSize(s, p.handshake_type);
98 GetParamSize(s, p.public_key_hashes);
99 GetParamSize(s, p.pinning_failure_log);
100 GetParamSize(s, p.signed_certificate_timestamps);
101 GetParamSize(s, p.ct_compliance_details_available);
102 GetParamSize(s, p.ct_ev_policy_compliance);
103 GetParamSize(s, p.ct_cert_policy_compliance);
104 GetParamSize(s, p.ocsp_result.response_status);
105 GetParamSize(s, p.ocsp_result.revocation_status);
106 }
107
108 void ParamTraits<net::SSLInfo>::Write(base::Pickle* m, const param_type& p) {
109 WriteParam(m, p.is_valid());
110 if (!p.is_valid())
111 return;
112 WriteCert(m, p.cert.get());
113 WriteCert(m, p.unverified_cert.get());
114 WriteParam(m, p.cert_status);
115 WriteParam(m, p.security_bits);
116 WriteParam(m, p.key_exchange_group);
117 WriteParam(m, p.connection_status);
118 WriteParam(m, p.is_issued_by_known_root);
119 WriteParam(m, p.pkp_bypassed);
120 WriteParam(m, p.client_cert_sent);
121 WriteParam(m, p.channel_id_sent);
122 WriteParam(m, p.token_binding_negotiated);
123 WriteParam(m, p.token_binding_key_param);
124 WriteParam(m, p.handshake_type);
125 WriteParam(m, p.public_key_hashes);
126 WriteParam(m, p.pinning_failure_log);
127 WriteParam(m, p.signed_certificate_timestamps);
128 WriteParam(m, p.ct_compliance_details_available);
129 WriteParam(m, p.ct_ev_policy_compliance);
130 WriteParam(m, p.ct_cert_policy_compliance);
131 WriteParam(m, p.ocsp_result.response_status);
132 WriteParam(m, p.ocsp_result.revocation_status);
133 }
134
135 bool ParamTraits<net::SSLInfo>::Read(const base::Pickle* m,
136 base::PickleIterator* iter,
137 param_type* r) {
138 bool is_valid = false;
139 if (!ReadParam(m, iter, &is_valid))
140 return false;
141 if (!is_valid)
142 return true;
143 return ReadCert(iter, &r->cert) &&
144 ReadCert(iter, &r->unverified_cert) &&
145 ReadParam(m, iter, &r->cert_status) &&
146 ReadParam(m, iter, &r->security_bits) &&
147 ReadParam(m, iter, &r->key_exchange_group) &&
148 ReadParam(m, iter, &r->connection_status) &&
149 ReadParam(m, iter, &r->is_issued_by_known_root) &&
150 ReadParam(m, iter, &r->pkp_bypassed) &&
151 ReadParam(m, iter, &r->client_cert_sent) &&
152 ReadParam(m, iter, &r->channel_id_sent) &&
153 ReadParam(m, iter, &r->token_binding_negotiated) &&
154 ReadParam(m, iter, &r->token_binding_key_param) &&
155 ReadParam(m, iter, &r->handshake_type) &&
156 ReadParam(m, iter, &r->public_key_hashes) &&
157 ReadParam(m, iter, &r->signed_certificate_timestamps) &&
158 ReadParam(m, iter, &r->ct_compliance_details_available) &&
159 ReadParam(m, iter, &r->ct_ev_policy_compliance) &&
160 ReadParam(m, iter, &r->ct_cert_policy_compliance) &&
161 ReadParam(m, iter, &r->ocsp_result.response_status) &&
162 ReadParam(m, iter, &r->ocsp_result.revocation_status);
163 }
164
165 void ParamTraits<net::SSLInfo>::Log(const param_type& p, std::string* l) {
166 l->append("<SSLInfo>");
167 }
168
169 void ParamTraits<net::HashValue>::GetSize(base::PickleSizer* s,
170 const param_type& p) {
171 GetParamSize(s, p.ToString());
172 }
173
174 void ParamTraits<net::HashValue>::Write(base::Pickle* m, const param_type& p) {
175 WriteParam(m, p.ToString());
176 }
177
178 bool ParamTraits<net::HashValue>::Read(const base::Pickle* m,
179 base::PickleIterator* iter,
180 param_type* r) {
181 std::string str;
182 return ReadParam(m, iter, &str) && r->FromString(str);
183 }
184
185 void ParamTraits<net::HashValue>::Log(const param_type& p, std::string* l) {
186 l->append("<HashValue>");
187 }
188
49 void ParamTraits<storage::DataElement>::GetSize(base::PickleSizer* s, 189 void ParamTraits<storage::DataElement>::GetSize(base::PickleSizer* s,
50 const param_type& p) { 190 const param_type& p) {
51 GetParamSize(s, static_cast<int>(p.type())); 191 GetParamSize(s, static_cast<int>(p.type()));
52 switch (p.type()) { 192 switch (p.type()) {
53 case storage::DataElement::TYPE_BYTES: { 193 case storage::DataElement::TYPE_BYTES: {
54 s->AddData(static_cast<int>(p.length())); 194 s->AddData(static_cast<int>(p.length()));
55 break; 195 break;
56 } 196 }
57 case storage::DataElement::TYPE_BYTES_DESCRIPTION: { 197 case storage::DataElement::TYPE_BYTES_DESCRIPTION: {
58 GetParamSize(s, p.length()); 198 GetParamSize(s, p.length());
(...skipping 421 matching lines...) Expand 10 before | Expand all | Expand 10 after
480 return true; 620 return true;
481 } 621 }
482 622
483 void ParamTraits<scoped_refptr<net::ct::SignedCertificateTimestamp>>::Log( 623 void ParamTraits<scoped_refptr<net::ct::SignedCertificateTimestamp>>::Log(
484 const param_type& p, 624 const param_type& p,
485 std::string* l) { 625 std::string* l) {
486 l->append("<SignedCertificateTimestamp>"); 626 l->append("<SignedCertificateTimestamp>");
487 } 627 }
488 628
489 } // namespace IPC 629 } // namespace IPC
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698