| Index: base/message_loop/message_loop.h | 
| diff --git a/base/message_loop/message_loop.h b/base/message_loop/message_loop.h | 
| index 330bde6d2e8da68dccf0c1af1fcfaf2a8d081138..7a6c394da41ad7bdad6e3cd0d62991cfed16b7ab 100644 | 
| --- a/base/message_loop/message_loop.h | 
| +++ b/base/message_loop/message_loop.h | 
| @@ -371,10 +371,6 @@ class BASE_EXPORT MessageLoop : public MessagePump::Delegate { | 
| void AddTaskObserver(TaskObserver* task_observer); | 
| void RemoveTaskObserver(TaskObserver* task_observer); | 
|  | 
| -  // When we go into high resolution timer mode, we will stay in hi-res mode | 
| -  // for at least 1s. | 
| -  static const int kHighResolutionTimerModeLeaseTimeMs = 1000; | 
| - | 
| #if defined(OS_WIN) | 
| void set_os_modal_loop(bool os_modal_loop) { | 
| os_modal_loop_ = os_modal_loop; | 
| @@ -390,7 +386,7 @@ class BASE_EXPORT MessageLoop : public MessagePump::Delegate { | 
|  | 
| // Returns true if the message loop has high resolution timers enabled. | 
| // Provided for testing. | 
| -  bool IsHighResolutionTimerEnabledForTesting(); | 
| +  bool HasHighResolutionTasks(); | 
|  | 
| // Returns true if the message loop is "idle". Provided for testing. | 
| bool IsIdleForTesting(); | 
| @@ -460,6 +456,14 @@ class BASE_EXPORT MessageLoop : public MessagePump::Delegate { | 
| // this queue is only accessed (push/pop) by our current thread. | 
| TaskQueue work_queue_; | 
|  | 
| +  // How many high resolution tasks are in the pending task queue. This value | 
| +  // increases by N every time we call ReloadWorkQueue() and decreases by 1 | 
| +  // every time we call RunTask() if the task needs a high resolution timer. | 
| +  int pending_high_res_tasks_; | 
| +  // Tracks if we have requested high resolution timers. Its only use is to | 
| +  // turn off the high resolution timer upon loop destruction. | 
| +  bool in_high_res_mode_; | 
| + | 
| // Contains delayed tasks, sorted by their 'delayed_run_time' property. | 
| DelayedTaskQueue delayed_work_queue_; | 
|  | 
|  |