Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1816)

Unified Diff: content/renderer/render_thread_impl.h

Issue 8513008: Schedule idle handler in the foreground tab based on CPU usage and user activity. (Closed) Base URL: http://git.chromium.org/git/chromium.git@trunk
Patch Set: Move PostponeIdleNotification to RenderThreadImpl Created 9 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: content/renderer/render_thread_impl.h
diff --git a/content/renderer/render_thread_impl.h b/content/renderer/render_thread_impl.h
index e3fdac37a5c6174232a56b006338176ff29e7f88..70bd66b919307a9383b16c032f3c8f87ba0577c7 100644
--- a/content/renderer/render_thread_impl.h
+++ b/content/renderer/render_thread_impl.h
@@ -43,6 +43,7 @@ class WebStorageEventDispatcher;
}
namespace base {
+class ProcessMetrics;
class MessageLoopProxy;
class Thread;
namespace win {
@@ -168,6 +169,11 @@ class CONTENT_EXPORT RenderThreadImpl : public content::RenderThread,
// on the renderer's main thread.
scoped_refptr<base::MessageLoopProxy> GetFileThreadMessageLoopProxy();
+ // Causes the idle handler to skip sending idle notifications
+ // on the two next scheduled calls, so idle notifications are
+ // not sent for at least one notification delay.
+ void PostponeIdleNotification();
+
private:
virtual bool OnControlMessageReceived(const IPC::Message& msg);
@@ -184,6 +190,8 @@ class CONTENT_EXPORT RenderThreadImpl : public content::RenderThread,
void OnGetAccessibilityTree();
void OnTempCrashWithData(const GURL& data);
+ void IdleHandlerInForegroundTab();
+
// These objects live solely on the render thread.
scoped_ptr<ScopedRunnableMethodFactory<RenderThreadImpl> > task_factory_;
scoped_ptr<AppCacheDispatcher> appcache_dispatcher_;
@@ -218,12 +226,17 @@ class CONTENT_EXPORT RenderThreadImpl : public content::RenderThread,
// The current value of the idle notification timer delay.
int64 idle_notification_delay_in_ms_;
+ // The number of idle handler calls that skip sending idle notifications.
+ int idle_notifications_to_skip_;
+
bool suspend_webkit_shared_timer_;
bool notify_webkit_of_modal_loop_;
// Timer that periodically calls IdleHandler.
base::RepeatingTimer<RenderThreadImpl> idle_timer_;
+ scoped_ptr<base::ProcessMetrics> process_metrics_;
+
// The channel from the renderer process to the GPU process.
scoped_refptr<GpuChannelHost> gpu_channel_;

Powered by Google App Engine
This is Rietveld 408576698