Index: chrome/common/plugin_messages.h |
=================================================================== |
--- chrome/common/plugin_messages.h (revision 9103) |
+++ chrome/common/plugin_messages.h (working copy) |
@@ -15,14 +15,11 @@ |
#include "base/gfx/rect.h" |
#include "base/basictypes.h" |
-#include "chrome/common/ipc_message.h" |
#include "chrome/common/ipc_message_utils.h" |
#include "googleurl/src/gurl.h" |
#include "third_party/npapi/bindings/npapi.h" |
#include "webkit/glue/npruntime_util.h" |
-void PluginMessagesInit(); |
- |
// Name prefix of the event handle when a message box is displayed. |
#define kMessageBoxEventPrefix L"message_box_active" |
@@ -38,95 +35,11 @@ |
HANDLE modal_dialog_event; |
}; |
-struct PluginHostMsg_URLRequest_Params { |
- std::string method; |
- bool is_javascript_url; |
- std::string target; |
- std::vector<char> buffer; |
- bool is_file_data; |
- bool notify; |
- std::string url; |
- HANDLE notify_data; |
- bool popups_allowed; |
-}; |
- |
-struct PluginMsg_URLRequestReply_Params { |
- int resource_id; |
- std::string url; |
- bool notify_needed; |
- HANDLE notify_data; |
- HANDLE stream; |
-}; |
- |
-struct PluginMsg_PrintResponse_Params { |
- HANDLE shared_memory; |
- size_t size; |
-}; |
- |
-struct PluginMsg_DidReceiveResponseParams { |
- int id; |
- std::string mime_type; |
- std::string headers; |
- uint32 expected_length; |
- uint32 last_modified; |
- bool request_is_seekable; |
-}; |
- |
-struct NPIdentifier_Param { |
- NPIdentifier identifier; |
-}; |
- |
-enum NPVariant_ParamEnum { |
- NPVARIANT_PARAM_VOID, |
- NPVARIANT_PARAM_NULL, |
- NPVARIANT_PARAM_BOOL, |
- NPVARIANT_PARAM_INT, |
- NPVARIANT_PARAM_DOUBLE, |
- NPVARIANT_PARAM_STRING, |
- // Used when when the NPObject is running in the caller's process, so we |
- // create an NPObjectProxy in the other process. |
- NPVARIANT_PARAM_OBJECT_ROUTING_ID, |
- // Used when the NPObject we're sending is running in the callee's process |
- // (i.e. we have an NPObjectProxy for it). In that case we want the callee |
- // to just use the raw pointer. |
- NPVARIANT_PARAM_OBJECT_POINTER, |
-}; |
- |
-struct NPVariant_Param { |
- NPVariant_ParamEnum type; |
- bool bool_value; |
- int int_value; |
- double double_value; |
- std::string string_value; |
- int npobject_routing_id; |
- void* npobject_pointer; |
-}; |
- |
- |
-#define IPC_MESSAGE_MACROS_ENUMS |
-#include "chrome/common/plugin_messages_internal.h" |
- |
-#ifdef IPC_MESSAGE_MACROS_LOG_ENABLED |
-# undef IPC_MESSAGE_MACROS_LOG |
-# define IPC_MESSAGE_MACROS_CLASSES |
- |
-# include "chrome/common/plugin_messages_internal.h" |
-# define IPC_MESSAGE_MACROS_LOG |
-# undef IPC_MESSAGE_MACROS_CLASSES |
- |
-# include "chrome/common/plugin_messages_internal.h" |
-#else |
-# define IPC_MESSAGE_MACROS_CLASSES |
-# include "chrome/common/plugin_messages_internal.h" |
-#endif |
- |
-namespace IPC { |
- |
// Traits for PluginMsg_Init_Params structure to pack/unpack. |
template <> |
struct ParamTraits<PluginMsg_Init_Params> { |
typedef PluginMsg_Init_Params param_type; |
- static void Write(Message* m, const param_type& p) { |
+ static void Write(IPC::Message* m, const param_type& p) { |
WriteParam(m, p.containing_window); |
WriteParam(m, p.url); |
DCHECK(p.arg_names.size() == p.arg_values.size()); |
@@ -135,7 +48,7 @@ |
WriteParam(m, p.load_manually); |
WriteParam(m, p.modal_dialog_event); |
} |
- static bool Read(const Message* m, void** iter, param_type* p) { |
+ static bool Read(const IPC::Message* m, void** iter, param_type* p) { |
return ReadParam(m, iter, &p->containing_window) && |
ReadParam(m, iter, &p->url) && |
ReadParam(m, iter, &p->arg_names) && |
@@ -160,10 +73,23 @@ |
} |
}; |
+ |
+struct PluginHostMsg_URLRequest_Params { |
+ std::string method; |
+ bool is_javascript_url; |
+ std::string target; |
+ std::vector<char> buffer; |
+ bool is_file_data; |
+ bool notify; |
+ std::string url; |
+ HANDLE notify_data; |
+ bool popups_allowed; |
+}; |
+ |
template <> |
struct ParamTraits<PluginHostMsg_URLRequest_Params> { |
typedef PluginHostMsg_URLRequest_Params param_type; |
- static void Write(Message* m, const param_type& p) { |
+ static void Write(IPC::Message* m, const param_type& p) { |
WriteParam(m, p.method); |
WriteParam(m, p.is_javascript_url); |
WriteParam(m, p.target); |
@@ -174,7 +100,7 @@ |
WriteParam(m, p.notify_data); |
WriteParam(m, p.popups_allowed); |
} |
- static bool Read(const Message* m, void** iter, param_type* p) { |
+ static bool Read(const IPC::Message* m, void** iter, param_type* p) { |
return |
ReadParam(m, iter, &p->method) && |
ReadParam(m, iter, &p->is_javascript_url) && |
@@ -209,17 +135,26 @@ |
} |
}; |
+ |
+struct PluginMsg_URLRequestReply_Params { |
+ int resource_id; |
+ std::string url; |
+ bool notify_needed; |
+ HANDLE notify_data; |
+ HANDLE stream; |
+}; |
+ |
template <> |
struct ParamTraits<PluginMsg_URLRequestReply_Params> { |
typedef PluginMsg_URLRequestReply_Params param_type; |
- static void Write(Message* m, const param_type& p) { |
+ static void Write(IPC::Message* m, const param_type& p) { |
WriteParam(m, p.resource_id); |
WriteParam(m, p.url); |
WriteParam(m, p.notify_needed); |
WriteParam(m, p.notify_data); |
WriteParam(m, p.stream); |
} |
- static bool Read(const Message* m, void** iter, param_type* p) { |
+ static bool Read(const IPC::Message* m, void** iter, param_type* p) { |
return |
ReadParam(m, iter, &p->resource_id) && |
ReadParam(m, iter, &p->url) && |
@@ -242,14 +177,20 @@ |
} |
}; |
+ |
+struct PluginMsg_PrintResponse_Params { |
+ HANDLE shared_memory; |
+ size_t size; |
+}; |
+ |
template <> |
struct ParamTraits<PluginMsg_PrintResponse_Params> { |
typedef PluginMsg_PrintResponse_Params param_type; |
- static void Write(Message* m, const param_type& p) { |
+ static void Write(IPC::Message* m, const param_type& p) { |
WriteParam(m, p.shared_memory); |
WriteParam(m, p.size); |
} |
- static bool Read(const Message* m, void** iter, param_type* r) { |
+ static bool Read(const IPC::Message* m, void** iter, param_type* r) { |
return |
ReadParam(m, iter, &r->shared_memory) && |
ReadParam(m, iter, &r->size); |
@@ -258,10 +199,20 @@ |
} |
}; |
+ |
+struct PluginMsg_DidReceiveResponseParams { |
+ int id; |
+ std::string mime_type; |
+ std::string headers; |
+ uint32 expected_length; |
+ uint32 last_modified; |
+ bool request_is_seekable; |
+}; |
+ |
template <> |
struct ParamTraits<PluginMsg_DidReceiveResponseParams> { |
typedef PluginMsg_DidReceiveResponseParams param_type; |
- static void Write(Message* m, const param_type& p) { |
+ static void Write(IPC::Message* m, const param_type& p) { |
WriteParam(m, p.id); |
WriteParam(m, p.mime_type); |
WriteParam(m, p.headers); |
@@ -269,7 +220,7 @@ |
WriteParam(m, p.last_modified); |
WriteParam(m, p.request_is_seekable); |
} |
- static bool Read(const Message* m, void** iter, param_type* r) { |
+ static bool Read(const IPC::Message* m, void** iter, param_type* r) { |
return |
ReadParam(m, iter, &r->id) && |
ReadParam(m, iter, &r->mime_type) && |
@@ -295,97 +246,18 @@ |
} |
}; |
-template <> |
-struct ParamTraits<NPEvent> { |
- typedef NPEvent param_type; |
- static void Write(Message* m, const param_type& p) { |
- m->WriteData(reinterpret_cast<const char*>(&p), sizeof(NPEvent)); |
- } |
- static bool Read(const Message* m, void** iter, param_type* r) { |
- const char *data; |
- int data_size = 0; |
- bool result = m->ReadData(iter, &data, &data_size); |
- if (!result || data_size != sizeof(NPEvent)) { |
- NOTREACHED(); |
- return false; |
- } |
- memcpy(r, data, sizeof(NPEvent)); |
- return true; |
- } |
- static void Log(const param_type& p, std::wstring* l) { |
- std::wstring event, wparam, lparam; |
- lparam = StringPrintf(L"(%d, %d)", LOWORD(p.lParam), HIWORD(p.lParam)); |
- switch(p.event) { |
- case WM_KEYDOWN: |
- event = L"WM_KEYDOWN"; |
- wparam = StringPrintf(L"%d", p.wParam); |
- lparam = StringPrintf(L"%d", p.lParam); |
- break; |
- case WM_KEYUP: |
- event = L"WM_KEYDOWN"; |
- wparam = StringPrintf(L"%d", p.wParam); |
- lparam = StringPrintf(L"%x", p.lParam); |
- break; |
- case WM_MOUSEMOVE: |
- event = L"WM_MOUSEMOVE"; |
- if (p.wParam & MK_LBUTTON) { |
- wparam = L"MK_LBUTTON"; |
- } else if (p.wParam & MK_MBUTTON) { |
- wparam = L"MK_MBUTTON"; |
- } else if (p.wParam & MK_RBUTTON) { |
- wparam = L"MK_RBUTTON"; |
- } |
- break; |
- case WM_LBUTTONDOWN: |
- event = L"WM_LBUTTONDOWN"; |
- break; |
- case WM_MBUTTONDOWN: |
- event = L"WM_MBUTTONDOWN"; |
- break; |
- case WM_RBUTTONDOWN: |
- event = L"WM_RBUTTONDOWN"; |
- break; |
- case WM_LBUTTONUP: |
- event = L"WM_LBUTTONUP"; |
- break; |
- case WM_MBUTTONUP: |
- event = L"WM_MBUTTONUP"; |
- break; |
- case WM_RBUTTONUP: |
- event = L"WM_RBUTTONUP"; |
- break; |
- } |
- |
- if (p.wParam & MK_CONTROL) { |
- if (!wparam.empty()) |
- wparam += L" "; |
- wparam += L"MK_CONTROL"; |
- } |
- |
- if (p.wParam & MK_SHIFT) { |
- if (!wparam.empty()) |
- wparam += L" "; |
- wparam += L"MK_SHIFT"; |
- } |
- |
- l->append(L"("); |
- LogParam(event, l); |
- l->append(L", "); |
- LogParam(wparam, l); |
- l->append(L", "); |
- LogParam(lparam, l); |
- l->append(L")"); |
- } |
+struct NPIdentifier_Param { |
+ NPIdentifier identifier; |
}; |
template <> |
struct ParamTraits<NPIdentifier_Param> { |
typedef NPIdentifier_Param param_type; |
- static void Write(Message* m, const param_type& p) { |
+ static void Write(IPC::Message* m, const param_type& p) { |
webkit_glue::SerializeNPIdentifier(p.identifier, m); |
} |
- static bool Read(const Message* m, void** iter, param_type* r) { |
+ static bool Read(const IPC::Message* m, void** iter, param_type* r) { |
return webkit_glue::DeserializeNPIdentifier(*m, iter, &r->identifier); |
} |
static void Log(const param_type& p, std::wstring* l) { |
@@ -399,10 +271,37 @@ |
} |
}; |
+ |
+enum NPVariant_ParamEnum { |
+ NPVARIANT_PARAM_VOID, |
+ NPVARIANT_PARAM_NULL, |
+ NPVARIANT_PARAM_BOOL, |
+ NPVARIANT_PARAM_INT, |
+ NPVARIANT_PARAM_DOUBLE, |
+ NPVARIANT_PARAM_STRING, |
+ // Used when when the NPObject is running in the caller's process, so we |
+ // create an NPObjectProxy in the other process. |
+ NPVARIANT_PARAM_OBJECT_ROUTING_ID, |
+ // Used when the NPObject we're sending is running in the callee's process |
+ // (i.e. we have an NPObjectProxy for it). In that case we want the callee |
+ // to just use the raw pointer. |
+ NPVARIANT_PARAM_OBJECT_POINTER, |
+}; |
+ |
+struct NPVariant_Param { |
+ NPVariant_ParamEnum type; |
+ bool bool_value; |
+ int int_value; |
+ double double_value; |
+ std::string string_value; |
+ int npobject_routing_id; |
+ void* npobject_pointer; |
+}; |
+ |
template <> |
struct ParamTraits<NPVariant_Param> { |
typedef NPVariant_Param param_type; |
- static void Write(Message* m, const param_type& p) { |
+ static void Write(IPC::Message* m, const param_type& p) { |
WriteParam(m, static_cast<int>(p.type)); |
if (p.type == NPVARIANT_PARAM_BOOL) { |
WriteParam(m, p.bool_value); |
@@ -425,7 +324,7 @@ |
DCHECK(p.type == NPVARIANT_PARAM_VOID || p.type == NPVARIANT_PARAM_NULL); |
} |
} |
- static bool Read(const Message* m, void** iter, param_type* r) { |
+ static bool Read(const IPC::Message* m, void** iter, param_type* r) { |
int type; |
if (!ReadParam(m, iter, &type)) |
return false; |
@@ -473,7 +372,94 @@ |
} |
}; |
-} // namespace IPC |
+template <> |
+struct ParamTraits<NPEvent> { |
+ typedef NPEvent param_type; |
+ static void Write(IPC::Message* m, const param_type& p) { |
+ m->WriteData(reinterpret_cast<const char*>(&p), sizeof(NPEvent)); |
+ } |
+ static bool Read(const IPC::Message* m, void** iter, param_type* r) { |
+ const char *data; |
+ int data_size = 0; |
+ bool result = m->ReadData(iter, &data, &data_size); |
+ if (!result || data_size != sizeof(NPEvent)) { |
+ NOTREACHED(); |
+ return false; |
+ } |
+ |
+ memcpy(r, data, sizeof(NPEvent)); |
+ return true; |
+ } |
+ static void Log(const param_type& p, std::wstring* l) { |
+ std::wstring event, wparam, lparam; |
+ lparam = StringPrintf(L"(%d, %d)", LOWORD(p.lParam), HIWORD(p.lParam)); |
+ switch(p.event) { |
+ case WM_KEYDOWN: |
+ event = L"WM_KEYDOWN"; |
+ wparam = StringPrintf(L"%d", p.wParam); |
+ lparam = StringPrintf(L"%d", p.lParam); |
+ break; |
+ case WM_KEYUP: |
+ event = L"WM_KEYDOWN"; |
+ wparam = StringPrintf(L"%d", p.wParam); |
+ lparam = StringPrintf(L"%x", p.lParam); |
+ break; |
+ case WM_MOUSEMOVE: |
+ event = L"WM_MOUSEMOVE"; |
+ if (p.wParam & MK_LBUTTON) { |
+ wparam = L"MK_LBUTTON"; |
+ } else if (p.wParam & MK_MBUTTON) { |
+ wparam = L"MK_MBUTTON"; |
+ } else if (p.wParam & MK_RBUTTON) { |
+ wparam = L"MK_RBUTTON"; |
+ } |
+ break; |
+ case WM_LBUTTONDOWN: |
+ event = L"WM_LBUTTONDOWN"; |
+ break; |
+ case WM_MBUTTONDOWN: |
+ event = L"WM_MBUTTONDOWN"; |
+ break; |
+ case WM_RBUTTONDOWN: |
+ event = L"WM_RBUTTONDOWN"; |
+ break; |
+ case WM_LBUTTONUP: |
+ event = L"WM_LBUTTONUP"; |
+ break; |
+ case WM_MBUTTONUP: |
+ event = L"WM_MBUTTONUP"; |
+ break; |
+ case WM_RBUTTONUP: |
+ event = L"WM_RBUTTONUP"; |
+ break; |
+ } |
+ |
+ if (p.wParam & MK_CONTROL) { |
+ if (!wparam.empty()) |
+ wparam += L" "; |
+ wparam += L"MK_CONTROL"; |
+ } |
+ |
+ if (p.wParam & MK_SHIFT) { |
+ if (!wparam.empty()) |
+ wparam += L" "; |
+ wparam += L"MK_SHIFT"; |
+ } |
+ |
+ l->append(L"("); |
+ LogParam(event, l); |
+ l->append(L", "); |
+ LogParam(wparam, l); |
+ l->append(L", "); |
+ LogParam(lparam, l); |
+ l->append(L")"); |
+ } |
+}; |
+ |
+ |
+#define MESSAGES_INTERNAL_FILE "chrome/common/plugin_messages_internal.h" |
+#include "chrome/common/ipc_message_macros.h" |
+ |
#endif // CHROME_COMMON_PLUGIN_MESSAGES_H__ |