OLD | NEW |
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 // This file defines utility functions for sending notifications (calling | 5 // This file defines utility functions for sending notifications (calling |
6 // methods that return void and do not have out params) to the RenderViewHost | 6 // methods that return void and do not have out params) to the RenderViewHost |
7 // or one of its delegate interfaces. The notifications are dispatched | 7 // or one of its delegate interfaces. The notifications are dispatched |
8 // asynchronously, and only if the specified RenderViewHost still exists. | 8 // asynchronously, and only if the specified RenderViewHost still exists. |
9 | 9 |
10 #ifndef CHROME_BROWSER_RENDERER_HOST_RENDER_VIEW_HOST_NOTIFICATION_TASK_H_ | 10 #ifndef CHROME_BROWSER_RENDERER_HOST_RENDER_VIEW_HOST_NOTIFICATION_TASK_H_ |
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
63 inline void CallRenderViewHostHelper(int render_process_id, int render_view_id, | 63 inline void CallRenderViewHostHelper(int render_process_id, int render_view_id, |
64 Method method, const Params& params) { | 64 Method method, const Params& params) { |
65 BrowserThread::PostTask( | 65 BrowserThread::PostTask( |
66 BrowserThread::UI, FROM_HERE, | 66 BrowserThread::UI, FROM_HERE, |
67 new RenderViewHostNotificationTask<Method, Params>(render_process_id, | 67 new RenderViewHostNotificationTask<Method, Params>(render_process_id, |
68 render_view_id, | 68 render_view_id, |
69 method, | 69 method, |
70 params)); | 70 params)); |
71 } | 71 } |
72 | 72 |
73 // For proxying calls to RenderViewHostDelegate::Resource | |
74 | |
75 class RenderViewHostToResourceDelegate { | |
76 public: | |
77 typedef RenderViewHostDelegate::Resource MappedType; | |
78 static MappedType* Map(RenderViewHost* rvh) { | |
79 return rvh ? rvh->delegate()->GetResourceDelegate() : NULL; | |
80 } | |
81 }; | |
82 | |
83 template <typename Method, typename Params> | |
84 inline void CallRenderViewHostResourceDelegateHelper(int render_process_id, | |
85 int render_view_id, | |
86 Method method, | |
87 const Params& params) { | |
88 | |
89 BrowserThread::PostTask( | |
90 BrowserThread::UI, FROM_HERE, | |
91 new RenderViewHostNotificationTask< | |
92 Method, Params, RenderViewHostToResourceDelegate>(render_process_id, | |
93 render_view_id, | |
94 method, | |
95 params)); | |
96 } | |
97 | |
98 // For proxying calls to RenderViewHostDelegate::ContentSettings | 73 // For proxying calls to RenderViewHostDelegate::ContentSettings |
99 | 74 |
100 class RenderViewHostToContentSettingsDelegate { | 75 class RenderViewHostToContentSettingsDelegate { |
101 public: | 76 public: |
102 typedef RenderViewHostDelegate::ContentSettings MappedType; | 77 typedef RenderViewHostDelegate::ContentSettings MappedType; |
103 static MappedType* Map(RenderViewHost* rvh) { | 78 static MappedType* Map(RenderViewHost* rvh) { |
104 return rvh ? rvh->delegate()->GetContentSettingsDelegate() : NULL; | 79 return rvh ? rvh->delegate()->GetContentSettingsDelegate() : NULL; |
105 } | 80 } |
106 }; | 81 }; |
107 | 82 |
(...skipping 98 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
206 Method method, | 181 Method method, |
207 const A& a, | 182 const A& a, |
208 const B& b) { | 183 const B& b) { |
209 internal::CallRenderViewHostHelper(render_process_id, | 184 internal::CallRenderViewHostHelper(render_process_id, |
210 render_view_id, | 185 render_view_id, |
211 method, | 186 method, |
212 MakeTuple(a, b)); | 187 MakeTuple(a, b)); |
213 } | 188 } |
214 | 189 |
215 // ---------------------------------------------------------------------------- | 190 // ---------------------------------------------------------------------------- |
216 // Proxy calls to the specified RenderViewHost's Resource delegate. | |
217 | |
218 template <typename Method> | |
219 inline void CallRenderViewHostResourceDelegate(int render_process_id, | |
220 int render_view_id, | |
221 Method method) { | |
222 internal::CallRenderViewHostResourceDelegateHelper(render_process_id, | |
223 render_view_id, | |
224 method, | |
225 MakeTuple()); | |
226 } | |
227 | |
228 template <typename Method, typename A> | |
229 inline void CallRenderViewHostResourceDelegate(int render_process_id, | |
230 int render_view_id, | |
231 Method method, | |
232 const A& a) { | |
233 internal::CallRenderViewHostResourceDelegateHelper(render_process_id, | |
234 render_view_id, | |
235 method, | |
236 MakeTuple(a)); | |
237 } | |
238 | |
239 template <typename Method, typename A, typename B> | |
240 inline void CallRenderViewHostResourceDelegate(int render_process_id, | |
241 int render_view_id, | |
242 Method method, | |
243 const A& a, | |
244 const B& b) { | |
245 internal::CallRenderViewHostResourceDelegateHelper(render_process_id, | |
246 render_view_id, | |
247 method, | |
248 MakeTuple(a, b)); | |
249 } | |
250 | |
251 // ---------------------------------------------------------------------------- | |
252 // Proxy calls to the specified RenderViewHost's ContentSettings delegate. | 191 // Proxy calls to the specified RenderViewHost's ContentSettings delegate. |
253 | 192 |
254 template <typename Method> | 193 template <typename Method> |
255 inline void CallRenderViewHostContentSettingsDelegate(int render_process_id, | 194 inline void CallRenderViewHostContentSettingsDelegate(int render_process_id, |
256 int render_view_id, | 195 int render_view_id, |
257 Method method) { | 196 Method method) { |
258 internal::CallRenderViewHostContentSettingsDelegateHelper(render_process_id, | 197 internal::CallRenderViewHostContentSettingsDelegateHelper(render_process_id, |
259 render_view_id, | 198 render_view_id, |
260 method, | 199 method, |
261 MakeTuple()); | 200 MakeTuple()); |
(...skipping 127 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
389 internal::CallRenderViewHostSSLDelegateHelper( | 328 internal::CallRenderViewHostSSLDelegateHelper( |
390 render_process_id, | 329 render_process_id, |
391 render_view_id, | 330 render_view_id, |
392 method, | 331 method, |
393 MakeTuple(a, b)); | 332 MakeTuple(a, b)); |
394 } | 333 } |
395 | 334 |
396 // ---------------------------------------------------------------------------- | 335 // ---------------------------------------------------------------------------- |
397 | 336 |
398 #endif // CHROME_BROWSER_RENDERER_HOST_RENDER_VIEW_HOST_NOTIFICATION_TASK_H_ | 337 #endif // CHROME_BROWSER_RENDERER_HOST_RENDER_VIEW_HOST_NOTIFICATION_TASK_H_ |
OLD | NEW |