Index: ipc/ipc_message_utils.h |
diff --git a/ipc/ipc_message_utils.h b/ipc/ipc_message_utils.h |
index 7fda943f355a882533c2f8916d4ba8ce64d4186b..13301871d8897210e08a49eb364d8fb4da2b8d9b 100644 |
--- a/ipc/ipc_message_utils.h |
+++ b/ipc/ipc_message_utils.h |
@@ -686,6 +686,34 @@ struct IPC_EXPORT ParamTraits<Message> { |
static void Log(const Message& p, std::string* l); |
}; |
+// Wayland ParamTraits --------------------------------------------------------- |
+ |
+#if defined(USE_WAYLAND) |
+template <> |
+struct IPC_EXPORT ParamTraits<ui::WaylandWindow*> { |
+ typedef ui::WaylandWindow* param_type; |
+ static void Write(Message* m, const param_type& p) { |
+ m->WriteData(reinterpret_cast<const char*>(&p), sizeof(ui::WaylandWindow*)); |
+ } |
+ static bool Read(const Message* m, PickleIterator* iter, param_type* r) { |
+ const char *data; |
+ int data_size = 0; |
+ bool result = m->ReadData(iter, &data, &data_size); |
+ if (result && data_size == sizeof(ui::WaylandWindow*)) { |
+ memcpy(r, data, sizeof(ui::WaylandWindow*)); |
+ } else { |
+ result = false; |
+ NOTREACHED(); |
+ } |
+ |
+ return result; |
+ } |
+ static void Log(const param_type& p, std::string* l) { |
+ l->append("<ui::WaylandWindow*>"); |
+ } |
+}; |
+#endif |
+ |
// Windows ParamTraits --------------------------------------------------------- |
#if defined(OS_WIN) |