Chromium Code Reviews| Index: content/browser/renderer_host/render_view_host_notification_task.h |
| diff --git a/content/browser/renderer_host/render_view_host_notification_task.h b/content/browser/renderer_host/render_view_host_notification_task.h |
| index 2629353310cc4be08b99455e3f328f3c125d5a04..2b686e698559b73c202f8859e1411c78af8f15ed 100644 |
| --- a/content/browser/renderer_host/render_view_host_notification_task.h |
| +++ b/content/browser/renderer_host/render_view_host_notification_task.h |
| @@ -70,6 +70,30 @@ inline void CallRenderViewHostHelper(int render_process_id, int render_view_id, |
| method, |
| params)); |
| } |
| + |
| +class RenderViewHostToDelegate { |
| + public: |
| + typedef RenderViewHostDelegate MappedType; |
| + static MappedType* Map(RenderViewHost* rvh) { |
| + return rvh ? rvh->delegate() : NULL; |
| + } |
| +}; |
| + |
| +template <typename Method, typename Params> |
| +inline void CallRenderViewHostDelegateHelper( |
| + int render_process_id, |
| + int render_view_id, |
| + Method method, |
| + const Params& params) { |
| + BrowserThread::PostTask( |
| + BrowserThread::UI, FROM_HERE, |
| + new RenderViewHostNotificationTask< |
| + Method, Params, RenderViewHostToDelegate>( |
| + render_process_id, |
| + render_view_id, |
| + method, |
| + params)); |
| +} |
|
Matt Perry
2011/11/23 02:51:20
this stuff is only necessary for step 1 of the hac
|
| // For proxying calls to RenderViewHostDelegate::RendererManagement |
| @@ -135,7 +159,69 @@ inline void CallRenderViewHost(int render_process_id, |
| method, |
| MakeTuple(a, b)); |
| } |
| - |
| + |
| +// ---------------------------------------------------------------------------- |
| +// Proxy calls to the specified RenderViewHostDelegate. |
| + |
| +template <typename Method> |
| +inline void CallRenderViewHostDelegate(int render_process_id, |
| + int render_view_id, |
| + Method method) { |
| + internal::CallRenderViewHostDelegateHelper(render_process_id, |
| + render_view_id, |
| + method, |
| + MakeTuple()); |
| +} |
| + |
| +template <typename Method, typename A> |
| +inline void CallRenderViewHostDelegate(int render_process_id, |
| + int render_view_id, |
| + Method method, |
| + const A& a) { |
| + internal::CallRenderViewHostDelegateHelper(render_process_id, |
| + render_view_id, |
| + method, |
| + MakeTuple(a)); |
| +} |
| + |
| +template <typename Method, typename A, typename B> |
| +inline void CallRenderViewHostDelegate(int render_process_id, |
| + int render_view_id, |
| + Method method, |
| + const A& a, |
| + const B& b) { |
| + internal::CallRenderViewHostDelegateHelper(render_process_id, |
| + render_view_id, |
| + method, |
| + MakeTuple(a, b)); |
| +} |
| + |
| +template <typename Method, typename A, typename B, typename C> |
| +inline void CallRenderViewHostDelegate(int render_process_id, |
| + int render_view_id, |
| + Method method, |
| + const A& a, |
| + const B& b, |
| + const C& c) { |
| + internal::CallRenderViewHostDelegateHelper(render_process_id, |
| + render_view_id, |
| + method, |
| + MakeTuple(a, b, c)); |
| +} |
| + |
| +template <typename Method, typename A, typename B, typename C, typename D> |
| +inline void CallRenderViewHostDelegate(int render_process_id, |
| + int render_view_id, |
| + Method method, |
| + const A& a, |
| + const B& b, |
| + const C& c, |
| + const D& d) { |
| + internal::CallRenderViewHostDelegateHelper(render_process_id, |
| + render_view_id, |
| + method, |
| + MakeTuple(a, b, c, d)); |
| +} |
| // ---------------------------------------------------------------------------- |
| // Proxy calls to the specified RenderViewHost's RendererManagement delegate. |