| 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 |