Index: chrome/browser/renderer_host/render_view_host_notification_task.h |
=================================================================== |
--- chrome/browser/renderer_host/render_view_host_notification_task.h (revision 75488) |
+++ chrome/browser/renderer_host/render_view_host_notification_task.h (working copy) |
@@ -2,336 +2,11 @@ |
// Use of this source code is governed by a BSD-style license that can be |
// found in the LICENSE file. |
-// This file defines utility functions for sending notifications (calling |
-// methods that return void and do not have out params) to the RenderViewHost |
-// or one of its delegate interfaces. The notifications are dispatched |
-// asynchronously, and only if the specified RenderViewHost still exists. |
- |
#ifndef CHROME_BROWSER_RENDERER_HOST_RENDER_VIEW_HOST_NOTIFICATION_TASK_H_ |
#define CHROME_BROWSER_RENDERER_HOST_RENDER_VIEW_HOST_NOTIFICATION_TASK_H_ |
#pragma once |
-#include "base/callback.h" |
-#include "base/task.h" |
-#include "chrome/browser/browser_thread.h" |
-#include "chrome/browser/renderer_host/render_view_host.h" |
-#include "chrome/browser/renderer_host/render_view_host_delegate.h" |
+// TODO(jam): remove this file when all files have been converted. |
+#include "content/browser/renderer_host/render_view_host_notification_task.h" |
-// ---------------------------------------------------------------------------- |
- |
-namespace internal { |
- |
-// The simplest Mapper, used when proxying calls to a RenderViewHost. |
-class RenderViewHostIdentityMapper { |
- public: |
- typedef RenderViewHost MappedType; |
- static MappedType* Map(RenderViewHost* rvh) { return rvh; } |
-}; |
- |
-template <typename Method, typename Params, |
- typename Mapper = RenderViewHostIdentityMapper> |
-class RenderViewHostNotificationTask : public Task { |
- public: |
- RenderViewHostNotificationTask(int render_process_id, |
- int render_view_id, |
- Method method, |
- const Params& params) |
- : render_process_id_(render_process_id), |
- render_view_id_(render_view_id), |
- unbound_method_(method, params) { |
- } |
- |
- virtual void Run() { |
- RenderViewHost* rvh = RenderViewHost::FromID(render_process_id_, |
- render_view_id_); |
- typename Mapper::MappedType* obj = Mapper::Map(rvh); |
- if (obj) |
- unbound_method_.Run(obj); |
- } |
- |
- private: |
- int render_process_id_; |
- int render_view_id_; |
- UnboundMethod<typename Mapper::MappedType, Method, Params> unbound_method_; |
- |
- DISALLOW_COPY_AND_ASSIGN(RenderViewHostNotificationTask); |
-}; |
- |
-// For proxying calls to RenderViewHost |
- |
-template <typename Method, typename Params> |
-inline void CallRenderViewHostHelper(int render_process_id, int render_view_id, |
- Method method, const Params& params) { |
- BrowserThread::PostTask( |
- BrowserThread::UI, FROM_HERE, |
- new RenderViewHostNotificationTask<Method, Params>(render_process_id, |
- render_view_id, |
- method, |
- params)); |
-} |
- |
-// For proxying calls to RenderViewHostDelegate::ContentSettings |
- |
-class RenderViewHostToContentSettingsDelegate { |
- public: |
- typedef RenderViewHostDelegate::ContentSettings MappedType; |
- static MappedType* Map(RenderViewHost* rvh) { |
- return rvh ? rvh->delegate()->GetContentSettingsDelegate() : NULL; |
- } |
-}; |
- |
-template <typename Method, typename Params> |
-inline void CallRenderViewHostContentSettingsDelegateHelper( |
- int render_process_id, |
- int render_view_id, |
- Method method, |
- const Params& params) { |
- |
- BrowserThread::PostTask( |
- BrowserThread::UI, FROM_HERE, |
- new RenderViewHostNotificationTask< |
- Method, Params, RenderViewHostToContentSettingsDelegate>( |
- render_process_id, |
- render_view_id, |
- method, |
- params)); |
-} |
- |
-// For proxying calls to RenderViewHostDelegate::RendererManagement |
- |
-class RenderViewHostToRendererManagementDelegate { |
- public: |
- typedef RenderViewHostDelegate::RendererManagement MappedType; |
- static MappedType* Map(RenderViewHost* rvh) { |
- return rvh ? rvh->delegate()->GetRendererManagementDelegate() : NULL; |
- } |
-}; |
- |
-template <typename Method, typename Params> |
-inline void CallRenderViewHostRendererManagementDelegateHelper( |
- int render_process_id, |
- int render_view_id, |
- Method method, |
- const Params& params) { |
- BrowserThread::PostTask( |
- BrowserThread::UI, FROM_HERE, |
- new RenderViewHostNotificationTask< |
- Method, Params, RenderViewHostToRendererManagementDelegate>( |
- render_process_id, |
- render_view_id, |
- method, |
- 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) { |
- BrowserThread::PostTask( |
- BrowserThread::UI, FROM_HERE, |
- new RenderViewHostNotificationTask< |
- Method, Params, RenderViewHostToSSLDelegate>( |
- render_process_id, |
- render_view_id, |
- method, |
- params)); |
-} |
- |
-} // namespace internal |
- |
-// ---------------------------------------------------------------------------- |
-// Proxy calls to the specified RenderViewHost. |
- |
-template <typename Method> |
-inline void CallRenderViewHost(int render_process_id, |
- int render_view_id, |
- Method method) { |
- internal::CallRenderViewHostHelper(render_process_id, |
- render_view_id, |
- method, |
- MakeTuple()); |
-} |
- |
-template <typename Method, typename A> |
-inline void CallRenderViewHost(int render_process_id, |
- int render_view_id, |
- Method method, |
- const A& a) { |
- internal::CallRenderViewHostHelper(render_process_id, |
- render_view_id, |
- method, |
- MakeTuple(a)); |
-} |
- |
-template <typename Method, typename A, typename B> |
-inline void CallRenderViewHost(int render_process_id, |
- int render_view_id, |
- Method method, |
- const A& a, |
- const B& b) { |
- internal::CallRenderViewHostHelper(render_process_id, |
- render_view_id, |
- method, |
- MakeTuple(a, b)); |
-} |
- |
-// ---------------------------------------------------------------------------- |
-// Proxy calls to the specified RenderViewHost's ContentSettings delegate. |
- |
-template <typename Method> |
-inline void CallRenderViewHostContentSettingsDelegate(int render_process_id, |
- int render_view_id, |
- Method method) { |
- internal::CallRenderViewHostContentSettingsDelegateHelper(render_process_id, |
- render_view_id, |
- method, |
- MakeTuple()); |
-} |
- |
-template <typename Method, typename A> |
-inline void CallRenderViewHostContentSettingsDelegate(int render_process_id, |
- int render_view_id, |
- Method method, |
- const A& a) { |
- internal::CallRenderViewHostContentSettingsDelegateHelper(render_process_id, |
- render_view_id, |
- method, |
- MakeTuple(a)); |
- } |
- |
-template <typename Method, typename A, typename B> |
-inline void CallRenderViewHostContentSettingsDelegate(int render_process_id, |
- int render_view_id, |
- Method method, |
- const A& a, |
- const B& b) { |
- internal::CallRenderViewHostContentSettingsDelegateHelper(render_process_id, |
- render_view_id, |
- method, |
- MakeTuple(a, b)); |
-} |
- |
-template <typename Method, typename A, typename B, typename C> |
-inline void CallRenderViewHostContentSettingsDelegate(int render_process_id, |
- int render_view_id, |
- Method method, |
- const A& a, |
- const B& b, |
- const C& c) { |
- internal::CallRenderViewHostContentSettingsDelegateHelper(render_process_id, |
- render_view_id, |
- method, |
- MakeTuple(a, b, c)); |
-} |
- |
-template <typename Method, typename A, typename B, typename C, typename D> |
-inline void CallRenderViewHostContentSettingsDelegate(int render_process_id, |
- int render_view_id, |
- Method method, |
- const A& a, |
- const B& b, |
- const C& c, |
- const D& d) { |
- internal::CallRenderViewHostContentSettingsDelegateHelper( |
- render_process_id, |
- render_view_id, |
- method, |
- MakeTuple(a, b, c, d)); |
-} |
- |
-template <typename Method, |
- typename A, typename B, typename C, typename D, typename E> |
-inline void CallRenderViewHostContentSettingsDelegate(int render_process_id, |
- int render_view_id, |
- Method method, |
- const A& a, |
- const B& b, |
- const C& c, |
- const D& d, |
- const E& e) { |
- internal::CallRenderViewHostContentSettingsDelegateHelper( |
- render_process_id, render_view_id, method, MakeTuple(a, b, c, d, e)); |
-} |
- |
-// ---------------------------------------------------------------------------- |
-// Proxy calls to the specified RenderViewHost's RendererManagement delegate. |
- |
-template <typename Method> |
-inline void CallRenderViewHostRendererManagementDelegate(int render_process_id, |
- int render_view_id, |
- Method method) { |
- internal::CallRenderViewHostRendererManagementDelegateHelper( |
- render_process_id, |
- render_view_id, |
- method, |
- MakeTuple()); |
-} |
- |
-template <typename Method, typename A> |
-inline void CallRenderViewHostRendererManagementDelegate(int render_process_id, |
- int render_view_id, |
- Method method, |
- const A& a) { |
- internal::CallRenderViewHostRendererManagementDelegateHelper( |
- render_process_id, |
- render_view_id, |
- method, |
- MakeTuple(a)); |
-} |
- |
-template <typename Method, typename A, typename B> |
-inline void CallRenderViewHostRendererManagementDelegate(int render_process_id, |
- int render_view_id, |
- Method method, |
- const A& a, |
- const B& b) { |
- internal::CallRenderViewHostRendererManagementDelegateHelper( |
- render_process_id, |
- render_view_id, |
- method, |
- MakeTuple(a, b)); |
-} |
- |
-// ---------------------------------------------------------------------------- |
-// 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_ |