| Index: base/message_loop/message_pump_default.cc | 
| diff --git a/base/message_loop/message_pump_default.cc b/base/message_loop/message_pump_default.cc | 
| index 3449aec8605b32e7eb868573144ecb45929809d7..220625baff498ea0be8496dfe15e16de924df892 100644 | 
| --- a/base/message_loop/message_pump_default.cc | 
| +++ b/base/message_loop/message_pump_default.cc | 
| @@ -4,8 +4,6 @@ | 
|  | 
| #include "base/message_loop/message_pump_default.h" | 
|  | 
| -#include <algorithm> | 
| - | 
| #include "base/logging.h" | 
| #include "base/threading/thread_restrictions.h" | 
| #include "build/build_config.h" | 
| @@ -54,38 +52,7 @@ void MessagePumpDefault::Run(Delegate* delegate) { | 
| if (delayed_work_time_.is_null()) { | 
| event_.Wait(); | 
| } else { | 
| -      TimeDelta delay = delayed_work_time_ - TimeTicks::Now(); | 
| -      if (delay > TimeDelta()) { | 
| -#if defined(OS_WIN) | 
| -        // TODO(stanisc): crbug.com/623223: Consider moving the OS_WIN specific | 
| -        // logic into TimedWait implementation in waitable_event_win.cc. | 
| - | 
| -        // crbug.com/487724: on Windows, waiting for less than 1 ms results in | 
| -        // returning from TimedWait promptly and spinning | 
| -        // MessagePumpDefault::Run loop for up to 1 ms - until it is time to | 
| -        // run a delayed task. |min_delay| is the minimum possible wait to | 
| -        // to avoid the spinning. | 
| -        constexpr TimeDelta min_delay = TimeDelta::FromMilliseconds(1); | 
| -        do { | 
| -          delay = std::max(delay, min_delay); | 
| -          if (event_.TimedWait(delay)) | 
| -            break; | 
| - | 
| -          // TimedWait can time out earlier than the specified |delay| on | 
| -          // Windows. It doesn't make sense to run the outer loop in that case | 
| -          // because there isn't going to be any new work. It is less overhead | 
| -          // to just go back to wait. | 
| -          // In practice this inner wait loop might have up to 3 iterations. | 
| -          delay = delayed_work_time_ - TimeTicks::Now(); | 
| -        } while (delay > TimeDelta()); | 
| -#else | 
| -        event_.TimedWait(delay); | 
| -#endif | 
| -      } else { | 
| -        // It looks like delayed_work_time_ indicates a time in the past, so we | 
| -        // need to call DoDelayedWork now. | 
| -        delayed_work_time_ = TimeTicks(); | 
| -      } | 
| +      event_.TimedWaitUntil(delayed_work_time_); | 
| } | 
| // Since event_ is auto-reset, we don't need to do anything special here | 
| // other than service each delegate method. | 
|  |