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

Side by Side Diff: extensions/common/extension_messages.cc

Issue 1977643002: Generate param traits size methods for IPC files in chrome/ (and traits it depends on). (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: fix Created 4 years, 7 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 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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 "extensions/common/extension_messages.h" 5 #include "extensions/common/extension_messages.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 8
9 #include <memory> 9 #include <memory>
10 10
(...skipping 103 matching lines...) Expand 10 before | Expand all | Expand 10 after
114 val >= Manifest::NUM_LOCATIONS) 114 val >= Manifest::NUM_LOCATIONS)
115 return false; 115 return false;
116 *p = static_cast<param_type>(val); 116 *p = static_cast<param_type>(val);
117 return true; 117 return true;
118 } 118 }
119 static void Log(const param_type& p, std::string* l) { 119 static void Log(const param_type& p, std::string* l) {
120 ParamTraits<int>::Log(static_cast<int>(p), l); 120 ParamTraits<int>::Log(static_cast<int>(p), l);
121 } 121 }
122 }; 122 };
123 123
124 void ParamTraits<URLPattern>::GetSize(base::PickleSizer* s,
125 const param_type& p) {
126 GetParamSize(s, p.valid_schemes());
127 GetParamSize(s, p.GetAsString());
128 }
129
124 void ParamTraits<URLPattern>::Write(base::Pickle* m, const param_type& p) { 130 void ParamTraits<URLPattern>::Write(base::Pickle* m, const param_type& p) {
125 WriteParam(m, p.valid_schemes()); 131 WriteParam(m, p.valid_schemes());
126 WriteParam(m, p.GetAsString()); 132 WriteParam(m, p.GetAsString());
127 } 133 }
128 134
129 bool ParamTraits<URLPattern>::Read(const base::Pickle* m, 135 bool ParamTraits<URLPattern>::Read(const base::Pickle* m,
130 base::PickleIterator* iter, 136 base::PickleIterator* iter,
131 param_type* p) { 137 param_type* p) {
132 int valid_schemes; 138 int valid_schemes;
133 std::string spec; 139 std::string spec;
134 if (!ReadParam(m, iter, &valid_schemes) || 140 if (!ReadParam(m, iter, &valid_schemes) ||
135 !ReadParam(m, iter, &spec)) 141 !ReadParam(m, iter, &spec))
136 return false; 142 return false;
137 143
138 // TODO(jstritar): We don't want the URLPattern to fail parsing when the 144 // TODO(jstritar): We don't want the URLPattern to fail parsing when the
139 // scheme is invalid. Instead, the pattern should parse but it should not 145 // scheme is invalid. Instead, the pattern should parse but it should not
140 // match the invalid patterns. We get around this by setting the valid 146 // match the invalid patterns. We get around this by setting the valid
141 // schemes after parsing the pattern. Update these method calls once we can 147 // schemes after parsing the pattern. Update these method calls once we can
142 // ignore scheme validation with URLPattern parse options. crbug.com/90544 148 // ignore scheme validation with URLPattern parse options. crbug.com/90544
143 p->SetValidSchemes(URLPattern::SCHEME_ALL); 149 p->SetValidSchemes(URLPattern::SCHEME_ALL);
144 URLPattern::ParseResult result = p->Parse(spec); 150 URLPattern::ParseResult result = p->Parse(spec);
145 p->SetValidSchemes(valid_schemes); 151 p->SetValidSchemes(valid_schemes);
146 return URLPattern::PARSE_SUCCESS == result; 152 return URLPattern::PARSE_SUCCESS == result;
147 } 153 }
148 154
149 void ParamTraits<URLPattern>::Log(const param_type& p, std::string* l) { 155 void ParamTraits<URLPattern>::Log(const param_type& p, std::string* l) {
150 LogParam(p.GetAsString(), l); 156 LogParam(p.GetAsString(), l);
151 } 157 }
152 158
159 void ParamTraits<URLPatternSet>::GetSize(base::PickleSizer* s,
160 const param_type& p) {
161 GetParamSize(s, p.patterns());
162 }
163
153 void ParamTraits<URLPatternSet>::Write(base::Pickle* m, const param_type& p) { 164 void ParamTraits<URLPatternSet>::Write(base::Pickle* m, const param_type& p) {
154 WriteParam(m, p.patterns()); 165 WriteParam(m, p.patterns());
155 } 166 }
156 167
157 bool ParamTraits<URLPatternSet>::Read(const base::Pickle* m, 168 bool ParamTraits<URLPatternSet>::Read(const base::Pickle* m,
158 base::PickleIterator* iter, 169 base::PickleIterator* iter,
159 param_type* p) { 170 param_type* p) {
160 std::set<URLPattern> patterns; 171 std::set<URLPattern> patterns;
161 if (!ReadParam(m, iter, &patterns)) 172 if (!ReadParam(m, iter, &patterns))
162 return false; 173 return false;
163 174
164 for (std::set<URLPattern>::iterator i = patterns.begin(); 175 for (std::set<URLPattern>::iterator i = patterns.begin();
165 i != patterns.end(); ++i) 176 i != patterns.end(); ++i)
166 p->AddPattern(*i); 177 p->AddPattern(*i);
167 return true; 178 return true;
168 } 179 }
169 180
170 void ParamTraits<URLPatternSet>::Log(const param_type& p, std::string* l) { 181 void ParamTraits<URLPatternSet>::Log(const param_type& p, std::string* l) {
171 LogParam(p.patterns(), l); 182 LogParam(p.patterns(), l);
172 } 183 }
173 184
185 void ParamTraits<APIPermission::ID>::GetSize(base::PickleSizer* s,
186 const param_type& p) {
187 GetParamSize(s, static_cast<int>(p));
188 }
189
174 void ParamTraits<APIPermission::ID>::Write(base::Pickle* m, 190 void ParamTraits<APIPermission::ID>::Write(base::Pickle* m,
175 const param_type& p) { 191 const param_type& p) {
176 WriteParam(m, static_cast<int>(p)); 192 WriteParam(m, static_cast<int>(p));
177 } 193 }
178 194
179 bool ParamTraits<APIPermission::ID>::Read(const base::Pickle* m, 195 bool ParamTraits<APIPermission::ID>::Read(const base::Pickle* m,
180 base::PickleIterator* iter, 196 base::PickleIterator* iter,
181 param_type* p) { 197 param_type* p) {
182 int api_id = -2; 198 int api_id = -2;
183 if (!ReadParam(m, iter, &api_id)) 199 if (!ReadParam(m, iter, &api_id))
184 return false; 200 return false;
185 201
186 *p = static_cast<APIPermission::ID>(api_id); 202 *p = static_cast<APIPermission::ID>(api_id);
187 return true; 203 return true;
188 } 204 }
189 205
190 void ParamTraits<APIPermission::ID>::Log( 206 void ParamTraits<APIPermission::ID>::Log(
191 const param_type& p, std::string* l) { 207 const param_type& p, std::string* l) {
192 LogParam(static_cast<int>(p), l); 208 LogParam(static_cast<int>(p), l);
193 } 209 }
194 210
211 void ParamTraits<APIPermissionSet>::GetSize(base::PickleSizer* s,
212 const param_type& p) {
213 APIPermissionSet::const_iterator it = p.begin();
214 const APIPermissionSet::const_iterator end = p.end();
215 GetParamSize(s, static_cast<uint32_t>(p.size()));
216 for (; it != end; ++it) {
217 GetParamSize(s, it->id());
218 it->GetSize(s);
219 }
220 }
221
195 void ParamTraits<APIPermissionSet>::Write(base::Pickle* m, 222 void ParamTraits<APIPermissionSet>::Write(base::Pickle* m,
196 const param_type& p) { 223 const param_type& p) {
197 APIPermissionSet::const_iterator it = p.begin(); 224 APIPermissionSet::const_iterator it = p.begin();
198 const APIPermissionSet::const_iterator end = p.end(); 225 const APIPermissionSet::const_iterator end = p.end();
199 WriteParam(m, static_cast<uint32_t>(p.size())); 226 WriteParam(m, static_cast<uint32_t>(p.size()));
200 for (; it != end; ++it) { 227 for (; it != end; ++it) {
201 WriteParam(m, it->id()); 228 WriteParam(m, it->id());
202 it->Write(m); 229 it->Write(m);
203 } 230 }
204 } 231 }
(...skipping 18 matching lines...) Expand all
223 r->insert(p.release()); 250 r->insert(p.release());
224 } 251 }
225 return true; 252 return true;
226 } 253 }
227 254
228 void ParamTraits<APIPermissionSet>::Log( 255 void ParamTraits<APIPermissionSet>::Log(
229 const param_type& p, std::string* l) { 256 const param_type& p, std::string* l) {
230 LogParam(p.map(), l); 257 LogParam(p.map(), l);
231 } 258 }
232 259
260 void ParamTraits<ManifestPermissionSet>::GetSize(base::PickleSizer* s,
261 const param_type& p) {
262 ManifestPermissionSet::const_iterator it = p.begin();
263 const ManifestPermissionSet::const_iterator end = p.end();
264 GetParamSize(s, static_cast<uint32_t>(p.size()));
265 for (; it != end; ++it) {
266 GetParamSize(s, it->name());
267 it->GetSize(s);
268 }
269 }
270
233 void ParamTraits<ManifestPermissionSet>::Write(base::Pickle* m, 271 void ParamTraits<ManifestPermissionSet>::Write(base::Pickle* m,
234 const param_type& p) { 272 const param_type& p) {
235 ManifestPermissionSet::const_iterator it = p.begin(); 273 ManifestPermissionSet::const_iterator it = p.begin();
236 const ManifestPermissionSet::const_iterator end = p.end(); 274 const ManifestPermissionSet::const_iterator end = p.end();
237 WriteParam(m, static_cast<uint32_t>(p.size())); 275 WriteParam(m, static_cast<uint32_t>(p.size()));
238 for (; it != end; ++it) { 276 for (; it != end; ++it) {
239 WriteParam(m, it->name()); 277 WriteParam(m, it->name());
240 it->Write(m); 278 it->Write(m);
241 } 279 }
242 } 280 }
(...skipping 17 matching lines...) Expand all
260 r->insert(p.release()); 298 r->insert(p.release());
261 } 299 }
262 return true; 300 return true;
263 } 301 }
264 302
265 void ParamTraits<ManifestPermissionSet>::Log( 303 void ParamTraits<ManifestPermissionSet>::Log(
266 const param_type& p, std::string* l) { 304 const param_type& p, std::string* l) {
267 LogParam(p.map(), l); 305 LogParam(p.map(), l);
268 } 306 }
269 307
308 void ParamTraits<HostID>::GetSize(base::PickleSizer* s, const param_type& p) {
309 GetParamSize(s, p.type());
310 GetParamSize(s, p.id());
311 }
312
270 void ParamTraits<HostID>::Write(base::Pickle* m, const param_type& p) { 313 void ParamTraits<HostID>::Write(base::Pickle* m, const param_type& p) {
271 WriteParam(m, p.type()); 314 WriteParam(m, p.type());
272 WriteParam(m, p.id()); 315 WriteParam(m, p.id());
273 } 316 }
274 317
275 bool ParamTraits<HostID>::Read(const base::Pickle* m, 318 bool ParamTraits<HostID>::Read(const base::Pickle* m,
276 base::PickleIterator* iter, 319 base::PickleIterator* iter,
277 param_type* r) { 320 param_type* r) {
278 HostID::HostType type; 321 HostID::HostType type;
279 std::string id; 322 std::string id;
280 if (!ReadParam(m, iter, &type)) 323 if (!ReadParam(m, iter, &type))
281 return false; 324 return false;
282 if (!ReadParam(m, iter, &id)) 325 if (!ReadParam(m, iter, &id))
283 return false; 326 return false;
284 *r = HostID(type, id); 327 *r = HostID(type, id);
285 return true; 328 return true;
286 } 329 }
287 330
288 void ParamTraits<HostID>::Log( 331 void ParamTraits<HostID>::Log(
289 const param_type& p, std::string* l) { 332 const param_type& p, std::string* l) {
290 LogParam(p.type(), l); 333 LogParam(p.type(), l);
291 LogParam(p.id(), l); 334 LogParam(p.id(), l);
292 } 335 }
293 336
337 void ParamTraits<ExtensionMsg_PermissionSetStruct>::GetSize(
338 base::PickleSizer* s, const param_type& p) {
339 GetParamSize(s, p.apis);
340 GetParamSize(s, p.manifest_permissions);
341 GetParamSize(s, p.explicit_hosts);
342 GetParamSize(s, p.scriptable_hosts);
343 }
344
294 void ParamTraits<ExtensionMsg_PermissionSetStruct>::Write(base::Pickle* m, 345 void ParamTraits<ExtensionMsg_PermissionSetStruct>::Write(base::Pickle* m,
295 const param_type& p) { 346 const param_type& p) {
296 WriteParam(m, p.apis); 347 WriteParam(m, p.apis);
297 WriteParam(m, p.manifest_permissions); 348 WriteParam(m, p.manifest_permissions);
298 WriteParam(m, p.explicit_hosts); 349 WriteParam(m, p.explicit_hosts);
299 WriteParam(m, p.scriptable_hosts); 350 WriteParam(m, p.scriptable_hosts);
300 } 351 }
301 352
302 bool ParamTraits<ExtensionMsg_PermissionSetStruct>::Read( 353 bool ParamTraits<ExtensionMsg_PermissionSetStruct>::Read(
303 const base::Pickle* m, 354 const base::Pickle* m,
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
337 ReadParam(m, iter, &p->active_permissions) && 388 ReadParam(m, iter, &p->active_permissions) &&
338 ReadParam(m, iter, &p->withheld_permissions); 389 ReadParam(m, iter, &p->withheld_permissions);
339 } 390 }
340 391
341 void ParamTraits<ExtensionMsg_Loaded_Params>::Log(const param_type& p, 392 void ParamTraits<ExtensionMsg_Loaded_Params>::Log(const param_type& p,
342 std::string* l) { 393 std::string* l) {
343 l->append(p.id); 394 l->append(p.id);
344 } 395 }
345 396
346 } // namespace IPC 397 } // namespace IPC
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698