OLD | NEW |
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 "ppapi/proxy/ppapi_param_traits.h" | 5 #include "ppapi/proxy/ppapi_param_traits.h" |
6 | 6 |
7 #include <string.h> // For memcpy | 7 #include <string.h> // For memcpy |
8 | 8 |
9 #include "ppapi/c/pp_resource.h" | 9 #include "ppapi/c/pp_resource.h" |
10 #include "ppapi/proxy/ppapi_messages.h" | 10 #include "ppapi/proxy/ppapi_messages.h" |
(...skipping 18 matching lines...) Expand all Loading... |
29 // copy constructor. | 29 // copy constructor. |
30 // | 30 // |
31 // Since we allocate the inner class when you call the default constructor and | 31 // Since we allocate the inner class when you call the default constructor and |
32 // transfer the inner class when you do operator=, the entire vector will end | 32 // transfer the inner class when you do operator=, the entire vector will end |
33 // up referring to the same inner class. Deserializing into this will just end | 33 // up referring to the same inner class. Deserializing into this will just end |
34 // up overwriting the same item over and over, since all the SerializedVars | 34 // up overwriting the same item over and over, since all the SerializedVars |
35 // will refer to the same thing. | 35 // will refer to the same thing. |
36 // | 36 // |
37 // The solution is to make a new object for each deserialized item, and then | 37 // The solution is to make a new object for each deserialized item, and then |
38 // add it to the vector one at a time. | 38 // add it to the vector one at a time. |
39 template<typename T> | 39 template <typename T> |
40 bool ReadVectorWithoutCopy(const Message* m, | 40 bool ReadVectorWithoutCopy(const Message* m, |
41 PickleIterator* iter, | 41 base::PickleIterator* iter, |
42 std::vector<T>* output) { | 42 std::vector<T>* output) { |
43 // This part is just a copy of the the default ParamTraits vector Read(). | 43 // This part is just a copy of the the default ParamTraits vector Read(). |
44 int size; | 44 int size; |
45 // ReadLength() checks for < 0 itself. | 45 // ReadLength() checks for < 0 itself. |
46 if (!iter->ReadLength(&size)) | 46 if (!iter->ReadLength(&size)) |
47 return false; | 47 return false; |
48 // Resizing beforehand is not safe, see BUG 1006367 for details. | 48 // Resizing beforehand is not safe, see BUG 1006367 for details. |
49 if (INT_MAX / sizeof(T) <= static_cast<size_t>(size)) | 49 if (INT_MAX / sizeof(T) <= static_cast<size_t>(size)) |
50 return false; | 50 return false; |
51 | 51 |
(...skipping 22 matching lines...) Expand all Loading... |
74 | 74 |
75 // PP_Bool --------------------------------------------------------------------- | 75 // PP_Bool --------------------------------------------------------------------- |
76 | 76 |
77 // static | 77 // static |
78 void ParamTraits<PP_Bool>::Write(Message* m, const param_type& p) { | 78 void ParamTraits<PP_Bool>::Write(Message* m, const param_type& p) { |
79 ParamTraits<bool>::Write(m, PP_ToBool(p)); | 79 ParamTraits<bool>::Write(m, PP_ToBool(p)); |
80 } | 80 } |
81 | 81 |
82 // static | 82 // static |
83 bool ParamTraits<PP_Bool>::Read(const Message* m, | 83 bool ParamTraits<PP_Bool>::Read(const Message* m, |
84 PickleIterator* iter, | 84 base::PickleIterator* iter, |
85 param_type* r) { | 85 param_type* r) { |
86 // We specifically want to be strict here about what types of input we accept, | 86 // We specifically want to be strict here about what types of input we accept, |
87 // which ParamTraits<bool> does for us. We don't want to deserialize "2" into | 87 // which ParamTraits<bool> does for us. We don't want to deserialize "2" into |
88 // a PP_Bool, for example. | 88 // a PP_Bool, for example. |
89 bool result = false; | 89 bool result = false; |
90 if (!ParamTraits<bool>::Read(m, iter, &result)) | 90 if (!ParamTraits<bool>::Read(m, iter, &result)) |
91 return false; | 91 return false; |
92 *r = PP_FromBool(result); | 92 *r = PP_FromBool(result); |
93 return true; | 93 return true; |
94 } | 94 } |
95 | 95 |
96 // static | 96 // static |
97 void ParamTraits<PP_Bool>::Log(const param_type& p, std::string* l) { | 97 void ParamTraits<PP_Bool>::Log(const param_type& p, std::string* l) { |
98 } | 98 } |
99 | 99 |
100 // PP_KeyInformation ------------------------------------------------------- | 100 // PP_KeyInformation ------------------------------------------------------- |
101 | 101 |
102 // static | 102 // static |
103 void ParamTraits<PP_KeyInformation>::Write(Message* m, const param_type& p) { | 103 void ParamTraits<PP_KeyInformation>::Write(Message* m, const param_type& p) { |
104 WriteParam(m, p.key_id_size); | 104 WriteParam(m, p.key_id_size); |
105 m->WriteBytes(p.key_id, static_cast<int>(p.key_id_size)); | 105 m->WriteBytes(p.key_id, static_cast<int>(p.key_id_size)); |
106 WriteParam(m, p.key_status); | 106 WriteParam(m, p.key_status); |
107 WriteParam(m, p.system_code); | 107 WriteParam(m, p.system_code); |
108 } | 108 } |
109 | 109 |
110 // static | 110 // static |
111 bool ParamTraits<PP_KeyInformation>::Read(const Message* m, | 111 bool ParamTraits<PP_KeyInformation>::Read(const Message* m, |
112 PickleIterator* iter, | 112 base::PickleIterator* iter, |
113 param_type* p) { | 113 param_type* p) { |
114 uint32_t size; | 114 uint32_t size; |
115 if (!ReadParam(m, iter, &size)) | 115 if (!ReadParam(m, iter, &size)) |
116 return false; | 116 return false; |
117 if (size > sizeof(p->key_id)) | 117 if (size > sizeof(p->key_id)) |
118 return false; | 118 return false; |
119 p->key_id_size = size; | 119 p->key_id_size = size; |
120 | 120 |
121 const char* data; | 121 const char* data; |
122 if (!iter->ReadBytes(&data, size)) | 122 if (!iter->ReadBytes(&data, size)) |
(...skipping 24 matching lines...) Expand all Loading... |
147 | 147 |
148 // static | 148 // static |
149 void ParamTraits<PP_NetAddress_Private>::Write(Message* m, | 149 void ParamTraits<PP_NetAddress_Private>::Write(Message* m, |
150 const param_type& p) { | 150 const param_type& p) { |
151 WriteParam(m, p.size); | 151 WriteParam(m, p.size); |
152 m->WriteBytes(p.data, static_cast<int>(p.size)); | 152 m->WriteBytes(p.data, static_cast<int>(p.size)); |
153 } | 153 } |
154 | 154 |
155 // static | 155 // static |
156 bool ParamTraits<PP_NetAddress_Private>::Read(const Message* m, | 156 bool ParamTraits<PP_NetAddress_Private>::Read(const Message* m, |
157 PickleIterator* iter, | 157 base::PickleIterator* iter, |
158 param_type* p) { | 158 param_type* p) { |
159 uint16 size; | 159 uint16 size; |
160 if (!ReadParam(m, iter, &size)) | 160 if (!ReadParam(m, iter, &size)) |
161 return false; | 161 return false; |
162 if (size > sizeof(p->data)) | 162 if (size > sizeof(p->data)) |
163 return false; | 163 return false; |
164 p->size = size; | 164 p->size = size; |
165 | 165 |
166 const char* data; | 166 const char* data; |
167 if (!iter->ReadBytes(&data, size)) | 167 if (!iter->ReadBytes(&data, size)) |
(...skipping 14 matching lines...) Expand all Loading... |
182 | 182 |
183 // static | 183 // static |
184 void ParamTraits<ppapi::HostResource>::Write(Message* m, | 184 void ParamTraits<ppapi::HostResource>::Write(Message* m, |
185 const param_type& p) { | 185 const param_type& p) { |
186 ParamTraits<PP_Instance>::Write(m, p.instance()); | 186 ParamTraits<PP_Instance>::Write(m, p.instance()); |
187 ParamTraits<PP_Resource>::Write(m, p.host_resource()); | 187 ParamTraits<PP_Resource>::Write(m, p.host_resource()); |
188 } | 188 } |
189 | 189 |
190 // static | 190 // static |
191 bool ParamTraits<ppapi::HostResource>::Read(const Message* m, | 191 bool ParamTraits<ppapi::HostResource>::Read(const Message* m, |
192 PickleIterator* iter, | 192 base::PickleIterator* iter, |
193 param_type* r) { | 193 param_type* r) { |
194 PP_Instance instance; | 194 PP_Instance instance; |
195 PP_Resource resource; | 195 PP_Resource resource; |
196 if (!ParamTraits<PP_Instance>::Read(m, iter, &instance) || | 196 if (!ParamTraits<PP_Instance>::Read(m, iter, &instance) || |
197 !ParamTraits<PP_Resource>::Read(m, iter, &resource)) | 197 !ParamTraits<PP_Resource>::Read(m, iter, &resource)) |
198 return false; | 198 return false; |
199 r->SetHostResource(instance, resource); | 199 r->SetHostResource(instance, resource); |
200 return true; | 200 return true; |
201 } | 201 } |
202 | 202 |
203 // static | 203 // static |
204 void ParamTraits<ppapi::HostResource>::Log(const param_type& p, | 204 void ParamTraits<ppapi::HostResource>::Log(const param_type& p, |
205 std::string* l) { | 205 std::string* l) { |
206 } | 206 } |
207 | 207 |
208 // SerializedVar --------------------------------------------------------------- | 208 // SerializedVar --------------------------------------------------------------- |
209 | 209 |
210 // static | 210 // static |
211 void ParamTraits<ppapi::proxy::SerializedVar>::Write(Message* m, | 211 void ParamTraits<ppapi::proxy::SerializedVar>::Write(Message* m, |
212 const param_type& p) { | 212 const param_type& p) { |
213 p.WriteToMessage(m); | 213 p.WriteToMessage(m); |
214 } | 214 } |
215 | 215 |
216 // static | 216 // static |
217 bool ParamTraits<ppapi::proxy::SerializedVar>::Read(const Message* m, | 217 bool ParamTraits<ppapi::proxy::SerializedVar>::Read(const Message* m, |
218 PickleIterator* iter, | 218 base::PickleIterator* iter, |
219 param_type* r) { | 219 param_type* r) { |
220 return r->ReadFromMessage(m, iter); | 220 return r->ReadFromMessage(m, iter); |
221 } | 221 } |
222 | 222 |
223 // static | 223 // static |
224 void ParamTraits<ppapi::proxy::SerializedVar>::Log(const param_type& p, | 224 void ParamTraits<ppapi::proxy::SerializedVar>::Log(const param_type& p, |
225 std::string* l) { | 225 std::string* l) { |
226 } | 226 } |
227 | 227 |
228 // std::vector<SerializedVar> -------------------------------------------------- | 228 // std::vector<SerializedVar> -------------------------------------------------- |
229 | 229 |
230 void ParamTraits< std::vector<ppapi::proxy::SerializedVar> >::Write( | 230 void ParamTraits< std::vector<ppapi::proxy::SerializedVar> >::Write( |
231 Message* m, | 231 Message* m, |
232 const param_type& p) { | 232 const param_type& p) { |
233 WriteVectorWithoutCopy(m, p); | 233 WriteVectorWithoutCopy(m, p); |
234 } | 234 } |
235 | 235 |
236 // static | 236 // static |
237 bool ParamTraits< std::vector<ppapi::proxy::SerializedVar> >::Read( | 237 bool ParamTraits<std::vector<ppapi::proxy::SerializedVar>>::Read( |
238 const Message* m, | 238 const Message* m, |
239 PickleIterator* iter, | 239 base::PickleIterator* iter, |
240 param_type* r) { | 240 param_type* r) { |
241 return ReadVectorWithoutCopy(m, iter, r); | 241 return ReadVectorWithoutCopy(m, iter, r); |
242 } | 242 } |
243 | 243 |
244 // static | 244 // static |
245 void ParamTraits< std::vector<ppapi::proxy::SerializedVar> >::Log( | 245 void ParamTraits< std::vector<ppapi::proxy::SerializedVar> >::Log( |
246 const param_type& p, | 246 const param_type& p, |
247 std::string* l) { | 247 std::string* l) { |
248 } | 248 } |
249 | 249 |
250 // ppapi::PpapiPermissions ----------------------------------------------------- | 250 // ppapi::PpapiPermissions ----------------------------------------------------- |
251 | 251 |
252 void ParamTraits<ppapi::PpapiPermissions>::Write(Message* m, | 252 void ParamTraits<ppapi::PpapiPermissions>::Write(Message* m, |
253 const param_type& p) { | 253 const param_type& p) { |
254 ParamTraits<uint32_t>::Write(m, p.GetBits()); | 254 ParamTraits<uint32_t>::Write(m, p.GetBits()); |
255 } | 255 } |
256 | 256 |
257 // static | 257 // static |
258 bool ParamTraits<ppapi::PpapiPermissions>::Read(const Message* m, | 258 bool ParamTraits<ppapi::PpapiPermissions>::Read(const Message* m, |
259 PickleIterator* iter, | 259 base::PickleIterator* iter, |
260 param_type* r) { | 260 param_type* r) { |
261 uint32_t bits; | 261 uint32_t bits; |
262 if (!ParamTraits<uint32_t>::Read(m, iter, &bits)) | 262 if (!ParamTraits<uint32_t>::Read(m, iter, &bits)) |
263 return false; | 263 return false; |
264 *r = ppapi::PpapiPermissions(bits); | 264 *r = ppapi::PpapiPermissions(bits); |
265 return true; | 265 return true; |
266 } | 266 } |
267 | 267 |
268 // static | 268 // static |
269 void ParamTraits<ppapi::PpapiPermissions>::Log(const param_type& p, | 269 void ParamTraits<ppapi::PpapiPermissions>::Log(const param_type& p, |
(...skipping 14 matching lines...) Expand all Loading... |
284 case ppapi::proxy::SerializedHandle::FILE: | 284 case ppapi::proxy::SerializedHandle::FILE: |
285 ParamTraits<IPC::PlatformFileForTransit>::Write(m, p.descriptor()); | 285 ParamTraits<IPC::PlatformFileForTransit>::Write(m, p.descriptor()); |
286 break; | 286 break; |
287 case ppapi::proxy::SerializedHandle::INVALID: | 287 case ppapi::proxy::SerializedHandle::INVALID: |
288 break; | 288 break; |
289 // No default so the compiler will warn on new types. | 289 // No default so the compiler will warn on new types. |
290 } | 290 } |
291 } | 291 } |
292 | 292 |
293 // static | 293 // static |
294 bool ParamTraits<ppapi::proxy::SerializedHandle>::Read(const Message* m, | 294 bool ParamTraits<ppapi::proxy::SerializedHandle>::Read( |
295 PickleIterator* iter, | 295 const Message* m, |
296 param_type* r) { | 296 base::PickleIterator* iter, |
| 297 param_type* r) { |
297 ppapi::proxy::SerializedHandle::Header header; | 298 ppapi::proxy::SerializedHandle::Header header; |
298 if (!ppapi::proxy::SerializedHandle::ReadHeader(iter, &header)) | 299 if (!ppapi::proxy::SerializedHandle::ReadHeader(iter, &header)) |
299 return false; | 300 return false; |
300 switch (header.type) { | 301 switch (header.type) { |
301 case ppapi::proxy::SerializedHandle::SHARED_MEMORY: { | 302 case ppapi::proxy::SerializedHandle::SHARED_MEMORY: { |
302 base::SharedMemoryHandle handle; | 303 base::SharedMemoryHandle handle; |
303 if (ParamTraits<base::SharedMemoryHandle>::Read(m, iter, &handle)) { | 304 if (ParamTraits<base::SharedMemoryHandle>::Read(m, iter, &handle)) { |
304 r->set_shmem(handle, header.size); | 305 r->set_shmem(handle, header.size); |
305 return true; | 306 return true; |
306 } | 307 } |
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
344 ParamTraits<ppapi::HostResource>::Write(m, p.resource); | 345 ParamTraits<ppapi::HostResource>::Write(m, p.resource); |
345 ParamTraits<int64_t>::Write(m, p.bytes_sent); | 346 ParamTraits<int64_t>::Write(m, p.bytes_sent); |
346 ParamTraits<int64_t>::Write(m, p.total_bytes_to_be_sent); | 347 ParamTraits<int64_t>::Write(m, p.total_bytes_to_be_sent); |
347 ParamTraits<int64_t>::Write(m, p.bytes_received); | 348 ParamTraits<int64_t>::Write(m, p.bytes_received); |
348 ParamTraits<int64_t>::Write(m, p.total_bytes_to_be_received); | 349 ParamTraits<int64_t>::Write(m, p.total_bytes_to_be_received); |
349 } | 350 } |
350 | 351 |
351 // static | 352 // static |
352 bool ParamTraits<ppapi::proxy::PPBURLLoader_UpdateProgress_Params>::Read( | 353 bool ParamTraits<ppapi::proxy::PPBURLLoader_UpdateProgress_Params>::Read( |
353 const Message* m, | 354 const Message* m, |
354 PickleIterator* iter, | 355 base::PickleIterator* iter, |
355 param_type* r) { | 356 param_type* r) { |
356 return | 357 return |
357 ParamTraits<PP_Instance>::Read(m, iter, &r->instance) && | 358 ParamTraits<PP_Instance>::Read(m, iter, &r->instance) && |
358 ParamTraits<ppapi::HostResource>::Read(m, iter, &r->resource) && | 359 ParamTraits<ppapi::HostResource>::Read(m, iter, &r->resource) && |
359 ParamTraits<int64_t>::Read(m, iter, &r->bytes_sent) && | 360 ParamTraits<int64_t>::Read(m, iter, &r->bytes_sent) && |
360 ParamTraits<int64_t>::Read(m, iter, &r->total_bytes_to_be_sent) && | 361 ParamTraits<int64_t>::Read(m, iter, &r->total_bytes_to_be_sent) && |
361 ParamTraits<int64_t>::Read(m, iter, &r->bytes_received) && | 362 ParamTraits<int64_t>::Read(m, iter, &r->bytes_received) && |
362 ParamTraits<int64_t>::Read(m, iter, &r->total_bytes_to_be_received); | 363 ParamTraits<int64_t>::Read(m, iter, &r->total_bytes_to_be_received); |
363 } | 364 } |
364 | 365 |
(...skipping 25 matching lines...) Expand all Loading... |
390 ParamTraits<float>::Write(m, p.transformation[2][1]); | 391 ParamTraits<float>::Write(m, p.transformation[2][1]); |
391 ParamTraits<float>::Write(m, p.transformation[2][2]); | 392 ParamTraits<float>::Write(m, p.transformation[2][2]); |
392 ParamTraits<PP_Bool>::Write(m, p.allow_subpixel_aa); | 393 ParamTraits<PP_Bool>::Write(m, p.allow_subpixel_aa); |
393 ParamTraits<std::vector<uint16_t> >::Write(m, p.glyph_indices); | 394 ParamTraits<std::vector<uint16_t> >::Write(m, p.glyph_indices); |
394 ParamTraits<std::vector<PP_Point> >::Write(m, p.glyph_advances); | 395 ParamTraits<std::vector<PP_Point> >::Write(m, p.glyph_advances); |
395 } | 396 } |
396 | 397 |
397 // static | 398 // static |
398 bool ParamTraits<ppapi::proxy::PPBFlash_DrawGlyphs_Params>::Read( | 399 bool ParamTraits<ppapi::proxy::PPBFlash_DrawGlyphs_Params>::Read( |
399 const Message* m, | 400 const Message* m, |
400 PickleIterator* iter, | 401 base::PickleIterator* iter, |
401 param_type* r) { | 402 param_type* r) { |
402 return | 403 return |
403 ParamTraits<PP_Instance>::Read(m, iter, &r->instance) && | 404 ParamTraits<PP_Instance>::Read(m, iter, &r->instance) && |
404 ParamTraits<ppapi::HostResource>::Read(m, iter, &r->image_data) && | 405 ParamTraits<ppapi::HostResource>::Read(m, iter, &r->image_data) && |
405 ParamTraits<ppapi::proxy::SerializedFontDescription>::Read(m, iter, | 406 ParamTraits<ppapi::proxy::SerializedFontDescription>::Read(m, iter, |
406 &r->font_desc) && | 407 &r->font_desc) && |
407 ParamTraits<uint32_t>::Read(m, iter, &r->color) && | 408 ParamTraits<uint32_t>::Read(m, iter, &r->color) && |
408 ParamTraits<PP_Point>::Read(m, iter, &r->position) && | 409 ParamTraits<PP_Point>::Read(m, iter, &r->position) && |
409 ParamTraits<PP_Rect>::Read(m, iter, &r->clip) && | 410 ParamTraits<PP_Rect>::Read(m, iter, &r->clip) && |
410 ParamTraits<float>::Read(m, iter, &r->transformation[0][0]) && | 411 ParamTraits<float>::Read(m, iter, &r->transformation[0][0]) && |
(...skipping 20 matching lines...) Expand all Loading... |
431 // SerializedDirEntry ---------------------------------------------------------- | 432 // SerializedDirEntry ---------------------------------------------------------- |
432 | 433 |
433 // static | 434 // static |
434 void ParamTraits<ppapi::proxy::SerializedDirEntry>::Write(Message* m, | 435 void ParamTraits<ppapi::proxy::SerializedDirEntry>::Write(Message* m, |
435 const param_type& p) { | 436 const param_type& p) { |
436 ParamTraits<std::string>::Write(m, p.name); | 437 ParamTraits<std::string>::Write(m, p.name); |
437 ParamTraits<bool>::Write(m, p.is_dir); | 438 ParamTraits<bool>::Write(m, p.is_dir); |
438 } | 439 } |
439 | 440 |
440 // static | 441 // static |
441 bool ParamTraits<ppapi::proxy::SerializedDirEntry>::Read(const Message* m, | 442 bool ParamTraits<ppapi::proxy::SerializedDirEntry>::Read( |
442 PickleIterator* iter, | 443 const Message* m, |
443 param_type* r) { | 444 base::PickleIterator* iter, |
| 445 param_type* r) { |
444 return ParamTraits<std::string>::Read(m, iter, &r->name) && | 446 return ParamTraits<std::string>::Read(m, iter, &r->name) && |
445 ParamTraits<bool>::Read(m, iter, &r->is_dir); | 447 ParamTraits<bool>::Read(m, iter, &r->is_dir); |
446 } | 448 } |
447 | 449 |
448 // static | 450 // static |
449 void ParamTraits<ppapi::proxy::SerializedDirEntry>::Log(const param_type& p, | 451 void ParamTraits<ppapi::proxy::SerializedDirEntry>::Log(const param_type& p, |
450 std::string* l) { | 452 std::string* l) { |
451 } | 453 } |
452 | 454 |
453 // ppapi::proxy::SerializedFontDescription ------------------------------------- | 455 // ppapi::proxy::SerializedFontDescription ------------------------------------- |
454 | 456 |
455 // static | 457 // static |
456 void ParamTraits<ppapi::proxy::SerializedFontDescription>::Write( | 458 void ParamTraits<ppapi::proxy::SerializedFontDescription>::Write( |
457 Message* m, | 459 Message* m, |
458 const param_type& p) { | 460 const param_type& p) { |
459 ParamTraits<std::string>::Write(m, p.face); | 461 ParamTraits<std::string>::Write(m, p.face); |
460 ParamTraits<int32_t>::Write(m, p.family); | 462 ParamTraits<int32_t>::Write(m, p.family); |
461 ParamTraits<uint32_t>::Write(m, p.size); | 463 ParamTraits<uint32_t>::Write(m, p.size); |
462 ParamTraits<int32_t>::Write(m, p.weight); | 464 ParamTraits<int32_t>::Write(m, p.weight); |
463 ParamTraits<PP_Bool>::Write(m, p.italic); | 465 ParamTraits<PP_Bool>::Write(m, p.italic); |
464 ParamTraits<PP_Bool>::Write(m, p.small_caps); | 466 ParamTraits<PP_Bool>::Write(m, p.small_caps); |
465 ParamTraits<int32_t>::Write(m, p.letter_spacing); | 467 ParamTraits<int32_t>::Write(m, p.letter_spacing); |
466 ParamTraits<int32_t>::Write(m, p.word_spacing); | 468 ParamTraits<int32_t>::Write(m, p.word_spacing); |
467 } | 469 } |
468 | 470 |
469 // static | 471 // static |
470 bool ParamTraits<ppapi::proxy::SerializedFontDescription>::Read( | 472 bool ParamTraits<ppapi::proxy::SerializedFontDescription>::Read( |
471 const Message* m, | 473 const Message* m, |
472 PickleIterator* iter, | 474 base::PickleIterator* iter, |
473 param_type* r) { | 475 param_type* r) { |
474 return | 476 return |
475 ParamTraits<std::string>::Read(m, iter, &r->face) && | 477 ParamTraits<std::string>::Read(m, iter, &r->face) && |
476 ParamTraits<int32_t>::Read(m, iter, &r->family) && | 478 ParamTraits<int32_t>::Read(m, iter, &r->family) && |
477 ParamTraits<uint32_t>::Read(m, iter, &r->size) && | 479 ParamTraits<uint32_t>::Read(m, iter, &r->size) && |
478 ParamTraits<int32_t>::Read(m, iter, &r->weight) && | 480 ParamTraits<int32_t>::Read(m, iter, &r->weight) && |
479 ParamTraits<PP_Bool>::Read(m, iter, &r->italic) && | 481 ParamTraits<PP_Bool>::Read(m, iter, &r->italic) && |
480 ParamTraits<PP_Bool>::Read(m, iter, &r->small_caps) && | 482 ParamTraits<PP_Bool>::Read(m, iter, &r->small_caps) && |
481 ParamTraits<int32_t>::Read(m, iter, &r->letter_spacing) && | 483 ParamTraits<int32_t>::Read(m, iter, &r->letter_spacing) && |
482 ParamTraits<int32_t>::Read(m, iter, &r->word_spacing); | 484 ParamTraits<int32_t>::Read(m, iter, &r->word_spacing); |
(...skipping 16 matching lines...) Expand all Loading... |
499 ParamTraits<PP_TrueTypeFontFamily_Dev>::Write(m, p.generic_family); | 501 ParamTraits<PP_TrueTypeFontFamily_Dev>::Write(m, p.generic_family); |
500 ParamTraits<PP_TrueTypeFontStyle_Dev>::Write(m, p.style); | 502 ParamTraits<PP_TrueTypeFontStyle_Dev>::Write(m, p.style); |
501 ParamTraits<PP_TrueTypeFontWeight_Dev>::Write(m, p.weight); | 503 ParamTraits<PP_TrueTypeFontWeight_Dev>::Write(m, p.weight); |
502 ParamTraits<PP_TrueTypeFontWidth_Dev>::Write(m, p.width); | 504 ParamTraits<PP_TrueTypeFontWidth_Dev>::Write(m, p.width); |
503 ParamTraits<PP_TrueTypeFontCharset_Dev>::Write(m, p.charset); | 505 ParamTraits<PP_TrueTypeFontCharset_Dev>::Write(m, p.charset); |
504 } | 506 } |
505 | 507 |
506 // static | 508 // static |
507 bool ParamTraits<ppapi::proxy::SerializedTrueTypeFontDesc>::Read( | 509 bool ParamTraits<ppapi::proxy::SerializedTrueTypeFontDesc>::Read( |
508 const Message* m, | 510 const Message* m, |
509 PickleIterator* iter, | 511 base::PickleIterator* iter, |
510 param_type* r) { | 512 param_type* r) { |
511 return | 513 return |
512 ParamTraits<std::string>::Read(m, iter, &r->family) && | 514 ParamTraits<std::string>::Read(m, iter, &r->family) && |
513 ParamTraits<PP_TrueTypeFontFamily_Dev>::Read(m, iter, | 515 ParamTraits<PP_TrueTypeFontFamily_Dev>::Read(m, iter, |
514 &r->generic_family) && | 516 &r->generic_family) && |
515 ParamTraits<PP_TrueTypeFontStyle_Dev>::Read(m, iter, &r->style) && | 517 ParamTraits<PP_TrueTypeFontStyle_Dev>::Read(m, iter, &r->style) && |
516 ParamTraits<PP_TrueTypeFontWeight_Dev>::Read(m, iter, &r->weight) && | 518 ParamTraits<PP_TrueTypeFontWeight_Dev>::Read(m, iter, &r->weight) && |
517 ParamTraits<PP_TrueTypeFontWidth_Dev>::Read(m, iter, &r->width) && | 519 ParamTraits<PP_TrueTypeFontWidth_Dev>::Read(m, iter, &r->width) && |
518 ParamTraits<PP_TrueTypeFontCharset_Dev>::Read(m, iter, &r->charset); | 520 ParamTraits<PP_TrueTypeFontCharset_Dev>::Read(m, iter, &r->charset); |
519 } | 521 } |
520 | 522 |
521 // static | 523 // static |
522 void ParamTraits<ppapi::proxy::SerializedTrueTypeFontDesc>::Log( | 524 void ParamTraits<ppapi::proxy::SerializedTrueTypeFontDesc>::Log( |
523 const param_type& p, | 525 const param_type& p, |
524 std::string* l) { | 526 std::string* l) { |
525 } | 527 } |
526 | 528 |
527 #if !defined(OS_NACL) && !defined(NACL_WIN64) | 529 #if !defined(OS_NACL) && !defined(NACL_WIN64) |
528 // ppapi::PepperFilePath ------------------------------------------------------- | 530 // ppapi::PepperFilePath ------------------------------------------------------- |
529 | 531 |
530 // static | 532 // static |
531 void ParamTraits<ppapi::PepperFilePath>::Write(Message* m, | 533 void ParamTraits<ppapi::PepperFilePath>::Write(Message* m, |
532 const param_type& p) { | 534 const param_type& p) { |
533 WriteParam(m, static_cast<unsigned>(p.domain())); | 535 WriteParam(m, static_cast<unsigned>(p.domain())); |
534 WriteParam(m, p.path()); | 536 WriteParam(m, p.path()); |
535 } | 537 } |
536 | 538 |
537 // static | 539 // static |
538 bool ParamTraits<ppapi::PepperFilePath>::Read(const Message* m, | 540 bool ParamTraits<ppapi::PepperFilePath>::Read(const Message* m, |
539 PickleIterator* iter, | 541 base::PickleIterator* iter, |
540 param_type* p) { | 542 param_type* p) { |
541 unsigned domain; | 543 unsigned domain; |
542 base::FilePath path; | 544 base::FilePath path; |
543 if (!ReadParam(m, iter, &domain) || !ReadParam(m, iter, &path)) | 545 if (!ReadParam(m, iter, &domain) || !ReadParam(m, iter, &path)) |
544 return false; | 546 return false; |
545 if (domain > ppapi::PepperFilePath::DOMAIN_MAX_VALID) | 547 if (domain > ppapi::PepperFilePath::DOMAIN_MAX_VALID) |
546 return false; | 548 return false; |
547 | 549 |
548 *p = ppapi::PepperFilePath( | 550 *p = ppapi::PepperFilePath( |
549 static_cast<ppapi::PepperFilePath::Domain>(domain), path); | 551 static_cast<ppapi::PepperFilePath::Domain>(domain), path); |
(...skipping 13 matching lines...) Expand all Loading... |
563 // SerializedFlashMenu --------------------------------------------------------- | 565 // SerializedFlashMenu --------------------------------------------------------- |
564 | 566 |
565 // static | 567 // static |
566 void ParamTraits<ppapi::proxy::SerializedFlashMenu>::Write( | 568 void ParamTraits<ppapi::proxy::SerializedFlashMenu>::Write( |
567 Message* m, | 569 Message* m, |
568 const param_type& p) { | 570 const param_type& p) { |
569 p.WriteToMessage(m); | 571 p.WriteToMessage(m); |
570 } | 572 } |
571 | 573 |
572 // static | 574 // static |
573 bool ParamTraits<ppapi::proxy::SerializedFlashMenu>::Read(const Message* m, | 575 bool ParamTraits<ppapi::proxy::SerializedFlashMenu>::Read( |
574 PickleIterator* iter, | 576 const Message* m, |
575 param_type* r) { | 577 base::PickleIterator* iter, |
| 578 param_type* r) { |
576 return r->ReadFromMessage(m, iter); | 579 return r->ReadFromMessage(m, iter); |
577 } | 580 } |
578 | 581 |
579 // static | 582 // static |
580 void ParamTraits<ppapi::proxy::SerializedFlashMenu>::Log(const param_type& p, | 583 void ParamTraits<ppapi::proxy::SerializedFlashMenu>::Log(const param_type& p, |
581 std::string* l) { | 584 std::string* l) { |
582 } | 585 } |
583 #endif // !defined(OS_NACL) && !defined(NACL_WIN64) | 586 #endif // !defined(OS_NACL) && !defined(NACL_WIN64) |
584 | 587 |
585 // PPB_X509Certificate_Fields -------------------------------------------------- | 588 // PPB_X509Certificate_Fields -------------------------------------------------- |
586 | 589 |
587 // static | 590 // static |
588 void ParamTraits<ppapi::PPB_X509Certificate_Fields>::Write( | 591 void ParamTraits<ppapi::PPB_X509Certificate_Fields>::Write( |
589 Message* m, | 592 Message* m, |
590 const param_type& p) { | 593 const param_type& p) { |
591 ParamTraits<base::ListValue>::Write(m, p.values_); | 594 ParamTraits<base::ListValue>::Write(m, p.values_); |
592 } | 595 } |
593 | 596 |
594 // static | 597 // static |
595 bool ParamTraits<ppapi::PPB_X509Certificate_Fields>::Read(const Message* m, | 598 bool ParamTraits<ppapi::PPB_X509Certificate_Fields>::Read( |
596 PickleIterator* iter, | 599 const Message* m, |
597 param_type* r) { | 600 base::PickleIterator* iter, |
| 601 param_type* r) { |
598 return ParamTraits<base::ListValue>::Read(m, iter, &(r->values_)); | 602 return ParamTraits<base::ListValue>::Read(m, iter, &(r->values_)); |
599 } | 603 } |
600 | 604 |
601 // static | 605 // static |
602 void ParamTraits<ppapi::PPB_X509Certificate_Fields>::Log(const param_type& p, | 606 void ParamTraits<ppapi::PPB_X509Certificate_Fields>::Log(const param_type& p, |
603 std::string* l) { | 607 std::string* l) { |
604 } | 608 } |
605 | 609 |
606 // ppapi::SocketOptionData ----------------------------------------------------- | 610 // ppapi::SocketOptionData ----------------------------------------------------- |
607 | 611 |
(...skipping 25 matching lines...) Expand all Loading... |
633 | 637 |
634 ParamTraits<int32_t>::Write(m, out_value); | 638 ParamTraits<int32_t>::Write(m, out_value); |
635 break; | 639 break; |
636 } | 640 } |
637 // No default so the compiler will warn on new types. | 641 // No default so the compiler will warn on new types. |
638 } | 642 } |
639 } | 643 } |
640 | 644 |
641 // static | 645 // static |
642 bool ParamTraits<ppapi::SocketOptionData>::Read(const Message* m, | 646 bool ParamTraits<ppapi::SocketOptionData>::Read(const Message* m, |
643 PickleIterator* iter, | 647 base::PickleIterator* iter, |
644 param_type* r) { | 648 param_type* r) { |
645 *r = ppapi::SocketOptionData(); | 649 *r = ppapi::SocketOptionData(); |
646 int32_t type = 0; | 650 int32_t type = 0; |
647 if (!ParamTraits<int32_t>::Read(m, iter, &type)) | 651 if (!ParamTraits<int32_t>::Read(m, iter, &type)) |
648 return false; | 652 return false; |
649 if (type != ppapi::SocketOptionData::TYPE_INVALID && | 653 if (type != ppapi::SocketOptionData::TYPE_INVALID && |
650 type != ppapi::SocketOptionData::TYPE_BOOL && | 654 type != ppapi::SocketOptionData::TYPE_BOOL && |
651 type != ppapi::SocketOptionData::TYPE_INT32) { | 655 type != ppapi::SocketOptionData::TYPE_INT32) { |
652 return false; | 656 return false; |
653 } | 657 } |
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
685 void ParamTraits<ppapi::CompositorLayerData::Transform>::Write( | 689 void ParamTraits<ppapi::CompositorLayerData::Transform>::Write( |
686 Message* m, | 690 Message* m, |
687 const param_type& p) { | 691 const param_type& p) { |
688 for (size_t i = 0; i < arraysize(p.matrix); i++) | 692 for (size_t i = 0; i < arraysize(p.matrix); i++) |
689 ParamTraits<float>::Write(m, p.matrix[i]); | 693 ParamTraits<float>::Write(m, p.matrix[i]); |
690 } | 694 } |
691 | 695 |
692 // static | 696 // static |
693 bool ParamTraits<ppapi::CompositorLayerData::Transform>::Read( | 697 bool ParamTraits<ppapi::CompositorLayerData::Transform>::Read( |
694 const Message* m, | 698 const Message* m, |
695 PickleIterator* iter, | 699 base::PickleIterator* iter, |
696 param_type* r) { | 700 param_type* r) { |
697 for (size_t i = 0; i < arraysize(r->matrix);i++) { | 701 for (size_t i = 0; i < arraysize(r->matrix);i++) { |
698 if (!ParamTraits<float>::Read(m, iter, &r->matrix[i])) | 702 if (!ParamTraits<float>::Read(m, iter, &r->matrix[i])) |
699 return false; | 703 return false; |
700 } | 704 } |
701 return true; | 705 return true; |
702 } | 706 } |
703 | 707 |
704 void ParamTraits<ppapi::CompositorLayerData::Transform>::Log( | 708 void ParamTraits<ppapi::CompositorLayerData::Transform>::Log( |
705 const param_type& p, | 709 const param_type& p, |
706 std::string* l) { | 710 std::string* l) { |
707 } | 711 } |
708 | 712 |
709 } // namespace IPC | 713 } // namespace IPC |
OLD | NEW |