| 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 |