diff options
author | erg@google.com <erg@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-08-11 16:38:22 +0000 |
---|---|---|
committer | erg@google.com <erg@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-08-11 16:38:22 +0000 |
commit | ef85bbeac4d297d238bb9c17312261182187cebc (patch) | |
tree | 8b0bfbde3264837374854e8c4ce43356c3677907 /chrome/common/render_messages.cc | |
parent | b24c81a4c510bec2902b12d4768d6d47aafed9f2 (diff) | |
download | chromium_src-ef85bbeac4d297d238bb9c17312261182187cebc.zip chromium_src-ef85bbeac4d297d238bb9c17312261182187cebc.tar.gz chromium_src-ef85bbeac4d297d238bb9c17312261182187cebc.tar.bz2 |
FBTF: Allow forward declaration of classes passed to sync IPC messages.
This is a continuation of r55259, where we convert the remaining IPC messages
to the new system. At this point, all the messages should be able to accept
forward declared classes/structs as parameters.
BUG=51411
TEST=none
Review URL: http://codereview.chromium.org/3018045
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@55735 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/common/render_messages.cc')
-rw-r--r-- | chrome/common/render_messages.cc | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/chrome/common/render_messages.cc b/chrome/common/render_messages.cc index 68aa81d..04a258c 100644 --- a/chrome/common/render_messages.cc +++ b/chrome/common/render_messages.cc @@ -5,8 +5,71 @@ #include "chrome/common/render_messages.h" #include "chrome/common/thumbnail_score.h" +#include "third_party/WebKit/WebKit/chromium/public/WebCompositionUnderline.h" +#include "third_party/WebKit/WebKit/chromium/public/WebFindOptions.h" +#include "third_party/WebKit/WebKit/chromium/public/WebScreenInfo.h" +#include "webkit/glue/webaccessibility.h" #include "webkit/glue/webcursor.h" #define MESSAGES_INTERNAL_IMPL_FILE \ "chrome/common/render_messages_internal.h" #include "ipc/ipc_message_impl_macros.h" + +namespace IPC { + +void ParamTraits<webkit_glue::WebAccessibility>::Write(Message* m, + const param_type& p) { + WriteParam(m, p.id); + WriteParam(m, p.name); + WriteParam(m, p.value); + WriteParam(m, static_cast<int>(p.role)); + WriteParam(m, static_cast<int>(p.state)); + WriteParam(m, p.location); + WriteParam(m, p.attributes); + WriteParam(m, p.children); +} + +bool ParamTraits<webkit_glue::WebAccessibility>::Read( + const Message* m, void** iter, param_type* p) { + bool ret = ReadParam(m, iter, &p->id); + ret = ret && ReadParam(m, iter, &p->name); + ret = ret && ReadParam(m, iter, &p->value); + int role = -1; + ret = ret && ReadParam(m, iter, &role); + if (role >= webkit_glue::WebAccessibility::ROLE_NONE && + role < webkit_glue::WebAccessibility::NUM_ROLES) { + p->role = static_cast<webkit_glue::WebAccessibility::Role>(role); + } else { + p->role = webkit_glue::WebAccessibility::ROLE_NONE; + } + int state = 0; + ret = ret && ReadParam(m, iter, &state); + p->state = static_cast<webkit_glue::WebAccessibility::State>(state); + ret = ret && ReadParam(m, iter, &p->location); + ret = ret && ReadParam(m, iter, &p->attributes); + ret = ret && ReadParam(m, iter, &p->children); + return ret; +} + +void ParamTraits<webkit_glue::WebAccessibility>::Log(const param_type& p, + std::wstring* l) { + l->append(L"("); + LogParam(p.id, l); + l->append(L", "); + LogParam(p.name, l); + l->append(L", "); + LogParam(p.value, l); + l->append(L", "); + LogParam(static_cast<int>(p.role), l); + l->append(L", "); + LogParam(static_cast<int>(p.state), l); + l->append(L", "); + LogParam(p.location, l); + l->append(L", "); + LogParam(p.attributes, l); + l->append(L", "); + LogParam(p.children, l); + l->append(L")"); +} + +} // namespace IPC |