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 "chrome/common/render_messages.h" | |
6 | |
7 #include "base/values.h" | |
8 #include "chrome/common/edit_command.h" | |
9 #include "chrome/common/extensions/extension_extent.h" | |
10 #include "chrome/common/extensions/url_pattern.h" | |
11 #include "chrome/common/indexed_db_key.h" | |
12 #include "chrome/common/serialized_script_value.h" | |
13 #include "chrome/common/thumbnail_score.h" | |
14 #include "gfx/rect.h" | |
15 #include "ipc/ipc_channel_handle.h" | |
16 #include "net/http/http_response_headers.h" | |
17 #include "third_party/skia/include/core/SkBitmap.h" | |
18 #include "third_party/WebKit/WebKit/chromium/public/WebCompositionUnderline.h" | |
19 #include "third_party/WebKit/WebKit/chromium/public/WebFindOptions.h" | |
20 #include "third_party/WebKit/WebKit/chromium/public/WebMediaPlayerAction.h" | |
21 #include "third_party/WebKit/WebKit/chromium/public/WebScreenInfo.h" | |
22 #include "webkit/appcache/appcache_interfaces.h" | |
23 #include "webkit/glue/context_menu.h" | |
24 #include "webkit/glue/form_data.h" | |
25 #include "webkit/glue/form_field.h" | |
26 #include "webkit/glue/password_form_dom_manager.h" | |
27 #include "webkit/glue/password_form.h" | |
28 #include "webkit/glue/webaccessibility.h" | |
29 #include "webkit/glue/webcookie.h" | |
30 #include "webkit/glue/webcursor.h" | |
31 #include "webkit/glue/webdropdata.h" | |
32 #include "webkit/glue/plugins/webplugin.h" | |
33 #include "webkit/glue/plugins/webplugininfo.h" | |
34 #include "webkit/glue/dom_operations.h" | |
35 | |
36 #define MESSAGES_INTERNAL_IMPL_FILE \ | |
37 "chrome/common/render_messages_internal.h" | |
38 #include "ipc/ipc_message_impl_macros.h" | |
39 | |
40 namespace IPC { | |
41 | |
42 void ParamTraits<ViewMsg_Navigate_Params>::Write(Message* m, | |
43 const param_type& p) { | |
44 WriteParam(m, p.page_id); | |
45 WriteParam(m, p.pending_history_list_offset); | |
46 WriteParam(m, p.current_history_list_offset); | |
47 WriteParam(m, p.current_history_list_length); | |
48 WriteParam(m, p.url); | |
49 WriteParam(m, p.referrer); | |
50 WriteParam(m, p.transition); | |
51 WriteParam(m, p.state); | |
52 WriteParam(m, p.navigation_type); | |
53 WriteParam(m, p.request_time); | |
54 } | |
55 | |
56 bool ParamTraits<ViewMsg_Navigate_Params>::Read(const Message* m, void** iter, | |
57 param_type* p) { | |
58 return | |
59 ReadParam(m, iter, &p->page_id) && | |
60 ReadParam(m, iter, &p->pending_history_list_offset) && | |
61 ReadParam(m, iter, &p->current_history_list_offset) && | |
62 ReadParam(m, iter, &p->current_history_list_length) && | |
63 ReadParam(m, iter, &p->url) && | |
64 ReadParam(m, iter, &p->referrer) && | |
65 ReadParam(m, iter, &p->transition) && | |
66 ReadParam(m, iter, &p->state) && | |
67 ReadParam(m, iter, &p->navigation_type) && | |
68 ReadParam(m, iter, &p->request_time); | |
69 } | |
70 | |
71 void ParamTraits<ViewMsg_Navigate_Params>::Log(const param_type& p, | |
72 std::wstring* l) { | |
73 l->append(L"("); | |
74 LogParam(p.page_id, l); | |
75 l->append(L", "); | |
76 LogParam(p.url, l); | |
77 l->append(L", "); | |
78 LogParam(p.transition, l); | |
79 l->append(L", "); | |
80 LogParam(p.state, l); | |
81 l->append(L", "); | |
82 LogParam(p.navigation_type, l); | |
83 l->append(L", "); | |
84 LogParam(p.request_time, l); | |
85 l->append(L")"); | |
86 } | |
87 | |
88 void ParamTraits<webkit_glue::FormField>::Write(Message* m, | |
89 const param_type& p) { | |
90 WriteParam(m, p.label()); | |
91 WriteParam(m, p.name()); | |
92 WriteParam(m, p.value()); | |
93 WriteParam(m, p.form_control_type()); | |
94 WriteParam(m, p.size()); | |
95 WriteParam(m, p.option_strings()); | |
96 } | |
97 | |
98 bool ParamTraits<webkit_glue::FormField>::Read(const Message* m, void** iter, | |
99 param_type* p) { | |
100 string16 label, name, value, form_control_type; | |
101 int size = 0; | |
102 std::vector<string16> options; | |
103 bool result = ReadParam(m, iter, &label); | |
104 result = result && ReadParam(m, iter, &name); | |
105 result = result && ReadParam(m, iter, &value); | |
106 result = result && ReadParam(m, iter, &form_control_type); | |
107 result = result && ReadParam(m, iter, &size); | |
108 result = result && ReadParam(m, iter, &options); | |
109 if (!result) | |
110 return false; | |
111 | |
112 p->set_label(label); | |
113 p->set_name(name); | |
114 p->set_value(value); | |
115 p->set_form_control_type(form_control_type); | |
116 p->set_size(size); | |
117 p->set_option_strings(options); | |
118 return true; | |
119 } | |
120 | |
121 void ParamTraits<webkit_glue::FormField>::Log(const param_type& p, | |
122 std::wstring* l) { | |
123 l->append(L"<FormField>"); | |
124 } | |
125 | |
126 void ParamTraits<ContextMenuParams>::Write(Message* m, const param_type& p) { | |
127 WriteParam(m, p.media_type); | |
128 WriteParam(m, p.x); | |
129 WriteParam(m, p.y); | |
130 WriteParam(m, p.link_url); | |
131 WriteParam(m, p.unfiltered_link_url); | |
132 WriteParam(m, p.src_url); | |
133 WriteParam(m, p.is_image_blocked); | |
134 WriteParam(m, p.page_url); | |
135 WriteParam(m, p.frame_url); | |
136 WriteParam(m, p.media_flags); | |
137 WriteParam(m, p.selection_text); | |
138 WriteParam(m, p.misspelled_word); | |
139 WriteParam(m, p.dictionary_suggestions); | |
140 WriteParam(m, p.spellcheck_enabled); | |
141 WriteParam(m, p.is_editable); | |
142 #if defined(OS_MACOSX) | |
143 WriteParam(m, p.writing_direction_default); | |
144 WriteParam(m, p.writing_direction_left_to_right); | |
145 WriteParam(m, p.writing_direction_right_to_left); | |
146 #endif // OS_MACOSX | |
147 WriteParam(m, p.edit_flags); | |
148 WriteParam(m, p.security_info); | |
149 WriteParam(m, p.frame_charset); | |
150 WriteParam(m, p.custom_items); | |
151 } | |
152 | |
153 bool ParamTraits<ContextMenuParams>::Read(const Message* m, void** iter, | |
154 param_type* p) { | |
155 return | |
156 ReadParam(m, iter, &p->media_type) && | |
157 ReadParam(m, iter, &p->x) && | |
158 ReadParam(m, iter, &p->y) && | |
159 ReadParam(m, iter, &p->link_url) && | |
160 ReadParam(m, iter, &p->unfiltered_link_url) && | |
161 ReadParam(m, iter, &p->src_url) && | |
162 ReadParam(m, iter, &p->is_image_blocked) && | |
163 ReadParam(m, iter, &p->page_url) && | |
164 ReadParam(m, iter, &p->frame_url) && | |
165 ReadParam(m, iter, &p->media_flags) && | |
166 ReadParam(m, iter, &p->selection_text) && | |
167 ReadParam(m, iter, &p->misspelled_word) && | |
168 ReadParam(m, iter, &p->dictionary_suggestions) && | |
169 ReadParam(m, iter, &p->spellcheck_enabled) && | |
170 ReadParam(m, iter, &p->is_editable) && | |
171 #if defined(OS_MACOSX) | |
172 ReadParam(m, iter, &p->writing_direction_default) && | |
173 ReadParam(m, iter, &p->writing_direction_left_to_right) && | |
174 ReadParam(m, iter, &p->writing_direction_right_to_left) && | |
175 #endif // OS_MACOSX | |
176 ReadParam(m, iter, &p->edit_flags) && | |
177 ReadParam(m, iter, &p->security_info) && | |
178 ReadParam(m, iter, &p->frame_charset) && | |
179 ReadParam(m, iter, &p->custom_items); | |
180 } | |
181 | |
182 void ParamTraits<ContextMenuParams>::Log(const param_type& p, | |
183 std::wstring* l) { | |
184 l->append(L"<ContextMenuParams>"); | |
185 } | |
186 | |
187 void ParamTraits<ViewHostMsg_UpdateRect_Params>::Write( | |
188 Message* m, const param_type& p) { | |
189 WriteParam(m, p.bitmap); | |
190 WriteParam(m, p.bitmap_rect); | |
191 WriteParam(m, p.dx); | |
192 WriteParam(m, p.dy); | |
193 WriteParam(m, p.scroll_rect); | |
194 WriteParam(m, p.copy_rects); | |
195 WriteParam(m, p.view_size); | |
196 WriteParam(m, p.plugin_window_moves); | |
197 WriteParam(m, p.flags); | |
198 } | |
199 | |
200 bool ParamTraits<ViewHostMsg_UpdateRect_Params>::Read( | |
201 const Message* m, void** iter, param_type* p) { | |
202 return | |
203 ReadParam(m, iter, &p->bitmap) && | |
204 ReadParam(m, iter, &p->bitmap_rect) && | |
205 ReadParam(m, iter, &p->dx) && | |
206 ReadParam(m, iter, &p->dy) && | |
207 ReadParam(m, iter, &p->scroll_rect) && | |
208 ReadParam(m, iter, &p->copy_rects) && | |
209 ReadParam(m, iter, &p->view_size) && | |
210 ReadParam(m, iter, &p->plugin_window_moves) && | |
211 ReadParam(m, iter, &p->flags); | |
212 } | |
213 | |
214 void ParamTraits<ViewHostMsg_UpdateRect_Params>::Log(const param_type& p, | |
215 std::wstring* l) { | |
216 l->append(L"("); | |
217 LogParam(p.bitmap, l); | |
218 l->append(L", "); | |
219 LogParam(p.bitmap_rect, l); | |
220 l->append(L", "); | |
221 LogParam(p.dx, l); | |
222 l->append(L", "); | |
223 LogParam(p.dy, l); | |
224 l->append(L", "); | |
225 LogParam(p.scroll_rect, l); | |
226 l->append(L", "); | |
227 LogParam(p.copy_rects, l); | |
228 l->append(L", "); | |
229 LogParam(p.view_size, l); | |
230 l->append(L", "); | |
231 LogParam(p.plugin_window_moves, l); | |
232 l->append(L", "); | |
233 LogParam(p.flags, l); | |
234 l->append(L")"); | |
235 } | |
236 | |
237 void ParamTraits<webkit_glue::WebPluginGeometry>::Write(Message* m, | |
238 const param_type& p) { | |
239 WriteParam(m, p.window); | |
240 WriteParam(m, p.window_rect); | |
241 WriteParam(m, p.clip_rect); | |
242 WriteParam(m, p.cutout_rects); | |
243 WriteParam(m, p.rects_valid); | |
244 WriteParam(m, p.visible); | |
245 } | |
246 | |
247 bool ParamTraits<webkit_glue::WebPluginGeometry>::Read( | |
248 const Message* m, void** iter, param_type* p) { | |
249 return | |
250 ReadParam(m, iter, &p->window) && | |
251 ReadParam(m, iter, &p->window_rect) && | |
252 ReadParam(m, iter, &p->clip_rect) && | |
253 ReadParam(m, iter, &p->cutout_rects) && | |
254 ReadParam(m, iter, &p->rects_valid) && | |
255 ReadParam(m, iter, &p->visible); | |
256 } | |
257 | |
258 void ParamTraits<webkit_glue::WebPluginGeometry>::Log(const param_type& p, | |
259 std::wstring* l) { | |
260 l->append(L"("); | |
261 LogParam(p.window, l); | |
262 l->append(L", "); | |
263 LogParam(p.window_rect, l); | |
264 l->append(L", "); | |
265 LogParam(p.clip_rect, l); | |
266 l->append(L", "); | |
267 LogParam(p.cutout_rects, l); | |
268 l->append(L", "); | |
269 LogParam(p.rects_valid, l); | |
270 l->append(L", "); | |
271 LogParam(p.visible, l); | |
272 l->append(L")"); | |
273 } | |
274 | |
275 void ParamTraits<WebPluginMimeType>::Write(Message* m, const param_type& p) { | |
276 WriteParam(m, p.mime_type); | |
277 WriteParam(m, p.file_extensions); | |
278 WriteParam(m, p.description); | |
279 } | |
280 | |
281 bool ParamTraits<WebPluginMimeType>::Read(const Message* m, void** iter, | |
282 param_type* r) { | |
283 return | |
284 ReadParam(m, iter, &r->mime_type) && | |
285 ReadParam(m, iter, &r->file_extensions) && | |
286 ReadParam(m, iter, &r->description); | |
287 } | |
288 | |
289 void ParamTraits<WebPluginMimeType>::Log(const param_type& p, std::wstring* l) { | |
290 l->append(L"("); | |
291 LogParam(p.mime_type, l); | |
292 l->append(L", "); | |
293 LogParam(p.file_extensions, l); | |
294 l->append(L", "); | |
295 LogParam(p.description, l); | |
296 l->append(L")"); | |
297 } | |
298 | |
299 void ParamTraits<WebPluginInfo>::Write(Message* m, const param_type& p) { | |
300 WriteParam(m, p.name); | |
301 WriteParam(m, p.path); | |
302 WriteParam(m, p.version); | |
303 WriteParam(m, p.desc); | |
304 WriteParam(m, p.mime_types); | |
305 WriteParam(m, p.enabled); | |
306 } | |
307 | |
308 bool ParamTraits<WebPluginInfo>::Read(const Message* m, void** iter, | |
309 param_type* r) { | |
310 return | |
311 ReadParam(m, iter, &r->name) && | |
312 ReadParam(m, iter, &r->path) && | |
313 ReadParam(m, iter, &r->version) && | |
314 ReadParam(m, iter, &r->desc) && | |
315 ReadParam(m, iter, &r->mime_types) && | |
316 ReadParam(m, iter, &r->enabled); | |
317 } | |
318 | |
319 void ParamTraits<WebPluginInfo>::Log(const param_type& p, std::wstring* l) { | |
320 l->append(L"("); | |
321 LogParam(p.name, l); | |
322 l->append(L", "); | |
323 l->append(L", "); | |
324 LogParam(p.path, l); | |
325 l->append(L", "); | |
326 LogParam(p.version, l); | |
327 l->append(L", "); | |
328 LogParam(p.desc, l); | |
329 l->append(L", "); | |
330 LogParam(p.mime_types, l); | |
331 l->append(L", "); | |
332 LogParam(p.enabled, l); | |
333 l->append(L")"); | |
334 } | |
335 | |
336 void ParamTraits<webkit_glue::PasswordFormFillData>::Write( | |
337 Message* m, const param_type& p) { | |
338 WriteParam(m, p.basic_data); | |
339 WriteParam(m, p.additional_logins); | |
340 WriteParam(m, p.wait_for_username); | |
341 } | |
342 | |
343 bool ParamTraits<webkit_glue::PasswordFormFillData>::Read( | |
344 const Message* m, void** iter, param_type* r) { | |
345 return | |
346 ReadParam(m, iter, &r->basic_data) && | |
347 ReadParam(m, iter, &r->additional_logins) && | |
348 ReadParam(m, iter, &r->wait_for_username); | |
349 } | |
350 | |
351 void ParamTraits<webkit_glue::PasswordFormFillData>::Log(const param_type& p, | |
352 std::wstring* l) { | |
353 l->append(L"<PasswordFormFillData>"); | |
354 } | |
355 | |
356 void ParamTraits<scoped_refptr<net::HttpResponseHeaders> >::Write( | |
357 Message* m, const param_type& p) { | |
358 WriteParam(m, p.get() != NULL); | |
359 if (p) { | |
360 // Do not disclose Set-Cookie headers over IPC. | |
361 p->Persist(m, net::HttpResponseHeaders::PERSIST_SANS_COOKIES); | |
362 } | |
363 } | |
364 | |
365 bool ParamTraits<scoped_refptr<net::HttpResponseHeaders> >::Read( | |
366 const Message* m, void** iter, param_type* r) { | |
367 bool has_object; | |
368 if (!ReadParam(m, iter, &has_object)) | |
369 return false; | |
370 if (has_object) | |
371 *r = new net::HttpResponseHeaders(*m, iter); | |
372 return true; | |
373 } | |
374 | |
375 void ParamTraits<scoped_refptr<net::HttpResponseHeaders> >::Log( | |
376 const param_type& p, std::wstring* l) { | |
377 l->append(L"<HttpResponseHeaders>"); | |
378 } | |
379 | |
380 void ParamTraits<SerializedScriptValue>::Write(Message* m, const param_type& p)
{ | |
381 WriteParam(m, p.is_null()); | |
382 WriteParam(m, p.is_invalid()); | |
383 WriteParam(m, p.data()); | |
384 } | |
385 | |
386 bool ParamTraits<SerializedScriptValue>::Read(const Message* m, void** iter, | |
387 param_type* r) { | |
388 bool is_null; | |
389 bool is_invalid; | |
390 string16 data; | |
391 bool ok = | |
392 ReadParam(m, iter, &is_null) && | |
393 ReadParam(m, iter, &is_invalid) && | |
394 ReadParam(m, iter, &data); | |
395 if (!ok) | |
396 return false; | |
397 r->set_is_null(is_null); | |
398 r->set_is_invalid(is_invalid); | |
399 r->set_data(data); | |
400 return true; | |
401 } | |
402 | |
403 void ParamTraits<SerializedScriptValue>::Log(const param_type& p, | |
404 std::wstring* l) { | |
405 l->append(L"<SerializedScriptValue>("); | |
406 LogParam(p.is_null(), l); | |
407 l->append(L", "); | |
408 LogParam(p.is_invalid(), l); | |
409 l->append(L", "); | |
410 LogParam(p.data(), l); | |
411 l->append(L")"); | |
412 } | |
413 | |
414 void ParamTraits<IndexedDBKey>::Write(Message* m, const param_type& p) { | |
415 WriteParam(m, int(p.type())); | |
416 // TODO(jorlow): Technically, we only need to pack the type being used. | |
417 WriteParam(m, p.string()); | |
418 WriteParam(m, p.number()); | |
419 } | |
420 | |
421 bool ParamTraits<IndexedDBKey>::Read(const Message* m, void** iter, | |
422 param_type* r) { | |
423 int type; | |
424 string16 string; | |
425 int32 number; | |
426 bool ok = | |
427 ReadParam(m, iter, &type) && | |
428 ReadParam(m, iter, &string) && | |
429 ReadParam(m, iter, &number); | |
430 if (!ok) | |
431 return false; | |
432 switch (type) { | |
433 case WebKit::WebIDBKey::NullType: | |
434 r->SetNull(); | |
435 return true; | |
436 case WebKit::WebIDBKey::StringType: | |
437 r->Set(string); | |
438 return true; | |
439 case WebKit::WebIDBKey::NumberType: | |
440 r->Set(number); | |
441 return true; | |
442 case WebKit::WebIDBKey::InvalidType: | |
443 r->SetInvalid(); | |
444 return true; | |
445 } | |
446 NOTREACHED(); | |
447 return false; | |
448 } | |
449 | |
450 void ParamTraits<IndexedDBKey>::Log(const param_type& p, std::wstring* l) { | |
451 l->append(L"<IndexedDBKey>("); | |
452 LogParam(int(p.type()), l); | |
453 l->append(L", "); | |
454 LogParam(p.string(), l); | |
455 l->append(L", "); | |
456 LogParam(p.number(), l); | |
457 l->append(L")"); | |
458 } | |
459 | |
460 void ParamTraits<webkit_glue::FormData>::Write(Message* m, | |
461 const param_type& p) { | |
462 WriteParam(m, p.name); | |
463 WriteParam(m, p.method); | |
464 WriteParam(m, p.origin); | |
465 WriteParam(m, p.action); | |
466 WriteParam(m, p.user_submitted); | |
467 WriteParam(m, p.fields); | |
468 } | |
469 | |
470 bool ParamTraits<webkit_glue::FormData>::Read(const Message* m, void** iter, | |
471 param_type* p) { | |
472 return | |
473 ReadParam(m, iter, &p->name) && | |
474 ReadParam(m, iter, &p->method) && | |
475 ReadParam(m, iter, &p->origin) && | |
476 ReadParam(m, iter, &p->action) && | |
477 ReadParam(m, iter, &p->user_submitted) && | |
478 ReadParam(m, iter, &p->fields); | |
479 } | |
480 | |
481 void ParamTraits<webkit_glue::FormData>::Log(const param_type& p, | |
482 std::wstring* l) { | |
483 l->append(L"<FormData>"); | |
484 } | |
485 | |
486 void ParamTraits<RendererPreferences>::Write(Message* m, const param_type& p) { | |
487 WriteParam(m, p.can_accept_load_drops); | |
488 WriteParam(m, p.should_antialias_text); | |
489 WriteParam(m, static_cast<int>(p.hinting)); | |
490 WriteParam(m, static_cast<int>(p.subpixel_rendering)); | |
491 WriteParam(m, p.focus_ring_color); | |
492 WriteParam(m, p.thumb_active_color); | |
493 WriteParam(m, p.thumb_inactive_color); | |
494 WriteParam(m, p.track_color); | |
495 WriteParam(m, p.active_selection_bg_color); | |
496 WriteParam(m, p.active_selection_fg_color); | |
497 WriteParam(m, p.inactive_selection_bg_color); | |
498 WriteParam(m, p.inactive_selection_fg_color); | |
499 WriteParam(m, p.browser_handles_top_level_requests); | |
500 WriteParam(m, p.caret_blink_interval); | |
501 } | |
502 | |
503 bool ParamTraits<RendererPreferences>::Read(const Message* m, void** iter, | |
504 param_type* p) { | |
505 if (!ReadParam(m, iter, &p->can_accept_load_drops)) | |
506 return false; | |
507 if (!ReadParam(m, iter, &p->should_antialias_text)) | |
508 return false; | |
509 | |
510 int hinting = 0; | |
511 if (!ReadParam(m, iter, &hinting)) | |
512 return false; | |
513 p->hinting = static_cast<RendererPreferencesHintingEnum>(hinting); | |
514 | |
515 int subpixel_rendering = 0; | |
516 if (!ReadParam(m, iter, &subpixel_rendering)) | |
517 return false; | |
518 p->subpixel_rendering = | |
519 static_cast<RendererPreferencesSubpixelRenderingEnum>( | |
520 subpixel_rendering); | |
521 | |
522 int focus_ring_color; | |
523 if (!ReadParam(m, iter, &focus_ring_color)) | |
524 return false; | |
525 p->focus_ring_color = focus_ring_color; | |
526 | |
527 int thumb_active_color, thumb_inactive_color, track_color; | |
528 int active_selection_bg_color, active_selection_fg_color; | |
529 int inactive_selection_bg_color, inactive_selection_fg_color; | |
530 if (!ReadParam(m, iter, &thumb_active_color) || | |
531 !ReadParam(m, iter, &thumb_inactive_color) || | |
532 !ReadParam(m, iter, &track_color) || | |
533 !ReadParam(m, iter, &active_selection_bg_color) || | |
534 !ReadParam(m, iter, &active_selection_fg_color) || | |
535 !ReadParam(m, iter, &inactive_selection_bg_color) || | |
536 !ReadParam(m, iter, &inactive_selection_fg_color)) | |
537 return false; | |
538 p->thumb_active_color = thumb_active_color; | |
539 p->thumb_inactive_color = thumb_inactive_color; | |
540 p->track_color = track_color; | |
541 p->active_selection_bg_color = active_selection_bg_color; | |
542 p->active_selection_fg_color = active_selection_fg_color; | |
543 p->inactive_selection_bg_color = inactive_selection_bg_color; | |
544 p->inactive_selection_fg_color = inactive_selection_fg_color; | |
545 | |
546 if (!ReadParam(m, iter, &p->browser_handles_top_level_requests)) | |
547 return false; | |
548 | |
549 if (!ReadParam(m, iter, &p->caret_blink_interval)) | |
550 return false; | |
551 | |
552 return true; | |
553 } | |
554 | |
555 void ParamTraits<RendererPreferences>::Log(const param_type& p, | |
556 std::wstring* l) { | |
557 l->append(L"<RendererPreferences>"); | |
558 } | |
559 | |
560 void ParamTraits<WebPreferences>::Write(Message* m, const param_type& p) { | |
561 WriteParam(m, p.standard_font_family); | |
562 WriteParam(m, p.fixed_font_family); | |
563 WriteParam(m, p.serif_font_family); | |
564 WriteParam(m, p.sans_serif_font_family); | |
565 WriteParam(m, p.cursive_font_family); | |
566 WriteParam(m, p.fantasy_font_family); | |
567 WriteParam(m, p.default_font_size); | |
568 WriteParam(m, p.default_fixed_font_size); | |
569 WriteParam(m, p.minimum_font_size); | |
570 WriteParam(m, p.minimum_logical_font_size); | |
571 WriteParam(m, p.default_encoding); | |
572 WriteParam(m, p.javascript_enabled); | |
573 WriteParam(m, p.web_security_enabled); | |
574 WriteParam(m, p.javascript_can_open_windows_automatically); | |
575 WriteParam(m, p.loads_images_automatically); | |
576 WriteParam(m, p.plugins_enabled); | |
577 WriteParam(m, p.dom_paste_enabled); | |
578 WriteParam(m, p.developer_extras_enabled); | |
579 WriteParam(m, p.inspector_settings); | |
580 WriteParam(m, p.site_specific_quirks_enabled); | |
581 WriteParam(m, p.shrinks_standalone_images_to_fit); | |
582 WriteParam(m, p.uses_universal_detector); | |
583 WriteParam(m, p.text_areas_are_resizable); | |
584 WriteParam(m, p.java_enabled); | |
585 WriteParam(m, p.allow_scripts_to_close_windows); | |
586 WriteParam(m, p.uses_page_cache); | |
587 WriteParam(m, p.remote_fonts_enabled); | |
588 WriteParam(m, p.javascript_can_access_clipboard); | |
589 WriteParam(m, p.xss_auditor_enabled); | |
590 WriteParam(m, p.local_storage_enabled); | |
591 WriteParam(m, p.databases_enabled); | |
592 WriteParam(m, p.application_cache_enabled); | |
593 WriteParam(m, p.tabs_to_links); | |
594 WriteParam(m, p.user_style_sheet_enabled); | |
595 WriteParam(m, p.user_style_sheet_location); | |
596 WriteParam(m, p.author_and_user_styles_enabled); | |
597 WriteParam(m, p.allow_universal_access_from_file_urls); | |
598 WriteParam(m, p.allow_file_access_from_file_urls); | |
599 WriteParam(m, p.experimental_webgl_enabled); | |
600 WriteParam(m, p.show_composited_layer_borders); | |
601 WriteParam(m, p.accelerated_compositing_enabled); | |
602 WriteParam(m, p.accelerated_2d_canvas_enabled); | |
603 WriteParam(m, p.memory_info_enabled); | |
604 } | |
605 | |
606 bool ParamTraits<WebPreferences>::Read(const Message* m, void** iter, | |
607 param_type* p) { | |
608 return | |
609 ReadParam(m, iter, &p->standard_font_family) && | |
610 ReadParam(m, iter, &p->fixed_font_family) && | |
611 ReadParam(m, iter, &p->serif_font_family) && | |
612 ReadParam(m, iter, &p->sans_serif_font_family) && | |
613 ReadParam(m, iter, &p->cursive_font_family) && | |
614 ReadParam(m, iter, &p->fantasy_font_family) && | |
615 ReadParam(m, iter, &p->default_font_size) && | |
616 ReadParam(m, iter, &p->default_fixed_font_size) && | |
617 ReadParam(m, iter, &p->minimum_font_size) && | |
618 ReadParam(m, iter, &p->minimum_logical_font_size) && | |
619 ReadParam(m, iter, &p->default_encoding) && | |
620 ReadParam(m, iter, &p->javascript_enabled) && | |
621 ReadParam(m, iter, &p->web_security_enabled) && | |
622 ReadParam(m, iter, &p->javascript_can_open_windows_automatically) && | |
623 ReadParam(m, iter, &p->loads_images_automatically) && | |
624 ReadParam(m, iter, &p->plugins_enabled) && | |
625 ReadParam(m, iter, &p->dom_paste_enabled) && | |
626 ReadParam(m, iter, &p->developer_extras_enabled) && | |
627 ReadParam(m, iter, &p->inspector_settings) && | |
628 ReadParam(m, iter, &p->site_specific_quirks_enabled) && | |
629 ReadParam(m, iter, &p->shrinks_standalone_images_to_fit) && | |
630 ReadParam(m, iter, &p->uses_universal_detector) && | |
631 ReadParam(m, iter, &p->text_areas_are_resizable) && | |
632 ReadParam(m, iter, &p->java_enabled) && | |
633 ReadParam(m, iter, &p->allow_scripts_to_close_windows) && | |
634 ReadParam(m, iter, &p->uses_page_cache) && | |
635 ReadParam(m, iter, &p->remote_fonts_enabled) && | |
636 ReadParam(m, iter, &p->javascript_can_access_clipboard) && | |
637 ReadParam(m, iter, &p->xss_auditor_enabled) && | |
638 ReadParam(m, iter, &p->local_storage_enabled) && | |
639 ReadParam(m, iter, &p->databases_enabled) && | |
640 ReadParam(m, iter, &p->application_cache_enabled) && | |
641 ReadParam(m, iter, &p->tabs_to_links) && | |
642 ReadParam(m, iter, &p->user_style_sheet_enabled) && | |
643 ReadParam(m, iter, &p->user_style_sheet_location) && | |
644 ReadParam(m, iter, &p->author_and_user_styles_enabled) && | |
645 ReadParam(m, iter, &p->allow_universal_access_from_file_urls) && | |
646 ReadParam(m, iter, &p->allow_file_access_from_file_urls) && | |
647 ReadParam(m, iter, &p->experimental_webgl_enabled) && | |
648 ReadParam(m, iter, &p->show_composited_layer_borders) && | |
649 ReadParam(m, iter, &p->accelerated_compositing_enabled) && | |
650 ReadParam(m, iter, &p->accelerated_2d_canvas_enabled) && | |
651 ReadParam(m, iter, &p->memory_info_enabled); | |
652 } | |
653 | |
654 void ParamTraits<WebPreferences>::Log(const param_type& p, std::wstring* l) { | |
655 l->append(L"<WebPreferences>"); | |
656 } | |
657 | |
658 void ParamTraits<WebDropData>::Write(Message* m, const param_type& p) { | |
659 WriteParam(m, p.identity); | |
660 WriteParam(m, p.url); | |
661 WriteParam(m, p.url_title); | |
662 WriteParam(m, p.download_metadata); | |
663 WriteParam(m, p.file_extension); | |
664 WriteParam(m, p.filenames); | |
665 WriteParam(m, p.plain_text); | |
666 WriteParam(m, p.text_html); | |
667 WriteParam(m, p.html_base_url); | |
668 WriteParam(m, p.file_description_filename); | |
669 WriteParam(m, p.file_contents); | |
670 } | |
671 | |
672 bool ParamTraits<WebDropData>::Read(const Message* m, void** iter, | |
673 param_type* p) { | |
674 return | |
675 ReadParam(m, iter, &p->identity) && | |
676 ReadParam(m, iter, &p->url) && | |
677 ReadParam(m, iter, &p->url_title) && | |
678 ReadParam(m, iter, &p->download_metadata) && | |
679 ReadParam(m, iter, &p->file_extension) && | |
680 ReadParam(m, iter, &p->filenames) && | |
681 ReadParam(m, iter, &p->plain_text) && | |
682 ReadParam(m, iter, &p->text_html) && | |
683 ReadParam(m, iter, &p->html_base_url) && | |
684 ReadParam(m, iter, &p->file_description_filename) && | |
685 ReadParam(m, iter, &p->file_contents); | |
686 } | |
687 | |
688 void ParamTraits<WebDropData>::Log(const param_type& p, std::wstring* l) { | |
689 l->append(L"<WebDropData>"); | |
690 } | |
691 | |
692 void ParamTraits<URLPattern>::Write(Message* m, const param_type& p) { | |
693 WriteParam(m, p.valid_schemes()); | |
694 WriteParam(m, p.GetAsString()); | |
695 } | |
696 | |
697 bool ParamTraits<URLPattern>::Read(const Message* m, void** iter, | |
698 param_type* p) { | |
699 int valid_schemes; | |
700 std::string spec; | |
701 if (!ReadParam(m, iter, &valid_schemes) || | |
702 !ReadParam(m, iter, &spec)) | |
703 return false; | |
704 | |
705 p->set_valid_schemes(valid_schemes); | |
706 return p->Parse(spec); | |
707 } | |
708 | |
709 void ParamTraits<URLPattern>::Log(const param_type& p, std::wstring* l) { | |
710 LogParam(p.GetAsString(), l); | |
711 } | |
712 | |
713 void ParamTraits<EditCommand>::Write(Message* m, const param_type& p) { | |
714 WriteParam(m, p.name); | |
715 WriteParam(m, p.value); | |
716 } | |
717 | |
718 bool ParamTraits<EditCommand>::Read(const Message* m, void** iter, | |
719 param_type* p) { | |
720 return ReadParam(m, iter, &p->name) && ReadParam(m, iter, &p->value); | |
721 } | |
722 | |
723 void ParamTraits<EditCommand>::Log(const param_type& p, std::wstring* l) { | |
724 l->append(L"("); | |
725 LogParam(p.name, l); | |
726 l->append(L":"); | |
727 LogParam(p.value, l); | |
728 l->append(L")"); | |
729 } | |
730 | |
731 void ParamTraits<webkit_glue::WebCookie>::Write(Message* m, | |
732 const param_type& p) { | |
733 WriteParam(m, p.name); | |
734 WriteParam(m, p.value); | |
735 WriteParam(m, p.domain); | |
736 WriteParam(m, p.path); | |
737 WriteParam(m, p.expires); | |
738 WriteParam(m, p.http_only); | |
739 WriteParam(m, p.secure); | |
740 WriteParam(m, p.session); | |
741 } | |
742 | |
743 bool ParamTraits<webkit_glue::WebCookie>::Read(const Message* m, void** iter, | |
744 param_type* p) { | |
745 return | |
746 ReadParam(m, iter, &p->name) && | |
747 ReadParam(m, iter, &p->value) && | |
748 ReadParam(m, iter, &p->domain) && | |
749 ReadParam(m, iter, &p->path) && | |
750 ReadParam(m, iter, &p->expires) && | |
751 ReadParam(m, iter, &p->http_only) && | |
752 ReadParam(m, iter, &p->secure) && | |
753 ReadParam(m, iter, &p->session); | |
754 } | |
755 | |
756 void ParamTraits<webkit_glue::WebCookie>::Log(const param_type& p, | |
757 std::wstring* l) { | |
758 l->append(L"<WebCookie>"); | |
759 } | |
760 | |
761 void ParamTraits<ExtensionExtent>::Write(Message* m, const param_type& p) { | |
762 WriteParam(m, p.patterns()); | |
763 } | |
764 | |
765 bool ParamTraits<ExtensionExtent>::Read(const Message* m, void** iter, | |
766 param_type* p) { | |
767 std::vector<URLPattern> patterns; | |
768 bool success = | |
769 ReadParam(m, iter, &patterns); | |
770 if (!success) | |
771 return false; | |
772 | |
773 for (size_t i = 0; i < patterns.size(); ++i) | |
774 p->AddPattern(patterns[i]); | |
775 return true; | |
776 } | |
777 | |
778 void ParamTraits<ExtensionExtent>::Log(const param_type& p, std::wstring* l) { | |
779 LogParam(p.patterns(), l); | |
780 } | |
781 | |
782 void ParamTraits<appcache::AppCacheResourceInfo>::Write(Message* m, | |
783 const param_type& p) { | |
784 WriteParam(m, p.url); | |
785 WriteParam(m, p.size); | |
786 WriteParam(m, p.is_manifest); | |
787 WriteParam(m, p.is_master); | |
788 WriteParam(m, p.is_fallback); | |
789 WriteParam(m, p.is_foreign); | |
790 WriteParam(m, p.is_explicit); | |
791 } | |
792 | |
793 bool ParamTraits<appcache::AppCacheResourceInfo>::Read( | |
794 const Message* m, void** iter, param_type* p) { | |
795 return ReadParam(m, iter, &p->url) && | |
796 ReadParam(m, iter, &p->size) && | |
797 ReadParam(m, iter, &p->is_manifest) && | |
798 ReadParam(m, iter, &p->is_master) && | |
799 ReadParam(m, iter, &p->is_fallback) && | |
800 ReadParam(m, iter, &p->is_foreign) && | |
801 ReadParam(m, iter, &p->is_explicit); | |
802 } | |
803 | |
804 void ParamTraits<appcache::AppCacheResourceInfo>::Log(const param_type& p, | |
805 std::wstring* l) { | |
806 l->append(L"("); | |
807 LogParam(p.url, l); | |
808 l->append(L", "); | |
809 LogParam(p.size, l); | |
810 l->append(L", "); | |
811 LogParam(p.is_manifest, l); | |
812 l->append(L", "); | |
813 LogParam(p.is_master, l); | |
814 l->append(L", "); | |
815 LogParam(p.is_fallback, l); | |
816 l->append(L", "); | |
817 LogParam(p.is_foreign, l); | |
818 l->append(L", "); | |
819 LogParam(p.is_explicit, l); | |
820 l->append(L")"); | |
821 } | |
822 | |
823 void ParamTraits<appcache::AppCacheInfo>::Write(Message* m, | |
824 const param_type& p) { | |
825 WriteParam(m, p.manifest_url); | |
826 WriteParam(m, p.creation_time); | |
827 WriteParam(m, p.last_update_time); | |
828 WriteParam(m, p.last_access_time); | |
829 WriteParam(m, p.cache_id); | |
830 WriteParam(m, p.status); | |
831 WriteParam(m, p.size); | |
832 WriteParam(m, p.is_complete); | |
833 } | |
834 | |
835 bool ParamTraits<appcache::AppCacheInfo>::Read(const Message* m, void** iter, | |
836 param_type* p) { | |
837 return ReadParam(m, iter, &p->manifest_url) && | |
838 ReadParam(m, iter, &p->creation_time) && | |
839 ReadParam(m, iter, &p->last_update_time) && | |
840 ReadParam(m, iter, &p->last_access_time) && | |
841 ReadParam(m, iter, &p->cache_id) && | |
842 ReadParam(m, iter, &p->status) && | |
843 ReadParam(m, iter, &p->size) && | |
844 ReadParam(m, iter, &p->is_complete); | |
845 } | |
846 | |
847 void ParamTraits<appcache::AppCacheInfo>::Log(const param_type& p, | |
848 std::wstring* l) { | |
849 l->append(L"("); | |
850 LogParam(p.manifest_url, l); | |
851 l->append(L", "); | |
852 LogParam(p.creation_time, l); | |
853 l->append(L", "); | |
854 LogParam(p.last_update_time, l); | |
855 l->append(L", "); | |
856 LogParam(p.last_access_time, l); | |
857 l->append(L", "); | |
858 LogParam(p.cache_id, l); | |
859 l->append(L", "); | |
860 LogParam(p.status, l); | |
861 l->append(L", "); | |
862 LogParam(p.size, l); | |
863 l->append(L")"); | |
864 LogParam(p.is_complete, l); | |
865 l->append(L", "); | |
866 } | |
867 | |
868 void ParamTraits<webkit_glue::WebAccessibility>::Write(Message* m, | |
869 const param_type& p) { | |
870 WriteParam(m, p.id); | |
871 WriteParam(m, p.name); | |
872 WriteParam(m, p.value); | |
873 WriteParam(m, static_cast<int>(p.role)); | |
874 WriteParam(m, static_cast<int>(p.state)); | |
875 WriteParam(m, p.location); | |
876 WriteParam(m, p.attributes); | |
877 WriteParam(m, p.children); | |
878 } | |
879 | |
880 bool ParamTraits<webkit_glue::WebAccessibility>::Read( | |
881 const Message* m, void** iter, param_type* p) { | |
882 bool ret = ReadParam(m, iter, &p->id); | |
883 ret = ret && ReadParam(m, iter, &p->name); | |
884 ret = ret && ReadParam(m, iter, &p->value); | |
885 int role = -1; | |
886 ret = ret && ReadParam(m, iter, &role); | |
887 if (role >= webkit_glue::WebAccessibility::ROLE_NONE && | |
888 role < webkit_glue::WebAccessibility::NUM_ROLES) { | |
889 p->role = static_cast<webkit_glue::WebAccessibility::Role>(role); | |
890 } else { | |
891 p->role = webkit_glue::WebAccessibility::ROLE_NONE; | |
892 } | |
893 int state = 0; | |
894 ret = ret && ReadParam(m, iter, &state); | |
895 p->state = static_cast<webkit_glue::WebAccessibility::State>(state); | |
896 ret = ret && ReadParam(m, iter, &p->location); | |
897 ret = ret && ReadParam(m, iter, &p->attributes); | |
898 ret = ret && ReadParam(m, iter, &p->children); | |
899 return ret; | |
900 } | |
901 | |
902 void ParamTraits<webkit_glue::WebAccessibility>::Log(const param_type& p, | |
903 std::wstring* l) { | |
904 l->append(L"("); | |
905 LogParam(p.id, l); | |
906 l->append(L", "); | |
907 LogParam(p.name, l); | |
908 l->append(L", "); | |
909 LogParam(p.value, l); | |
910 l->append(L", "); | |
911 LogParam(static_cast<int>(p.role), l); | |
912 l->append(L", "); | |
913 LogParam(static_cast<int>(p.state), l); | |
914 l->append(L", "); | |
915 LogParam(p.location, l); | |
916 l->append(L", "); | |
917 LogParam(p.attributes, l); | |
918 l->append(L", "); | |
919 LogParam(p.children, l); | |
920 l->append(L")"); | |
921 } | |
922 | |
923 } // namespace IPC | |
OLD | NEW |