| OLD | NEW |
| (Empty) |
| 1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. | |
| 2 // Use of this source code is governed by a BSD-style license that can be | |
| 3 // found in the LICENSE file. | |
| 4 | |
| 5 #include "base/utf_string_conversions.h" | |
| 6 #include "content/common/common_param_traits.h" | |
| 7 #include "ipc/ipc_channel_handle.h" | |
| 8 | |
| 9 #define IPC_MESSAGE_IMPL | |
| 10 #include "chrome/common/plugin_messages.h" | |
| 11 | |
| 12 PluginMsg_Init_Params::PluginMsg_Init_Params() | |
| 13 : containing_window(0), | |
| 14 load_manually(false), | |
| 15 host_render_view_routing_id(-1) { | |
| 16 } | |
| 17 | |
| 18 PluginMsg_Init_Params::~PluginMsg_Init_Params() { | |
| 19 } | |
| 20 | |
| 21 PluginHostMsg_URLRequest_Params::PluginHostMsg_URLRequest_Params() | |
| 22 : notify_id(-1), | |
| 23 popups_allowed(false), | |
| 24 notify_redirects(false) { | |
| 25 } | |
| 26 | |
| 27 PluginHostMsg_URLRequest_Params::~PluginHostMsg_URLRequest_Params() { | |
| 28 } | |
| 29 | |
| 30 PluginMsg_DidReceiveResponseParams::PluginMsg_DidReceiveResponseParams() | |
| 31 : id(-1), | |
| 32 expected_length(0), | |
| 33 last_modified(0), | |
| 34 request_is_seekable(false) { | |
| 35 } | |
| 36 | |
| 37 PluginMsg_DidReceiveResponseParams::~PluginMsg_DidReceiveResponseParams() { | |
| 38 } | |
| 39 | |
| 40 NPIdentifier_Param::NPIdentifier_Param() | |
| 41 : identifier() { | |
| 42 } | |
| 43 | |
| 44 NPIdentifier_Param::~NPIdentifier_Param() { | |
| 45 } | |
| 46 | |
| 47 NPVariant_Param::NPVariant_Param() | |
| 48 : type(NPVARIANT_PARAM_VOID), | |
| 49 bool_value(false), | |
| 50 int_value(0), | |
| 51 double_value(0), | |
| 52 npobject_routing_id(-1) { | |
| 53 } | |
| 54 | |
| 55 NPVariant_Param::~NPVariant_Param() { | |
| 56 } | |
| 57 | |
| 58 PluginMsg_UpdateGeometry_Param::PluginMsg_UpdateGeometry_Param() | |
| 59 : transparent(false), | |
| 60 #if !defined(OS_MACOSX) | |
| 61 windowless_buffer(TransportDIB::DefaultHandleValue()), | |
| 62 background_buffer(TransportDIB::DefaultHandleValue()) | |
| 63 #else | |
| 64 ack_key(-1) | |
| 65 #endif // !defined(OS_MACOSX) | |
| 66 { | |
| 67 } | |
| 68 | |
| 69 PluginMsg_UpdateGeometry_Param::~PluginMsg_UpdateGeometry_Param() { | |
| 70 } | |
| 71 | |
| 72 namespace IPC { | |
| 73 | |
| 74 void ParamTraits<PluginMsg_Init_Params>::Write(Message* m, | |
| 75 const param_type& p) { | |
| 76 WriteParam(m, p.containing_window); | |
| 77 WriteParam(m, p.url); | |
| 78 WriteParam(m, p.page_url); | |
| 79 DCHECK(p.arg_names.size() == p.arg_values.size()); | |
| 80 WriteParam(m, p.arg_names); | |
| 81 WriteParam(m, p.arg_values); | |
| 82 WriteParam(m, p.load_manually); | |
| 83 WriteParam(m, p.host_render_view_routing_id); | |
| 84 } | |
| 85 | |
| 86 bool ParamTraits<PluginMsg_Init_Params>::Read(const Message* m, | |
| 87 void** iter, | |
| 88 param_type* p) { | |
| 89 return ReadParam(m, iter, &p->containing_window) && | |
| 90 ReadParam(m, iter, &p->url) && | |
| 91 ReadParam(m, iter, &p->page_url) && | |
| 92 ReadParam(m, iter, &p->arg_names) && | |
| 93 ReadParam(m, iter, &p->arg_values) && | |
| 94 ReadParam(m, iter, &p->load_manually) && | |
| 95 ReadParam(m, iter, &p->host_render_view_routing_id); | |
| 96 } | |
| 97 | |
| 98 void ParamTraits<PluginMsg_Init_Params>::Log(const param_type& p, | |
| 99 std::string* l) { | |
| 100 l->append("("); | |
| 101 LogParam(p.containing_window, l); | |
| 102 l->append(", "); | |
| 103 LogParam(p.url, l); | |
| 104 l->append(", "); | |
| 105 LogParam(p.page_url, l); | |
| 106 l->append(", "); | |
| 107 LogParam(p.arg_names, l); | |
| 108 l->append(", "); | |
| 109 LogParam(p.arg_values, l); | |
| 110 l->append(", "); | |
| 111 LogParam(p.load_manually, l); | |
| 112 l->append(", "); | |
| 113 LogParam(p.host_render_view_routing_id, l); | |
| 114 l->append(")"); | |
| 115 } | |
| 116 | |
| 117 void ParamTraits<PluginHostMsg_URLRequest_Params>::Write(Message* m, | |
| 118 const param_type& p) { | |
| 119 WriteParam(m, p.url); | |
| 120 WriteParam(m, p.method); | |
| 121 WriteParam(m, p.target); | |
| 122 WriteParam(m, p.buffer); | |
| 123 WriteParam(m, p.notify_id); | |
| 124 WriteParam(m, p.popups_allowed); | |
| 125 WriteParam(m, p.notify_redirects); | |
| 126 } | |
| 127 | |
| 128 bool ParamTraits<PluginHostMsg_URLRequest_Params>::Read(const Message* m, | |
| 129 void** iter, | |
| 130 param_type* p) { | |
| 131 return | |
| 132 ReadParam(m, iter, &p->url) && | |
| 133 ReadParam(m, iter, &p->method) && | |
| 134 ReadParam(m, iter, &p->target) && | |
| 135 ReadParam(m, iter, &p->buffer) && | |
| 136 ReadParam(m, iter, &p->notify_id) && | |
| 137 ReadParam(m, iter, &p->popups_allowed) && | |
| 138 ReadParam(m, iter, &p->notify_redirects); | |
| 139 } | |
| 140 | |
| 141 void ParamTraits<PluginHostMsg_URLRequest_Params>::Log(const param_type& p, | |
| 142 std::string* l) { | |
| 143 l->append("("); | |
| 144 LogParam(p.url, l); | |
| 145 l->append(", "); | |
| 146 LogParam(p.method, l); | |
| 147 l->append(", "); | |
| 148 LogParam(p.target, l); | |
| 149 l->append(", "); | |
| 150 LogParam(p.buffer, l); | |
| 151 l->append(", "); | |
| 152 LogParam(p.notify_id, l); | |
| 153 l->append(", "); | |
| 154 LogParam(p.popups_allowed, l); | |
| 155 l->append(", "); | |
| 156 LogParam(p.notify_redirects, l); | |
| 157 l->append(")"); | |
| 158 } | |
| 159 | |
| 160 | |
| 161 void ParamTraits<PluginMsg_DidReceiveResponseParams>::Write( | |
| 162 Message* m, | |
| 163 const param_type& p) { | |
| 164 WriteParam(m, p.id); | |
| 165 WriteParam(m, p.mime_type); | |
| 166 WriteParam(m, p.headers); | |
| 167 WriteParam(m, p.expected_length); | |
| 168 WriteParam(m, p.last_modified); | |
| 169 WriteParam(m, p.request_is_seekable); | |
| 170 } | |
| 171 | |
| 172 bool ParamTraits<PluginMsg_DidReceiveResponseParams>::Read(const Message* m, | |
| 173 void** iter, | |
| 174 param_type* r) { | |
| 175 return | |
| 176 ReadParam(m, iter, &r->id) && | |
| 177 ReadParam(m, iter, &r->mime_type) && | |
| 178 ReadParam(m, iter, &r->headers) && | |
| 179 ReadParam(m, iter, &r->expected_length) && | |
| 180 ReadParam(m, iter, &r->last_modified) && | |
| 181 ReadParam(m, iter, &r->request_is_seekable); | |
| 182 } | |
| 183 | |
| 184 void ParamTraits<PluginMsg_DidReceiveResponseParams>::Log(const param_type& p, | |
| 185 std::string* l) { | |
| 186 l->append("("); | |
| 187 LogParam(p.id, l); | |
| 188 l->append(", "); | |
| 189 LogParam(p.mime_type, l); | |
| 190 l->append(", "); | |
| 191 LogParam(p.headers, l); | |
| 192 l->append(", "); | |
| 193 LogParam(p.expected_length, l); | |
| 194 l->append(", "); | |
| 195 LogParam(p.last_modified, l); | |
| 196 l->append(", "); | |
| 197 LogParam(p.request_is_seekable, l); | |
| 198 l->append(")"); | |
| 199 } | |
| 200 | |
| 201 | |
| 202 void ParamTraits<NPVariant_Param>::Write(Message* m, const param_type& p) { | |
| 203 WriteParam(m, static_cast<int>(p.type)); | |
| 204 if (p.type == NPVARIANT_PARAM_BOOL) { | |
| 205 WriteParam(m, p.bool_value); | |
| 206 } else if (p.type == NPVARIANT_PARAM_INT) { | |
| 207 WriteParam(m, p.int_value); | |
| 208 } else if (p.type == NPVARIANT_PARAM_DOUBLE) { | |
| 209 WriteParam(m, p.double_value); | |
| 210 } else if (p.type == NPVARIANT_PARAM_STRING) { | |
| 211 WriteParam(m, p.string_value); | |
| 212 } else if (p.type == NPVARIANT_PARAM_SENDER_OBJECT_ROUTING_ID || | |
| 213 p.type == NPVARIANT_PARAM_RECEIVER_OBJECT_ROUTING_ID) { | |
| 214 // This is the routing id used to connect NPObjectProxy in the other | |
| 215 // process with NPObjectStub in this process or to identify the raw | |
| 216 // npobject pointer to be used in the callee process. | |
| 217 WriteParam(m, p.npobject_routing_id); | |
| 218 } else { | |
| 219 DCHECK(p.type == NPVARIANT_PARAM_VOID || p.type == NPVARIANT_PARAM_NULL); | |
| 220 } | |
| 221 } | |
| 222 | |
| 223 bool ParamTraits<NPVariant_Param>::Read(const Message* m, | |
| 224 void** iter, | |
| 225 param_type* r) { | |
| 226 int type; | |
| 227 if (!ReadParam(m, iter, &type)) | |
| 228 return false; | |
| 229 | |
| 230 bool result = false; | |
| 231 r->type = static_cast<NPVariant_ParamEnum>(type); | |
| 232 if (r->type == NPVARIANT_PARAM_BOOL) { | |
| 233 result = ReadParam(m, iter, &r->bool_value); | |
| 234 } else if (r->type == NPVARIANT_PARAM_INT) { | |
| 235 result = ReadParam(m, iter, &r->int_value); | |
| 236 } else if (r->type == NPVARIANT_PARAM_DOUBLE) { | |
| 237 result = ReadParam(m, iter, &r->double_value); | |
| 238 } else if (r->type == NPVARIANT_PARAM_STRING) { | |
| 239 result = ReadParam(m, iter, &r->string_value); | |
| 240 } else if (r->type == NPVARIANT_PARAM_SENDER_OBJECT_ROUTING_ID || | |
| 241 r->type == NPVARIANT_PARAM_RECEIVER_OBJECT_ROUTING_ID) { | |
| 242 result = ReadParam(m, iter, &r->npobject_routing_id); | |
| 243 } else if ((r->type == NPVARIANT_PARAM_VOID) || | |
| 244 (r->type == NPVARIANT_PARAM_NULL)) { | |
| 245 result = true; | |
| 246 } else { | |
| 247 NOTREACHED(); | |
| 248 } | |
| 249 | |
| 250 return result; | |
| 251 } | |
| 252 | |
| 253 void ParamTraits<NPVariant_Param>::Log(const param_type& p, std::string* l) { | |
| 254 if (p.type == NPVARIANT_PARAM_BOOL) { | |
| 255 LogParam(p.bool_value, l); | |
| 256 } else if (p.type == NPVARIANT_PARAM_INT) { | |
| 257 LogParam(p.int_value, l); | |
| 258 } else if (p.type == NPVARIANT_PARAM_DOUBLE) { | |
| 259 LogParam(p.double_value, l); | |
| 260 } else if (p.type == NPVARIANT_PARAM_STRING) { | |
| 261 LogParam(p.string_value, l); | |
| 262 } else if (p.type == NPVARIANT_PARAM_SENDER_OBJECT_ROUTING_ID || | |
| 263 p.type == NPVARIANT_PARAM_RECEIVER_OBJECT_ROUTING_ID) { | |
| 264 LogParam(p.npobject_routing_id, l); | |
| 265 } | |
| 266 } | |
| 267 | |
| 268 void ParamTraits<PluginMsg_UpdateGeometry_Param>::Write(Message* m, | |
| 269 const param_type& p) { | |
| 270 WriteParam(m, p.window_rect); | |
| 271 WriteParam(m, p.clip_rect); | |
| 272 WriteParam(m, p.windowless_buffer); | |
| 273 WriteParam(m, p.background_buffer); | |
| 274 WriteParam(m, p.transparent); | |
| 275 #if defined(OS_MACOSX) | |
| 276 WriteParam(m, p.ack_key); | |
| 277 #endif | |
| 278 } | |
| 279 | |
| 280 bool ParamTraits<PluginMsg_UpdateGeometry_Param>::Read(const Message* m, | |
| 281 void** iter, | |
| 282 param_type* r) { | |
| 283 return | |
| 284 ReadParam(m, iter, &r->window_rect) && | |
| 285 ReadParam(m, iter, &r->clip_rect) && | |
| 286 ReadParam(m, iter, &r->windowless_buffer) && | |
| 287 ReadParam(m, iter, &r->background_buffer) && | |
| 288 ReadParam(m, iter, &r->transparent) | |
| 289 #if defined(OS_MACOSX) | |
| 290 && | |
| 291 ReadParam(m, iter, &r->ack_key) | |
| 292 #endif | |
| 293 ; | |
| 294 } | |
| 295 | |
| 296 void ParamTraits<PluginMsg_UpdateGeometry_Param>::Log(const param_type& p, | |
| 297 std::string* l) { | |
| 298 l->append("("); | |
| 299 LogParam(p.window_rect, l); | |
| 300 l->append(", "); | |
| 301 LogParam(p.clip_rect, l); | |
| 302 l->append(", "); | |
| 303 LogParam(p.windowless_buffer, l); | |
| 304 l->append(", "); | |
| 305 LogParam(p.background_buffer, l); | |
| 306 l->append(", "); | |
| 307 LogParam(p.transparent, l); | |
| 308 #if defined(OS_MACOSX) | |
| 309 l->append(", "); | |
| 310 LogParam(p.ack_key, l); | |
| 311 #endif | |
| 312 l->append(")"); | |
| 313 } | |
| 314 | |
| 315 } // namespace IPC | |
| OLD | NEW |