diff options
author | yurys@chromium.org <yurys@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-12-11 09:55:55 +0000 |
---|---|---|
committer | yurys@chromium.org <yurys@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-12-11 09:55:55 +0000 |
commit | 04390799bdd8eada3630b70a59515b2a2aedaedc (patch) | |
tree | a6de3fc63119023a0473736bfc6a7e5e4823162c /webkit | |
parent | 3122b64aa6096e6536751a9b91204038b41fde5b (diff) | |
download | chromium_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.h | 2 | ||||
-rw-r--r-- | webkit/glue/devtools/debugger_agent.h | 4 | ||||
-rw-r--r-- | webkit/glue/devtools/devtools_rpc.h | 76 | ||||
-rw-r--r-- | webkit/glue/devtools/devtools_rpc_js.h | 26 | ||||
-rw-r--r-- | webkit/glue/devtools/profiler_agent.h | 4 | ||||
-rw-r--r-- | webkit/glue/devtools/tools_agent.h | 6 |
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 */) \ |