summaryrefslogtreecommitdiffstats
path: root/webkit
diff options
context:
space:
mode:
authoryurys@chromium.org <yurys@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-12-11 09:55:55 +0000
committeryurys@chromium.org <yurys@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-12-11 09:55:55 +0000
commit04390799bdd8eada3630b70a59515b2a2aedaedc (patch)
treea6de3fc63119023a0473736bfc6a7e5e4823162c /webkit
parent3122b64aa6096e6536751a9b91204038b41fde5b (diff)
downloadchromium_src-04390799bdd8eada3630b70a59515b2a2aedaedc.zip
chromium_src-04390799bdd8eada3630b70a59515b2a2aedaedc.tar.gz
chromium_src-04390799bdd8eada3630b70a59515b2a2aedaedc.tar.bz2
DevTools: support rpc messages with 4 and 5 arguments
Review URL: http://codereview.chromium.org/491042 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@34340 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'webkit')
-rw-r--r--webkit/glue/devtools/apu_agent_delegate.h2
-rw-r--r--webkit/glue/devtools/debugger_agent.h4
-rw-r--r--webkit/glue/devtools/devtools_rpc.h76
-rw-r--r--webkit/glue/devtools/devtools_rpc_js.h26
-rw-r--r--webkit/glue/devtools/profiler_agent.h4
-rw-r--r--webkit/glue/devtools/tools_agent.h6
6 files changed, 105 insertions, 13 deletions
diff --git a/webkit/glue/devtools/apu_agent_delegate.h b/webkit/glue/devtools/apu_agent_delegate.h
index 17965d9..2cb2223a 100644
--- a/webkit/glue/devtools/apu_agent_delegate.h
+++ b/webkit/glue/devtools/apu_agent_delegate.h
@@ -7,7 +7,7 @@
#include "webkit/glue/devtools/devtools_rpc.h"
-#define APU_AGENT_DELEGATE_STRUCT(METHOD0, METHOD1, METHOD2, METHOD3) \
+#define APU_AGENT_DELEGATE_STRUCT(METHOD0, METHOD1, METHOD2, METHOD3, MEHTOD4, METHOD5) \
/* Sends a json object to apu. */ \
METHOD1(DispatchToApu, String /* data */)
diff --git a/webkit/glue/devtools/debugger_agent.h b/webkit/glue/devtools/debugger_agent.h
index 6ba1a84..4f272cc 100644
--- a/webkit/glue/devtools/debugger_agent.h
+++ b/webkit/glue/devtools/debugger_agent.h
@@ -7,13 +7,13 @@
#include "webkit/glue/devtools/devtools_rpc.h"
-#define DEBUGGER_AGENT_STRUCT(METHOD0, METHOD1, METHOD2, METHOD3) \
+#define DEBUGGER_AGENT_STRUCT(METHOD0, METHOD1, METHOD2, METHOD3, METHOD4, METHOD5) \
/* Requests global context id of the inspected tab. */ \
METHOD0(GetContextId)
DEFINE_RPC_CLASS(DebuggerAgent, DEBUGGER_AGENT_STRUCT)
-#define DEBUGGER_AGENT_DELEGATE_STRUCT(METHOD0, METHOD1, METHOD2, METHOD3) \
+#define DEBUGGER_AGENT_DELEGATE_STRUCT(METHOD0, METHOD1, METHOD2, METHOD3, METHOD4, METHOD5) \
METHOD1(DebuggerOutput, String /* output text */) \
\
/* Pushes debugger context id into the client. */ \
diff --git a/webkit/glue/devtools/devtools_rpc.h b/webkit/glue/devtools/devtools_rpc.h
index b0c60fe..1a068b2 100644
--- a/webkit/glue/devtools/devtools_rpc.h
+++ b/webkit/glue/devtools/devtools_rpc.h
@@ -130,6 +130,19 @@ struct RpcTypeTrait<String> {
RpcTypeTrait<T2>::ApiType t2, \
RpcTypeTrait<T3>::ApiType t3) = 0;
+#define TOOLS_RPC_API_METHOD4(Method, T1, T2, T3, T4) \
+ virtual void Method(RpcTypeTrait<T1>::ApiType t1, \
+ RpcTypeTrait<T2>::ApiType t2, \
+ RpcTypeTrait<T3>::ApiType t3, \
+ RpcTypeTrait<T4>::ApiType t4) = 0;
+
+#define TOOLS_RPC_API_METHOD5(Method, T1, T2, T3, T4, T5) \
+ virtual void Method(RpcTypeTrait<T1>::ApiType t1, \
+ RpcTypeTrait<T2>::ApiType t2, \
+ RpcTypeTrait<T3>::ApiType t3, \
+ RpcTypeTrait<T4>::ApiType t4, \
+ RpcTypeTrait<T5>::ApiType t5) = 0;
+
///////////////////////////////////////////////////////
// RPC stub method implementations
@@ -166,6 +179,34 @@ struct RpcTypeTrait<String> {
this->SendRpcMessage(class_name, #Method, args); \
}
+#define TOOLS_RPC_STUB_METHOD4(Method, T1, T2, T3, T4) \
+ virtual void Method(RpcTypeTrait<T1>::ApiType t1, \
+ RpcTypeTrait<T2>::ApiType t2, \
+ RpcTypeTrait<T3>::ApiType t3, \
+ RpcTypeTrait<T4>::ApiType t4) { \
+ Vector<String> args(4); \
+ args[0] = RpcTypeTrait<T1>::ToString(t1); \
+ args[1] = RpcTypeTrait<T2>::ToString(t2); \
+ args[2] = RpcTypeTrait<T3>::ToString(t3); \
+ args[3] = RpcTypeTrait<T4>::ToString(t4); \
+ this->SendRpcMessage(class_name, #Method, args); \
+ }
+
+#define TOOLS_RPC_STUB_METHOD5(Method, T1, T2, T3, T4, T5) \
+ virtual void Method(RpcTypeTrait<T1>::ApiType t1, \
+ RpcTypeTrait<T2>::ApiType t2, \
+ RpcTypeTrait<T3>::ApiType t3, \
+ RpcTypeTrait<T4>::ApiType t4, \
+ RpcTypeTrait<T5>::ApiType t5) { \
+ Vector<String> args(5); \
+ args[0] = RpcTypeTrait<T1>::ToString(t1); \
+ args[1] = RpcTypeTrait<T2>::ToString(t2); \
+ args[2] = RpcTypeTrait<T3>::ToString(t3); \
+ args[3] = RpcTypeTrait<T4>::ToString(t4); \
+ args[4] = RpcTypeTrait<T5>::ToString(t5); \
+ this->SendRpcMessage(class_name, #Method, args); \
+ }
+
///////////////////////////////////////////////////////
// RPC dispatch method implementations
@@ -200,6 +241,29 @@ if (method_name == #Method) { \
return true; \
}
+#define TOOLS_RPC_DISPATCH4(Method, T1, T2, T3, T4) \
+if (method_name == #Method) { \
+ delegate->Method( \
+ RpcTypeTrait<T1>::Parse(args[0]), \
+ RpcTypeTrait<T2>::Parse(args[1]), \
+ RpcTypeTrait<T3>::Parse(args[2]), \
+ RpcTypeTrait<T4>::Parse(args[3]) \
+ ); \
+ return true; \
+}
+
+#define TOOLS_RPC_DISPATCH5(Method, T1, T2, T3, T4, T5) \
+if (method_name == #Method) { \
+ delegate->Method( \
+ RpcTypeTrait<T1>::Parse(args[0]), \
+ RpcTypeTrait<T2>::Parse(args[1]), \
+ RpcTypeTrait<T3>::Parse(args[2]), \
+ RpcTypeTrait<T4>::Parse(args[3]), \
+ RpcTypeTrait<T5>::Parse(args[4]) \
+ ); \
+ return true; \
+}
+
#define TOOLS_END_RPC_DISPATCH() \
}
@@ -218,7 +282,9 @@ class Class : public Noncopyable {\
TOOLS_RPC_API_METHOD0, \
TOOLS_RPC_API_METHOD1, \
TOOLS_RPC_API_METHOD2, \
- TOOLS_RPC_API_METHOD3) \
+ TOOLS_RPC_API_METHOD3, \
+ TOOLS_RPC_API_METHOD4, \
+ TOOLS_RPC_API_METHOD5) \
WebCore::String class_name; \
}; \
\
@@ -233,7 +299,9 @@ class Class##Stub \
TOOLS_RPC_STUB_METHOD0, \
TOOLS_RPC_STUB_METHOD1, \
TOOLS_RPC_STUB_METHOD2, \
- TOOLS_RPC_STUB_METHOD3) \
+ TOOLS_RPC_STUB_METHOD3, \
+ TOOLS_RPC_STUB_METHOD4, \
+ TOOLS_RPC_STUB_METHOD5) \
}; \
\
class Class##Dispatch : public Noncopyable { \
@@ -257,7 +325,9 @@ class Class##Dispatch : public Noncopyable { \
TOOLS_RPC_DISPATCH0, \
TOOLS_RPC_DISPATCH1, \
TOOLS_RPC_DISPATCH2, \
- TOOLS_RPC_DISPATCH3) \
+ TOOLS_RPC_DISPATCH3, \
+ TOOLS_RPC_DISPATCH4, \
+ TOOLS_RPC_DISPATCH5) \
return false; \
} \
};
diff --git a/webkit/glue/devtools/devtools_rpc_js.h b/webkit/glue/devtools/devtools_rpc_js.h
index f51d5f6..f6761c7 100644
--- a/webkit/glue/devtools/devtools_rpc_js.h
+++ b/webkit/glue/devtools/devtools_rpc_js.h
@@ -31,6 +31,12 @@
#define TOOLS_RPC_JS_BIND_METHOD3(Method, T1, T2, T3) \
bound_obj.AddProtoFunction(#Method, OCLASS::Js##Method);
+#define TOOLS_RPC_JS_BIND_METHOD4(Method, T1, T2, T3, T4) \
+ bound_obj.AddProtoFunction(#Method, OCLASS::Js##Method);
+
+#define TOOLS_RPC_JS_BIND_METHOD5(Method, T1, T2, T3, T4, T5) \
+ bound_obj.AddProtoFunction(#Method, OCLASS::Js##Method);
+
#define TOOLS_RPC_JS_STUB_METHOD0(Method) \
static v8::Handle<v8::Value> Js##Method(const v8::Arguments& args) { \
SendRpcMessageFromJs(#Method, args, 0); \
@@ -55,6 +61,18 @@
return v8::Undefined(); \
}
+#define TOOLS_RPC_JS_STUB_METHOD4(Method, T1, T2, T3, T4) \
+ static v8::Handle<v8::Value> Js##Method(const v8::Arguments& args) { \
+ SendRpcMessageFromJs(#Method, args, 4); \
+ return v8::Undefined(); \
+ }
+
+#define TOOLS_RPC_JS_STUB_METHOD5(Method, T1, T2, T3, T4, T5) \
+ static v8::Handle<v8::Value> Js##Method(const v8::Arguments& args) { \
+ SendRpcMessageFromJs(#Method, args, 5); \
+ return v8::Undefined(); \
+ }
+
///////////////////////////////////////////////////////
// JS RPC main obj macro
@@ -70,7 +88,9 @@ class Js##Class##BoundObj : public Class##Stub { \
TOOLS_RPC_JS_BIND_METHOD0, \
TOOLS_RPC_JS_BIND_METHOD1, \
TOOLS_RPC_JS_BIND_METHOD2, \
- TOOLS_RPC_JS_BIND_METHOD3) \
+ TOOLS_RPC_JS_BIND_METHOD3, \
+ TOOLS_RPC_JS_BIND_METHOD4, \
+ TOOLS_RPC_JS_BIND_METHOD5) \
bound_obj.Build(); \
} \
virtual ~Js##Class##BoundObj() {} \
@@ -79,7 +99,9 @@ class Js##Class##BoundObj : public Class##Stub { \
TOOLS_RPC_JS_STUB_METHOD0, \
TOOLS_RPC_JS_STUB_METHOD1, \
TOOLS_RPC_JS_STUB_METHOD2, \
- TOOLS_RPC_JS_STUB_METHOD3) \
+ TOOLS_RPC_JS_STUB_METHOD3, \
+ TOOLS_RPC_JS_STUB_METHOD4, \
+ TOOLS_RPC_JS_STUB_METHOD5) \
private: \
static void SendRpcMessageFromJs(const char* method, \
const v8::Arguments& js_arguments, \
diff --git a/webkit/glue/devtools/profiler_agent.h b/webkit/glue/devtools/profiler_agent.h
index c285401..cc0ccad 100644
--- a/webkit/glue/devtools/profiler_agent.h
+++ b/webkit/glue/devtools/profiler_agent.h
@@ -10,7 +10,7 @@
// Profiler agent provides API for retrieving profiler data.
// These methods are handled on the IO thread, so profiler can
// operate while a script on a page performs heavy work.
-#define PROFILER_AGENT_STRUCT(METHOD0, METHOD1, METHOD2, METHOD3) \
+#define PROFILER_AGENT_STRUCT(METHOD0, METHOD1, METHOD2, METHOD3, METHOD4, METHOD5) \
/* Requests current profiler state. */ \
METHOD0(GetActiveProfilerModules) \
\
@@ -19,7 +19,7 @@
DEFINE_RPC_CLASS(ProfilerAgent, PROFILER_AGENT_STRUCT)
-#define PROFILER_AGENT_DELEGATE_STRUCT(METHOD0, METHOD1, METHOD2, METHOD3) \
+#define PROFILER_AGENT_DELEGATE_STRUCT(METHOD0, METHOD1, METHOD2, METHOD3, METHOD4, METHOD5) \
/* Response to GetActiveProfilerModules. */ \
METHOD1(DidGetActiveProfilerModules, int /* flags */) \
\
diff --git a/webkit/glue/devtools/tools_agent.h b/webkit/glue/devtools/tools_agent.h
index 8b730a8..b67f2eb 100644
--- a/webkit/glue/devtools/tools_agent.h
+++ b/webkit/glue/devtools/tools_agent.h
@@ -9,7 +9,7 @@
// Tools agent provides API for enabling / disabling other agents as well as
// API for auxiliary UI functions such as dom elements highlighting.
-#define TOOLS_AGENT_STRUCT(METHOD0, METHOD1, METHOD2, METHOD3) \
+#define TOOLS_AGENT_STRUCT(METHOD0, METHOD1, METHOD2, METHOD3, METHOD4, METHOD5) \
/* Request the agent to to run a no-op JavaScript function to trigger v8
execution. */ \
METHOD0(ExecuteVoidJavaScript) \
@@ -28,7 +28,7 @@
DEFINE_RPC_CLASS(ToolsAgent, TOOLS_AGENT_STRUCT)
-#define TOOLS_AGENT_DELEGATE_STRUCT(METHOD0, METHOD1, METHOD2, METHOD3) \
+#define TOOLS_AGENT_DELEGATE_STRUCT(METHOD0, METHOD1, METHOD2, METHOD3, METHOD4, METHOD5) \
/* Updates focused node on the client. */ \
METHOD1(FrameNavigate, String /* url */) \
\
@@ -41,7 +41,7 @@ DEFINE_RPC_CLASS(ToolsAgent, TOOLS_AGENT_STRUCT)
DEFINE_RPC_CLASS(ToolsAgentDelegate, TOOLS_AGENT_DELEGATE_STRUCT)
-#define TOOLS_AGENT_NATIVE_DELEGATE_STRUCT(METHOD0, METHOD1, METHOD2, METHOD3) \
+#define TOOLS_AGENT_NATIVE_DELEGATE_STRUCT(METHOD0, METHOD1, METHOD2, METHOD3, METHOD4, METHOD5) \
/* Response to the async call. */ \
METHOD2(DidGetResourceContent, int /* call_id */, String /* content */) \