summaryrefslogtreecommitdiffstats
path: root/chrome/renderer/render_thread.h
diff options
context:
space:
mode:
Diffstat (limited to 'chrome/renderer/render_thread.h')
-rw-r--r--chrome/renderer/render_thread.h26
1 files changed, 25 insertions, 1 deletions
diff --git a/chrome/renderer/render_thread.h b/chrome/renderer/render_thread.h
index 5c22236..007bac4 100644
--- a/chrome/renderer/render_thread.h
+++ b/chrome/renderer/render_thread.h
@@ -49,6 +49,10 @@ class RenderThreadBase {
virtual void AddFilter(IPC::ChannelProxy::MessageFilter* filter) = 0;
virtual void RemoveFilter(IPC::ChannelProxy::MessageFilter* filter) = 0;
+
+ // Called by a RenderWidget when it is hidden or restored.
+ virtual void WidgetHidden() = 0;
+ virtual void WidgetRestored() = 0;
};
// The RenderThread class represents a background thread where RenderView
@@ -79,15 +83,20 @@ class RenderThread : public RenderThreadBase,
}
virtual void AddRoute(int32 routing_id, IPC::Channel::Listener* listener) {
+ widget_count_++;
return ChildThread::AddRoute(routing_id, listener);
}
virtual void RemoveRoute(int32 routing_id) {
+ widget_count_--;
return ChildThread::RemoveRoute(routing_id);
}
virtual void AddFilter(IPC::ChannelProxy::MessageFilter* filter);
virtual void RemoveFilter(IPC::ChannelProxy::MessageFilter* filter);
+ virtual void WidgetHidden();
+ virtual void WidgetRestored();
+
VisitedLinkSlave* visited_link_slave() const {
return visited_link_slave_.get();
}
@@ -163,8 +172,11 @@ class RenderThread : public RenderThreadBase,
// We initialize WebKit as late as possible.
void EnsureWebKitInitialized();
+ // A task we invoke periodically to assist with idle cleanup.
+ void IdleHandler();
+
// These objects live solely on the render thread.
- scoped_ptr<ScopedRunnableMethodFactory<RenderThread> > cache_stats_factory_;
+ scoped_ptr<ScopedRunnableMethodFactory<RenderThread> > task_factory_;
scoped_ptr<VisitedLinkSlave> visited_link_slave_;
scoped_ptr<UserScriptSlave> user_script_slave_;
scoped_ptr<RenderDnsMaster> dns_master_;
@@ -183,6 +195,18 @@ class RenderThread : public RenderThreadBase,
// If true, then a GetPlugins call is allowed to rescan the disk.
bool plugin_refresh_allowed_;
+ // Is there a pending task for doing CacheStats.
+ bool cache_stats_task_pending_;
+
+ // The count of RenderWidgets running through this thread.
+ int widget_count_;
+
+ // The count of hidden RenderWidgets running through this thread.
+ int hidden_widget_count_;
+
+ // The current value of the idle notification timer delay.
+ double idle_notification_delay_in_s_;
+
DISALLOW_COPY_AND_ASSIGN(RenderThread);
};