| OLD | NEW |
| 1 // Copyright (c) 2009 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2009 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 CHROME_RENDERER_RENDER_THREAD_H_ | 5 #ifndef CHROME_RENDERER_RENDER_THREAD_H_ |
| 6 #define CHROME_RENDERER_RENDER_THREAD_H_ | 6 #define CHROME_RENDERER_RENDER_THREAD_H_ |
| 7 | 7 |
| 8 #include <string> | 8 #include <string> |
| 9 #include <vector> | 9 #include <vector> |
| 10 | 10 |
| (...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 42 | 42 |
| 43 virtual bool Send(IPC::Message* msg) = 0; | 43 virtual bool Send(IPC::Message* msg) = 0; |
| 44 | 44 |
| 45 // Called to add or remove a listener for a particular message routing ID. | 45 // Called to add or remove a listener for a particular message routing ID. |
| 46 // These methods normally get delegated to a MessageRouter. | 46 // These methods normally get delegated to a MessageRouter. |
| 47 virtual void AddRoute(int32 routing_id, IPC::Channel::Listener* listener) = 0; | 47 virtual void AddRoute(int32 routing_id, IPC::Channel::Listener* listener) = 0; |
| 48 virtual void RemoveRoute(int32 routing_id) = 0; | 48 virtual void RemoveRoute(int32 routing_id) = 0; |
| 49 | 49 |
| 50 virtual void AddFilter(IPC::ChannelProxy::MessageFilter* filter) = 0; | 50 virtual void AddFilter(IPC::ChannelProxy::MessageFilter* filter) = 0; |
| 51 virtual void RemoveFilter(IPC::ChannelProxy::MessageFilter* filter) = 0; | 51 virtual void RemoveFilter(IPC::ChannelProxy::MessageFilter* filter) = 0; |
| 52 |
| 53 // Called by a RenderWidget when it is hidden or restored. |
| 54 virtual void WidgetHidden() = 0; |
| 55 virtual void WidgetRestored() = 0; |
| 52 }; | 56 }; |
| 53 | 57 |
| 54 // The RenderThread class represents a background thread where RenderView | 58 // The RenderThread class represents a background thread where RenderView |
| 55 // instances live. The RenderThread supports an API that is used by its | 59 // instances live. The RenderThread supports an API that is used by its |
| 56 // consumer to talk indirectly to the RenderViews and supporting objects. | 60 // consumer to talk indirectly to the RenderViews and supporting objects. |
| 57 // Likewise, it provides an API for the RenderViews to talk back to the main | 61 // Likewise, it provides an API for the RenderViews to talk back to the main |
| 58 // process (i.e., their corresponding TabContents). | 62 // process (i.e., their corresponding TabContents). |
| 59 // | 63 // |
| 60 // Most of the communication occurs in the form of IPC messages. They are | 64 // Most of the communication occurs in the form of IPC messages. They are |
| 61 // routed to the RenderThread according to the routing IDs of the messages. | 65 // routed to the RenderThread according to the routing IDs of the messages. |
| (...skipping 10 matching lines...) Expand all Loading... |
| 72 // Returns the one render thread for this process. Note that this should only | 76 // Returns the one render thread for this process. Note that this should only |
| 73 // be accessed when running on the render thread itself | 77 // be accessed when running on the render thread itself |
| 74 static RenderThread* current(); | 78 static RenderThread* current(); |
| 75 | 79 |
| 76 // Overridden from RenderThreadBase. | 80 // Overridden from RenderThreadBase. |
| 77 virtual bool Send(IPC::Message* msg) { | 81 virtual bool Send(IPC::Message* msg) { |
| 78 return ChildThread::Send(msg); | 82 return ChildThread::Send(msg); |
| 79 } | 83 } |
| 80 | 84 |
| 81 virtual void AddRoute(int32 routing_id, IPC::Channel::Listener* listener) { | 85 virtual void AddRoute(int32 routing_id, IPC::Channel::Listener* listener) { |
| 86 widget_count_++; |
| 82 return ChildThread::AddRoute(routing_id, listener); | 87 return ChildThread::AddRoute(routing_id, listener); |
| 83 } | 88 } |
| 84 virtual void RemoveRoute(int32 routing_id) { | 89 virtual void RemoveRoute(int32 routing_id) { |
| 90 widget_count_--; |
| 85 return ChildThread::RemoveRoute(routing_id); | 91 return ChildThread::RemoveRoute(routing_id); |
| 86 } | 92 } |
| 87 | 93 |
| 88 virtual void AddFilter(IPC::ChannelProxy::MessageFilter* filter); | 94 virtual void AddFilter(IPC::ChannelProxy::MessageFilter* filter); |
| 89 virtual void RemoveFilter(IPC::ChannelProxy::MessageFilter* filter); | 95 virtual void RemoveFilter(IPC::ChannelProxy::MessageFilter* filter); |
| 90 | 96 |
| 97 virtual void WidgetHidden(); |
| 98 virtual void WidgetRestored(); |
| 99 |
| 91 VisitedLinkSlave* visited_link_slave() const { | 100 VisitedLinkSlave* visited_link_slave() const { |
| 92 return visited_link_slave_.get(); | 101 return visited_link_slave_.get(); |
| 93 } | 102 } |
| 94 | 103 |
| 95 UserScriptSlave* user_script_slave() const { | 104 UserScriptSlave* user_script_slave() const { |
| 96 return user_script_slave_.get(); | 105 return user_script_slave_.get(); |
| 97 } | 106 } |
| 98 | 107 |
| 99 AppCacheDispatcher* appcache_dispatcher() const { | 108 AppCacheDispatcher* appcache_dispatcher() const { |
| 100 return appcache_dispatcher_.get(); | 109 return appcache_dispatcher_.get(); |
| (...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 156 void OnPurgePluginListCache(); | 165 void OnPurgePluginListCache(); |
| 157 | 166 |
| 158 // Gather usage statistics from the in-memory cache and inform our host. | 167 // Gather usage statistics from the in-memory cache and inform our host. |
| 159 // These functions should be call periodically so that the host can make | 168 // These functions should be call periodically so that the host can make |
| 160 // decisions about how to allocation resources using current information. | 169 // decisions about how to allocation resources using current information. |
| 161 void InformHostOfCacheStats(); | 170 void InformHostOfCacheStats(); |
| 162 | 171 |
| 163 // We initialize WebKit as late as possible. | 172 // We initialize WebKit as late as possible. |
| 164 void EnsureWebKitInitialized(); | 173 void EnsureWebKitInitialized(); |
| 165 | 174 |
| 175 // A task we invoke periodically to assist with idle cleanup. |
| 176 void IdleHandler(); |
| 177 |
| 166 // These objects live solely on the render thread. | 178 // These objects live solely on the render thread. |
| 167 scoped_ptr<ScopedRunnableMethodFactory<RenderThread> > cache_stats_factory_; | 179 scoped_ptr<ScopedRunnableMethodFactory<RenderThread> > task_factory_; |
| 168 scoped_ptr<VisitedLinkSlave> visited_link_slave_; | 180 scoped_ptr<VisitedLinkSlave> visited_link_slave_; |
| 169 scoped_ptr<UserScriptSlave> user_script_slave_; | 181 scoped_ptr<UserScriptSlave> user_script_slave_; |
| 170 scoped_ptr<RenderDnsMaster> dns_master_; | 182 scoped_ptr<RenderDnsMaster> dns_master_; |
| 171 scoped_ptr<AppCacheDispatcher> appcache_dispatcher_; | 183 scoped_ptr<AppCacheDispatcher> appcache_dispatcher_; |
| 172 scoped_refptr<DevToolsAgentFilter> devtools_agent_filter_; | 184 scoped_refptr<DevToolsAgentFilter> devtools_agent_filter_; |
| 173 scoped_ptr<RendererHistogramSnapshots> histogram_snapshots_; | 185 scoped_ptr<RendererHistogramSnapshots> histogram_snapshots_; |
| 174 scoped_ptr<RendererWebKitClientImpl> webkit_client_; | 186 scoped_ptr<RendererWebKitClientImpl> webkit_client_; |
| 175 | 187 |
| 176 scoped_refptr<DBMessageFilter> db_message_filter_; | 188 scoped_refptr<DBMessageFilter> db_message_filter_; |
| 177 | 189 |
| 178 #if defined(OS_POSIX) | 190 #if defined(OS_POSIX) |
| 179 scoped_refptr<IPC::ChannelProxy::MessageFilter> | 191 scoped_refptr<IPC::ChannelProxy::MessageFilter> |
| 180 suicide_on_channel_error_filter_; | 192 suicide_on_channel_error_filter_; |
| 181 #endif | 193 #endif |
| 182 | 194 |
| 183 // If true, then a GetPlugins call is allowed to rescan the disk. | 195 // If true, then a GetPlugins call is allowed to rescan the disk. |
| 184 bool plugin_refresh_allowed_; | 196 bool plugin_refresh_allowed_; |
| 185 | 197 |
| 198 // Is there a pending task for doing CacheStats. |
| 199 bool cache_stats_task_pending_; |
| 200 |
| 201 // The count of RenderWidgets running through this thread. |
| 202 int widget_count_; |
| 203 |
| 204 // The count of hidden RenderWidgets running through this thread. |
| 205 int hidden_widget_count_; |
| 206 |
| 207 // The current value of the idle notification timer delay. |
| 208 double idle_notification_delay_in_s_; |
| 209 |
| 186 DISALLOW_COPY_AND_ASSIGN(RenderThread); | 210 DISALLOW_COPY_AND_ASSIGN(RenderThread); |
| 187 }; | 211 }; |
| 188 | 212 |
| 189 #endif // CHROME_RENDERER_RENDER_THREAD_H_ | 213 #endif // CHROME_RENDERER_RENDER_THREAD_H_ |
| OLD | NEW |