Index: chrome/browser/renderer_host/render_view_host_notification_task.h |
diff --git a/chrome/browser/renderer_host/render_view_host_notification_task.h b/chrome/browser/renderer_host/render_view_host_notification_task.h |
index c1d732aedb511c819359130518b8baeabdba776a..1266922761d33f39e1610e5332877df8eed36a69 100644 |
--- a/chrome/browser/renderer_host/render_view_host_notification_task.h |
+++ b/chrome/browser/renderer_host/render_view_host_notification_task.h |
@@ -147,6 +147,32 @@ inline void CallRenderViewHostRendererManagementDelegateHelper( |
params)); |
} |
+// For proxying calls to RenderViewHostDelegate::SSL |
+ |
+class RenderViewHostToSSLDelegate { |
+ public: |
+ typedef RenderViewHostDelegate::SSL MappedType; |
+ static MappedType* Map(RenderViewHost* rvh) { |
+ return rvh ? rvh->delegate()->GetSSLDelegate() : NULL; |
+ } |
+}; |
+ |
+template <typename Method, typename Params> |
+inline void CallRenderViewHostSSLDelegateHelper( |
+ int render_process_id, |
+ int render_view_id, |
+ Method method, |
+ const Params& params) { |
+ ChromeThread::PostTask( |
+ ChromeThread::UI, FROM_HERE, |
+ new RenderViewHostNotificationTask< |
+ Method, Params, RenderViewHostToSSLDelegate>( |
+ render_process_id, |
+ render_view_id, |
+ method, |
+ params)); |
+} |
+ |
} // namespace internal |
// ---------------------------------------------------------------------------- |
@@ -310,5 +336,33 @@ inline void CallRenderViewHostRendererManagementDelegate(int render_process_id, |
} |
// ---------------------------------------------------------------------------- |
+// Proxy calls to the specified RenderViewHost's SSL delegate. |
+ |
+template <typename Method, typename A> |
+inline void CallRenderViewHostSSLDelegate(int render_process_id, |
+ int render_view_id, |
+ Method method, |
+ const A& a) { |
+ internal::CallRenderViewHostSSLDelegateHelper( |
+ render_process_id, |
+ render_view_id, |
+ method, |
+ MakeTuple(a)); |
+} |
+ |
+template <typename Method, typename A, typename B> |
+inline void CallRenderViewHostSSLDelegate(int render_process_id, |
+ int render_view_id, |
+ Method method, |
+ const A& a, |
+ const B& b) { |
+ internal::CallRenderViewHostSSLDelegateHelper( |
+ render_process_id, |
+ render_view_id, |
+ method, |
+ MakeTuple(a, b)); |
+} |
+ |
+// ---------------------------------------------------------------------------- |
#endif // CHROME_BROWSER_RENDERER_HOST_RENDER_VIEW_HOST_NOTIFICATION_TASK_H_ |