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

Unified Diff: chrome/browser/render_widget_host.h

Issue 4262: Stop spamming delayed tasks on each input event. (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 12 years, 3 months 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: chrome/browser/render_widget_host.h
===================================================================
--- chrome/browser/render_widget_host.h (revision 2551)
+++ chrome/browser/render_widget_host.h (working copy)
@@ -2,13 +2,13 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-#ifndef CHROME_BROWSER_RENDER_WIDGET_HOST_H__
-#define CHROME_BROWSER_RENDER_WIDGET_HOST_H__
+#ifndef CHROME_BROWSER_RENDER_WIDGET_HOST_H_
+#define CHROME_BROWSER_RENDER_WIDGET_HOST_H_
#include <windows.h>
-#include "base/task.h"
#include "base/gfx/size.h"
+#include "base/timer.h"
#include "chrome/common/ipc_channel.h"
namespace gfx {
@@ -180,11 +180,11 @@
// javascript call.
virtual bool CanBlur() const { return true; }
- // Restart the active hang monitor timeout. Clears all existing timeouts
- // and starts with a new one.
- // This can be because the renderer has become active, the tab is being
- // hidden, or the user has chosen to wait some more to give the tab a chance
- // to become active and we don't want to display a warning too soon.
+ // Restart the active hang monitor timeout. Clears all existing timeouts and
+ // starts with a new one. This can be because the renderer has become
+ // active, the tab is being hidden, or the user has chosen to wait some more
+ // to give the tab a chance to become active and we don't want to display a
+ // warning too soon.
void RestartHangMonitorTimeout();
// Stops all existing hang monitor timeouts and assumes the renderer is
@@ -194,7 +194,7 @@
// Starts a hang monitor timeout. If there's already a hang monitor timeout
// the new one will only fire if it has a shorter delay than the time
// left on the existing timeouts.
- void StartHangMonitorTimeout(int delay);
+ void StartHangMonitorTimeout(TimeDelta delay);
// Called when we receive a notification indicating that the renderer
// process has gone.
@@ -250,7 +250,7 @@
// Callbacks for notification when the renderer becomes unresponsive to user
// input events, and subsequently responsive again. The delegate can use
// these notifications to show a warning.
- void RendererIsUnresponsive();
+ void CheckRendererIsUnresponsive();
virtual void NotifyRendererUnresponsive() {}
void RendererIsResponsive();
virtual void NotifyRendererResponsive() {}
@@ -298,9 +298,13 @@
// itself, a paint message could already be in flight at that point.
bool needs_repainting_on_restore_;
- // The following factory is used to detect a hung renderer
- ScopedRunnableMethodFactory<RenderWidgetHost> hung_renderer_factory_;
+ // The following value indicates a time in the future when we would consider
+ // the renderer hung if it does not generate an appropriate response message.
+ Time time_when_considered_hung_;
+ // This timer runs to check if time_when_considered_hung_ has past.
+ base::OneShotTimer<RenderWidgetHost> hung_renderer_timer_;
+
// This is true if the renderer is currently unresponsive.
bool is_unresponsive_;
@@ -359,5 +363,4 @@
virtual void RenderWidgetHostDidPaint(RenderWidgetHost* rwh) = 0;
};
-#endif // #ifndef CHROME_BROWSER_RENDER_WIDGET_HOST_H__
-
+#endif // #ifndef CHROME_BROWSER_RENDER_WIDGET_HOST_H_

Powered by Google App Engine
This is Rietveld 408576698