OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 #ifndef CONTENT_RENDERER_RENDER_THREAD_IMPL_H_ | 5 #ifndef CONTENT_RENDERER_RENDER_THREAD_IMPL_H_ |
6 #define CONTENT_RENDERER_RENDER_THREAD_IMPL_H_ | 6 #define CONTENT_RENDERER_RENDER_THREAD_IMPL_H_ |
7 | 7 |
8 #include <set> | 8 #include <set> |
9 #include <string> | 9 #include <string> |
10 #include <vector> | 10 #include <vector> |
11 | 11 |
12 #include "base/observer_list.h" | 12 #include "base/observer_list.h" |
13 #include "base/timer.h" | 13 #include "base/timer.h" |
14 #include "build/build_config.h" | 14 #include "build/build_config.h" |
15 #include "content/common/child_process.h" | 15 #include "content/common/child_process.h" |
16 #include "content/common/child_thread.h" | 16 #include "content/common/child_thread.h" |
17 #include "content/common/content_export.h" | 17 #include "content/common/content_export.h" |
18 #include "content/common/css_colors.h" | 18 #include "content/common/css_colors.h" |
19 #include "content/common/gpu/client/gpu_channel_host.h" | 19 #include "content/common/gpu/client/gpu_channel_host.h" |
20 #include "content/common/gpu/gpu_process_launch_causes.h" | 20 #include "content/common/gpu/gpu_process_launch_causes.h" |
21 #include "content/public/renderer/render_thread.h" | 21 #include "content/public/renderer/render_thread.h" |
22 #include "ipc/ipc_channel_proxy.h" | 22 #include "ipc/ipc_channel_proxy.h" |
23 #include "ui/gfx/native_widget_types.h" | 23 #include "ui/gfx/native_widget_types.h" |
24 | 24 |
25 class AppCacheDispatcher; | 25 class AppCacheDispatcher; |
26 class AudioInputMessageFilter; | 26 class AudioInputMessageFilter; |
27 class AudioMessageFilter; | 27 class AudioMessageFilter; |
28 class CompositorThread; | |
29 class DBMessageFilter; | 28 class DBMessageFilter; |
30 class DevToolsAgentFilter; | |
31 class DomStorageDispatcher; | |
32 class GpuChannelHost; | 29 class GpuChannelHost; |
33 class IndexedDBDispatcher; | 30 class IndexedDBDispatcher; |
34 class MediaStreamDependencyFactory; | 31 class MediaStreamDependencyFactory; |
35 class RendererWebKitPlatformSupportImpl; | |
36 class SkBitmap; | 32 class SkBitmap; |
37 class VideoCaptureImplManager; | 33 class VideoCaptureImplManager; |
38 struct ViewMsg_New_Params; | 34 struct ViewMsg_New_Params; |
39 class WebDatabaseObserverImpl; | 35 class WebDatabaseObserverImpl; |
40 class WebGraphicsContext3DCommandBufferImpl; | 36 class WebGraphicsContext3DCommandBufferImpl; |
41 | 37 |
42 namespace WebKit { | 38 namespace WebKit { |
43 class WebMediaStreamCenter; | 39 class WebMediaStreamCenter; |
44 class WebMediaStreamCenterClient; | 40 class WebMediaStreamCenterClient; |
45 } | 41 } |
46 | 42 |
47 namespace base { | 43 namespace base { |
48 class MessageLoopProxy; | 44 class MessageLoopProxy; |
49 class Thread; | 45 class Thread; |
50 | 46 |
51 #if defined(OS_WIN) | 47 #if defined(OS_WIN) |
52 namespace win { | 48 namespace win { |
53 class ScopedCOMInitializer; | 49 class ScopedCOMInitializer; |
54 } | 50 } |
55 #endif | 51 #endif |
56 } | 52 } |
57 | 53 |
58 namespace IPC { | 54 namespace IPC { |
59 class ForwardingMessageFilter; | 55 class ForwardingMessageFilter; |
60 } | 56 } |
61 | 57 |
| 58 namespace v8 { |
| 59 class Extension; |
| 60 } |
| 61 |
62 namespace content { | 62 namespace content { |
| 63 |
63 class AudioRendererMixerManager; | 64 class AudioRendererMixerManager; |
| 65 class CompositorThread; |
| 66 class DevToolsAgentFilter; |
| 67 class DomStorageDispatcher; |
64 class MediaStreamCenter; | 68 class MediaStreamCenter; |
65 class P2PSocketDispatcher; | 69 class P2PSocketDispatcher; |
| 70 class RendererWebKitPlatformSupportImpl; |
66 class RenderProcessObserver; | 71 class RenderProcessObserver; |
67 | 72 |
68 namespace old { | 73 namespace old { |
69 class BrowserPluginChannelManager; | 74 class BrowserPluginChannelManager; |
70 class BrowserPluginRegistry; | 75 class BrowserPluginRegistry; |
71 } | 76 } |
72 | 77 |
73 } | |
74 | |
75 namespace v8 { | |
76 class Extension; | |
77 } | |
78 | |
79 // The RenderThreadImpl class represents a background thread where RenderView | 78 // The RenderThreadImpl class represents a background thread where RenderView |
80 // instances live. The RenderThread supports an API that is used by its | 79 // instances live. The RenderThread supports an API that is used by its |
81 // consumer to talk indirectly to the RenderViews and supporting objects. | 80 // consumer to talk indirectly to the RenderViews and supporting objects. |
82 // Likewise, it provides an API for the RenderViews to talk back to the main | 81 // Likewise, it provides an API for the RenderViews to talk back to the main |
83 // process (i.e., their corresponding WebContentsImpl). | 82 // process (i.e., their corresponding WebContentsImpl). |
84 // | 83 // |
85 // Most of the communication occurs in the form of IPC messages. They are | 84 // Most of the communication occurs in the form of IPC messages. They are |
86 // routed to the RenderThread according to the routing IDs of the messages. | 85 // routed to the RenderThread according to the routing IDs of the messages. |
87 // The routing IDs correspond to RenderView instances. | 86 // The routing IDs correspond to RenderView instances. |
88 class CONTENT_EXPORT RenderThreadImpl : public content::RenderThread, | 87 class CONTENT_EXPORT RenderThreadImpl : public RenderThread, |
89 public ChildThread, | 88 public ChildThread, |
90 public GpuChannelHostFactory { | 89 public GpuChannelHostFactory { |
91 public: | 90 public: |
92 static RenderThreadImpl* current(); | 91 static RenderThreadImpl* current(); |
93 | 92 |
94 RenderThreadImpl(); | 93 RenderThreadImpl(); |
95 // Constructor that's used when running in single process mode. | 94 // Constructor that's used when running in single process mode. |
96 explicit RenderThreadImpl(const std::string& channel_name); | 95 explicit RenderThreadImpl(const std::string& channel_name); |
97 virtual ~RenderThreadImpl(); | 96 virtual ~RenderThreadImpl(); |
98 | 97 |
99 // When initializing WebKit, ensure that any schemes needed for the content | 98 // When initializing WebKit, ensure that any schemes needed for the content |
100 // module are registered properly. Static to allow sharing with tests. | 99 // module are registered properly. Static to allow sharing with tests. |
101 static void RegisterSchemes(); | 100 static void RegisterSchemes(); |
102 | 101 |
103 // content::RenderThread implementation: | 102 // RenderThread implementation: |
104 virtual bool Send(IPC::Message* msg) OVERRIDE; | 103 virtual bool Send(IPC::Message* msg) OVERRIDE; |
105 virtual MessageLoop* GetMessageLoop() OVERRIDE; | 104 virtual MessageLoop* GetMessageLoop() OVERRIDE; |
106 virtual IPC::SyncChannel* GetChannel() OVERRIDE; | 105 virtual IPC::SyncChannel* GetChannel() OVERRIDE; |
107 virtual std::string GetLocale() OVERRIDE; | 106 virtual std::string GetLocale() OVERRIDE; |
108 virtual IPC::SyncMessageFilter* GetSyncMessageFilter() OVERRIDE; | 107 virtual IPC::SyncMessageFilter* GetSyncMessageFilter() OVERRIDE; |
109 virtual scoped_refptr<base::MessageLoopProxy> GetIOMessageLoopProxy() | 108 virtual scoped_refptr<base::MessageLoopProxy> GetIOMessageLoopProxy() |
110 OVERRIDE; | 109 OVERRIDE; |
111 virtual void AddRoute(int32 routing_id, IPC::Listener* listener) OVERRIDE; | 110 virtual void AddRoute(int32 routing_id, IPC::Listener* listener) OVERRIDE; |
112 virtual void RemoveRoute(int32 routing_id) OVERRIDE; | 111 virtual void RemoveRoute(int32 routing_id) OVERRIDE; |
113 virtual int GenerateRoutingID() OVERRIDE; | 112 virtual int GenerateRoutingID() OVERRIDE; |
114 virtual void AddFilter(IPC::ChannelProxy::MessageFilter* filter) OVERRIDE; | 113 virtual void AddFilter(IPC::ChannelProxy::MessageFilter* filter) OVERRIDE; |
115 virtual void RemoveFilter(IPC::ChannelProxy::MessageFilter* filter) OVERRIDE; | 114 virtual void RemoveFilter(IPC::ChannelProxy::MessageFilter* filter) OVERRIDE; |
116 virtual void SetOutgoingMessageFilter( | 115 virtual void SetOutgoingMessageFilter( |
117 IPC::ChannelProxy::OutgoingMessageFilter* filter) OVERRIDE; | 116 IPC::ChannelProxy::OutgoingMessageFilter* filter) OVERRIDE; |
118 virtual void AddObserver(content::RenderProcessObserver* observer) OVERRIDE; | 117 virtual void AddObserver(RenderProcessObserver* observer) OVERRIDE; |
119 virtual void RemoveObserver( | 118 virtual void RemoveObserver(RenderProcessObserver* observer) OVERRIDE; |
120 content::RenderProcessObserver* observer) OVERRIDE; | |
121 virtual void SetResourceDispatcherDelegate( | 119 virtual void SetResourceDispatcherDelegate( |
122 content::ResourceDispatcherDelegate* delegate) OVERRIDE; | 120 ResourceDispatcherDelegate* delegate) OVERRIDE; |
123 virtual void WidgetHidden() OVERRIDE; | 121 virtual void WidgetHidden() OVERRIDE; |
124 virtual void WidgetRestored() OVERRIDE; | 122 virtual void WidgetRestored() OVERRIDE; |
125 virtual void EnsureWebKitInitialized() OVERRIDE; | 123 virtual void EnsureWebKitInitialized() OVERRIDE; |
126 virtual void RecordUserMetrics(const std::string& action) OVERRIDE; | 124 virtual void RecordUserMetrics(const std::string& action) OVERRIDE; |
127 virtual base::SharedMemoryHandle HostAllocateSharedMemoryBuffer( | 125 virtual base::SharedMemoryHandle HostAllocateSharedMemoryBuffer( |
128 uint32 buffer_size) OVERRIDE; | 126 uint32 buffer_size) OVERRIDE; |
129 virtual void RegisterExtension(v8::Extension* extension) OVERRIDE; | 127 virtual void RegisterExtension(v8::Extension* extension) OVERRIDE; |
130 virtual void ScheduleIdleHandler(int64 initial_delay_ms) OVERRIDE; | 128 virtual void ScheduleIdleHandler(int64 initial_delay_ms) OVERRIDE; |
131 virtual void IdleHandler() OVERRIDE; | 129 virtual void IdleHandler() OVERRIDE; |
132 virtual int64 GetIdleNotificationDelayInMs() const OVERRIDE; | 130 virtual int64 GetIdleNotificationDelayInMs() const OVERRIDE; |
133 virtual void SetIdleNotificationDelayInMs( | 131 virtual void SetIdleNotificationDelayInMs( |
134 int64 idle_notification_delay_in_ms) OVERRIDE; | 132 int64 idle_notification_delay_in_ms) OVERRIDE; |
135 virtual void ToggleWebKitSharedTimer(bool suspend) OVERRIDE; | 133 virtual void ToggleWebKitSharedTimer(bool suspend) OVERRIDE; |
136 virtual void UpdateHistograms(int sequence_number) OVERRIDE; | 134 virtual void UpdateHistograms(int sequence_number) OVERRIDE; |
137 #if defined(OS_WIN) | 135 #if defined(OS_WIN) |
138 virtual void PreCacheFont(const LOGFONT& log_font) OVERRIDE; | 136 virtual void PreCacheFont(const LOGFONT& log_font) OVERRIDE; |
139 virtual void ReleaseCachedFonts() OVERRIDE; | 137 virtual void ReleaseCachedFonts() OVERRIDE; |
140 #endif | 138 #endif |
141 | 139 |
142 // content::ChildThread: | 140 // ChildThread: |
143 virtual bool IsWebFrameValid(WebKit::WebFrame* frame) OVERRIDE; | 141 virtual bool IsWebFrameValid(WebKit::WebFrame* frame) OVERRIDE; |
144 | 142 |
145 // GpuChannelHostFactory implementation: | 143 // GpuChannelHostFactory implementation: |
146 virtual bool IsMainThread() OVERRIDE; | 144 virtual bool IsMainThread() OVERRIDE; |
147 virtual bool IsIOThread() OVERRIDE; | 145 virtual bool IsIOThread() OVERRIDE; |
148 virtual MessageLoop* GetMainLoop() OVERRIDE; | 146 virtual MessageLoop* GetMainLoop() OVERRIDE; |
149 virtual scoped_refptr<base::MessageLoopProxy> GetIOLoopProxy() OVERRIDE; | 147 virtual scoped_refptr<base::MessageLoopProxy> GetIOLoopProxy() OVERRIDE; |
150 virtual base::WaitableEvent* GetShutDownEvent() OVERRIDE; | 148 virtual base::WaitableEvent* GetShutDownEvent() OVERRIDE; |
151 virtual scoped_ptr<base::SharedMemory> AllocateSharedMemory( | 149 virtual scoped_ptr<base::SharedMemory> AllocateSharedMemory( |
152 uint32 size) OVERRIDE; | 150 uint32 size) OVERRIDE; |
153 virtual int32 CreateViewCommandBuffer( | 151 virtual int32 CreateViewCommandBuffer( |
154 int32 surface_id, | 152 int32 surface_id, |
155 const GPUCreateCommandBufferConfig& init_params) OVERRIDE; | 153 const GPUCreateCommandBufferConfig& init_params) OVERRIDE; |
156 virtual void CreateImage( | 154 virtual void CreateImage( |
157 gfx::PluginWindowHandle window, | 155 gfx::PluginWindowHandle window, |
158 int32 image_id, | 156 int32 image_id, |
159 const CreateImageCallback& callback) OVERRIDE; | 157 const CreateImageCallback& callback) OVERRIDE; |
160 virtual void DeleteImage(int32 image_id, int32 sync_point) OVERRIDE; | 158 virtual void DeleteImage(int32 image_id, int32 sync_point) OVERRIDE; |
161 | 159 |
162 // Synchronously establish a channel to the GPU plugin if not previously | 160 // Synchronously establish a channel to the GPU plugin if not previously |
163 // established or if it has been lost (for example if the GPU plugin crashed). | 161 // established or if it has been lost (for example if the GPU plugin crashed). |
164 // If there is a pending asynchronous request, it will be completed by the | 162 // If there is a pending asynchronous request, it will be completed by the |
165 // time this routine returns. | 163 // time this routine returns. |
166 virtual GpuChannelHost* EstablishGpuChannelSync( | 164 virtual GpuChannelHost* EstablishGpuChannelSync(CauseForGpuLaunch) OVERRIDE; |
167 content::CauseForGpuLaunch) OVERRIDE; | |
168 | 165 |
169 | 166 |
170 // These methods modify how the next message is sent. Normally, when sending | 167 // These methods modify how the next message is sent. Normally, when sending |
171 // a synchronous message that runs a nested message loop, we need to suspend | 168 // a synchronous message that runs a nested message loop, we need to suspend |
172 // callbacks into WebKit. This involves disabling timers and deferring | 169 // callbacks into WebKit. This involves disabling timers and deferring |
173 // resource loads. However, there are exceptions when we need to customize | 170 // resource loads. However, there are exceptions when we need to customize |
174 // the behavior. | 171 // the behavior. |
175 void DoNotSuspendWebKitSharedTimer(); | 172 void DoNotSuspendWebKitSharedTimer(); |
176 void DoNotNotifyWebKitOfModalLoop(); | 173 void DoNotNotifyWebKitOfModalLoop(); |
177 | 174 |
178 IPC::ForwardingMessageFilter* compositor_output_surface_filter() const { | 175 IPC::ForwardingMessageFilter* compositor_output_surface_filter() const { |
179 return compositor_output_surface_filter_.get(); | 176 return compositor_output_surface_filter_.get(); |
180 } | 177 } |
181 | 178 |
182 // Will be NULL if threaded compositing has not been enabled. | 179 // Will be NULL if threaded compositing has not been enabled. |
183 CompositorThread* compositor_thread() const { | 180 CompositorThread* compositor_thread() const { |
184 return compositor_thread_.get(); | 181 return compositor_thread_.get(); |
185 } | 182 } |
186 | 183 |
187 content::old::BrowserPluginRegistry* browser_plugin_registry() const { | 184 old::BrowserPluginRegistry* browser_plugin_registry() const { |
188 return browser_plugin_registry_.get(); | 185 return browser_plugin_registry_.get(); |
189 } | 186 } |
190 | 187 |
191 content::old::BrowserPluginChannelManager* | 188 old::BrowserPluginChannelManager* browser_plugin_channel_manager() const { |
192 browser_plugin_channel_manager() const { | |
193 return browser_plugin_channel_manager_.get(); | 189 return browser_plugin_channel_manager_.get(); |
194 } | 190 } |
195 | 191 |
196 AppCacheDispatcher* appcache_dispatcher() const { | 192 AppCacheDispatcher* appcache_dispatcher() const { |
197 return appcache_dispatcher_.get(); | 193 return appcache_dispatcher_.get(); |
198 } | 194 } |
199 | 195 |
200 DomStorageDispatcher* dom_storage_dispatcher() const { | 196 DomStorageDispatcher* dom_storage_dispatcher() const { |
201 return dom_storage_dispatcher_.get(); | 197 return dom_storage_dispatcher_.get(); |
202 } | 198 } |
(...skipping 10 matching lines...) Expand all Loading... |
213 | 209 |
214 // Creates the embedder implementation of WebMediaStreamCenter. | 210 // Creates the embedder implementation of WebMediaStreamCenter. |
215 // The resulting object is owned by WebKit and deleted by WebKit at tear-down. | 211 // The resulting object is owned by WebKit and deleted by WebKit at tear-down. |
216 WebKit::WebMediaStreamCenter* CreateMediaStreamCenter( | 212 WebKit::WebMediaStreamCenter* CreateMediaStreamCenter( |
217 WebKit::WebMediaStreamCenterClient* client); | 213 WebKit::WebMediaStreamCenterClient* client); |
218 | 214 |
219 // Returns a factory used for creating RTC PeerConnection objects. | 215 // Returns a factory used for creating RTC PeerConnection objects. |
220 MediaStreamDependencyFactory* GetMediaStreamDependencyFactory(); | 216 MediaStreamDependencyFactory* GetMediaStreamDependencyFactory(); |
221 | 217 |
222 // Current P2PSocketDispatcher. Set to NULL if P2P API is disabled. | 218 // Current P2PSocketDispatcher. Set to NULL if P2P API is disabled. |
223 content::P2PSocketDispatcher* p2p_socket_dispatcher() { | 219 P2PSocketDispatcher* p2p_socket_dispatcher() { |
224 return p2p_socket_dispatcher_.get(); | 220 return p2p_socket_dispatcher_.get(); |
225 } | 221 } |
226 | 222 |
227 VideoCaptureImplManager* video_capture_impl_manager() const { | 223 VideoCaptureImplManager* video_capture_impl_manager() const { |
228 return vc_manager_.get(); | 224 return vc_manager_.get(); |
229 } | 225 } |
230 | 226 |
231 // Get the GPU channel. Returns NULL if the channel is not established or | 227 // Get the GPU channel. Returns NULL if the channel is not established or |
232 // has been lost. | 228 // has been lost. |
233 GpuChannelHost* GetGpuChannel(); | 229 GpuChannelHost* GetGpuChannel(); |
(...skipping 14 matching lines...) Expand all Loading... |
248 // loss. The returned context is only valid on the compositor thread when | 244 // loss. The returned context is only valid on the compositor thread when |
249 // threaded compositing is enabled. | 245 // threaded compositing is enabled. |
250 WebGraphicsContext3DCommandBufferImpl* GetGpuVDAContext3D(); | 246 WebGraphicsContext3DCommandBufferImpl* GetGpuVDAContext3D(); |
251 | 247 |
252 // Handle loss of the shared GpuVDAContext3D context above. | 248 // Handle loss of the shared GpuVDAContext3D context above. |
253 static void OnGpuVDAContextLoss(); | 249 static void OnGpuVDAContextLoss(); |
254 | 250 |
255 // AudioRendererMixerManager instance which manages renderer side mixer | 251 // AudioRendererMixerManager instance which manages renderer side mixer |
256 // instances shared based on configured audio parameters. Lazily created on | 252 // instances shared based on configured audio parameters. Lazily created on |
257 // first call. | 253 // first call. |
258 content::AudioRendererMixerManager* GetAudioRendererMixerManager(); | 254 AudioRendererMixerManager* GetAudioRendererMixerManager(); |
259 | 255 |
260 // For producing custom V8 histograms. Custom histograms are produced if all | 256 // For producing custom V8 histograms. Custom histograms are produced if all |
261 // RenderViews share the same host, and the host is in the pre-specified set | 257 // RenderViews share the same host, and the host is in the pre-specified set |
262 // of hosts we want to produce custom diagrams for. The name for a custom | 258 // of hosts we want to produce custom diagrams for. The name for a custom |
263 // diagram is the name of the corresponding generic diagram plus a | 259 // diagram is the name of the corresponding generic diagram plus a |
264 // host-specific suffix. | 260 // host-specific suffix. |
265 class CONTENT_EXPORT HistogramCustomizer { | 261 class CONTENT_EXPORT HistogramCustomizer { |
266 public: | 262 public: |
267 HistogramCustomizer(); | 263 HistogramCustomizer(); |
268 ~HistogramCustomizer(); | 264 ~HistogramCustomizer(); |
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
317 void OnGetAccessibilityTree(); | 313 void OnGetAccessibilityTree(); |
318 void OnTempCrashWithData(const GURL& data); | 314 void OnTempCrashWithData(const GURL& data); |
319 | 315 |
320 void IdleHandlerInForegroundTab(); | 316 void IdleHandlerInForegroundTab(); |
321 | 317 |
322 // These objects live solely on the render thread. | 318 // These objects live solely on the render thread. |
323 scoped_ptr<AppCacheDispatcher> appcache_dispatcher_; | 319 scoped_ptr<AppCacheDispatcher> appcache_dispatcher_; |
324 scoped_ptr<DomStorageDispatcher> dom_storage_dispatcher_; | 320 scoped_ptr<DomStorageDispatcher> dom_storage_dispatcher_; |
325 scoped_ptr<IndexedDBDispatcher> main_thread_indexed_db_dispatcher_; | 321 scoped_ptr<IndexedDBDispatcher> main_thread_indexed_db_dispatcher_; |
326 scoped_ptr<RendererWebKitPlatformSupportImpl> webkit_platform_support_; | 322 scoped_ptr<RendererWebKitPlatformSupportImpl> webkit_platform_support_; |
327 scoped_ptr<content::old::BrowserPluginChannelManager> | 323 scoped_ptr<old::BrowserPluginChannelManager> browser_plugin_channel_manager_; |
328 browser_plugin_channel_manager_; | |
329 | 324 |
330 // Used on the render thread and deleted by WebKit at shutdown. | 325 // Used on the render thread and deleted by WebKit at shutdown. |
331 content::MediaStreamCenter* media_stream_center_; | 326 MediaStreamCenter* media_stream_center_; |
332 | 327 |
333 // Used on the renderer and IPC threads. | 328 // Used on the renderer and IPC threads. |
334 scoped_refptr<DBMessageFilter> db_message_filter_; | 329 scoped_refptr<DBMessageFilter> db_message_filter_; |
335 scoped_refptr<AudioInputMessageFilter> audio_input_message_filter_; | 330 scoped_refptr<AudioInputMessageFilter> audio_input_message_filter_; |
336 scoped_refptr<AudioMessageFilter> audio_message_filter_; | 331 scoped_refptr<AudioMessageFilter> audio_message_filter_; |
337 scoped_refptr<DevToolsAgentFilter> devtools_agent_message_filter_; | 332 scoped_refptr<DevToolsAgentFilter> devtools_agent_message_filter_; |
338 | 333 |
339 scoped_ptr<MediaStreamDependencyFactory> media_stream_factory_; | 334 scoped_ptr<MediaStreamDependencyFactory> media_stream_factory_; |
340 | 335 |
341 // Dispatches all P2P sockets. | 336 // Dispatches all P2P sockets. |
342 scoped_refptr<content::P2PSocketDispatcher> p2p_socket_dispatcher_; | 337 scoped_refptr<P2PSocketDispatcher> p2p_socket_dispatcher_; |
343 | 338 |
344 // Used on multiple threads. | 339 // Used on multiple threads. |
345 scoped_refptr<VideoCaptureImplManager> vc_manager_; | 340 scoped_refptr<VideoCaptureImplManager> vc_manager_; |
346 | 341 |
347 // Used on multiple script execution context threads. | 342 // Used on multiple script execution context threads. |
348 scoped_ptr<WebDatabaseObserverImpl> web_database_observer_impl_; | 343 scoped_ptr<WebDatabaseObserverImpl> web_database_observer_impl_; |
349 | 344 |
350 #if defined(OS_WIN) | 345 #if defined(OS_WIN) |
351 // Initialize COM when using plugins outside the sandbox. | 346 // Initialize COM when using plugins outside the sandbox. |
352 scoped_ptr<base::win::ScopedCOMInitializer> initialize_com_; | 347 scoped_ptr<base::win::ScopedCOMInitializer> initialize_com_; |
(...skipping 20 matching lines...) Expand all Loading... |
373 // The channel from the renderer process to the GPU process. | 368 // The channel from the renderer process to the GPU process. |
374 scoped_refptr<GpuChannelHost> gpu_channel_; | 369 scoped_refptr<GpuChannelHost> gpu_channel_; |
375 | 370 |
376 // A lazily initiated thread on which file operations are run. | 371 // A lazily initiated thread on which file operations are run. |
377 scoped_ptr<base::Thread> file_thread_; | 372 scoped_ptr<base::Thread> file_thread_; |
378 | 373 |
379 bool compositor_initialized_; | 374 bool compositor_initialized_; |
380 scoped_ptr<CompositorThread> compositor_thread_; | 375 scoped_ptr<CompositorThread> compositor_thread_; |
381 scoped_refptr<IPC::ForwardingMessageFilter> compositor_output_surface_filter_; | 376 scoped_refptr<IPC::ForwardingMessageFilter> compositor_output_surface_filter_; |
382 | 377 |
383 scoped_ptr<content::old::BrowserPluginRegistry> browser_plugin_registry_; | 378 scoped_ptr<old::BrowserPluginRegistry> browser_plugin_registry_; |
384 | 379 |
385 ObserverList<content::RenderProcessObserver> observers_; | 380 ObserverList<RenderProcessObserver> observers_; |
386 | 381 |
387 class GpuVDAContextLostCallback; | 382 class GpuVDAContextLostCallback; |
388 scoped_ptr<GpuVDAContextLostCallback> context_lost_cb_; | 383 scoped_ptr<GpuVDAContextLostCallback> context_lost_cb_; |
389 scoped_ptr<WebGraphicsContext3DCommandBufferImpl> gpu_vda_context3d_; | 384 scoped_ptr<WebGraphicsContext3DCommandBufferImpl> gpu_vda_context3d_; |
390 | 385 |
391 scoped_ptr<content::AudioRendererMixerManager> audio_renderer_mixer_manager_; | 386 scoped_ptr<AudioRendererMixerManager> audio_renderer_mixer_manager_; |
392 | 387 |
393 HistogramCustomizer histogram_customizer_; | 388 HistogramCustomizer histogram_customizer_; |
394 | 389 |
395 DISALLOW_COPY_AND_ASSIGN(RenderThreadImpl); | 390 DISALLOW_COPY_AND_ASSIGN(RenderThreadImpl); |
396 }; | 391 }; |
397 | 392 |
| 393 } // namespace content |
| 394 |
398 #endif // CONTENT_RENDERER_RENDER_THREAD_IMPL_H_ | 395 #endif // CONTENT_RENDERER_RENDER_THREAD_IMPL_H_ |
OLD | NEW |